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