1*9b92b1d3SBarry Smith(acknowledgements)= 2*9b92b1d3SBarry Smith 3*9b92b1d3SBarry Smith# Acknowledgements 4*9b92b1d3SBarry Smith 5*9b92b1d3SBarry SmithWe thank all PETSc/Tao/petsc4py users for their many suggestions, bug reports, and encouragement. 6*9b92b1d3SBarry Smith 7*9b92b1d3SBarry SmithRecent contributors to PETSc are listed in the [repository system](https://gitlab.com/petsc/petsc). The history can be visualized at 8*9b92b1d3SBarry Smith[github.com/petsc/petsc/graphs/contributors](https://github.com/petsc/petsc/graphs/contributors). 9*9b92b1d3SBarry Smith 10*9b92b1d3SBarry SmithEarlier contributors to PETSc that are not captured in the repository system include: 11*9b92b1d3SBarry Smith 12*9b92b1d3SBarry Smith- Asbjorn Hoiland Aarrestad, the explicit Runge-Kutta implementations, `TSRK`. 13*9b92b1d3SBarry Smith- Guillaume Anciaux and Jose E. Roman, the interfaces to the partitioning packages PTScotch, Chaco, and Party. 14*9b92b1d3SBarry Smith- Allison Baker, `KSPFGMRES` and `KSPLGMRES`. 15*9b92b1d3SBarry Smith- Chad Carroll, the Win32 graphics. 16*9b92b1d3SBarry Smith- Ethan Coon, `PetscBag` and many bug fixes. 17*9b92b1d3SBarry Smith- Cameron Cooper, portions of `VecScatter` routines. 18*9b92b1d3SBarry Smith- Patrick Farrell and Florian Wechsung, `PCPATCH` and `SNESPATCH`. 19*9b92b1d3SBarry Smith- Paulo Goldfeld, early versions of the balancing Neumann-Neumann preconditioner `PCNN`. 20*9b92b1d3SBarry Smith- Matt Hille. 21*9b92b1d3SBarry Smith- Joel Malard, `KSPBCGS`. 22*9b92b1d3SBarry Smith- Paul Mullowney, enhancements to portions of the original CUDA GPU interface. 23*9b92b1d3SBarry Smith- Dave May, `KSPGCR`. 24*9b92b1d3SBarry Smith- Peter Mell, portions of `DMDA` routines. 25*9b92b1d3SBarry Smith- Richard Mills, the `MATAIJPERM` matrix format for the Cray X1; universal F90 array 26*9b92b1d3SBarry Smith interface; enhancements to `KSPIBCGS`; the `MATAIJMKL` matrix subclass. 27*9b92b1d3SBarry Smith- Victor Minden, the original CUDA GPU interface. 28*9b92b1d3SBarry Smith- Todd Munson, `MATSOLVERLUSOL` as well as `KSPNASH`, `KSPSTCG`, and 29*9b92b1d3SBarry Smith `KSPGLTR`. 30*9b92b1d3SBarry Smith- Robert Scheichl, the original `KSPMINRES` implementation. 31*9b92b1d3SBarry Smith- Karen Toonen, designed and implemented most of the original PETSc web pages. 32*9b92b1d3SBarry Smith- Desire Nuentsa Wakam, `KSPDGMRES`. 33*9b92b1d3SBarry Smith- Liyang Xu, the interface to PVODE (now Sundials/CVODE) `TSSUNDIALS`. 34*9b92b1d3SBarry Smith 35*9b92b1d3SBarry SmithThe Toolkit for Advanced Optimization (Tao) developers especially thank Jorge Moré 36*9b92b1d3SBarry Smithfor his leadership, vision, and effort on previous versions of Tao. Tao has 37*9b92b1d3SBarry Smithalso benefited from the work of various researchers who have provided solvers, test problems, 38*9b92b1d3SBarry Smithand interfaces. In particular, we acknowledge: Adam Denchfield, Elizabeth Dolan, Evan Gawlik, 39*9b92b1d3SBarry SmithMichael Gertz, Xiang Huang, Lisa Grignon, Manojkumar Krishnan, Gabriel Lopez-Calva, 40*9b92b1d3SBarry SmithJarek Nieplocha, Boyana Norris, Hansol Suh, Stefan Wild, Limin Zhang, and 41*9b92b1d3SBarry SmithYurii Zinchenko. 42*9b92b1d3SBarry Smith 43*9b92b1d3SBarry SmithPETSc source code contains modified routines from the following public 44*9b92b1d3SBarry Smithdomain software packages: 45*9b92b1d3SBarry Smith 46*9b92b1d3SBarry Smith- LINPACK - dense matrix factorization and solve; converted to C using 47*9b92b1d3SBarry Smith `f2c` and then hand-optimized for small matrix sizes, for block 48*9b92b1d3SBarry Smith matrix data structures; 49*9b92b1d3SBarry Smith- MINPACK - sequential matrix coloring routines for finite 50*9b92b1d3SBarry Smith difference Jacobian evaluations; converted to C using `f2c`; 51*9b92b1d3SBarry Smith- SPARSPAK - matrix reordering routines, converted to C 52*9b92b1d3SBarry Smith using `f2c`; 53*9b92b1d3SBarry Smith- libtfs - the efficient, parallel direct solver developed by Henry 54*9b92b1d3SBarry Smith Tufo and Paul Fischer for the direct solution of a coarse grid 55*9b92b1d3SBarry Smith problem (a linear system with very few degrees of freedom per 56*9b92b1d3SBarry Smith processor). 57*9b92b1d3SBarry Smith 58*9b92b1d3SBarry SmithPETSc interfaces to many external software packages including: 59*9b92b1d3SBarry Smith 60*9b92b1d3SBarry Smith- BLAS and LAPACK - numerical linear algebra; 61*9b92b1d3SBarry Smith- Chaco - A graph partitioning package; 62*9b92b1d3SBarry Smith <http://www.cs.sandia.gov/CRF/chac.html> 63*9b92b1d3SBarry Smith- Elemental - Jack Poulson’s parallel dense matrix solver package; 64*9b92b1d3SBarry Smith <http://libelemental.org/> 65*9b92b1d3SBarry Smith- HDF5 - the data model, library, and file format for storing and 66*9b92b1d3SBarry Smith managing data, 67*9b92b1d3SBarry Smith <https://support.hdfgroup.org/HDF5/> 68*9b92b1d3SBarry Smith- hypre - the LLNL preconditioner library; 69*9b92b1d3SBarry Smith <https://computation.llnl.gov/projects/hypre-scalable-linear-solvers-multigrid-methods> 70*9b92b1d3SBarry Smith- LUSOL - sparse LU factorization code (part of MINOS) developed by 71*9b92b1d3SBarry Smith Michael Saunders, Systems Optimization Laboratory, Stanford 72*9b92b1d3SBarry Smith University; 73*9b92b1d3SBarry Smith <http://www.sbsi-sol-optimize.com/> 74*9b92b1d3SBarry Smith- MATLAB 75*9b92b1d3SBarry Smith- Metis/ParMeTiS - parallel graph partitioner, 76*9b92b1d3SBarry Smith <https://www-users.cs.umn.edu/~karypis/metis/> 77*9b92b1d3SBarry Smith- MUMPS - MUltifrontal Massively Parallel sparse direct 78*9b92b1d3SBarry Smith Solver developed by Patrick Amestoy, Iain Duff, Jacko Koster, and 79*9b92b1d3SBarry Smith Jean-Yves L’Excellent; 80*9b92b1d3SBarry Smith <https://mumps-solver.org/> 81*9b92b1d3SBarry Smith- Party - A graph partitioning package; 82*9b92b1d3SBarry Smith- PaStiX - Parallel sparse LU and Cholesky solvers; 83*9b92b1d3SBarry Smith <http://pastix.gforge.inria.fr/> 84*9b92b1d3SBarry Smith- PTScotch - A graph partitioning package; 85*9b92b1d3SBarry Smith <http://www.labri.fr/Perso/~pelegrin/scotch/> 86*9b92b1d3SBarry Smith- SPAI - for parallel sparse approximate inverse preconditioning; 87*9b92b1d3SBarry Smith <https://cccs.unibas.ch/lehre/software-packages/> 88*9b92b1d3SBarry Smith- SuiteSparse - sequential sparse solvers, developed by 89*9b92b1d3SBarry Smith Timothy A. Davis; 90*9b92b1d3SBarry Smith <http://faculty.cse.tamu.edu/davis/suitesparse.html> 91*9b92b1d3SBarry Smith- SUNDIALS/CVODE - (now an out-dated version), parallel ODE integrator; 92*9b92b1d3SBarry Smith <https://computation.llnl.gov/projects/sundials> 93*9b92b1d3SBarry Smith- SuperLU and SuperLU_Dist - the efficient sparse LU codes 94*9b92b1d3SBarry Smith developed by Jim Demmel, Xiaoye S. Li, and John Gilbert; 95*9b92b1d3SBarry Smith <https://crd-legacy.lbl.gov/~xiaoye/SuperLU> 96*9b92b1d3SBarry Smith- STRUMPACK - the STRUctured Matrix Package; 97*9b92b1d3SBarry Smith <https://portal.nersc.gov/project/sparse/strumpack/> 98*9b92b1d3SBarry Smith- Triangle and Tetgen - mesh generation packages; 99*9b92b1d3SBarry Smith <https://www.cs.cmu.edu/~quake/triangle.html> 100*9b92b1d3SBarry Smith <http://wias-berlin.de/software/tetgen/> 101*9b92b1d3SBarry Smith- Trilinos/ML - Sandia’s main multigrid preconditioning package; 102*9b92b1d3SBarry Smith <https://trilinos.github.io/> 103*9b92b1d3SBarry Smith- Zoltan - graph partitioners from Sandia National Laboratory; 104*9b92b1d3SBarry Smith <http://www.cs.sandia.gov/zoltan/> 105*9b92b1d3SBarry Smith 106*9b92b1d3SBarry SmithThese are all optional packages and do not need to be installed to use 107*9b92b1d3SBarry SmithPETSc. 108*9b92b1d3SBarry Smith 109*9b92b1d3SBarry SmithPETSc software is developed and maintained using 110*9b92b1d3SBarry Smith 111*9b92b1d3SBarry Smith- [Git](https://git-scm.com/) revision control system 112*9b92b1d3SBarry Smith 113*9b92b1d3SBarry SmithPETSc documentation has been generated using 114*9b92b1d3SBarry Smith 115*9b92b1d3SBarry Smith- <https://www.sphinx-doc.org> 116*9b92b1d3SBarry Smith- [Sowing text processing tools developed by Bill Gropp](http://wgropp.cs.illinois.edu/projects/software/sowing/) 117*9b92b1d3SBarry Smith- c2html 118