Miscellaneous

We are collecting various classes and functions that are mainly used by the Operator class. For example, two possible containers to represent the Operator are:

The SparseMatrix class is a simple class that handles sparse matrices. It is used by the Operator class to store and apply local tensor products. SparseMatrix does not support MPI computation as we strongly suggest Petsc and Slepc in this case, see here for an example.

The ShellMatrix class is used for matrix-free matrix-vector multiplications and supports MPI and openMP. It is utilized when a MATSHELL is created by Petsc, see here. It can be applied the Vector class:

This class simply represent a vector using distributed (if MPI is available) or shared memory. It is mainly used by the ShellMatrix to perform linear algebra routines that can be used to compute ground states, see here.

Finally, various basic functions and more advanced algorithms like the Lanczos algorithm are summarized here: