# PETSc in a nutshell#

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

## Algebraic objects#

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

• Matrices - contain Jacobians and operators that define linear systems (Mat).

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

## Solvers#

• Linear solvers based on preconditioners (PC) and Krylov subspace methods (KSP).

• Nonlinear solvers (SNES).

• Time integrators, (ODE/PDE), explicit, implicit, IMEX, (TS)

• Local and global error estimators

• Optimization with equality and inequality constraints, first and second order (Newton) methods (Tao).

For full feature list and prerequisites see:

## DM: Interfacing Solvers to Models/Discretizations#

• DMDA - for simulations computed on simple structured grids

• DMStag: Staggered, Structured Grids in PETSc - for simulations computed on staggered grids, (DMSTAG)

• DMPlex: Unstructured Grids in PETSc - for simulation computed on unstructured meshes, (DMPLEX)

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

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

• DMSWARM - for simulations on particles

Runtime