19b92b1d3SBarry Smith# PETSc 29b92b1d3SBarry Smith 39b92b1d3SBarry SmithPETSc, the Portable, Extensible Toolkit for Scientific Computation, 49b92b1d3SBarry Smithpronounced PET-see ([/ˈpɛt-siː/](https://en.wikipedia.org/wiki/Help:IPA/English#Key)), is 59b92b1d3SBarry Smithfor the scalable (parallel) solution of scientific 69b92b1d3SBarry Smithapplications modeled by partial differential equations (PDEs). It has bindings for C, Fortran, and Python (via petsc4py). 79b92b1d3SBarry SmithPETSc also contains TAO, the Toolkit for Advanced Optimization, software library. 89b92b1d3SBarry SmithThey support MPI, and GPUs through 99b92b1d3SBarry SmithCUDA, HIP, Kokkos, or OpenCL, as well as hybrid MPI-GPU parallelism; they also support the NEC-SX Tsubasa Vector Engine. 109b92b1d3SBarry SmithImmediately jump in and run PETSc and TAO code {any}`handson`. 119b92b1d3SBarry Smith 129b92b1d3SBarry SmithPETSc is now on [BlueSky](https://bsky.app/profile/petsc.org). 139b92b1d3SBarry Smith 14*89c361d2SSatish BalayThe {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. 159b92b1d3SBarry Smith 169b92b1d3SBarry SmithMrs. Hong Zhang, who has been a PETSc developer for twenty-five years and mentored many students and future PETSc developers, has retired. 179b92b1d3SBarry Smith 189b92b1d3SBarry SmithPETSc is associated with NumFOCUS, a 501(c)(3) nonprofit supporting open code and reproducible science, 199b92b1d3SBarry Smiththrough which you can help support PETSc. 209b92b1d3SBarry Smith 219b92b1d3SBarry SmithBook on numerical methods using PETSc 229b92b1d3SBarry Smith 239b92b1d3SBarry Smith> **PETSc for Partial Differential Equations: Numerical Solutions in C and Python**, by Ed Bueler. 249b92b1d3SBarry Smith> 259b92b1d3SBarry Smith> - [Book from SIAM Press](https://my.siam.org/Store/Product/viewproduct/?ProductId=32850137) 269b92b1d3SBarry Smith> - [Google Play E-book](https://play.google.com/store/books/details/Ed_Bueler_PETSc_for_Partial_Differential_Equations?id=tgMHEAAAQBAJ) 279b92b1d3SBarry Smith 289b92b1d3SBarry Smith## Main Topics 299b92b1d3SBarry Smith 309b92b1d3SBarry Smith```{toctree} 319b92b1d3SBarry Smith:maxdepth: 1 329b92b1d3SBarry Smith 339b92b1d3SBarry Smithoverview/index 349b92b1d3SBarry Smithinstall/index 359b92b1d3SBarry Smithtutorials/index 369b92b1d3SBarry Smithmanual/index 379b92b1d3SBarry Smithmanualpages/index 389b92b1d3SBarry Smithpetsc4py/index 399b92b1d3SBarry Smithfaq/index 409b92b1d3SBarry Smithcommunity/index 419b92b1d3SBarry Smithdevelopers/index 429b92b1d3SBarry Smithmiscellaneous/index 439b92b1d3SBarry Smith``` 449b92b1d3SBarry Smith 459b92b1d3SBarry Smith<a href="./manual/manual.pdf">PETSc/TAO Users Manual in PDF</a> 469b92b1d3SBarry Smith 479b92b1d3SBarry Smith(doc_toolkits_use_petsc)= 489b92b1d3SBarry Smith 499b92b1d3SBarry Smith## Toolkits/libraries that use PETSc 509b92b1d3SBarry Smith 519b92b1d3SBarry Smith- [ADflow](https://github.com/mdolab/adflow) An open-source 529b92b1d3SBarry Smith computational fluid dynamics solver for aerodynamic and 539b92b1d3SBarry Smith multidisciplinary optimization 549b92b1d3SBarry Smith- [BOUT++](https://boutproject.github.io) Plasma simulation 559b92b1d3SBarry Smith in curvilinear coordinate systems 569b92b1d3SBarry Smith- [Chaste](https://www.cs.ox.ac.uk/chaste/) Cancer, Heart and 579b92b1d3SBarry Smith Soft Tissue Environment 589b92b1d3SBarry Smith- [code_aster](https://www.code-aster.org/V2/spip.php?rubrique2) 599b92b1d3SBarry Smith open-source general purpose finite element code for solid and 609b92b1d3SBarry Smith structural mechanics 619b92b1d3SBarry Smith- [code_saturne](https://www.code-saturne.org) 629b92b1d3SBarry Smith open-source general purpose code for fluid dynamics 639b92b1d3SBarry Smith- [COOLFluiD](https://github.com/andrealani/COOLFluiD) CFD, 649b92b1d3SBarry Smith plasma and multi-physics simulation package 659b92b1d3SBarry Smith- [DAFoam](https://dafoam.github.io) Discrete adjoint solvers 669b92b1d3SBarry Smith with [OpenFOAM](https://openfoam.com) for aerodynamic 679b92b1d3SBarry Smith optimization 689b92b1d3SBarry Smith- [DAMASK](https://damask-multiphysics.org) Unified multi-physics 699b92b1d3SBarry Smith crystal plasticity simulation package 709b92b1d3SBarry Smith- [DEAL.II](https://www.dealii.org/) C++ based finite element 719b92b1d3SBarry Smith simulation package 729b92b1d3SBarry Smith- [DUNE-FEM](https://dune-project.org/sphinx/content/sphinx/dune-fem/) Python and C++ based finite element simulation package 739b92b1d3SBarry Smith- [FEniCS](https://fenicsproject.org/) Python based finite 749b92b1d3SBarry Smith element simulation package 759b92b1d3SBarry Smith- [Firedrake](https://www.firedrakeproject.org/) Python based 769b92b1d3SBarry Smith finite element simulation package 779b92b1d3SBarry Smith- [Fluidity](https://fluidityproject.github.io/) a finite 789b92b1d3SBarry Smith element/volume fluids code 799b92b1d3SBarry Smith- [FreeFEM](https://freefem.org/) finite element and boundary element PDE solver 809b92b1d3SBarry Smith with embedded domain specific language 819b92b1d3SBarry Smith- [GetDP](https://www.getdp.info/) a General Environment for the Treatment of Discrete Problems 829b92b1d3SBarry Smith- [hIPPYlib](https://hippylib.github.io) [FEniCS](https://fenicsproject.org/)-based toolkit 839b92b1d3SBarry Smith for solving deterministic and Bayesian inverse 849b92b1d3SBarry Smith problems governed by PDEs 859b92b1d3SBarry Smith- [libMesh](https://libmesh.github.io) adaptive finite element 869b92b1d3SBarry Smith library 879b92b1d3SBarry Smith- [MFEM](https://mfem.org/) lightweight, scalable C++ library 889b92b1d3SBarry Smith for finite element methods 899b92b1d3SBarry Smith- [MLSVM](https://github.com/esadr/mlsvm), Multilevel Support 909b92b1d3SBarry Smith Vector Machines with PETSc. 919b92b1d3SBarry Smith- [MoFEM](http://mofem.eng.gla.ac.uk/mofem/html), An open 929b92b1d3SBarry Smith source, parallel finite element library 939b92b1d3SBarry Smith- [MOOSE - Multiphysics Object-Oriented Simulation 949b92b1d3SBarry Smith Environment](https://mooseframework.inl.gov/) finite element 959b92b1d3SBarry Smith framework, built on [libMesh](https://libmesh.github.io). 969b92b1d3SBarry Smith- [OOFEM](http://www.oofem.org) object-oriented finite element 979b92b1d3SBarry Smith library 989b92b1d3SBarry Smith- [OpenCarp](https://opencarp.org/) Cardiac electrophysiology simulator 999b92b1d3SBarry Smith- [OpenFOAM](https://develop.openfoam.com/modules/external-solver) 1009b92b1d3SBarry Smith Available as an extension for linear solvers for OpenFOAM 1019b92b1d3SBarry Smith- [OpenFPM](https://openfpm.mpi-cbg.de/) framework for particles and mesh simulation 1029b92b1d3SBarry Smith- [OpenFVM](http://openfvm.sourceforge.net/) finite volume 1039b92b1d3SBarry Smith based CFD solver 1049b92b1d3SBarry Smith- [PermonSVM](http://permon.vsb.cz/permonsvm.htm) support 1059b92b1d3SBarry Smith vector machines and 1069b92b1d3SBarry Smith [PermonQP](http://permon.vsb.cz/permonqp.htm) quadratic 1079b92b1d3SBarry Smith programming 1089b92b1d3SBarry Smith- [PetIGA](https://github.com/dalcinl/PetIGA) A framework 1099b92b1d3SBarry Smith for high performance Isogeometric Analysis 1109b92b1d3SBarry Smith- [PFLOTRAN](https://pflotran.org/) An open source, state-of-the-art 1119b92b1d3SBarry Smith code for massively parallel simulation of subsurface flow, reactive transport, geomechanics, and electrical resistivity tomography 1129b92b1d3SBarry Smith- [PHAML](https://math.nist.gov/phaml/) The Parallel 1139b92b1d3SBarry Smith Hierarchical Adaptive MultiLevel Project 1149b92b1d3SBarry Smith- [preCICE](https://www.precice.org) - A fully parallel 1159b92b1d3SBarry Smith coupling library for partitioned multi-physics simulations 1169b92b1d3SBarry Smith- [PyClaw](https://www.clawpack.org/pyclaw/) A massively 1179b92b1d3SBarry Smith parallel, high order accurate, hyperbolic PDE solver 1189b92b1d3SBarry Smith- [SLEPc](https://slepc.upv.es/) Scalable Library for 1199b92b1d3SBarry Smith Eigenvalue Problems 1209b92b1d3SBarry Smith 1219b92b1d3SBarry Smith(doc_index_citing_petsc)= 1229b92b1d3SBarry Smith 1239b92b1d3SBarry Smith## Citing PETSc 1249b92b1d3SBarry Smith 1259b92b1d3SBarry SmithYou can run PETSc programs with the option `-citations` to print appropriate citations for the software and algorithms being used in that program. 1269b92b1d3SBarry Smith 1279b92b1d3SBarry SmithFor general citations on PETSc please use the following: 1289b92b1d3SBarry Smith 1299b92b1d3SBarry Smith```{literalinclude} /petsc.bib 1309b92b1d3SBarry Smith:append: '}' 1319b92b1d3SBarry Smith:end-at: year 1329b92b1d3SBarry Smith:language: none 1339b92b1d3SBarry Smith:start-at: petsc-web-page 1349b92b1d3SBarry Smith``` 1359b92b1d3SBarry Smith 1369b92b1d3SBarry Smith```{literalinclude} /petsc.bib 1379b92b1d3SBarry Smith:append: '}' 1389b92b1d3SBarry Smith:end-at: year 1399b92b1d3SBarry Smith:language: none 1409b92b1d3SBarry Smith:start-at: petsc-user-ref 1419b92b1d3SBarry Smith``` 1429b92b1d3SBarry Smith 1439b92b1d3SBarry Smith```{literalinclude} /petsc.bib 1449b92b1d3SBarry Smith:append: '}' 1459b92b1d3SBarry Smith:end-at: year 1469b92b1d3SBarry Smith:language: none 1479b92b1d3SBarry Smith:start-at: petsc-efficient 1489b92b1d3SBarry Smith``` 1499b92b1d3SBarry Smith 1509b92b1d3SBarry SmithFor petsc4py usage please cite 1519b92b1d3SBarry Smith 1529b92b1d3SBarry Smith```{literalinclude} /petsc.bib 1539b92b1d3SBarry Smith:append: '}' 1549b92b1d3SBarry Smith:end-at: year 1559b92b1d3SBarry Smith:language: none 1569b92b1d3SBarry Smith:start-at: dalcinpazklercosimo2011 1579b92b1d3SBarry Smith``` 1589b92b1d3SBarry Smith 1599b92b1d3SBarry SmithFor PETSc usage on GPUs please cite 1609b92b1d3SBarry Smith 1619b92b1d3SBarry Smith```{literalinclude} /petsc.bib 1629b92b1d3SBarry Smith:append: '}' 1639b92b1d3SBarry Smith:end-at: author 1649b92b1d3SBarry Smith:language: none 1659b92b1d3SBarry Smith:start-at: mills2021 1669b92b1d3SBarry Smith``` 1679b92b1d3SBarry Smith 1689b92b1d3SBarry SmithFor `PetscSF` -- parallel communication in PETSc -- please cite 1699b92b1d3SBarry Smith 1709b92b1d3SBarry Smith```{literalinclude} /petsc.bib 1719b92b1d3SBarry Smith:append: '}' 1729b92b1d3SBarry Smith:end-at: pages 1739b92b1d3SBarry Smith:language: none 1749b92b1d3SBarry Smith:start-at: petscsf2022 1759b92b1d3SBarry Smith``` 1769b92b1d3SBarry Smith 1779b92b1d3SBarry SmithIf you use the `TS` component of PETSc please cite the following: 1789b92b1d3SBarry Smith 1799b92b1d3SBarry Smith```{literalinclude} petsc.bib 1809b92b1d3SBarry Smith:append: '}' 1819b92b1d3SBarry Smith:end-at: year 1829b92b1d3SBarry Smith:language: none 1839b92b1d3SBarry Smith:start-at: abhyankaretal2018 1849b92b1d3SBarry Smith``` 1859b92b1d3SBarry Smith 1869b92b1d3SBarry SmithIf you utilize the `TS` adjoint solver please cite 1879b92b1d3SBarry Smith 1889b92b1d3SBarry Smith```{literalinclude} /petsc.bib 1899b92b1d3SBarry Smith:append: '}' 1909b92b1d3SBarry Smith:end-at: year 1919b92b1d3SBarry Smith:language: none 1929b92b1d3SBarry Smith:start-at: zhang2022tsadjoint 1939b92b1d3SBarry Smith``` 194