## PETSc – a toolkit for scientific computation

PETSc stands for portable, extensible toolkit for scientific computation. It provides its functionality on a higher level than ScaLAPACK and thus makes it easier to use for beginners. Furthermore, it is developed for use with C++, so there are no function name issues compared to porting the FORTRAN libraries of ScaLAPACK, such as the underscores we encountered in the previous chapter. The following figure shows you the internal components of the PETSc library:

Compared to handling vectors, which are not so critical, the proper storage of matrices can save a lot of memory and computation time. Mathematical problems often deal with special matrices that only have nonvanishing components in or near its diagonal. This leads to the idea to only save those diagonal or near-diagonal values that lead to the so-called sparse matrices. Sparse matrices, thus, are matrices where most of the components are zero...