PETSc 3.16

PETSc, the Portable, Extensible Toolkit for Scientific Computation, pronounced PET-see (/ˈpɛt-siː/), is a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It supports MPI, and GPUs through CUDA, HIP or OpenCL, as well as hybrid MPI-GPU parallelism; it also supports the NEC-SX Tsubasa Vector Engine. PETSc (sometimes called PETSc/TAO) also contains the TAO, the Toolkit for Advanced Optimization, software library.

PETSc is developed as open-source, requests and contributions are welcome.

News

News: New Book on PETSc

PETSc for Partial Differential Equations: Numerical Solutions in C and Python, by Ed Bueler, is available.

News: New paper on PETSc communication System

The PetscSF Scalable Communication Layer

News: petsc4py Support

Source code for petsc4py, developed by Lisandro Dalcin, is now distributed with the PETSc source and supported by the PETSc team and mailing lists.

Main Topics

Citing PETSc

When citing PETSc in a publication please cite the following:

@misc{petsc-web-page,
  author = {Satish Balay and Shrirang Abhyankar and Mark~F. Adams and Steven Benson and Jed Brown
    and Peter Brune and Kris Buschelman and Emil~M. Constantinescu and Lisandro Dalcin and Alp Dener
    and Victor Eijkhout and William~D. Gropp and V\'{a}clav Hapla and Tobin Isaac and Pierre Jolivet
    and Dmitry Karpeev and Dinesh Kaushik and Matthew~G. Knepley and Fande Kong and Scott Kruger
    and Dave~A. May and Lois Curfman McInnes and Richard Tran Mills and Lawrence Mitchell and Todd Munson
    and Jose~E. Roman and Karl Rupp and Patrick Sanan and Jason Sarich and Barry~F. Smith
    and Stefano Zampini and Hong Zhang and Hong Zhang and Junchao Zhang},
  title        = {{PETS}c {W}eb page},
  url          = {https://petsc.org/},
  howpublished = {\url{https://petsc.org/}},
  year         = {2021},
}
@techreport{petsc-user-ref,
  author = {Satish Balay and Shrirang Abhyankar and Mark~F. Adams and Steven Benson and Jed Brown
    and Peter Brune and Kris Buschelman and Emil Constantinescu and Lisandro Dalcin and Alp Dener
    and Victor Eijkhout and William~D. Gropp and V\'{a}clav Hapla and Tobin Isaac and Pierre Jolivet
    and Dmitry Karpeev and Dinesh Kaushik and Matthew~G. Knepley and Fande Kong and Scott Kruger
    and Dave~A. May and Lois Curfman McInnes and Richard Tran Mills and Lawrence Mitchell and Todd Munson
    and Jose~E. Roman and Karl Rupp and Patrick Sanan and Jason Sarich and Barry~F. Smith
    and Stefano Zampini and Hong Zhang and Hong Zhang and Junchao Zhang},
  title       = {{PETSc/TAO} Users Manual},
  institution = {Argonne National Laboratory},
  number      = {ANL-21/39 - Revision 3.16},
  year        = {2021},
}
@inproceedings{petsc-efficient,
  author    = {Satish Balay and William~D. Gropp and Lois Curfman McInnes and Barry~F. Smith},
  title     = {Efficient Management of Parallelism in Object Oriented Numerical Software Libraries},
  booktitle = {Modern Software Tools in Scientific Computing},
  editor    = {E. Arge and A.~M. Bruaset and H.~P. Langtangen},
  publisher = {Birkh{\"{a}}user Press},
  pages     = {163--202},
  year      = {1997}
}

If you use the TS component of PETSc please cite the following:

@techreport{AbhyankarEtAl2018,
  author        = {Shrirang Abhyankar and Jed Brown and Emil M. Constantinescu and Debojyoti Ghosh and Barry F. Smith and Hong Zhang},
  title         = {{PETSc/TS}: {A} Modern Scalable {ODE/DAE} Solver Library},
  journal       = {arXiv e-preprints},
  eprint        = {1806.01437},
  archivePrefix = {arXiv},
  year          = {2018},
}

If you utilize the TS adjoint solver please cite

@techreport{ZhangConstantinescuSmith2019,
  author        = {Hong Zhang and Emil M. Constantinescu and Barry F. Smith},
  title         = {{PETSc TSAdjoint}: a discrete adjoint {ODE} solver for first-order and second-order sensitivity analysis},
  journal       = {arXiv e-preprints},
  eprint        = {1912.07696},
  archivePrefix = {arXiv},
  year          = {2019},
}