The underlying physical laws necessary for the
mathematical theory of a large part of physics and
the whole of chemistry are thus completely
known, and the difficulty is only that the
application of these laws leads to equations much
too complicated to be soluble.
~ P. A. M. Dirac, Proc. Roy. Soc (London) 123:714 (1929)
QMcBeaver is about 72000 lines of an open source,
ANSI compliant, object-oriented (C++) program to perform
Quantum
Monte
Car
lo
calculations on
atoms and molecules.
From the start, our goals have been for our
code
to be licensed using GPL, legible, modular, and modifiable.
We have some old movies to illustrate QMC in presentations, courtesy of Mark Rudner.
First, simulations showing QMC on water and ammonia.
We also show comparisons for using and not using a Jastrow for
Helium (with , without), and
for H2 (with , without).
Finally, QMC in all its randomness.
Here are a few of the specific capabilities and features of our code:
- An efficient initialization routine (Initialization, see publications).
- An efficient statistical decorrelation method (Dynamic Distributable Decorrelation Algorithm (DDDA), see publications).
- An efficient parallelization method (Manager-Worker Parallelization, see publications).
- The ability to run on a GPU (experimental stage, see publications).
- We use various 2 and 3 particle Jastrow functions, including those recommended
here.
- The cusp replacement algorithm recommended here
- Psuedopotentials (VMC works, but I haven't stabilized DMC)
- Analytic first derivatives with respect to all Jastrow parameters, CI coefficients, and MO coefficients.
- The optimization algorithm recommended here. We have
several other optimization routines coded too.
- The DMC algorithm recommended here.
- The future walking method recommended here.
- The atomic force method recommended here.
- A system to checkpoint calculations.
- We've spent quite a bit of effort optimizing the important parts of the code. This statement is almost meaningless however since we have no performance comparisons with
other QMC codes.
- The code has been extensively (and recently) tested with mpicc, gcc, Intel's icc, AIX, Tru64 compilers, and we've played around with a couple others including Cray, Irix, PGI, etc.
- Our code works well with LAMPI, OpenMPI, and MPICH 2, and we get very efficient scaling for 100 to 1000 processors, especially given
our efficient initialization scheme.
- It was designed to be used with LAPACK, GotoBLAS,
ATLAS, linking directly to Fortran.
Interfaces for HDF5 and SPRNG have also been programmed, but
we don't typically use them.
- We scripts to grab wavefunctions from Jaguar and GAMESS
- We provide a couple of scripts to visualize Jastrows & optimization convergence, and QMC run convergence.
Known publications based on our code:
Installation:
Go to the QMcBeaver site at SourceForge.net for more information on QMcBeaver and to download the source code.
We don't update the tar files regularly, so
we recommend obtaining our code through CVS. To do this, Sourceforge recommends the following
2 commands on a command-line:
cvs -d:pserver:anonymous@qmcbeaver.cvs.sourceforge.net:/cvsroot/qmcbeaver login
cvs -z3 -d:pserver:anonymous@qmcbeaver.cvs.sourceforge.net:/cvsroot/qmcbeaver co -P QMcBeaver
Our QMcBeaver/configure.py script should quickly get you up and running on most machines. We have more extensive
instructions
written up.
A list of our recent updates to the code is available here
although you might want to email me (nitroJASTROWamos@yahoo.com minus correlation term) to ask which parts of the code are likely to be unstable and to report bugs.
We also appreciate hearing how our code is being used, and notification of papers we can add to our publications list.
Help:
Our manual (updated 2006) and our doxygen generated
API (updated Jul 5, 2008) are online. If you want to know how a particular input flag is used, you could look here in our API. We're graduating soon, and nobody has yet stepped up to take over the project, so development will slow significantly. However, you can use email address above to contact me, and I'll try to be of some assistance.
Some things our code does not do right now:
- backflow transformations
- basis functions other than Gaussian-type orbitals
- periodic wavefunctions, plane waves
- path integral monte carlo
GPL License Issues:
Please note
that if you release a modified version of our code to the public, you are required to distinguish your version from ours, and you are required to
provide your source code.
Site updated Jul 9, 2008