xref: /petsc/doc/index.md (revision bfe80ac4a46d58cb7760074b25f5e81b2f541d8a)
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
14[SIAM News article](https://www.siam.org/publications/siam-news/articles/opencarp-personalized-computational-model-of-the-heart-examines-cardiac-rhythm/)
15on the PETSc-powered [OpenCarp](https://opencarp.org/) cardiac electrophysiology simulator.
16
17PETSc is now on [BlueSky](https://bsky.app/profile/petsc.org).
18
19The {any}`2025 PETSc Annual User Meeting<2025_meeting>` will take place May 20-21, 2025 in Buffalo, New York, USA, with tutorials on May 19th.
20
21Mrs. Hong Zhang, who has been a PETSc developer for twenty-five years and mentored many students and future PETSc developers, has retired.
22
23PETSc is associated with NumFOCUS, a 501(c)(3) nonprofit supporting open code and reproducible science,
24through which you can help support PETSc.
25
26## Book
27
28> **PETSc for Partial Differential Equations: Numerical Solutions in C and Python**, by Ed Bueler.
29>
30> - [Book from SIAM Press](https://my.siam.org/Store/Product/viewproduct/?ProductId=32850137)
31> - [Google Play E-book](https://play.google.com/store/books/details/Ed_Bueler_PETSc_for_Partial_Differential_Equations?id=tgMHEAAAQBAJ)
32
33## Main Topics
34
35```{toctree}
36:maxdepth: 1
37
38overview/index
39install/index
40tutorials/index
41manual/index
42manualpages/index
43petsc4py/index
44faq/index
45community/index
46developers/index
47miscellaneous/index
48```
49
50<a href="./manual/manual.pdf">PETSc/TAO Users Manual in PDF</a>
51
52(doc_toolkits_use_petsc)=
53
54## Toolkits/libraries that use PETSc
55
56- [ADflow](https://github.com/mdolab/adflow) An open-source
57  computational fluid dynamics solver for aerodynamic and
58  multidisciplinary optimization
59- [BOUT++](https://boutproject.github.io) Plasma simulation
60  in curvilinear coordinate systems
61- [Chaste](https://www.cs.ox.ac.uk/chaste/) Cancer, Heart and
62  Soft Tissue Environment
63- [code_aster](https://www.code-aster.org/V2/spip.php?rubrique2)
64  open-source general purpose finite element code for solid and
65  structural mechanics
66- [code_saturne](https://www.code-saturne.org)
67  open-source general purpose code for fluid dynamics
68- [COOLFluiD](https://github.com/andrealani/COOLFluiD) CFD,
69  plasma and multi-physics simulation package
70- [DAFoam](https://dafoam.github.io) Discrete adjoint solvers
71  with [OpenFOAM](https://openfoam.com) for aerodynamic
72  optimization
73- [DAMASK](https://damask-multiphysics.org) Unified multi-physics
74  crystal plasticity simulation package
75- [DEAL.II](https://www.dealii.org/) C++ based finite element
76  simulation package
77- [DUNE-FEM](https://dune-project.org/sphinx/content/sphinx/dune-fem/) Python and C++ based finite element simulation package
78- [FEniCS](https://fenicsproject.org/) Python based finite
79  element simulation package
80- [Firedrake](https://www.firedrakeproject.org/) Python based
81  finite element simulation package
82- [Fluidity](https://fluidityproject.github.io/) a finite
83  element/volume fluids code
84- [FreeFEM](https://freefem.org/) finite element and boundary element PDE solver
85  with embedded domain specific language
86- [GetDP](https://www.getdp.info/) a General Environment for the Treatment of Discrete Problems
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