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