Skip to content

smgarner229/Dice

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dice implements the semistochastic heat bath configuration interaction (SHCI) algorithm for ab initio Hamiltonians of quantum chemical systems.

Unlike full configuration interaction (FCI), SHCI can be used to treat active spaces containing 30 to 100 orbitals. SHCI is able to accomplish this by taking advantage of the fact that although the full Hilbert space may be enormous, only a small fraction of the determinants in the space have appreciable coefficients.

Compared to other methods in its class, SHCI is often not only orders of magnitude faster, it also does not suffer from serious memory bottlenecks that plagues these methods. The resulting algorithm as implemented in Dice allows us to treat difficult benchmark systems such as the Chromium dimer and Mn-Salen (a challenging bioinorganic cluster) at a cost that is often an order of magnitude faster than density matrix renormalization group (DMRG) or full configuration interaction quantum Monte Carlo (FCIQMC).

Thus if you are interested in performing multireference calculations with active space containing several tens to hundreds of orbitals, Dice might be an ideal choice for you.

  • Dice is available with the PySCF package.

  • The latest version of Dice is also downloadable as a tar archive: Dice.tar.gz

Prerequisites

Dice requires:

  • Boost (when compiling the Boost library make sure that you use the same compiler as you do for Dice)

An example of download and compilation commands for the NN version of Boost can be:

  wget https://dl.bintray.com/boostorg/release/1.64.0/source/boost_1_NN_0.tar.gz
  tar -xf boost_1_NN_0.tar.gz
  cd boost_1_NN_0
  ./bootstrap.sh
  echo "using mpi ;" >> project-config.jam
  ./b2 -j6 --target=shared,static
  • Eigen (Eigen consists of header files and does not have to be compiled but can be installed)

One way of getting and installing the Eigen package is:

  hg clone https://bitbucket.org/eigen/eigen/
  cd eigen
  mkdir build_dir
  cd build_dir
  cmake ..
  sudo make install
  • About compiler requirements:
    • GNU: g++ 4.8 or newer
    • Intel: icpc 14.0.1 or newer
    • In any case: the C++0x/C++11 standards must be supported.

Compilation

Edit the Makefile in the main directory and change the paths to your Eigen and Boost libraries. The user can choose whether to use gcc or intel by setting the USE_INTEL variable accordingly, and whether or not to compile with MPI by setting the USE_MPI variable. All the lines in the Makefile that normally need to be edited are shown below:

  USE_MPI = yes
  USE_INTEL = yes
  EIGEN=/path_to/eigen
  BOOST=/path_to/boost_1_NN_0

Testing

Upon successful compilation, one can test the code using the runTests.sh script in /path_to/Dice/tests/ (before running this script, edit the MPICOMMAND variable to the appropriate number of processors you wish to run the tests onto):

  cd /path_to/Dice/tests/
  ./runTests.sh

If your system has limited memory or slow processing power, you may wish to comment out the tests for Mn(salen) in the runTests.sh script because they require a large amount of processing power and memory.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 94.0%
  • Python 2.7%
  • Shell 2.4%
  • Makefile 0.8%
  • C 0.1%
  • Euphoria 0.0%