.. _doc_features: ******************************* Core Features and Functionality ******************************* PETSc is a general parallel linear and non-linear solver framework, which provides these general classes of functionality: .. contents:: Table Of Contents :local: :backlinks: entry :depth: 1 Supported Systems ================= - :ref:`HPC ` - :ref:`Linux ` - :ref:`MacOS ` - :ref:`Microsoft Windows ` General Features ================ - :ref:`Parallel vectors ` - :ref:`Vector code for communicating ghost points ` - :ref:`Parallel matrices ` - Several sparse and dense matrix storage formats (see ``MatType``): - AIJ/CSR (Yale sparse matrix format) - LMVM (Limited Memory Variable Metric) - Block - Nested - Dense - :ref:`Easy, efficient matrix assembly and interface ` - :ref:`Parallel unstructured mesh support ` - :ref:`Powerful object introspection tools ` - Support for a variety of IO options (see ``PetscViewerType``) - :ref:`Comprehensive performance testing ` Solver Features =============== - :ref:`Parallel Krylov subspace methods ` - :ref:`Parallel nonlinear solvers ` - Scalable parallel :ref:`linear ` and :ref:`nonlinear ` preconditioners - :ref:`Parallel timestepping (ODE) solvers ` - Local and global error estimators - :ref:`Forward and adjoint sensitivity capabilities ` - Robust optimization through ``Tao`` .. seealso:: For full feature list and prerequisites see: - :ref:`Linear solver table ` - :ref:`Nonlinear solver table ` - :ref:`Tao solver table ` Accelerator/GPU Features ======================== - :ref:`Matrix/Vector CUDA support ` - :ref:`Kokkos support ` - :ref:`Matrix/Vector OpenCL/ViennaCL support ` - :ref:`Matrix/Vector HIP support ` .. note:: PETSc GPU support is under heavy development! See GPU support :ref:`roadmap ` for more information on current support. Support Features ================ - Complete documentation - :ref:`Comprehensive profiling of floating point and memory usage ` - Consistent user interface - :ref:`Intensive error checking ` - Over one thousand examples - :ref:`PETSc is supported and will be actively enhanced for many years `