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