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