ElVibRot-TID-MPI

Purpose of Module

The ElVibRot-TID-MPI (ElVibRot time-independent MPI) module is a parallelized time-independent quantum simulation program. The Davidson algorithm is the main method employed for getting the Eigen levels of the Hamiltonian. This module is a part of the ElVibRot package designed for general quantum dynamics simulation using curvilinear coordinates. The code has no built-in limitation in terms of the number of degrees of freedom. It applied a numerical but exact kinetic energy operator with Tnum [Tn1], which enables much flexibility in the choice of the curvilinear coordinates. To avoid the conventional direct-product basis sets and grids, the Smolyak algorithm [Sm1] is employed to make possible the simulation of larger systems.

Background Information

The core of the quantum simulation lies in solving the Schrodinger equation with the Hamiltonian of the considered system. The principle fence of the simulation comes from the exponential growth of computational demand with the increasing of the degrees of freedom of the system, the curse of dimensionality. It prompts numbers of algorithms in the past decades to deal with this difficulty. The Smolyak algorithm, proposed by Smolyak in 1963 [Sm1], provides a powerful method to deal with high-dimensional problems. By introducing the Smolyak algorithm in this module, the wavefunction is expanded as a weighted sum of small Smolyak wavefunction contributions, thus significantly reduce the computational demand of the simulation. Taking advantage of the structure of the newly transformed wavefunction, the MPI can be well implemented. As a result, the simulation could be performed with high accuracy, and in the meantime, impressive parallel efficiency. The code is designed to works on different levels of clusters. The module provides three MPI schemes to adapt the simulation of different kinds of systems and working machines. The default setting will automatically choose the scheme according to the balance of resource consumed and the parallelization efficiency.

Applications of the Module

This module is intended to provide a parallel program for the quantum simulation of general molecular system. Typically, it could be used to calculate the vibrational levels of molecular systems. The general capability of the simulation could be up to tens of degrees of freedom. The code has been applied for the simulation of Malondialdehyde (C_3H_4O_2), which is of 21 degrees of freedom. The parallelization of the code enables the simulation of larger systems.

Building and Testing

The code is compatible with gfortran, mpifort, ifort, pgf90, etc. Building the program requires OpenMPI v2.0 or above. OpenMPI should be built as 64-bit for the simulation of very large system.

  • build with MPI

set makefile:

F90=mpifort
MPICORE=gfortran ! gfortran or ifort according to the compiler for MPI

other main options:

F90=gfortran    ! compile with gfortran
F90=ifort       ! compile with ifort
F90=pgf90       ! compile with pgf90
parallel_make=1 ! enable parallel make with -j argument
OMP=1           ! enable openMP
OPT=1           ! enable code optimization
INT=4           ! 4 or 8 for 32-bits or 64-bits integer
LAPACK=1        ! enable LAPACK
ARPACK=1        ! enable ARPACK
QML=1           ! enable QMLib

To build:

make

To test:

make test

To clean test files

make cleantest

Three MPI schemes will be tested for 6 and 21 degrees of freedom systems. In directory

./Working_tests/MPI_tests

check folders 6D_Davidson_* and 21D_Davidson_* for examples. For more details, see ElVibRot.

Source Code

See the MPI branch of ElVibRot

References

[Tn1]
  1. Lauvergnat, A. Nauts, Phys. Chem. Chem. Phys. 12 (2010) 8405-8412 DOI: 10.1039/C001944E
[Sm1](1, 2)
    1. Smolyak, Dokl. Akad. Nauk SSSR 148 (1963) 1042–1045 http://mi.mathnet.ru/eng/dan27586