Homepage of the CPMCLab Package
CPMCLab
is a Matlab package for the constrainedpath and phaseless auxiliaryfield Monte Carlo methods.
This package implements the full groundstate constrainedpath Monte Carlo (CPMC) method for the Hubbard model in Matlab with a graphical interface.
The package can perform calculations in finite supercells in any dimensions, under periodic or twist boundary conditions. It also includes and illustrates importance sampling and all other algorithmic details of a total energy calculation.
This opensource tool allows users to experiment with various model and run parameters and visualize the results. It provides a direct and interactive environment to learn the method and study the code with minimal overhead for setup.
The package can be easily generalized for auxiliaryfield quantum Monte Carlo (AFQMC) calculations in many other models for correlated electron systems, and can serve as a template for developing a production code for AFQMC total energy calculations in real materials.
Authors
Huy Nguyen, Hao Shi, Jie Xu and Shiwei Zhang.
Licensing

This package is distributed under the Computer Physics Communications NonProfit Use License.

Any publications resulting from either applying or building on the present package should cite the following journal article (in addition to the relevant literature on the method):
Download, Installation and Execution Instructions
Please click here to download the latest version (version 1.0) of the package or click here if you prefer git.
The user must have an active Matlab installation to run the package.
To run the sample script sample.m
in an interactive Matlab session, navigate to the directory containing the script, type sample
and hit Enter or Return. User should feel free to change the input parameters in sample.m
and run the script with these new parameters.
For help, see the header of each file in the package. Alternatively, in an interactive Matlab session, type help filename
at the Matlab prompt.
Package Content:
This package contains 10 source files for the CPMC program, 1 GUI program, and 2 sample scripts for running the program:
CPMC_Lab.m
is the main driver of the package. For every time step, it callsstepwlk.m
to propagate the walkers. When appropriate, it callsmeasure.m
to measure the energy,stlbz.m
to reorthonormalize the walkers orpop_cntrl.m
to do population control. After the end of the random walk, it calculates the final average and standard error of the energy and saves the results to a file.initialization.m
runsvalidation.m
to conduct a basic check on the input parameters and initializes internal quantities, e.g. the total number of sites and electrons. It forms the freeelectron trial wave function and creates the initial population of walkers.validation.m
verifies the basic validity of user inputs, as mentioned above.H_K.m
creates the onebody kinetic Hamiltonian.stepwlk.m
carries out one step of the random walk by callinghalfK.m
,V.m
andhalfK.m
again.halfK.m
propagates a walker by $e^{\Delta\tau K / 2}$.V.m
carries out importance sampling site by site to select the auxiliary fields, and propagates a walker by $e^{\Delta\tau V}$.measure.m
computes the energy of a walker.stblz.m
orthonormalizes walkers by the modified GramSchmidt algorithm.pop_cntrl.m
carries out population control by a simplecombing method.sample.m
is a script that allows users to set input parameters.batchsample.m
is a script that loops over multiple sets of parameters.GUI.m
launches the graphical user interface of the package. It is a standalone file that is independent of all the other files in the package and contains all the subroutines of a QMC run.