PETSc Developer’s Manual

Prepared by
S. Kruger1, P. Sanan2, and B. Smith3
1Tech-X Corporation
2Institute of Geophysics, ETH Zurich
3Mathematics and Computer Science Division, Argonne National Laboratory
This material was based upon work supported by the Office of Science, Office of
Advanced Scientific Computing Research, U.S. Department of Energy, under Contract
DE-AC02-06CH11357.

PETSc is an extensible software library for scientific computation. This document provides information for PETSc developers and those wishing to contribute to PETSc. The text assumes that you are familiar with PETSc and have access to PETSc source code and documentation (see https://gitlab.com/petsc/petsc and https://www.mcs.anl.gov/petsc) including the PETSc PETSc Users Manual [BAA+19] . Higher-level views of PETSc can be found in [Smi11], [BGMS02], [GS94], [BGMS98], and [BGMS97].

Before contributing code to PETSc, please read the PETSC Style Guide. Information on how to submit patches and pull requests to PETSc can be found at https://www.mcs.anl.gov/petsc/developers/index.html.

Please direct all comments and questions regarding PETSc design and development to petsc-dev@mcs.anl.gov. Note that all bug reports and questions regarding the use of PETSc should be directed to petsc-maint@mcs.anl.gov.

References

BGMS97

Satish Balay, William D. Gropp, Lois Curfman McInnes, and Barry F. Smith. Efficient management of parallelism in object oriented numerical software libraries. In E. Arge, A. M. Bruaset, and H. P. Langtangen, editors, Modern Software Tools in Scientific Computing, 163–202. Birkhäuser Press, 1997.

BGMS02

S. Balay, W. D. Gropp, L. C. McInnes, and B. F. Smith. CRPC Handbook of Parallel Computing, chapter Software for the Scalable Solution of PDEs. Morgan Kaufmann Publishers, 2002. URL: ftp://info.mcs.anl.gov/pub/tech_reports/reports/P834.ps.Z.

BAA+19

Satish Balay, Shrirang Abhyankar, Mark F. Adams, Jed Brown, Peter Brune, Kris Buschelman, Lisandro Dalcin, Alp Dener, Victor Eijkhout, William D. Gropp, Dmitry Karpeyev, Dinesh Kaushik, Matthew G. Knepley, Dave A. May, Lois Curfman McInnes, Richard Tran Mills, Todd Munson, Karl Rupp, Patrick Sanan, Barry F. Smith, Stefano Zampini, Hong Zhang, and Hong Zhang. PETSc users manual. Technical Report ANL-95/11 - Revision 3.12, Argonne National Laboratory, 2019.

BGMS98

Satish Balay, William D. Gropp, Lois Curfman McInnes, and Barry F. Smith. A microkernel design for component-based parallel numerical software systems. In Proceedings of the SIAM Workshop on Object Oriented Methods for Inter-operable Scientific and Engineering Computing, 58–67. SIAM, 1998. URL: ftp://info.mcs.anl.gov/pub/tech_reports/reports/P727.ps.Z.

GS94

William D. Gropp and Barry F. Smith. Scalable, extensible, and portable numerical libraries. In Proceedings of the Scalable Parallel Libraries Conference, 87–93. Mississippi State University, 1994. IEEE.

Smi11

B. Smith. Encyclopedia of Parallel Computing, chapter PETSc, the Portable, Extensible Toolkit for Scientific computing. Springer, 2011.