A python module for wrapping the example 'ggeom' executable of the quest DQMC (Determinant Quantum Monte Carlo) simulator. It allows to run different temperature calculations in parallel by automatically submitting it through an sbatch script on a cluster. Before the actual simulation is executed, a pre-processing can be performed, and also input parameters can be changed on the fly. The current implemented pre-processing is "calcmu", which calculates the chemical potential for a given filling. This is relevant for non particle hole symmetric systems.
The package comes with an 'mpdqmc.py' script which needs as argument an input file. An example input file is given below. The input file uses the yaml syntax.
#number of processes per node
#NOT supported at the moment
np: 6
#beta range configuration
# mandatory
beta:
logscale: true
start: 0.001
end: 100
steps: 20
#pre-processing
#calculate mu for a given rho
#before simulation
# optional
calcmu:
mu_start: -2.0
mu_end: 2.0
rho: 1.0
epsilon: 1e-6
#parameters for calcmu
params:
nwarm:
value: 100
type: int
npass:
value: 400
type: int
#file prefix this simulation should use
#(all input and output files are assigned
#with this prefix)
# mandatory
prefix: kagome.5x5-U1.
#the maximum dtau value the simulation
#should use. This is important for the
#error (O(dtau^2))
# optional
# default: 0.1
dtaumax: 0.1
#template input file from which all
#simulations are derived if no
#${indir}/${prefix}${beta}.in is given
# mandatory
input: kagome.5x5.in
#the directory in which all logfiles are
#stored. Currently the submission script
#is in charge of logging, which means that
#the output should be pipped into the
#${log} variable
# optional
# default: .
logdir: log
#directory where the input files are stored
#or loaded from
# optional
# default: .
indir: in
#directory where the input files are stored
#before any pre-processing was performed.
#Currently the only pre-processing step is
#calcmu.
# optional
# default: .
predir: pre
#the script which is used for submitting the
#jobs. The current supported grid scheduler is
#sun grid engine (qsub). The script gets the
#variables ${casedir} (root directory of the
#simulations), ${log} (path to logfile) and
#${beta} (temperature)
# mandatory
subscript: sub.qsub
To install PyMPDQMC on your system be sure you have the following requirements
- cmake >= 3.1
- python2
- f2py and f90wrap
- linear algebra library MKL or blas
- OpenMP
- c++ and fortran compiler
The scripts itself uses some python module which should be installed automatically. Make sure you have permissions for that. A way to install it is
mkdir build
cd build
cmake ..
make
make install