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
).Multiple sparse and dense matrix storage formats,
limited memory variable metric representations,
block and nested representations (see
MatType
).
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
).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
).
See also
For full feature list and prerequisites see:
DM: Interfacing Solvers to Models/Discretizations#
DMDA
- for simulations computed on simple structured gridsDMSTAG: 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 meshesDMSWARM
- for simulations on particles
Utilities for the Simulation/Solver Process#
Runtime
control of the simulation, Runtime Options
visualization of the solvers and simulation, Viewers: Looking at PETSc Objects,
monitoring of solution progress,
Profiling of the performance,
robust Error Handling.