The MultiResolution Computation Program Package (MRCPP) is a general purpose numerical mathematics library based on multiresolution analysis and the multiwavelet basis which provide low-scaling algorithms as well as rigorous error control in numerical computations.
The code is being developed at the Hylleraas Centre for Quantum Molecular Sciences at UiT - The Arctic University of Norway.
User support: mrchem.slack.com
Documentation: mrcpp.readthedocs.io
For optimal performance it is recommended to build from source, as the packaged builds are quite generic without architecture specific optimizations.
To build MRCPP from source with MPI+OpenMP parallelization:
$ git clone [email protected]:MRChemSoft/mrcpp.git
$ cd mrcpp
$ ./setup --prefix=<install-dir> --enable-examples --omp --mpi --cxx=<mpi-compiler> <build-dir>
$ cd <build-dir>
$ make
$ make test
$ make install
The --enable-examples
will trigger compilation of the code snippets in the
examples/
directory. Each example will get a separate executable under
<build-dir>/bin
, but these are not installed.
For more information on different kinds of builds, see installation instructions.
To install MRCPP in a Conda environment myenv
:
$ conda create -n myenv
$ conda activate myenv
$ conda install -c conda-forge mrcpp # latest version (OpenMP only)
$ conda install -c conda-forge mrcpp=1.3.6 # tagged version (OpenMP only)
$ conda install -c conda-forge mrcpp=*=*openmpi* # latest version (MPI+OpenMP)
$ conda install -c conda-forge mrcpp=*=*mpich* # latest version (MPI+OpenMP)
To list all available versions
$ conda search -c conda-forge mrcpp
To install MRCPP in a Spack environment myenv
:
$ spack env create myenv
$ spack env activate myenv
$ spack install mrcpp # latest version (MPI+OpenMP)
$ spack install mrcpp @1.3.6 # tagged version (MPI+OpenMP)
$ spack install mrcpp -mpi # latest version (OpenMP only)
For information on available Spack builds:
$ spack info mrcpp
To install MRCPP in an EasyBuild/Lmod environment (only MPI+OpenMP version available):
$ eb MRCPP-<version>-<toolchain> --fetch
$ eb MRCPP-<version>-<toolchain> --robot
$ module load MRCPP/<version>-<toolchain>
See
EasyBuild
for available <versions>
and <toolchains>
.