# Overview and Features

PETSc, the Portable, Extensible Toolkit for Scientific Computation, is intended for use in large-scale application projects. Many ongoing computational science projects are built around the PETSc libraries. PETSc is easy to use for beginners. Moreover, its careful design allows advanced users to have detailed control over the solution process. PETSc includes a large suite of parallel linear, nonlinear equation solvers and ODE integrators that are easily used in application codes written in C, C++, Fortran and Python. PETSc provides many of the mechanisms needed within parallel application codes, such as simple parallel matrix and vector assembly routines that allow the overlap of communication and computation. In addition, PETSc includes support for parallel distributed arrays useful for finite difference methods.

- PETSc in a nutshell
  - Algebraic objects
  - Solvers
  - Connectors of continuum models, meshes, and discretizations to solvers and algebraic objects
  - Utilities
- Core Features and Functionality
  - Supported Systems
  - General Features
  - Solver Features
  - Accelerator/GPU Features
  - Support Features
- GPU Support Roadmap
- Summary of Sparse Linear Solvers Available In PETSc
  - Preconditioners
  - Direct Solvers
  - Krylov Methods
- Summary of Nonlinear Solvers Available In PETSc
- Summary of Tao Solvers
  - Unconstrained
  - Bound Constrained
  - Complementarity
  - Nonlinear Least Squares
  - PDE-Constrained
  - Constrained

PETSc 3.15 PETSc in a nutshell