This repository is a bundle of four separate libraries:
- pspBLAS: MPI parallel sparse matrix operations with 2D block-cyclic distribution
- MatrixSwitch: multi-format matrix storage and operation
- libOMM: Kohn-Sham solver using the orbital minimization method
- tomato: test matrix generator for Kohn-Sham solvers
Each library has its own documentation and build systems, the details of which you can find in the individual subdirectories.
Additionally, in this directory you will find two ways of installing the library bundle as a whole. They are explained below.
The Autotools build system is available for pspBLAS, MatrixSwitch, and libOMM
(tomato coming soon). It can be accessed by running the build-omm
script and
following the instructions. Note that external linear algebra libraries need to
be given either by modifying the script or by creating environmental variables
by typing:
export LINALG_INCLUDES="path/to/headers"
export LINALG_LIBS="path/to/libraries"
The manual build system is available for all libraries, and makes use of the file named Makefile.manual.
To install the libraries manually:
- Copy
make.inc.example
tomake.inc
and modify it to suit your needs. Available options forFPPFLAGS
are:-DHAVE_MPI
: enable MPI parallel routines-DHAVE_LAPACK
: enable LAPACK routines-DHAVE_SCALAPACK
: enable ScaLAPACK routines (requires MPI)-DHAVE_PSPBLAS
: enable pspBLAS routines (requires MPI, LAPACK and ScaLAPACK)-DHAVE_DBCSR
: enable DBCSR routines (requires DBCSR, MPI, LAPACK and BLAS). You can download DBCSR from https://github.com/cp2k/dbcsr.-DHAVE_MKL
: link the sequential sparse BLAS routines in Intel MKL to pspBLAS-DCONV
: enable automatic conversion of scalar types (real/complex) to agree with matrix definitions (real/complex). Needed for libOMM.-DNORAND
: fixed seed for the random number generator. Enable for testing purposes.-DCBIND
: use ISO_C_BINDING for LOGICAL inputs in the wrapper interfaces. Enable for linking to C.
- Type
make -f Makefile.manual
.