GNU g++ 4.8 or newer required.
Intel icpc 14.0.1 or newer required.
Boost 1.57.0 or newer required.
The Eigen library is header only, so no compiling is required. When compiling the Boost library make sure that you use the same compiler as you do for Dice. When choosing your compiler, either GNU or Intel, C++0x/C++11 standards must be supported.
To install boost:
wget https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gz tar -xzvf boost_1_70_0.tar.gz cd boost_1_70_0 ./bootstrap.sh --with-libraries=serialization,mpi
Take a look in your
project-config.jam file and make sure that the compiler configuration section is pointing to the desired compiler. That at the end of the file, on a new line, add
using mpi : mpicxx ; where you should replace
mpicxx with your desire mpi compiler. If you do not want to compile with MPI support, you may skip adding this line.
Now we are ready to compile:
First you need to download Dice:
wget https://sanshar.github.io/Dice/_downloads/dice_1_0.tar.gz tar -xzvf dice_1_0.tar.gz cd dice_1_0
Now before you can compile Dice you must edit the Makefile in the main directory and change the paths variables (EIGEN and BOOST) that point to your Eigen and Boost libraries. Then the user must choose whether to use gcc or intel and set the USE_INTEL variable accordingly. Finally choose whether you would like to compile with MPI or not before compiling. All of the lines in the Makefile that you must edit are shown below:
USE_MPI = yes USE_INTEL = no EIGEN=/home/james/apps/eigen/ BOOST=/home/james/apps/boost_1_70_0
To compile the plain Dice (no support for spin orbit coupling):
make Dice -j
To compile plain Dice and ZDice (SOC support):
Once compiling is complete you should test the code using the “/path_to/Dice/tests/runAllTests.sh” script. Before running this script, edit the MPICOMMAND variable to show the appropriate number of processors you wish to run in parallel.
If your system has limited memory or slow processing power, you may wish to run ./runSmallTests.sh instead.
If you compiled the serial version of Dice, replace the line
MPICOMMAND="mpirun -np 28" with
MPICOMMAND="" in the “runTests.sh” and “runSmallTests.sh” files.