RMG builds have been tested using the GNU and PGI compilers as well as MKL. Most development work is done using GNU which is the most reliable. Cmake is used for configuration and out of source builds are preferred. After cloning or downloading the repository the generic build instructions are to first change into the top level directory and make a build subdir.
cd rmgdft mkdir build cd build cmake .. make -jN target
In this case N is an integer used for a parallel build and target specifies the particular rmg module you wish to build. In the best case scenario things will just work and on standard linux distributions this is often the case. On non-standard clusters with complicated software stacks additional manual configuration is often required. In particular one may have to specify a particular set of modules to use and set some environment variables. For example on the xsede machine comet as of April 19,2020 the following works.
export CC=/opt/gnu/gcc/bin/gcc export CXX=/opt/gnu/gcc/bin/g++ export FC=/opt/openmpi/gnu/ib/bin/mpif90 module load gnu module load openmpi_ib module load boost module load fftw module load cmake module load mkl module load hdf5
One can then execute
Additional configuration may be performed at the cmake step. For example to build with GPU support one should use.
cmake -DRMG_CUDA_ENABLED=1
Available targets include.
rmg-cpu Base code cpu only
rmg-gpu Base code with gpu support
rmg-on-cpu ON code cpu only
rmg-on-gpu ON code with gpu support
rmg-negf-cpu Non equilibrium greens function code cpu only
rmg-negf-gpu Non equilibrium greens function code with gpu support
RMG GPU support at the present time is limited to Nvidia hardware and requires Pascal or later hardware.
Top level directory structurecmake/
Some additional cmake modules for finding specific libraries.
PlatformChecks/
Code for checking whether certain features are suppored by compilers/libs.
SubprojectIncludes/
Module specific cmake stuff.
RMG/
Standard DFT code module (rmg-cpu and rmg-gpu binaries).
ON/
Localized orbital DFT code module.
NEGF/
Non equilibrium greens function code module.
TDDFT/
Time dependent DFT code module.
RmgLib/
Base code used by all modules.
US_PP/
Code for working with pseudopotentials both US and NC.
Input/
Routines for reading and parsing input files.
Interfaces/
Interfaces to external programs. Still in progress.
InternalPseudo/
RMG includes a set of pseudopotentials built into the executable which are included here as compressed header files.
Misc/
Miscellaneous code.
FiniteDiff/
Higher level driver routines for finite differencing.
Force/
Force routines.
MG/
Multigrid routines. All multigrid functionality has been moved into RmgLib and this directory only has C bindings for the C++ class in RmgLib. Will eventually be deprecated.
Gpufuncs/
Cuda code.
XC/
XC_useLIBXC/ Interfaces for exchange correlation.
RMG_GUI/
Gui setup code.
zfp/
Compression library for floating point data.
scalapack/
Parallel linear algegra/eigensolvers.
spglib/
Symmetry routines.
Examples/ Various examples.
Testing/ Testing code. In development.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4