PETSc provides clean and effective codes for the various phases of solving PDEs, with a uniform approach for each class of problems. This design enables easy use and comparison of different algorithms (for example, to experiment with different Krylov subspace methods, preconditioners or truncated Newton methods). The components enable easy customization and extension of both algorithms and implementations. This approach promotes code reuse and flexibility, and separates the issues of parallelism from the choice of algorithms. In addition, the PETSc infrastructure creates a foundation for building portable large-scale applications and extended suites of numerical routines.
We are in the Mathematics and Computer Science Division of Argonne National Laboratory.
Please address all PETSc questions, comments, suggestions, and bug reports to firstname.lastname@example.org.