=================== PETSc in a nutshell =================== See :any:`handson` to immediately jump in and run PETSc code. PETSc/TAO is a tool for writing, analyzing, and optimizing large-scale numerical simulations. .. image:: /images/manual/library_structure.svg :alt: PETSc Structure Diagram :align: center Algebraic objects ================= * :any:`Vectors ` - containers for simulation solutions, right-hand sides of linear systems, etc (``Vec``). * :any:`Matrices ` - contain Jacobians and operators that define linear systems (``Mat``). * :any:`Multiple sparse and dense matrix storage formats`, * :any:`Limited memory variable metric representations`, * :any:`block` and :any:`nested` representations, * :any:`Easy, efficient matrix assembly and interface `. * Indices - used to access portions of vectors and matrix, for example {1,2,4} or 1:10 (``IS``). Solvers ======= * :any:`Linear solvers` based on preconditioners (``PC``) and Krylov subspace methods (``KSP``). * :any:`Nonlinear solvers ` (``SNES``). * :any:`Time integrators `, (ODE/PDE), explicit, implicit, IMEX, (``TS``) * Local and global error estimators * :any:`section_sa`. * :any:`Optimization ` with equality and inequality constraints, first and second order (Newton) methods (``Tao``). * Eigenvalue/Eigenvectors and related algorithms in the package `SLEPc `__. Model/Discretization Interfaces to Solvers ========================================== * Simple structured grids, ``DMDA``. * Staggered grids, :any:`ch_stag`, ``DMSTAG``. * Unstructured grids, :any:`ch_unstructured`, ``DMPLEX``. * Networks/graphs, for example the power grid, river networks, the nervous system, :any:`ch_network`, ``DMNETWORK``. * Quad or octree grids, ``DMFOREST``. * Particles, ``DMSWARM``. .. seealso:: For full feature list see: - :ref:`Vector table ` - :ref:`Matrix table ` - :ref:`Linear solvers table ` - :ref:`Nonlinear solvers table ` - :ref:`ODE integrators table ` - :ref:`Optimizers table ` - :ref:`Model/discretization interfaces to solvers table ` Utilities for Simulations/Solvers ================================= Runtime * control of the simulation via :any:`runtime options ` * visualization of the solvers and simulation via :any:`viewers `, * :any:`monitoring ` of solution progress, * :any:`profiling ` of the performance, * robust :any:`error handling `.