xref: /petsc/doc/index.md (revision 2ff79c18c26c94ed8cb599682f680f231dca6444)
1# PETSc
2
3PETSc, the Portable, Extensible Toolkit for Scientific Computation,
4pronounced PET-see ([/ˈpɛt-siː/](https://en.wikipedia.org/wiki/Help:IPA/English#Key)), is
5for the scalable (parallel) solution of scientific
6applications modeled by partial differential equations (PDEs). It has bindings for C, Fortran, and Python (via petsc4py).
7PETSc also contains TAO, the Toolkit for Advanced Optimization, software library.
8They support MPI, and GPUs through
9CUDA, HIP, Kokkos, or OpenCL, as well as hybrid MPI-GPU parallelism; they also support the NEC-SX Tsubasa Vector Engine.
10Immediately jump in and run PETSc and TAO code {any}`handson`.
11
12## News
13
14Pierre Jolivet replaces Mrs. Hong Zhang as NumFOCUS signatory due
15to Mrs. Hong Zhang's retirement by unanimous vote of the PETSc council. {any}`Current list of NumFOCUS signatories<numfocus-signatories>`.
16
17The exciting {any}`2025 PETSc Annual User Meeting<2025_meeting>` recently took place May 20-21, 2025 in Buffalo, New York, USA.
18Follow the link for abstracts and talks.
19
20[SIAM News article](https://www.siam.org/publications/siam-news/articles/opencarp-personalized-computational-model-of-the-heart-examines-cardiac-rhythm/)
21on the PETSc-powered [OpenCarp](https://opencarp.org/) cardiac electrophysiology simulator.
22
23PETSc is now on [BlueSky](https://bsky.app/profile/petsc.org).
24
25## Book
26
27> **PETSc for Partial Differential Equations: Numerical Solutions in C and Python**, by Ed Bueler.
28>
29> - [Book from SIAM Press](https://my.siam.org/Store/Product/viewproduct/?ProductId=32850137)
30> - [Google Play E-book](https://play.google.com/store/books/details/Ed_Bueler_PETSc_for_Partial_Differential_Equations?id=tgMHEAAAQBAJ)
31
32## Main Topics
33
34```{toctree}
35:maxdepth: 1
36
37overview/index
38install/index
39tutorials/index
40manual/index
41manualpages/index
42petsc4py/index
43faq/index
44community/index
45developers/index
46miscellaneous/index
47```
48
49<a href="./manual/manual.pdf">PETSc/TAO Users Manual in PDF</a>
50
51(doc_toolkits_use_petsc)=
52
53## Toolkits/libraries that use PETSc
54
55- [ADflow](https://github.com/mdolab/adflow) An open-source
56  computational fluid dynamics solver for aerodynamic and
57  multidisciplinary optimization
58- [BOUT++](https://boutproject.github.io) Plasma simulation
59  in curvilinear coordinate systems
60- [Chaste](https://www.cs.ox.ac.uk/chaste/) Cancer, Heart and
61  Soft Tissue Environment
62- [code_aster](https://www.code-aster.org/V2/spip.php?rubrique2)
63  open-source general purpose finite element code for solid and
64  structural mechanics
65- [code_saturne](https://www.code-saturne.org)
66  open-source general purpose code for fluid dynamics
67- [COOLFluiD](https://github.com/andrealani/COOLFluiD) CFD,
68  plasma and multi-physics simulation package
69- [DAFoam](https://dafoam.github.io) Discrete adjoint solvers
70  with [OpenFOAM](https://openfoam.com) for aerodynamic
71  optimization
72- [DAMASK](https://damask-multiphysics.org) Unified multi-physics
73  crystal plasticity simulation package
74- [DEAL.II](https://www.dealii.org/) C++-based finite element
75  simulation package
76- [DUNE-FEM](https://dune-project.org/sphinx/content/sphinx/dune-fem/) Python and C++-based finite element simulation package
77- [FEniCS](https://fenicsproject.org/) Python-based finite
78  element simulation package
79- [Firedrake](https://www.firedrakeproject.org/) Python-based
80  finite element simulation package
81- [Fluidity](https://fluidityproject.github.io/) a finite
82  element/volume fluids code
83- [FreeFEM](https://freefem.org/) finite element and boundary element PDE solver
84  with embedded domain specific language
85- [GetDP](https://www.getdp.info/) a General Environment for the Treatment of Discrete Problems
86- [Gridap](https://gridap.github.io/Gridap.jl/stable/) a Julia-based finite element simulation package through the [GridapPETSc](https://github.com/gridap/GridapPETSc.jl) plugin
87- [hIPPYlib](https://hippylib.github.io) [FEniCS](https://fenicsproject.org/)-based toolkit
88  for solving deterministic and Bayesian inverse
89  problems governed by PDEs
90- [libMesh](https://libmesh.github.io) adaptive finite element
91  library
92- [MFEM](https://mfem.org/) lightweight, scalable C++ library
93  for finite element methods
94- [MLSVM](https://github.com/esadr/mlsvm), Multilevel Support
95  Vector Machines with PETSc.
96- [MoFEM](http://mofem.eng.gla.ac.uk/mofem/html), An open
97  source, parallel finite element library
98- [MOOSE - Multiphysics Object-Oriented Simulation
99  Environment](https://mooseframework.inl.gov/) finite element
100  framework, built on [libMesh](https://libmesh.github.io).
101- [OOFEM](http://www.oofem.org) object-oriented finite element
102  library
103- [OpenCarp](https://opencarp.org/) Cardiac electrophysiology simulator
104- [OpenFOAM](https://develop.openfoam.com/modules/external-solver)
105  Available as an extension for linear solvers for OpenFOAM
106- [OpenFPM](https://openfpm.mpi-cbg.de/) framework for particles and mesh simulation
107- [OpenFVM](http://openfvm.sourceforge.net/) finite volume
108  based CFD solver
109- [PermonSVM](http://permon.vsb.cz/permonsvm.htm) support
110  vector machines and
111  [PermonQP](http://permon.vsb.cz/permonqp.htm) quadratic
112  programming
113- [PetIGA](https://github.com/dalcinl/PetIGA) A framework
114  for high performance Isogeometric Analysis
115- [PFLOTRAN](https://pflotran.org/) An open source, state-of-the-art
116  code for massively parallel simulation of subsurface flow, reactive transport, geomechanics, and electrical resistivity tomography
117- [PHAML](https://math.nist.gov/phaml/) The Parallel
118  Hierarchical Adaptive MultiLevel Project
119- [preCICE](https://www.precice.org) - A fully parallel
120  coupling library for partitioned multi-physics simulations
121- [PyClaw](https://www.clawpack.org/pyclaw/) A massively
122  parallel, high order accurate, hyperbolic PDE solver
123- [SLEPc](https://slepc.upv.es/) Scalable Library for
124  Eigenvalue Problems
125
126(doc_index_citing_petsc)=
127
128## Citing PETSc
129
130You can run PETSc programs with the option `-citations` to print appropriate citations for the software and algorithms being used in that program.
131
132For general citations on PETSc please use the following:
133
134```{literalinclude} /petsc.bib
135:append: '}'
136:end-at: year
137:language: none
138:start-at: petsc-web-page
139```
140
141```{literalinclude} /petsc.bib
142:append: '}'
143:end-at: year
144:language: none
145:start-at: petsc-user-ref
146```
147
148```{literalinclude} /petsc.bib
149:append: '}'
150:end-at: year
151:language: none
152:start-at: petsc-efficient
153```
154
155For petsc4py usage please cite
156
157```{literalinclude} /petsc.bib
158:append: '}'
159:end-at: year
160:language: none
161:start-at: dalcinpazklercosimo2011
162```
163
164For PETSc usage on GPUs please cite
165
166```{literalinclude} /petsc.bib
167:append: '}'
168:end-at: author
169:language: none
170:start-at: mills2021
171```
172
173For `PetscSF` -- parallel communication in PETSc -- please cite
174
175```{literalinclude} /petsc.bib
176:append: '}'
177:end-at: pages
178:language: none
179:start-at: petscsf2022
180```
181
182If you use the `TS` component of PETSc please cite the following:
183
184```{literalinclude} petsc.bib
185:append: '}'
186:end-at: year
187:language: none
188:start-at: abhyankaretal2018
189```
190
191If you utilize the `TS` adjoint solver please cite
192
193```{literalinclude} /petsc.bib
194:append: '}'
195:end-at: year
196:language: none
197:start-at: zhang2022tsadjoint
198```
199