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 12d533f534SBarry Smith## News 13d533f534SBarry Smith 14*5f0c5ebcSBarry SmithThe exciting {any}`2025 PETSc Annual User Meeting<2025_meeting>` recently took place May 20-21, 2025 in Buffalo, New York, USA. 15*5f0c5ebcSBarry SmithFollow the link for abstracts and talks. 16*5f0c5ebcSBarry Smith 17d533f534SBarry Smith[SIAM News article](https://www.siam.org/publications/siam-news/articles/opencarp-personalized-computational-model-of-the-heart-examines-cardiac-rhythm/) 18d533f534SBarry Smithon the PETSc-powered [OpenCarp](https://opencarp.org/) cardiac electrophysiology simulator. 19d533f534SBarry Smith 209b92b1d3SBarry SmithPETSc is now on [BlueSky](https://bsky.app/profile/petsc.org). 219b92b1d3SBarry Smith 22d533f534SBarry Smith## Book 239b92b1d3SBarry Smith 249b92b1d3SBarry Smith> **PETSc for Partial Differential Equations: Numerical Solutions in C and Python**, by Ed Bueler. 259b92b1d3SBarry Smith> 269b92b1d3SBarry Smith> - [Book from SIAM Press](https://my.siam.org/Store/Product/viewproduct/?ProductId=32850137) 279b92b1d3SBarry Smith> - [Google Play E-book](https://play.google.com/store/books/details/Ed_Bueler_PETSc_for_Partial_Differential_Equations?id=tgMHEAAAQBAJ) 289b92b1d3SBarry Smith 299b92b1d3SBarry Smith## Main Topics 309b92b1d3SBarry Smith 319b92b1d3SBarry Smith```{toctree} 329b92b1d3SBarry Smith:maxdepth: 1 339b92b1d3SBarry Smith 349b92b1d3SBarry Smithoverview/index 359b92b1d3SBarry Smithinstall/index 369b92b1d3SBarry Smithtutorials/index 379b92b1d3SBarry Smithmanual/index 389b92b1d3SBarry Smithmanualpages/index 399b92b1d3SBarry Smithpetsc4py/index 409b92b1d3SBarry Smithfaq/index 419b92b1d3SBarry Smithcommunity/index 429b92b1d3SBarry Smithdevelopers/index 439b92b1d3SBarry Smithmiscellaneous/index 449b92b1d3SBarry Smith``` 459b92b1d3SBarry Smith 469b92b1d3SBarry Smith<a href="./manual/manual.pdf">PETSc/TAO Users Manual in PDF</a> 479b92b1d3SBarry Smith 489b92b1d3SBarry Smith(doc_toolkits_use_petsc)= 499b92b1d3SBarry Smith 509b92b1d3SBarry Smith## Toolkits/libraries that use PETSc 519b92b1d3SBarry Smith 529b92b1d3SBarry Smith- [ADflow](https://github.com/mdolab/adflow) An open-source 539b92b1d3SBarry Smith computational fluid dynamics solver for aerodynamic and 549b92b1d3SBarry Smith multidisciplinary optimization 559b92b1d3SBarry Smith- [BOUT++](https://boutproject.github.io) Plasma simulation 569b92b1d3SBarry Smith in curvilinear coordinate systems 579b92b1d3SBarry Smith- [Chaste](https://www.cs.ox.ac.uk/chaste/) Cancer, Heart and 589b92b1d3SBarry Smith Soft Tissue Environment 599b92b1d3SBarry Smith- [code_aster](https://www.code-aster.org/V2/spip.php?rubrique2) 609b92b1d3SBarry Smith open-source general purpose finite element code for solid and 619b92b1d3SBarry Smith structural mechanics 629b92b1d3SBarry Smith- [code_saturne](https://www.code-saturne.org) 639b92b1d3SBarry Smith open-source general purpose code for fluid dynamics 649b92b1d3SBarry Smith- [COOLFluiD](https://github.com/andrealani/COOLFluiD) CFD, 659b92b1d3SBarry Smith plasma and multi-physics simulation package 669b92b1d3SBarry Smith- [DAFoam](https://dafoam.github.io) Discrete adjoint solvers 679b92b1d3SBarry Smith with [OpenFOAM](https://openfoam.com) for aerodynamic 689b92b1d3SBarry Smith optimization 699b92b1d3SBarry Smith- [DAMASK](https://damask-multiphysics.org) Unified multi-physics 709b92b1d3SBarry Smith crystal plasticity simulation package 719b92b1d3SBarry Smith- [DEAL.II](https://www.dealii.org/) C++ based finite element 729b92b1d3SBarry Smith simulation package 739b92b1d3SBarry Smith- [DUNE-FEM](https://dune-project.org/sphinx/content/sphinx/dune-fem/) Python and C++ based finite element simulation package 749b92b1d3SBarry Smith- [FEniCS](https://fenicsproject.org/) Python based finite 759b92b1d3SBarry Smith element simulation package 769b92b1d3SBarry Smith- [Firedrake](https://www.firedrakeproject.org/) Python based 779b92b1d3SBarry Smith finite element simulation package 789b92b1d3SBarry Smith- [Fluidity](https://fluidityproject.github.io/) a finite 799b92b1d3SBarry Smith element/volume fluids code 809b92b1d3SBarry Smith- [FreeFEM](https://freefem.org/) finite element and boundary element PDE solver 819b92b1d3SBarry Smith with embedded domain specific language 829b92b1d3SBarry Smith- [GetDP](https://www.getdp.info/) a General Environment for the Treatment of Discrete Problems 839b92b1d3SBarry Smith- [hIPPYlib](https://hippylib.github.io) [FEniCS](https://fenicsproject.org/)-based toolkit 849b92b1d3SBarry Smith for solving deterministic and Bayesian inverse 859b92b1d3SBarry Smith problems governed by PDEs 869b92b1d3SBarry Smith- [libMesh](https://libmesh.github.io) adaptive finite element 879b92b1d3SBarry Smith library 889b92b1d3SBarry Smith- [MFEM](https://mfem.org/) lightweight, scalable C++ library 899b92b1d3SBarry Smith for finite element methods 909b92b1d3SBarry Smith- [MLSVM](https://github.com/esadr/mlsvm), Multilevel Support 919b92b1d3SBarry Smith Vector Machines with PETSc. 929b92b1d3SBarry Smith- [MoFEM](http://mofem.eng.gla.ac.uk/mofem/html), An open 939b92b1d3SBarry Smith source, parallel finite element library 949b92b1d3SBarry Smith- [MOOSE - Multiphysics Object-Oriented Simulation 959b92b1d3SBarry Smith Environment](https://mooseframework.inl.gov/) finite element 969b92b1d3SBarry Smith framework, built on [libMesh](https://libmesh.github.io). 979b92b1d3SBarry Smith- [OOFEM](http://www.oofem.org) object-oriented finite element 989b92b1d3SBarry Smith library 999b92b1d3SBarry Smith- [OpenCarp](https://opencarp.org/) Cardiac electrophysiology simulator 1009b92b1d3SBarry Smith- [OpenFOAM](https://develop.openfoam.com/modules/external-solver) 1019b92b1d3SBarry Smith Available as an extension for linear solvers for OpenFOAM 1029b92b1d3SBarry Smith- [OpenFPM](https://openfpm.mpi-cbg.de/) framework for particles and mesh simulation 1039b92b1d3SBarry Smith- [OpenFVM](http://openfvm.sourceforge.net/) finite volume 1049b92b1d3SBarry Smith based CFD solver 1059b92b1d3SBarry Smith- [PermonSVM](http://permon.vsb.cz/permonsvm.htm) support 1069b92b1d3SBarry Smith vector machines and 1079b92b1d3SBarry Smith [PermonQP](http://permon.vsb.cz/permonqp.htm) quadratic 1089b92b1d3SBarry Smith programming 1099b92b1d3SBarry Smith- [PetIGA](https://github.com/dalcinl/PetIGA) A framework 1109b92b1d3SBarry Smith for high performance Isogeometric Analysis 1119b92b1d3SBarry Smith- [PFLOTRAN](https://pflotran.org/) An open source, state-of-the-art 1129b92b1d3SBarry Smith code for massively parallel simulation of subsurface flow, reactive transport, geomechanics, and electrical resistivity tomography 1139b92b1d3SBarry Smith- [PHAML](https://math.nist.gov/phaml/) The Parallel 1149b92b1d3SBarry Smith Hierarchical Adaptive MultiLevel Project 1159b92b1d3SBarry Smith- [preCICE](https://www.precice.org) - A fully parallel 1169b92b1d3SBarry Smith coupling library for partitioned multi-physics simulations 1179b92b1d3SBarry Smith- [PyClaw](https://www.clawpack.org/pyclaw/) A massively 1189b92b1d3SBarry Smith parallel, high order accurate, hyperbolic PDE solver 1199b92b1d3SBarry Smith- [SLEPc](https://slepc.upv.es/) Scalable Library for 1209b92b1d3SBarry Smith Eigenvalue Problems 1219b92b1d3SBarry Smith 1229b92b1d3SBarry Smith(doc_index_citing_petsc)= 1239b92b1d3SBarry Smith 1249b92b1d3SBarry Smith## Citing PETSc 1259b92b1d3SBarry Smith 1269b92b1d3SBarry SmithYou can run PETSc programs with the option `-citations` to print appropriate citations for the software and algorithms being used in that program. 1279b92b1d3SBarry Smith 1289b92b1d3SBarry SmithFor general citations on PETSc please use the following: 1299b92b1d3SBarry Smith 1309b92b1d3SBarry Smith```{literalinclude} /petsc.bib 1319b92b1d3SBarry Smith:append: '}' 1329b92b1d3SBarry Smith:end-at: year 1339b92b1d3SBarry Smith:language: none 1349b92b1d3SBarry Smith:start-at: petsc-web-page 1359b92b1d3SBarry Smith``` 1369b92b1d3SBarry Smith 1379b92b1d3SBarry Smith```{literalinclude} /petsc.bib 1389b92b1d3SBarry Smith:append: '}' 1399b92b1d3SBarry Smith:end-at: year 1409b92b1d3SBarry Smith:language: none 1419b92b1d3SBarry Smith:start-at: petsc-user-ref 1429b92b1d3SBarry Smith``` 1439b92b1d3SBarry Smith 1449b92b1d3SBarry Smith```{literalinclude} /petsc.bib 1459b92b1d3SBarry Smith:append: '}' 1469b92b1d3SBarry Smith:end-at: year 1479b92b1d3SBarry Smith:language: none 1489b92b1d3SBarry Smith:start-at: petsc-efficient 1499b92b1d3SBarry Smith``` 1509b92b1d3SBarry Smith 1519b92b1d3SBarry SmithFor petsc4py usage please cite 1529b92b1d3SBarry Smith 1539b92b1d3SBarry Smith```{literalinclude} /petsc.bib 1549b92b1d3SBarry Smith:append: '}' 1559b92b1d3SBarry Smith:end-at: year 1569b92b1d3SBarry Smith:language: none 1579b92b1d3SBarry Smith:start-at: dalcinpazklercosimo2011 1589b92b1d3SBarry Smith``` 1599b92b1d3SBarry Smith 1609b92b1d3SBarry SmithFor PETSc usage on GPUs please cite 1619b92b1d3SBarry Smith 1629b92b1d3SBarry Smith```{literalinclude} /petsc.bib 1639b92b1d3SBarry Smith:append: '}' 1649b92b1d3SBarry Smith:end-at: author 1659b92b1d3SBarry Smith:language: none 1669b92b1d3SBarry Smith:start-at: mills2021 1679b92b1d3SBarry Smith``` 1689b92b1d3SBarry Smith 1699b92b1d3SBarry SmithFor `PetscSF` -- parallel communication in PETSc -- please cite 1709b92b1d3SBarry Smith 1719b92b1d3SBarry Smith```{literalinclude} /petsc.bib 1729b92b1d3SBarry Smith:append: '}' 1739b92b1d3SBarry Smith:end-at: pages 1749b92b1d3SBarry Smith:language: none 1759b92b1d3SBarry Smith:start-at: petscsf2022 1769b92b1d3SBarry Smith``` 1779b92b1d3SBarry Smith 1789b92b1d3SBarry SmithIf you use the `TS` component of PETSc please cite the following: 1799b92b1d3SBarry Smith 1809b92b1d3SBarry Smith```{literalinclude} petsc.bib 1819b92b1d3SBarry Smith:append: '}' 1829b92b1d3SBarry Smith:end-at: year 1839b92b1d3SBarry Smith:language: none 1849b92b1d3SBarry Smith:start-at: abhyankaretal2018 1859b92b1d3SBarry Smith``` 1869b92b1d3SBarry Smith 1879b92b1d3SBarry SmithIf you utilize the `TS` adjoint solver please cite 1889b92b1d3SBarry Smith 1899b92b1d3SBarry Smith```{literalinclude} /petsc.bib 1909b92b1d3SBarry Smith:append: '}' 1919b92b1d3SBarry Smith:end-at: year 1929b92b1d3SBarry Smith:language: none 1939b92b1d3SBarry Smith:start-at: zhang2022tsadjoint 1949b92b1d3SBarry Smith``` 195