PETSc/TAO Users Manual#
Argonne National Laboratory
Mathematics and Computer Science Division
Prepared by
S. Balay 1, S. Abhyankar 1,2, M. F. Adams 3, S. Benson 1, J. Brown 1,10, P. Brune 1, K. Buschelman 1, E. M. Constantinescu 1, L. Dalcin 4, A. Dener 1, V. Eijkhout 6, W. D. Gropp 1, V. Hapla 8, T. Isaac 14, P. Jolivet 12, D. Karpeev 1, D. Kaushik 1, M. G. Knepley 1,9, F. Kong 1,11, S. Kruger 15, D. A. May 7, L. Curfman McInnes 1, R. Tran Mills 1, L. Mitchell 13, T. Munson 1, J. E. Roman 16, K. Rupp 1, P. Sanan 1,8, J. Sarich 1, B. F. Smith 17, S. Zampini 4, H. Zhang 1,5, H. Zhang 1, and J. Zhang 1
1Mathematics and Computer Science Division, Argonne National Laboratory
2Electricity Infrastructure and Buildings Division, Pacific Northwest National Laboratory
3Computational Research, Lawrence Berkeley National Laboratory
4Extreme Computing Research Center, King Abdullah University of Science and Technology
5Department of Computer Science, Illinois Institute of Technology
6Texas Advanced Computing Center, University of Texas at Austin
7Department of Earth Sciences, University of Oxford
8Institute of Geophysics, ETH Zurich
9Department of Computer Science and Engineering, University at Buffalo
10Department of Computer Science, University of Colorado, Boulder
11Computational Frameworks, Idaho National Laboratory
12Toulouse Institute of Compute Science Research
13Department of Computer Science, Durham University
14College of Computing, Georgia Tech
15Tech-X Corporation
16DSIC, Universitat Politècnica de València
17Flatiron Institute, Simons Foundation
This work was supported by the Office of Advanced Scientific Computing Research, Office of Science, U.S. Department of Energy, under Contract DE-AC02-06CH11357.
- Introduction to PETSc
- Programming with PETSc/TAO
- Vectors and Parallel Data
- Matrices
- KSP: Linear System Solvers
- SNES: Nonlinear Solvers
- TS: Scalable ODE and DAE Solvers
- Basic TS Options
- DAE Formulations
- Using Implicit-Explicit (IMEX) Methods
- GLEE methods
- Using fully implicit methods
- Using the Explicit Runge-Kutta timestepper with variable timesteps
- Special Cases
- Monitoring and visualizing solutions
- Error control via variable time-stepping
- Handling of discontinuities
- Explicit integrators with finite flement mass matrices
- Using TChem from PETSc
- Using Sundials from PETSc
- Performing sensitivity analysis
- Solving Steady-State Problems with Pseudo-Timestepping
- TAO: Optimization Solvers
- High Level Support for Multigrid with KSPSetDM() and SNESSetDM()
- DMPlex: Unstructured Grids in PETSc
- PetscDT: Discretization Technology in PETSc
- PetscFE: Finite Element Infrastructure in PETSc
- Additional Information
- PETSc for Fortran Users
- Using MATLAB with PETSc
- Profiling
- Hints for Performance Tuning
- The Use of BLAS and LAPACK in PETSc and external libraries
- Other PETSc Features
- PETSc on a process subset
- Runtime Options
- Viewers: Looking at PETSc Objects
- Using SAWs with PETSc
- Debugging
- Error Handling
- Numbers
- Parallel Communication
- Graphics
- Developer Environments
- Emacs Users
- Visual Studio Code Users
- Vi and Vim Users
- Eclipse Users
- Qt Creator Users
- Visual Studio Users
- XCode Users (The Apple GUI Development System)
- Unimportant and Advanced Features of Matrices and Solvers
- Running PETSc Tests
- Acknowledgments