Module PIM_wd implements the Phase Integration Method (PIM) [Mon1] [Mon2] for the exact sampling of the quantum Wigner distribution in phase space representation. The PIM samples the thermal Wigner density using a generalized Monte Carlo scheme for sampling phase space points. The scheme combines the Penalty [Pen] and Kennedy [Ken] algorithms to sample noisy probability densities. This is necessary because the estimator of the quantum thermal density is not known analytically but must be computed via a statistical average affected by uncertainty. The sampled points are the basis for the calculation of time-dependent correlation function with the PIM algorithm via the module PaPIM. The user is required to provide the potential energy of the system by incorporating an external potential energy subroutine into the PotMod potential energy library.
This module forms the basis for computing the time-dependent cross- and auto-correlation functions with the PIM algorithm. It has been used in the calculation of infrared spectrum and in the gas phase as well as for the computation of infrared spectrum of small water molecule clusters and protonated water dimer system.
Fortran compiler with a MPI wrapper together with
lapack libraries have to be available to successfully compile the code.
The user is advised to examine the
Makefile in the
./source` sub-directory prior to code compilation in order to
select an appropriate compiler and to check or adapt the compiler options to his local environment, or to generally
modify the compiler options to his requirements.
cd source make
Upon adapting the
Makefile, the code compilation is executed by command
make in the
PaPIM.exe is created upon successful compilation.
For PIM_wd test purposes the
numdiff package is used for automatic comparison purposes and should be made
available before running the tests, otherwise the
diff command will be used automatically instead but the user
is warned that the test might fail due to numerical differences.
The user is advised to download and install
numdiff from here.
Tests and corresponding reference values are located in sub-directories
./tests/. The tests are performed over
three systems, the , and . They are located in their corresponding
where each sub-directory contains corresponding classical and quantum input files located in
Before running the tests the code has to be properly compiled by running the
make command in the
The tests are performed automatically by executing the command
./test.sh in the
for all three systems:
cd tests ./test.sh [number of cores]
Tests are by default performed using two processor cores, which can be changed by setting the value of required
cores as an integer number after the command
./test.sh 20, for the use of 20 processor
cores in the test).
The number of processor cores should not exceed 20.
Due to small numerical discrepancies between generated outputs and reference values which can cause the tests to fail,
the user is advised to manually examine the numerical differences between generated output and the corresponding
reference values in case the tests fail.
The PIM_qcf module source code is located at: https://gitlab.e-cam2020.eu:10443/Quantum-Dynamics/PIM/tree/PIM_wd.
The source code documentation can be generated automatically in
html and latex format, by executing the following command in the