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 12PETSc is now on [BlueSky](https://bsky.app/profile/petsc.org). 13 14The {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. 15 16Mrs. Hong Zhang, who has been a PETSc developer for twenty-five years and mentored many students and future PETSc developers, has retired. 17 18PETSc is associated with NumFOCUS, a 501(c)(3) nonprofit supporting open code and reproducible science, 19through which you can help support PETSc. 20 21Book on numerical methods using PETSc 22 23> **PETSc for Partial Differential Equations: Numerical Solutions in C and Python**, by Ed Bueler. 24> 25> - [Book from SIAM Press](https://my.siam.org/Store/Product/viewproduct/?ProductId=32850137) 26> - [Google Play E-book](https://play.google.com/store/books/details/Ed_Bueler_PETSc_for_Partial_Differential_Equations?id=tgMHEAAAQBAJ) 27 28## Main Topics 29 30```{toctree} 31:maxdepth: 1 32 33overview/index 34install/index 35tutorials/index 36manual/index 37manualpages/index 38petsc4py/index 39faq/index 40community/index 41developers/index 42miscellaneous/index 43``` 44 45<a href="./manual/manual.pdf">PETSc/TAO Users Manual in PDF</a> 46 47(doc_toolkits_use_petsc)= 48 49## Toolkits/libraries that use PETSc 50 51- [ADflow](https://github.com/mdolab/adflow) An open-source 52 computational fluid dynamics solver for aerodynamic and 53 multidisciplinary optimization 54- [BOUT++](https://boutproject.github.io) Plasma simulation 55 in curvilinear coordinate systems 56- [Chaste](https://www.cs.ox.ac.uk/chaste/) Cancer, Heart and 57 Soft Tissue Environment 58- [code_aster](https://www.code-aster.org/V2/spip.php?rubrique2) 59 open-source general purpose finite element code for solid and 60 structural mechanics 61- [code_saturne](https://www.code-saturne.org) 62 open-source general purpose code for fluid dynamics 63- [COOLFluiD](https://github.com/andrealani/COOLFluiD) CFD, 64 plasma and multi-physics simulation package 65- [DAFoam](https://dafoam.github.io) Discrete adjoint solvers 66 with [OpenFOAM](https://openfoam.com) for aerodynamic 67 optimization 68- [DAMASK](https://damask-multiphysics.org) Unified multi-physics 69 crystal plasticity simulation package 70- [DEAL.II](https://www.dealii.org/) C++ based finite element 71 simulation package 72- [DUNE-FEM](https://dune-project.org/sphinx/content/sphinx/dune-fem/) Python and C++ based finite element simulation package 73- [FEniCS](https://fenicsproject.org/) Python based finite 74 element simulation package 75- [Firedrake](https://www.firedrakeproject.org/) Python based 76 finite element simulation package 77- [Fluidity](https://fluidityproject.github.io/) a finite 78 element/volume fluids code 79- [FreeFEM](https://freefem.org/) finite element and boundary element PDE solver 80 with embedded domain specific language 81- [GetDP](https://www.getdp.info/) a General Environment for the Treatment of Discrete Problems 82- [hIPPYlib](https://hippylib.github.io) [FEniCS](https://fenicsproject.org/)-based toolkit 83 for solving deterministic and Bayesian inverse 84 problems governed by PDEs 85- [libMesh](https://libmesh.github.io) adaptive finite element 86 library 87- [MFEM](https://mfem.org/) lightweight, scalable C++ library 88 for finite element methods 89- [MLSVM](https://github.com/esadr/mlsvm), Multilevel Support 90 Vector Machines with PETSc. 91- [MoFEM](http://mofem.eng.gla.ac.uk/mofem/html), An open 92 source, parallel finite element library 93- [MOOSE - Multiphysics Object-Oriented Simulation 94 Environment](https://mooseframework.inl.gov/) finite element 95 framework, built on [libMesh](https://libmesh.github.io). 96- [OOFEM](http://www.oofem.org) object-oriented finite element 97 library 98- [OpenCarp](https://opencarp.org/) Cardiac electrophysiology simulator 99- [OpenFOAM](https://develop.openfoam.com/modules/external-solver) 100 Available as an extension for linear solvers for OpenFOAM 101- [OpenFPM](https://openfpm.mpi-cbg.de/) framework for particles and mesh simulation 102- [OpenFVM](http://openfvm.sourceforge.net/) finite volume 103 based CFD solver 104- [PermonSVM](http://permon.vsb.cz/permonsvm.htm) support 105 vector machines and 106 [PermonQP](http://permon.vsb.cz/permonqp.htm) quadratic 107 programming 108- [PetIGA](https://github.com/dalcinl/PetIGA) A framework 109 for high performance Isogeometric Analysis 110- [PFLOTRAN](https://pflotran.org/) An open source, state-of-the-art 111 code for massively parallel simulation of subsurface flow, reactive transport, geomechanics, and electrical resistivity tomography 112- [PHAML](https://math.nist.gov/phaml/) The Parallel 113 Hierarchical Adaptive MultiLevel Project 114- [preCICE](https://www.precice.org) - A fully parallel 115 coupling library for partitioned multi-physics simulations 116- [PyClaw](https://www.clawpack.org/pyclaw/) A massively 117 parallel, high order accurate, hyperbolic PDE solver 118- [SLEPc](https://slepc.upv.es/) Scalable Library for 119 Eigenvalue Problems 120 121(doc_index_citing_petsc)= 122 123## Citing PETSc 124 125You can run PETSc programs with the option `-citations` to print appropriate citations for the software and algorithms being used in that program. 126 127For general citations on PETSc please use the following: 128 129```{literalinclude} /petsc.bib 130:append: '}' 131:end-at: year 132:language: none 133:start-at: petsc-web-page 134``` 135 136```{literalinclude} /petsc.bib 137:append: '}' 138:end-at: year 139:language: none 140:start-at: petsc-user-ref 141``` 142 143```{literalinclude} /petsc.bib 144:append: '}' 145:end-at: year 146:language: none 147:start-at: petsc-efficient 148``` 149 150For petsc4py usage please cite 151 152```{literalinclude} /petsc.bib 153:append: '}' 154:end-at: year 155:language: none 156:start-at: dalcinpazklercosimo2011 157``` 158 159For PETSc usage on GPUs please cite 160 161```{literalinclude} /petsc.bib 162:append: '}' 163:end-at: author 164:language: none 165:start-at: mills2021 166``` 167 168For `PetscSF` -- parallel communication in PETSc -- please cite 169 170```{literalinclude} /petsc.bib 171:append: '}' 172:end-at: pages 173:language: none 174:start-at: petscsf2022 175``` 176 177If you use the `TS` component of PETSc please cite the following: 178 179```{literalinclude} petsc.bib 180:append: '}' 181:end-at: year 182:language: none 183:start-at: abhyankaretal2018 184``` 185 186If you utilize the `TS` adjoint solver please cite 187 188```{literalinclude} /petsc.bib 189:append: '}' 190:end-at: year 191:language: none 192:start-at: zhang2022tsadjoint 193``` 194