# Documentation

PETSc is a sophisticated package and fully understanding its usage requires time. However, application programmers can easily begin to use PETSc from a high level and then gradually learn more details according to their needs. Users should read the users manual before attempting to do any serious coding with PETSc!

- PETSc users manual - pdf (fully searchable with hyperlinks)
- Index of all help topics
- Index of all manual pages

PETSc Manual Pages and Examples MPI TAO

- Vector Operations (Vec)
- Matrix Operations (Mat)
- Matrix colorings (MatColoring), orderings (MatOrdering), and partitionings (MatPartitioning)
- Finite difference computation of Jacobians (MatFD)
- Data and grid management
- Index sets (IS)
- Distributed Arrays (DA)
- Application Orderings (AO)
- Defining your own mathematical functions (PF)
- Linear Solvers (KSP)
- Summary table of all linear solvers
- Preconditioners (PC)
- Krylov Subspace Methods (KSP)
- Nonlinear Solvers (SNES)
- Matrix-free nonlinear solvers (SNESMFFD)
- Time Stepping (TS) ODE solvers
- Utilities
- Viewing Objects
- Graphics (Draw)
- System Routines (Options, IO, utilities)
- Profiling and Logging

The manual pages are split into four categories; we recommend that you begin with basic functionality and then gradually explore more sophisticated library features.

- Beginner - Basic usage
- Intermediate - Setting options for algorithms and data structures
- Advanced - Setting more advanced options and customization
- Developer - Interfaces intended primarily for library developers, not for typical applications programmers

### Supplementary Documentation

- Installation - detailed instructions for installing PETSc
- Changes - changes and new features in recent versions of PETSc
- Troubleshooting - help when something goes wrong
- Bug Reporting - details on how to report bugs
- Code Management - hints for efficient management of large-scale application codes
- FAQ - frequently asked questions about PETSc
- Copyright - statement of the PETSc copyright