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