1*5808f684SSatish BalayOverview 2*5808f684SSatish Balay======== 3*5808f684SSatish Balay 4*5808f684SSatish BalayPETSc_ is a suite of data structures and routines for the 5*5808f684SSatish Balayscalable (parallel) solution of scientific applications modeled by 6*5808f684SSatish Balaypartial differential equations. It employs the MPI_ standard for all 7*5808f684SSatish Balaymessage-passing communication. 8*5808f684SSatish Balay 9*5808f684SSatish BalayPETSc is intended for use in large-scale application projects 10*5808f684SSatish Balay[petsc-efficient]_, and several ongoing computational science projects 11*5808f684SSatish Balayare built around the PETSc libraries. With strict attention to 12*5808f684SSatish Balaycomponent interoperability, PETSc facilitates the integration of 13*5808f684SSatish Balayindependently developed application modules, which often most 14*5808f684SSatish Balaynaturally employ different coding styles and data structures. 15*5808f684SSatish Balay 16*5808f684SSatish BalayPETSc is easy to use for beginners [petsc-user-ref]_. Moreover, its 17*5808f684SSatish Balaycareful design allows advanced users to have detailed control over the 18*5808f684SSatish Balaysolution process. PETSc includes an expanding suite of parallel linear 19*5808f684SSatish Balayand nonlinear equation solvers that are easily used in application 20*5808f684SSatish Balaycodes written in C, C++, and Fortran. PETSc provides many of the 21*5808f684SSatish Balaymechanisms needed within parallel application codes, such as simple 22*5808f684SSatish Balayparallel matrix and vector assembly routines that allow the overlap of 23*5808f684SSatish Balaycommunication and computation. 24*5808f684SSatish Balay 25*5808f684SSatish Balay.. [petsc-user-ref] S. Balay, S. Abhyankar, M. Adams, 26*5808f684SSatish Balay J. Brown, P. Brune, K. Buschelman, 27*5808f684SSatish Balay L. Dalcin, A. Dener, V. Eijkhout, W. Gropp, 28*5808f684SSatish Balay D. Karpeyev, D. Kaushik, M. Knepley, 29*5808f684SSatish Balay D. May, L. Curfman McInnes, R. Mills, T. Munson, 30*5808f684SSatish Balay K. Rupp, P. Sanan, B. Smith, 31*5808f684SSatish Balay S. Zampini, H. Zhang, and H. Zhang, 32*5808f684SSatish Balay *PETSc Users Manual*, ANL-95/11 - Revision 3.13, 2020. 33*5808f684SSatish Balay http://www.mcs.anl.gov/petsc/petsc-current/docs/manual.pdf 34*5808f684SSatish Balay 35*5808f684SSatish Balay.. [petsc-efficient] Satish Balay, Victor Eijkhout, William D. Gropp, 36*5808f684SSatish Balay Lois Curfman McInnes and Barry F. Smith. Efficient Management of 37*5808f684SSatish Balay Parallelism in Object Oriented Numerical Software Libraries. Modern 38*5808f684SSatish Balay Software Tools in Scientific Computing. E. Arge, A. M. Bruaset and 39*5808f684SSatish Balay H. P. Langtangen, editors. 163--202. Birkhauser Press. 1997. 40*5808f684SSatish Balay 41*5808f684SSatish Balay.. include:: links.txt 42*5808f684SSatish Balay 43*5808f684SSatish Balay 44*5808f684SSatish BalayComponents 45*5808f684SSatish Balay---------- 46*5808f684SSatish Balay 47*5808f684SSatish BalayPETSc is designed with an object-oriented style. Almost all 48*5808f684SSatish Balayuser-visible types are abstract interfaces with implementations that 49*5808f684SSatish Balaymay be chosen at runtime. Those objects are managed through handles to 50*5808f684SSatish Balayopaque data structures which are created, accessed and destroyed by 51*5808f684SSatish Balaycalling appropriate library routines. 52*5808f684SSatish Balay 53*5808f684SSatish BalayPETSc consists of a variety of components. Each component manipulates 54*5808f684SSatish Balaya particular family of objects and the operations one would like to 55*5808f684SSatish Balayperform on these objects. These components provide the functionality 56*5808f684SSatish Balayrequired for many parallel solutions of PDEs. 57*5808f684SSatish Balay 58*5808f684SSatish Balay:Vec: Provides the vector operations required for setting up and 59*5808f684SSatish Balay solving large-scale linear and nonlinear problems. Includes 60*5808f684SSatish Balay easy-to-use parallel scatter and gather operations, as well as 61*5808f684SSatish Balay special-purpose code for handling ghost points for regular data 62*5808f684SSatish Balay structures. 63*5808f684SSatish Balay 64*5808f684SSatish Balay:Mat: A large suite of data structures and code for the manipulation 65*5808f684SSatish Balay of parallel sparse matrices. Includes four different parallel 66*5808f684SSatish Balay matrix data structures, each appropriate for a different class 67*5808f684SSatish Balay of problems. 68*5808f684SSatish Balay 69*5808f684SSatish Balay:PC: A collection of sequential and parallel preconditioners, 70*5808f684SSatish Balay including (sequential) ILU(k), LU, and (both sequential and 71*5808f684SSatish Balay parallel) block Jacobi, overlapping additive Schwarz methods 72*5808f684SSatish Balay and (through BlockSolve95) ILU(0) and ICC(0). 73*5808f684SSatish Balay 74*5808f684SSatish Balay:KSP: Parallel implementations of many popular Krylov subspace 75*5808f684SSatish Balay iterative methods, including GMRES, CG, CGS, Bi-CG-Stab, two 76*5808f684SSatish Balay variants of TFQMR, CR, and LSQR. All are coded so that they are 77*5808f684SSatish Balay immediately usable with any preconditioners and any matrix data 78*5808f684SSatish Balay structures, including matrix-free methods. 79*5808f684SSatish Balay 80*5808f684SSatish Balay:SNES: Data-structure-neutral implementations of Newton-like methods 81*5808f684SSatish Balay for nonlinear systems. Includes both line search and trust 82*5808f684SSatish Balay region techniques with a single interface. Employs by default 83*5808f684SSatish Balay the above data structures and linear solvers. Users can set 84*5808f684SSatish Balay custom monitoring routines, convergence criteria, etc. 85*5808f684SSatish Balay 86*5808f684SSatish Balay:TS: Code for the time evolution of solutions of PDEs. In addition, 87*5808f684SSatish Balay provides pseudo-transient continuation techniques for computing 88*5808f684SSatish Balay steady-state solutions. 89