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