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- [hIPPYlib](https://hippylib.github.io) [FEniCS](https://fenicsproject.org/)-based toolkit 84 for solving deterministic and Bayesian inverse 85 problems governed by PDEs 86- [libMesh](https://libmesh.github.io) adaptive finite element 87 library 88- [MFEM](https://mfem.org/) lightweight, scalable C++ library 89 for finite element methods 90- [MLSVM](https://github.com/esadr/mlsvm), Multilevel Support 91 Vector Machines with PETSc. 92- [MoFEM](http://mofem.eng.gla.ac.uk/mofem/html), An open 93 source, parallel finite element library 94- [MOOSE - Multiphysics Object-Oriented Simulation 95 Environment](https://mooseframework.inl.gov/) finite element 96 framework, built on [libMesh](https://libmesh.github.io). 97- [OOFEM](http://www.oofem.org) object-oriented finite element 98 library 99- [OpenCarp](https://opencarp.org/) Cardiac electrophysiology simulator 100- [OpenFOAM](https://develop.openfoam.com/modules/external-solver) 101 Available as an extension for linear solvers for OpenFOAM 102- [OpenFPM](https://openfpm.mpi-cbg.de/) framework for particles and mesh simulation 103- [OpenFVM](http://openfvm.sourceforge.net/) finite volume 104 based CFD solver 105- [PermonSVM](http://permon.vsb.cz/permonsvm.htm) support 106 vector machines and 107 [PermonQP](http://permon.vsb.cz/permonqp.htm) quadratic 108 programming 109- [PetIGA](https://github.com/dalcinl/PetIGA) A framework 110 for high performance Isogeometric Analysis 111- [PFLOTRAN](https://pflotran.org/) An open source, state-of-the-art 112 code for massively parallel simulation of subsurface flow, reactive transport, geomechanics, and electrical resistivity tomography 113- [PHAML](https://math.nist.gov/phaml/) The Parallel 114 Hierarchical Adaptive MultiLevel Project 115- [preCICE](https://www.precice.org) - A fully parallel 116 coupling library for partitioned multi-physics simulations 117- [PyClaw](https://www.clawpack.org/pyclaw/) A massively 118 parallel, high order accurate, hyperbolic PDE solver 119- [SLEPc](https://slepc.upv.es/) Scalable Library for 120 Eigenvalue Problems 121 122(doc_index_citing_petsc)= 123 124## Citing PETSc 125 126You can run PETSc programs with the option `-citations` to print appropriate citations for the software and algorithms being used in that program. 127 128For general citations on PETSc please use the following: 129 130```{literalinclude} /petsc.bib 131:append: '}' 132:end-at: year 133:language: none 134:start-at: petsc-web-page 135``` 136 137```{literalinclude} /petsc.bib 138:append: '}' 139:end-at: year 140:language: none 141:start-at: petsc-user-ref 142``` 143 144```{literalinclude} /petsc.bib 145:append: '}' 146:end-at: year 147:language: none 148:start-at: petsc-efficient 149``` 150 151For petsc4py usage please cite 152 153```{literalinclude} /petsc.bib 154:append: '}' 155:end-at: year 156:language: none 157:start-at: dalcinpazklercosimo2011 158``` 159 160For PETSc usage on GPUs please cite 161 162```{literalinclude} /petsc.bib 163:append: '}' 164:end-at: author 165:language: none 166:start-at: mills2021 167``` 168 169For `PetscSF` -- parallel communication in PETSc -- please cite 170 171```{literalinclude} /petsc.bib 172:append: '}' 173:end-at: pages 174:language: none 175:start-at: petscsf2022 176``` 177 178If you use the `TS` component of PETSc please cite the following: 179 180```{literalinclude} petsc.bib 181:append: '}' 182:end-at: year 183:language: none 184:start-at: abhyankaretal2018 185``` 186 187If you utilize the `TS` adjoint solver please cite 188 189```{literalinclude} /petsc.bib 190:append: '}' 191:end-at: year 192:language: none 193:start-at: zhang2022tsadjoint 194``` 195