# PETSc in a nutshell#

PETSc/TAO is a tool for writing, analyzing, and optimizing properties of large-scale numerical simulations.

## Algebraic objects#

• Vec - containers for simulation solutions, right hand sides of linear systems, etc.

• Mat - contain Jacobians and operators that define linear systems

• IS indices - used to access portions of vectors and matrix, for example {1,2,4} or 1:10

## Solvers#

• PC preconditioners - approximate solvers to algebra systems without a history of previous iterations

• KSP Krylov subspace methods - approximate solvers with a history of previous iterations

• SNES nonlinear equation solvers

• TS time integrators (ODE/PDE), explicit, implicit, local and global error estimators

• TSAdjoint derivatives/sensitivities of functions of ODE/PDE integration solutions

• TAO - optimization, with equality and inequality constraints, first and second order (Newton) methods

## Connectors of continuum models, meshes, and discretizations to solvers and algebraic objects#

• DMDA - for simulations computed on simple structured grids

• DMSTAG - for simulations computed on staggered grids

• DMPLEX - for simulation computed on unstructured meshes

• DMNETWORK - for simulations on networks or graphs, for example the power grid, river networks, the nervous system

• DMP4EST - for simulations on collections of quad or octree meshes

• DMSWARM - for simulations on particles

## Utilities#

• PetscOptions - control of discretization and solution process

• PetscViewer - visualizing algebraic objects, solvers, connectors

• Monitor - monitoring of solution progress

• Profiling - profiling of the performance of the simulation solution process