Casino Manual
Casino Manual
Casino Manual
init
(x)
0
(x)
t
{
x
The rst step in DMC is to generate these congurations in their initial distribution (i.e. according to
the VMC trial wave function). This is done through a VMC calculation in exactly the same way as
we generated congurations for variance minimization in the previous section. Therefore one should
again set vmc ncong write to be the desired number of congurations, and vmc nstep to be
vmc ncong write. (Setting the decorrelation period vmc decorr period to a higher value than
in VMC is less important than in variance minimization, since the correlations will disappear as the
DMC calculation evolves).
Notethis is a common point of confusionthat the runtype ag should be set to vmc dmc at
the start of a DMC calculation, not, as might be thought, to dmc.
An appropriate number of congurations to use for DMC might be 1,000 or more. You can sometimes
get away with using a few hundred for small systems. Notice that parallelization is automatic
congurations will be distributed among the nodes.
Following conguration generation the distribution of walkers is allowed to propagate in imaginary
time (see e.g. Ref. [8]) according to the DMC rules. During a certain period of equilibration, the
distribution will change until the walkers are distributed according to the ground-state wave function
of the system, subject to the constraint that the wave function has the same nodes as the trial function
that we started with. This part of the process is called DMC equilibration. The best estimate of
the energy will fall from the initial VMC value to around the correct ground-state energy during this
process. After equilibration, the best estimate of the energy will be roughly correct, and we now
16
propagate for a long period of imaginary time in order to accumulate enough energy data to estimate
the DMC energy with a suciently low error bar. This is the statistics-accumulation part.
As usual, the basic output of casino is sent to a le called out. The other important output le is
dmc.hist, which contains the energy and other data as a function of move number (see Sec. 7.9 for
precise denitions of what it contains). The data in this le must be analysed using the reblock
utility, as was done above for the data in the vmc.hist lethere is no equivalent of the ve utility
at present.
The progress of a DMC simulation is easily visualized by means of the utility graphit, which reads
the dmc.hist le and calls the plotting program xmgrace to show you the resulting pretty picture.
Typing graphit will produce something like this:
0 500 1000 1500
Number of moves
-55.8
-55.7
-55.6
-55.5
-55.4
Local energy (Ha)
Reference energy
Best estimate
0 500 1000 1500
1000
1100
1200
1300
1400
1500
POPULATION
This picture shows the results of the simulation of an antiferromagnetic NiO crystal with 1,280 cong-
urations. The upper panel shows how the population uctuates as the simulation progresses. There
is a feedback process in operation to limit the population uctuations, so the population should just
oscillate around the total initial number of congurations that we chose (1,280 in this case). If you
have a colour-printed manual or you are looking at the PDF version, in the bottom panel you will see
a red line, a green line and a wobbly black line. The black line is the instantaneous value of the local
energy averaged over the current population of congurations; the red line is the reference energy E
T
,
which is adjusted to control the feedback process that keeps the population in check; and the green
line is the best estimate of the DMC energy as the simulation progresses.
You should note that, in the picture above, the best estimate of the energy falls from its initial value
(the energy from the VMC conguration-generation run) to a much lower, constant value (around
55.72 a.u.) as the wave function evolves to the ground state. You should look for the point at which
the energy becomes roughly constant (at around 500 moves in this case). This splits the graph quite
neatly into an equilibration phase and a statistics-accumulation phase. When we average energies to
produce the nal energy and error bar, we should only include those moves between 500 and the end
of the run. More detailed information about choosing the number of moves for equilibration is given
17
in Sec. 25.3.
To see DMC in action, go to ~/CASINO/examples/molecules/h2/RHF/dmc/ and lets calculate the
DMC energy of a hydrogen molecule. The input les should already be set up correctly. We
see that an equilibrated VMC run is set to go for vmc nstep= 250 moves in order to produce
vmc ncong write= 250 congurations. For DMC equilibration, we run for dmc equil nstep=
1000 moves, and for the statistics accumulation we run dmc stats nstep= 1000 moves. The
dmc target weight parameter is set to 250.0the same as vmc ncong write, but note that
they are allowed to dier. The dtdmc parameter is the DMC time stepnote that it is much smaller
than the VMC time step (it needs to be small because the DMC Greens function is only exact in
the limit that the time step goes to zero). A typical value in a DMC simulation with all-electron ions
might be 0.002, while a typical value in a simulation with pseudopotentials might be 0.02. Note that
for accurate work, you need to consider extrapolating your DMC results to zero time step (see the
utility extrapolate tau, described in Sec. 12). Now type runqmc.
When casino has nished running, type reblock in the directory containing the dmc.hist le. re-
block will read these les and then starting asking you questions. What units do you want the
answer in? Whatever you want. At which line of dmc.hist do you want to start computing statis-
tics? The move number where the green line in the graphit output becomes approximately constant
(e.g. 501 in the NiO case). Average over how many lines? Usually input 0, meaning use the rest
of the (equilibrated) data in the le, from line 501 to the end in the example above. reblock will
then show you the correlation-time analysis of the errorbar, and start the reblocking analysis, where
you need to choose a block length. Choose a value where the Std err of mean column starts to
plateau (again, the plot reblock utility can help you with this). A value in the thousands might be
typical; the value increases as you reduce the timestep. reblock will then print out the nal DMC
energies and error bars, together with an analysis of the population uctuations, eective time steps
and acceptance ratios.
In the case of molecular hydrogen, the nal energy is 1.1744731 0.00056 a.u. The exact energy
is 1.1744757 a.u., so this result is pretty good without paying particular attention to getting it
absolutely rightthis is due to the system being exactly solvable in DMC due to the lack of nodes in
the wave function.
6.5 How to run the code: RUNQMC
As you may have already gathered, although casino can be run by sitting in a directory containing
input les and typing /CASINO/bin qmc/$QMC ARCH/opt/casino, it is recommended that one run
it using the runqmc shell script provided in the ~/CASINO/utils/runqmc/ directory. This script will
be copied into your path on typing make in ~/CASINO/.
The script is designed to reduce the eort of doing QMC calculations to just entering one command.
It is most useful when using parallel machines with a batch queueing system. It is written to detect
all common errors that a user may make in setting up a calculation, so that the fault is detected
immediately rather than when the batch job starts (which may be many hours later).
7 Files used by CASINO
A complete list of the input les is given in Sec. 7.1, while a corresponding list of the output les is
given in Sec. 7.2. By input les we mean all les that may be read by casino, including les that
may also be written to. By output les we mean those les that are only written to, even where the
data is appended to an existing le.
18
7.1 Complete list of the input les
7.1.1 The principal input les
input This is the main input parameter le.
correlation.data This le contains all optimizable parameters together with accompanying data
(for example, the parameters used to dene a Jastrow factor or backow function).
xwfn.data This le contains the data that denes the geometry, the orbitals and, if appropriate,
the determinant expansion coecients calculated by the generating code. x indicates one
of the various dierent basis sets supported by casino. The lenames supported at present
are: pwfn.data (plane-wave basis), gwfn.data (Gaussian basis), awfn.data (numerical atomic
orbitals on a grid), bwfn.data (blip basis) and stowfn.data (Slater-type orbitals).
bwfn.data.b* When casino rst reads a formatted bwfn.data le, if write binary blips is set to T
then it generates num cpus in group unformatted bwfn.data.b* les, which can be read very
rapidly. Each le contains a dierent subset of the orbitals, because blip orbitals are distributed
over groups of num cpus in group processors.
mpc.data This le contains data used by the model periodic Coulomb (MPC) interaction. This
includes the Fourier components of the charge density corresponding to the Slater wave function
and the Fourier components of the 1/r Coulomb interaction treated within the minimum-image
convention.
config.in This is the le used to store congurations and other data (such as random-number-
generator states) between dierent stages of a calculation (VMC-optimization, optimization-
VMC, VMC-DMC). It also contains data to continue VMC and DMC runs.
x pp.data (where x is the chemical symbol of an element in lower-case letters.) This le contains the
pseudopotential data for the corresponding element.
expval.data This le contains data that allow the estimation of various expectation values. For ex-
ample, this le may contain the charge density, spin density, spin density matrix, pair-correlation
function, localization tensor, structure factor, one-electron density matrix or two-electron density
matrix.
expot.data This le contains a specication of any external potential (for example, the potential for
an inhomogeneous electron-gas calculation, or the potential due to an external electric eld),
and data dening the orbitals associated with such potential.
7.1.2 Other input les
config.backup If a population-explosion catastrophe occurs during a DMC simulation, and the input
keyword dmc trip weight is set, then this le is read and the simulation jumps back to an
earlier point. This le is not read at the start of a DMC simulation, and is not required under
normal circumstances.
7.2 Complete list of the output les
7.2.1 The principal output les
The les listed below are the standard output les, which users are likely to encounter.
out This le contains the main output of casino.
19
correlation.out[.n ] This is the correlation.data le generated by the nth cycle of casinos
optimization procedure.
vmc.hist This le contains all of the energy components calculated during VMC. This le is analysed
using the reblock utility.
dmc.hist This le contains the energy components and important simulation parameters at each
iteration in a DMC simulation. This le is analysed using the reblock utility.
config.out This is the name under which the config.in le is produced. It will be automatically
renamed by runqmc provided config.in does not exist; otherwise, runqmc will alert the user
and exit.
movie.out This le contains the data for making a movie of the simulation.
lineplot.dat This le contains data such as orbital values plotted along a straight line in space.
2Dplot.dat This le contains visualization data given on a 2D plane.
3Dplot.dat This le contains visualization data given over a 3D volume.
7.2.2 Other output les
The les listed below are only likely to be of interest to developers.
local energy.dat This le contains information related to the cusp correction to Gaussian orbitals.
orbitals.dat, gradients.dat and laplacians.dat These les contain information relating to the
cusp correction to Gaussian orbitals.
random.log This le holds information about the state of the random-number generator.
jastrow value u.out, jastrow deriv u.out and jastrow sderiv u.out These les contain the
value, rst derivative and second derivative, respectively, of the u term of the Jastrow factor
with respect to electron separation.
jastrow value chi x.out, jastrow deriv chi x.out and jastrow sderiv chi x.out These les
contain the value, rst derivative and second derivative, respectively, of the term of the
Jastrow factor (for set x) with respect to electronion distance.
jastrow value f x.out This le contains the value of f (for set x) as an electron is moved along a
straight line.
jastrow value p.out This le contains the value of p as an electron is moved along a straight line.
jastrow value q.out This le contains the value of q as an electron is moved along a straight line.
bfconfig.out Dump of conguration used for backow plot.
bfconfigx.out Dump of quasiparticle conguration used for backow plot.
bffield.out Plot of the backow-displacement vector eld on a plane.
bfeta s.out Plot of the backow function for spin-dependence s.
bfmu s set.out Plot of the backow function for spin-dependence s and set set.
bfphi s set.out 3D plot of the backow + function for spin-dependence s and set set (on a
plane).
20
lsqfun.dat Plot of the variance against the value of a parameter. This le can only be produced by
modifying the code.
emin.log Matrix algebra log produced by an energy minimization run.
btilde.log, bhtilde.log, SVD cpts 0.log and SVD cpts 1.log Full matrix logs produced by an
energy-minimization run.
ft of jastrow.dat Fourier transform of u and p terms in Jastrow factor for a periodic system.
7.3 Basic input le: input
The le input contains all the parameters needed to control the QMC calculation. A complete list
of the input parameters is given below. Further details, including default values, may be found by
using the casinohelp utility. Type casinohelp all to get a list of all keywords that casino knows
about, or casinohelp keyword for detailed help on a particular keyword. Type casinohelp search text
to search for the string text in all the keyword descriptions. Create a blank le containing the keyword
input example and type runqmcthis will create a sample input le containing all valid keywords
and their default values in the correct format.
The input le is meant to be very exible and the list of understood keywords can vary with time
without breaking anything. The input le uses an early version of the electronic-structure data format
developed for the castep code. The main points are summarized below. See the comments at the
top of the esdf.f90 module for more information.
Each line is of the form keyword : value. There must be a space either side of the colon.
The parameters are divided into types: string/integer/single/double/physical/boolean.
Variables of physical type must be supplied with a unit, such as hartree, eV, rydberg or
Joules/Megaparsec. All reasonable physical units are understood.
The parameter names are case-insensitive (e.g. RunType is equivalent to runtype) and
punctuation-insensitive (run type is equivalent to run-type and runtype). Punctuation char-
acters are ., and -.
Some of the parameters are of block type, which means that multiple parameters must be
supplied, which may be spread over several lines. See, e.g., qmc plot.
Note that the input le is never written to by casino. Files generated by other codes, which may
contain large amounts of data, are not included in input.
Here is the current list of the input parameters in alphabetical order (a list of obsolete keywords is
given after this). Note that the casinohelp facility is always up to date (it runs casino to nd out
what it knows about)but this manual may not be.
ALIMIT (Real ) Parameter required by DMC drift-velocity- and energy-limiting schemes when
limdmc=2. A value of 1 (the default) is generally appropriate. The DMC energy is insen-
sitive to the precise value of alimit. alimit is ignored if nucleus gf mods is set to T. See Sec.
15.5.
ALLOW AE PPOTS (Logical ) If a user runs casino with pseudopotentials for some ions but not
others, the usual reason is that he or she has forgotten to provide a pseudopotential. Hence
casino stops with an error. However, some users may wish to use the bare Coulomb poten-
tial for e.g. hydrogen ions, while other ions are represented by pseudopotentials. In this case,
allow ae ppots should be set to T.
21
ALLOW NOCHI ATOMS (Logical ) If this keyword is set to T then casino will issue a warning
message when some atoms are not included in any sets of or f terms in the Jastrow factor and
and terms in the backow function. Otherwise, casino halts with an error if some atoms
are not included in these terms.
ATOM BASIS TYPE (Text) This selects the basis set in which the atom-centred orbitals are
expanded, thus choosing which le to read the orbitals from. Possible values are:
none (default) : no atoms are present, so no externally generated orbitals are read in;
plane-wave : use a plane-wave basis set; the orbitals are read in from pwfn.data;
gaussian : use a Gaussian basis set; the orbitals are read in from gwfn.data;
slater-type : use Slater-type orbitals; the orbitals are read in from stowfn.data;
numerical : use orbitals tabulated on a grid (atomic systems only); the orbitals are read in
from awfn.data;
blip : use a blip basis set; the orbitals are read in from bwfn.data.
Some special wave function types are also available:
nonint he : use exact orbitals for a noninteracting helium atom.
For free-particle and external-potential-related orbitals, set atom basis type to none and use
the input block free particles.
BACKFLOW (Logical ) Turns on backow corrections (see Sec. 24). Backow parameters are read
from correlation.data and, if optimized (opt backow = T), written to correlation.out.
BF SPARSE (Logical ) Setting bf sparse to T will result in the Woodbury formula being used to
update the inverse Slater matrices and determinants instead of recomputing the determinants
entirely. This is advantageous only if the backow functions are short-ranged with respect to
the size of the system.
BLIP MPC (Logical ) If blip mpc is set to T and one is using the MPC interaction in a system that
is periodic in all three dimensions and consists of only electrons then the long-range portion of
the MPC potential will be evaluated using blip functions. In some systems setting this to T can
greatly speed up the calculation. The default is F.
BLIP PERIODICITY (Integer) Orbitals expanded in a blip basis can be periodic in zero, one, two
or three dimensions. blip periodicity species the number of dimensions in which the orbitals
are periodic. Note that if blip periodicity is 1 then the system is assumed to be periodic in
the x direction, while if blip periodicity is 2 then the system is periodic in the (x, y) plane.
In all cases, the simulation cell is the parallelepiped dened by the lattice vectors placed at
the origin. Lattice vectors in nonperiodic directions should be orthogonal to lattice vectors in
periodic directions. Note that k points may only be used in periodic directions. See Sec. 11.
BSMOOTH (Logical ) If bsmooth is set to T then localized orbitals are interpolated smoothly to
zero beyond their cuto radius. Otherwise, they are truncated abruptly. See Sec. 27 for more
information. It is recommended that bsmooth be set to F, which is the default.
CEREFDMC (Real ) Constant used in updating the reference energy in the DMC algorithm. See
Sec. 15.4.
CHECKPOINT (Integer) This integer-valued keyword determines how much casino should worry
about saving checkpoint data to config.* les. It can take three values:
2 : save data after every block in VMC and DMC, and save the RNG state in opt runs
1 [default] : as 2, but only save data in VMC after the last block [applicable to vmc opt,
opt vmc and vmc dmc runtypes]
0 : only save data at the end of the run, for continuation purposes
Notice that checkpoint = 0 clashes with the DMC catastrophe-recovery facility, for which each
DMC block needs to be checkpointed. The value of checkpoint is set to 1 regardless of the
input value if dmc trip weight > 0.
22
CHECKWFN (Logical ) Enable a numerical check of the analytic orbital derivatives coded in the
various routines such as gauss per/gauss mol/bwfdet/pwfdet, etc. This is primarily in-
tended to help developers ensure that they have coded up the analytical derivatives of new forms
of wave function correctly.
COMPLEX WF (Logical ) If complex wf is set to T then a complex Slater wave function will be
used. The orbital-evaluation routines will not attempt to construct real orbitals by forming linear
combinations of complex orbitals. It is necessary to set complex wf to T in periodic calculations
if twisted boundary conditions are to be applied or if twist averaging is to be performed. Note
that complex arithmetic is somewhat slower than real arithmetic and hence complex wf should
be set to F wherever possible. Information about the use of twisted boundary conditions can be
found in Sec. 28.
CON LOC (Character) The config.out and config.in conguration-data les are written to and
read from the directory specied by con loc. By default con loc is the directory in which
casino is run.
COND FRACTION (Logical ) If cond fraction is set to T, then an improved estimator of the
spherically averaged two-particle density matrix, from which one-body contributions are sub-
tracted, will be computed. This is currently only available if the system is homogeneous.
CUSP CORRECTION (Logical ) When expanded in a basis set of Gaussian functions, the electron-
nucleus cusp that should be present in all-electron calculations is not represented correctly. How-
ever, when the cusp correction ag is activated, the s-type Gaussian basis functions centred
on each atom are replaced within a small sphere by a function which ensures that the electron-
nucleus cusp condition is obeyed. This procedure greatly reduces uctuations in the local energy
in all-electron Gaussian calculations. See Sec. 18 for more details.
CUSP INFO (Logical ) If cusp correction is set to T for an all-electron Gaussian basis set calcula-
tion, then casino will alter the orbitals inside a small radius around each nucleus in such a way
that they obey the electron-nucleus cusp condition. If cusp info is set to T then information
about precisely how this is done will be printed to the out le. Be aware that in large systems
this may produce a lot of output. Furthermore, if you create a le called orbitals.in con-
taining an integer triplet specifying which orbital/ion/spin you want, the code will print graphs
of the specied orbital, radial gradient, Laplacian and one-electron local energy to the les
orbitals.dat, gradients.dat, laplacians.dat and local energy.dat. These graphs may
be viewed using xmgrace or similar plotting programs. See Sec. 18 for more details.
CUSP THRESHOLD (Real ) If the magnitude of the s component of a Gaussian orbital is less
than this threshold then it will not be cusp corrected. See Sec. 18.
CUSTOM SPAIR DEP (Block) This input block can be used to create new spin-pair groupings
for the Jastrow factor, etc. For example, if one were studying a paramagnetic uid bilayer,
with spin-up and spin-down electrons in one plane (spins 1 and 2) and spin-up and spin-down
electrons on the other plane (spins 3 and 4) then one would want sets of u(r
ij
) terms for same-
plane, same-spin pairs, same-plane, opposite-spin pairs and opposite-plane pairs. Here is an
example:
%block custom_spair_dep
no_spair_deps 1 # Number of custom spin dependences
spair_dep -1 3 # Label (-1,-2,-3,...) and number of spin groups
1-1,2-2,3-3,4-4
1-2,3-4
1-3,1-4,2-3,2-4
%endblock custom_spair_dep
23
To use this spin-pair dependence, the spin-dependence ag in e.g. the u term of the Jastrow
factor in correlation.data would be set to 1. All spin-pairs must be included in a group.
See also custom ssingle dep.
CUSTOM SSINGLE DEP (Block) This input block can be used to create new spin-single group-
ings for the Jastrow factor, etc. Here is an example:
%block custom_ssingle_dep
no_ssingle_deps 1 # Number of custom spin dependences
ssingle_dep -1 2 # Label (-1,-2,-3,...) and number of spin groups
1,2
3,4
%endblock custom_ssingle_dep
To use this spin-single dependence, the spin-dependence ag in e.g. the term of the Jastrow
factor in correlation.data would be set to 1. All spins must be included in a group. See
also custom spair dep.
CUSTOM STRIPLET DEP (Block) This input block can be used to create new spin-triplet
groupings for the Jastrow factor, etc. Since their is no automated generation of spin-triplets,
this block is necessary whenever using a Jastrow H term. Here is an example:
%block custom_striplet_dep
no_striplet_deps 1
striplet_dep -1 3
1=1=3,1=1=4,2=2=3,2=2=4,1=3=3,1=4=4,2=3=3,2=4=4
1=1=1,1=1=2,1=2=2,2=2=2,3=3=3,3=3=4,3=4=4,4=4=4
1=2-3,1=2-4,1-3=4,2-3=4
%endblock custom_striplet_dep
DBARRC (Integer) dbarrc is the number of updates between full recalculation of the cofactor
(DBAR) matrices. Every time an electron move is accepted in VMC or DMC, the DBAR
matrices are updated using the ecient Sherman-Morrison formula (Eq. (26) of Ref. [10]), which
is numerically unstable. As a precaution, the DBAR matrices and determinant are recomputed
from scratch from the orbitals in the Slater matrix every dbarrcN updates. The default value
is 100,000. See Sec. 20.
DENSITY (Logical ) If density is set to T then the charge density is accumulated and written to
the expval.data le. (This can only be done for periodic systems at the moment.) See Sec. 33.
DIPOLE MOMENT (Logical ) If this ag is set then casino will accumulate the electric dipole
moment of a molecule. Use reblock to get the mean value and error bars. See Sec. 33.9.
DMC AVE PERIOD (Integer) Number of consecutive local energies that are averaged together in
DMC before writing them to the dmc.hist le. The only eect of this keyword is reduce the
number of lines in dmc.hist by a factor of 1/dmc ave period.
DMC DECORR PERIOD (Integer) Length of the inner decorrelation loop in DMC. The algo-
rithm will perform dmc decorr period conguration moves between successive evaluations of
expectation values other than the energy. Setting dmc decorr period to a value greater than
1 should reduce the serial correlation of the data. Notice that dmc decorr period diers from
its VMC counterpart in that in DMC local energies are calculated at intermediate steps (they
must), and these additional values are averaged into the energy data. Therefore, for calculations
which do not require expectation values other than the energy, changing dmc decorr period
from 1 to some value x is equivalent to setting multiplying both dmc equil/stats nstep and
dmc ave period by x.
24
DMC EQUIL NBLOCK (Integer) Number of blocks in which the total DMC equilibration run-
length is divided. The value of dmc equil nblock determines how often the output le is
written to.
DMC EQUIL NSTEP (Integer) Total number of DMC steps performed in the DMC equilibration
stage. Notice that this number will be rounded up to the nearest multiple of dmc equil nblock
times dmc ave period.
DMC NTWIST (Integer) Number of random osets to the grid of k vectors (twist angles) to be
sampled during DMC statistics accumulation. If dmc ntwist is 0 then the twist angle is not
changed during DMC. After each change of twist angle, the set of congurations needs to be re-
equilibrated: hence a value needs to be specied for dmc reequil nstep. DMC twist averaging
can only be carried out within casino for HEG uid phases at present. See Sec. 28.
DMC REEQUIL NBLOCK (Integer) Number of blocks in which the total DMC re-equilibration
runlength is divided. Currently, a re-equilibration only takes place when the twist angle is
changed, when doing twist-averaging.
DMC REEQUIL NSTEP (Integer) Total number of DMC steps performed in a DMC re-
equilibration stage. Currently, a re-equilibration only takes place when the twist angle is
changed, when doing twist-averaging. Notice that this number will be rounded up to the nearest
multiple of dmc reequil nblock times dmc ave period.
DMC METHOD (Integer) dmc method selects which version of DMC to use: (1) the particle-
by-particle algorithm; (2) the conguration-by-conguration algorithm. Method 1 is the default.
The DMC algorithm is discussed at length in Sec. 15.
DMC STATS NBLOCK (Integer) Number of blocks in which the total DMC statistics-
accumulation runlength is divided. The value of dmc stats nblock determines how often
the output le is written to.
DMC STATS NSTEP (Integer) Total number of DMC steps performed in the DMC statistics-
accumulation stage. Notice that this number will be rounded up to the nearest multiple of
dmc stats nblock times dmc ave period.
DMC TARGET WEIGHT (Real ) Total target weight in DMC. This is synonymous with target
population, except that dmc target weight is allowed to be a non-integer.
DMC TRIP WEIGHT (Real ) In the course of a DMC simulation, it is possible for a conguration
population explosion to occur. If dmc trip weight is set to 0.0 then nothing will be done
about this. If dmc trip weight> 0 then the algorithm will attempt to restart the block (with a
dierent random number sequence) if the iteration weight exceeds dmc trip weight. A general
suggestion for its value would be three times dmc target weight (but see the discussion later
in the manual about this).
DTDMC (Real ) Time step for DMC run (atomic units). The DMC time step must be small, as
the DMC Greens function is only exact in the limit of zero time step: see Sec. 15. Typically
the DMC time step is about two orders of magnitude smaller than the VMC time step, and
the DMC move-acceptance ratio should be about 99.9%. For accurate work, one must always
investigate time-step bias by plotting the DMC energy against the value of dtvmc. Provided
the time step is suciently small that the root-mean-square distance diused by each particle at
each step is much less than the shortest physically relevant length scale, one can expect to nd
the time-step bias in the DMC energy to be linear; hence it is straightforward to extrapolate
to zero time step. The extrapolate tau utility exists to help with the extrapolation to zero
time step.
25
DTVMC (Real ) Time step for VMC run (atomic units). The form of the VMC transition-probability
density used by casino is discussed in Sec. 14. As described in Sec. 14.4, dtvmc should be
chosen so that the overall move acceptance ratio is close to 50%. In most normal systems, the
appropriate value is between 0.1 a.u. and 0.6 a.u. If dtvmc is given a sensible starting value
(and, for normal systems, anything in this range is sensible), setting opt dtvmc to 1 will cause
the time step to be optimized automatically. For very low-density systems, a much larger value
of dtvmc is appropriate.
DTVMCS (Block) Use this keyword to specify a VMC time step for each particle family explicitly,
as well as to determine whether to optimize each of them individually. The contents of this
block override the values of dtvmc and opt dtvmc. One line is to be written for each family
of particles, the format of each line being:
DTVMC OPT DTVMC
where DTVMC is the value of the time step, and OPT DTVMC can be 0 or 1, indicating
whether to optimize the corresponding time step or not.
E OFFSET (Physical ) This keyword gives a constant shift E
oset
in the total energy per electron
such that the nal result will be E = E
calc
E
oset
. The default is zero. This allows the user
to add any constant contributions to the total energy that are not calculated within casino.
EBEST AV WINDOW (Integer) Averaging window for calculating GS energy during equilibra-
tion. During DMC equilibration the best estimate of the ground-state energy is taken to be
the average local energy over the last ebest av window moves. The default of 25 is usually
sucient.
EDIST BY ION, EDIST BY IONTYPE (Block) The edist by ion block allows ne control
of the initial distribution of the electrons before equilibration starts. The standard algorithm
shares out the electrons amongst the various ions weighted by the pseudo-charge/atomic number
of the ion. Each electron is placed randomly on the surface of a sphere surrounding its parent
ion. There are certain situations, for example a simple crystal with a very large lattice constant,
where the standard algorithm in the points routine may give a bad initial distribution, which
cannot be undone by equilibrating for a reasonable amount of time. This keyword allows a
user-dened set of electron/ion associations to be supplied. The syntax is to supply N
ion
lines
within the block which look like, e.g., 1 4 4, where the three numbers are: the ion sequence
number; the number of up-spin electrons associated with this ion; the number of down-spin
electrons associated with this ion. Alternatively one may use the edist by iontype keyword
block, where you replace the ion sequence number with the ion type sequence number and the
information is supplied only for each particular type of ion.
EMIN AUTO VARMIN (Logical ) EMIN is known to have trouble in the rst cycle of optimizing
a Jastrow factor, where the initial congurations are generated using HF-VMC and the Jastrow
(which only contains a cusp initially) is switched on. Setting emin auto varmin to T (default)
allows the EMIN module to minimize the variance in the rst cycle under such conditions and
then switch back to optimizing the energy in later cycles.
EMIN MIN ENERGY (Physical ) This keyword sets a minimum energy threshold for energy min-
imization, used to reject low-quality wave functions which produce spurious low VMC energy
estimates. The value of emin min energy should (ideally) be set slightly below the ground-
state energy. The ground-state energy is often not known, in which case a good estimate can
sometimes be supplied. If this keyword is not set manually, casino will supply an automatic
guess derived from the preceding VMC run. See Sec. 26.3.6 for more details.
EMIN XI VALUE (Real ) This keyword sets the value of the parameter used to control semi-
orthogonalization in energy minimization. It should rarely be changed by users. See Sec. 26.3
for details.
26
ESUPERCELL (Logical ) By default total energies and their components in periodic systems are
printed as energies per primitive cell. Switching this ag to T forces printing of energies per
simulation cell in the output le.
EWALD CHECK (Logical ) casino and the wave-function generating program should be able to
calculate the same value for the nuclear repulsion energy, given the same crystal structure. By
default casino computes the Ewald interaction and compares it with the value given in the
wave-function le. If they dier by more than 10
5
, then casino will stop and complain. If you
have a justiable reason for doing so (e.g., you have turned o periodicity), you may turn o
this check by setting ewald check to F.
EWALD CONTROL (Real ) This is the percentage increase (from the default) of the cuto radius
for the reciprocal space sum in the Ewald interaction, which is used for calculating electro-
static interactions between particles in periodic systems. Its default value is zero. Increasing
ewald control will cause more vectors to be included in the sum, the eect of which is to
increase the range of the Ewald parameter over which the energy is constant (the default
should lie somewhere in the middle of this range). This need only be done in exceptional
circumstances and the default should be ne for the general user. See Sec. 21.4 for information
about the Ewald method.
EXPOT (Logical ) If expot is set to T then an external potential is read from the le expot.data
and included as a summed contribution to the total energy. See Sec. 7.8.
EXPVAL CUTOFF (Physical ) expval cuto is the energy cuto for G-vectors used in the eval-
uation of expectation values accumulated in reciprocal space (e.g., the density, spin density,
pair-correlation function, etc.). The value of expval cuto is ignored if an expval.data le is
already present, in which case the G-vector set(s) given therein are used instead. If you set it
to zero, then the program will suggest a value. The default is 3 a.u. See Sec. 7.10.
EXPVAL ERROR BARS (Logical ) If this ag is set, casino will, where practicable, accumulate
the additional quantities required to evaluate error bars on requested expectation values. This
will increase the size of the expval.data le and slow down the calculation slightly. At present
this functionality is limited to the structure factor.
EXPVAL KGRID (Block) This block contains a specication of one or more k-point grids dened in
one, two or three dimensions. A one-dimensional grid is dened by a line AB, a two-dimensional
grid by a plane ABAC and a three-dimensional grid by a parallelepiped ABACAD, together
with an appropriate number of k-points along each direction. These grids may be used in the
calculation of various expectation values, if the appropriate keywords are set to T in input. The
block consists of the following lines:
Line 1: Number of grids dened in this block;
Line 2: Which expectation value uses this grid? (2 for spherical structure factor);
Line 3: Dimensionality d of current k-grid (13);
Line 4: Coordinates of k-point A (a.u.);
Line 5: Coordinates of k-point B (a.u.), number of points along AB;
Line 6: [If d = 2 or 3] Coordinates of k-point C (a.u.), number of points along AC;
Line 7: [If d = 3] Coordinates of k-point D (a.u.), number of points along AD.
Repeat lines 2 to 7 for each additional grid.
Note that spherically averaged quantities require a one-dimensional grid, irrespective of the
dimensionality of the system.
FINITE SIZE CORR (Logical ) Calculate nite-size corrections to the kinetic energy and the
electron-electron interaction energy in periodic systems using the method described in Ref.
[11]. See Secs. 29 and 30 for further information.
27
FIX HOLES (Logical ) This keyword is used to dene the reference points for the exciton-exciton
separation when using the BIEX3 wave function. Setting x holes to T means that the two
holes are xed at a distance xx sep apart. The default is F, in which case the centres of mass
of the two excitons are xed instead. If BIEX3 is not being used then this keyword is ignored.
FORCES (Logical ) Calculate atomic forces in VMC/DMC. Forces are only implemented for Gaus-
sian basis sets and only work in pseudopotential calculations (in order to eliminate the electron-
nucleus singularity).
FORCES INFO (Integer) Controls the amount of information calculated/displayed during force
calculations:
2 : display no additional information; the Hellmann-Feynman force is evaluated with the d-
channel of the pseudopotential chosen to be local and the s-d and p-d channels nonlocal (default);
5 : calculate and display two additional Hellmann-Feynman force estimators, where the s- and
p-channels of the pseudopotential components are chosen to be local.
FREE PARTICLES (Block) This block sets the parameters that dene the behaviour of the or-
bitals which are not atom-related in a system. The geometry of the system can be given using r s
r
s
), dimensionality d), cell geometry (followed by d lines with d reals corresponding to the
unscaled cell vectors) and z-separation z) (only for 2D; assign particles to the top layer using
top-layer p
1
) [p
2
) [. . . ]]). These parameters are only required if atom basis type=none
(which it is by default) in the input le). The number and type of the orbitals can be given
using lines with the syntax particle i) det det) : n) orbitals orb) [orb-options], where det)
is the term in the multideterminant expansion, i) must be 1, 2 or a number given in the parti-
cles block (1 and 2 are up- and down-spin electrons), n) is the number of free particles/orbitals
belonging to the det)th determinant and orb) [orb-options] is one of the following: free,
crystal sublattice s), pairing j), sdw or expot )set, j) being the particle type with
which i) is paired and )set being an orbital set in expot.data. If the orbitals have optimiz-
able parameters, these must be provided in correlation.data. Wigner-crystal geometry is
specied using the keywords crystal type type) n) sublattice[s] [repeat r)] (type = cubic,
fcc, bcc, rectangular, hexagonal or triangular, which must match dimensionality and
cell geometry, or manual), and sublattice s) [antiferro[magnetic]] oset x y z) for prede-
ned lattices, and sublattice s) manual n) site[s] followed by n) lines of the form x y z)
dening the sites for manual lattices. If a complex wave function is used, i.e., complex wf is
set to T, then an oset to the grid of k vectors for uid phases may be specied using k oset
k
x
) k
y
) k
z
), where k
x
, k
y
and k
z
are the Cartesian components of the oset. The oset is
translated into the rst Brillouin zone of the simulation cell. Using a nonzero oset corresponds
to using twisted boundary conditions. Its not quite as dicult to use this input block as it
may appear from the above: see the examples in ~/CASINO/examples/electron phases and
~/CASINO/examples/electron hole phases.
FUTURE WALKING (Logical ) If this ag is set to T then future walking will be used to evaluate
pure estimators in DMC. See Sec. 35.
GAUTOL (Real ) Tolerance for Gaussian orbital evaluation. The contribution of a Gaussian is
neglected if its value is less than 10
gautol
.
GROWTH ESTIMATOR (Logical ) Turn on calculation of the growth estimator of the total energy
in DMC calculations. A statistically signicant dierence between the mixed estimator and the
growth estimator for the energy normally implies the presence of time-step bias. Other than
that, the growth estimator is not generally useful, because the statistical error in the growth
estimator is substantially greater than the error in the mixed estimator. See Sec. 15.8 for more
information.
IBRAN (Logical ) If set to T then weighting and branching is allowed in DMC. Setting ibran=F
may be used to check the DMC algorithm, as it then reduces to a VMC algorithm in which the
DMC drift-diusion Greens function is the transition probability density.
28
INITIAL CONFIG (Block) Use this keyword if you want to specify the initial VMC conguration
to use instead of the random one generated by the points routine. It is possible to specify the
positions of only some of the particles. The format of each line in this block is:
i x y z
where is the spin index of the particle, i is the index of the particle within its spin channel
and (x, y, z) is the position of the particle.
INPUT EXAMPLE (Logical ) If input example is T then an example of a casino input le with
all currently known keywords and their default values will be written out. A modied version
of this can be used as an input le in future runs.
INT SF (Logical ) If int sf is set to T then the electron-electron interaction energy for a periodic
system will be calculated in terms of the structure factor. The structure factor should either
have been accumulated in a previous run and stored in an available expval.data le, or its
accumulation should be agged for the current run. Using this method the total interaction en-
ergy can be separated into Hartree and exchange-correlation terms. This feature is not currently
documented in the manual.
INTERACTION (Integer) Type of interaction between particles. interaction can take the follow-
ing values:
none : noninteracting particles;
coulomb : Coulomb interaction;
ewald : periodic Coulomb interaction computed using Ewald summation;
mpc : periodic Coulomb interaction computed using the model periodic Coulomb (MPC)
method;
ewald mpc : compute and report both Ewald and MPC results, but use Ewald in DMC prop-
agation;
mpc ewald : compute and report both Ewald and MPC results, but use MPC in DMC propa-
gation;
manual : compute a user-dened interaction (see the manual interaction block input key-
word);
The values coulomb and ewald can be used interchangeably, although coulomb should strictly
refer to aperiodic systems and ewald to periodic systems.
The MPC interaction is generally signicantly faster than the Ewald interaction and should give
smaller nite-size eects. The MPC interaction is not currently implemented for 1D systems,
however. Furthermore, we recommend using ewald mpc rather than mpc or mpc ewald, as
there is some evidence that the MPC interaction can distort the exchange-correlation hole. See
Sec. 21.4 for information about the Ewald interaction, Sec. 21.4.4 for information about the
MPC and Sec. 22 for information about manual interactions.
ISOTOPE MASS (Real ) This keyword can be used to dene a nuclear mass (in amu) if you need
to override the default value used in casino (which is averaged over isotopes according to their
abundances). The default (given in the table in Sec. 32) is used if isotope mass is set to zero.
The atomic mass unit (amu) in this sense means the ratio of the average mass per atom of the
element to 1/12 of the mass of
12
C. This is only relevant if relativistic is set to T. See Sec. 32.
JASBUF (Logical ) If jasbuf is T then the one-body ( and q) terms in the Jastrow factor for each
electron in each conguration are buered in DMC: this saves time at the expense of memory.
Clearly this will have no eect in systems without one-body terms in the Jastrow factor.
JASTROW PLOT (Block) This utility allows the user to plot the u(r
ij
), (r
i
), f(r
i
, r
j
, r
ij
), p(r
ij
)
and q(r
i
) terms in the Jastrow factor. The rst line is a ag specifying whether the Jastrow
factor is to be plotted (0=NO, 1=YES); the second line holds the spin of particle i; the third
line holds the spin of particle j; the fourth line holds the (x, y, z)-position of particle j; the fth
line holds a vector with the direction in which i is moved; and the sixth line holds the position
29
vector of a point on the straight line along which electron i moves. The nucleus is assumed
to lie at the origin. All lines must be present, even if only is to be plotted: the redundant
information about particle j will be ignored. If is plotted then jastrow value chi ?.out,
jastrow deriv chi ?.out and jastrow sderiv chi ?.out contain the value, derivative and
second derivative of (r
i
) against r
i
for each set of terms. Likewise for u. If f is plotted, the
jastrow value f ?.out les contain the value of f against the distance from the point given in
line 6. Likewise for p and q. All terms present in the Jastrow factor in correlation.data will
be plotted. If wave-function optimization has gone wrong, a common indication is that u(r
ij
)
does not increase monotonically to 0. If you encounter unexpected population-control problems
in DMC, this is a good test to apply. See Sec. 23.1 for information on casinos Jastrow factor.
KE FORGIVE (Logical ) casino performs numerical tests to determine whether the kinetic energies
computed during the run will be correct. If ke forgive is set to F, casino will regard this as
an error and stop. The default is T. Note that although the procedure is generally stable, there
may be cases in which poor numerics causes failures. See also ke verbose.
KE VERBOSE (Logical ) casino performs numerical tests to determine whether the kinetic energies
computed during the run will be correct. Such tests are carried out after VMC equilibration,
and will only produce concise output about the outcome. However, if the ag ke verbose is
set to T, casino will print out information throughout the process. The default is F. See also
ke forgive.
KWARN (Logical ) The kwarn ag is relevant only in calculations using a plane-wave basis set. If
the ag is set to T, then casino will issue a warning whenever the kinetic energy calculated
from the supplied orbitals diers from the DFT kinetic energy given in the pwfn.data le by
more than an internal tolerance (usually set to 10
6
). If the ag is F, then casino will stop
with an error message on detecting this condition. Note that in cases where the DFT calculation
which generated the orbitals used fractional occupation numbers, the kinetic energy mismatch
is very likely to occur since QMC deals in principle only with integer occupation numbers, hence
the existence of this ag. Furthermore, the calculation of the kinetic energy is based on the
assumption that the orbitals are orthogonal; hence kwarn should be set to F if nonorthogonal
localized plane-wave orbitals are used.
LCUTOFFTOL (Real ) This is used to dene the cuto radius for the local part of the pseudopo-
tential. It is the maximum deviation of the local potential from Z/r at the local cuto radius.
See Sec. 21.3.
LIMDMC (Integer) Set modications to Greens function in DMC (see Sec. 15.5). May take values:
0: no modications applied;
1: Depasquale et al. scheme [12];
2: Umrigar et al. scheme [13].
We recommend the limiting scheme of Umrigar et al., which is the default. This scheme must
be used if the nucleus gf mods ag is set to T.
LOC TENSOR (Logical ) If loc tensor is set to T then the localization tensor will be accumulated
in the expval.data le. See Sec. 33.
LWDMC (Logical ) Use the weighted DMC algorithm: allow conguration weight to vary between
wdmcmax and wdmcmin before killing or branching occurs: see Sec. 15.4.
LWDMC FIXPOP (Logical )Interpret WDMCMIN and WDMCMAX as relative weights, eec-
tively xing the population to target population while allowing the weight to uctuate inde-
pendently.
MAKEMOVIE (Logical ) Plot the particle positions every movieplot moves (see Sec. 13).
30
MANUAL INTERACTION (Block) When interaction is set to manual, this block is used to
specify the form and parameters of the desired interaction. The format is either
square well : Height, Width
or
poschl teller : V 0, mu
where Height, Width, V
0
and are parameters describing the shape of the potential. A
negative Height or V
0
implies a potential well. See Sec. 22.
MAX CPU TIME (Physical ) If the CPU time elapsed since the start of a simulation exceeds
max cpu time and a suitable point in the algorithm is reached, then casino will halt gracefully.
This should make it easier to carry out multiple runs on a computer with a queueing system.
max cpu time is a physical parameter with dimensions of time.
MAX REAL TIME (Physical ) If the wall-clock time elapsed since the start of a simulation exceeds
max real time and a suitable point in the algorithm is reached, then casino will halt gracefully.
This should make it easier to carry out multiple runs on a computer with a queueing system.
max real time is a physical parameter with dimensions of time.
MAX REC ATTEMPTS (Integer) This is the maximum number of times that DMC will attempt
to restart a block if it continues to encounter population-explosion catastrophes. Relevant only
if the dmc trip weight keyword is set to a nonzero value. See the discussion in Sec. 15.9 for
more details.
MOLGSCREENING (Logical ) Toggle on and o the use of screening in Gaussian basis set calcu-
lations of molecules, i.e., the division of space into boxes and the preparation of lists of which
Gaussian basis functions have a signicant weight in each box. The use of screening should
speed up the calculation of large molecules. The screening information can take up a reasonable
amount of memory; hence the existence of this keyword.
MOM DEN (Logical ) If set to T the momentum density will be accumulated. Exclusively for HEGs
at the moment.
MOVIECELLS (Logical ) If F then casino will plot the unit cell when making a movie; if T then
nearest-neighbour cells in the (x, y)-plane will also be written (see Sec. 13).
MOVIENODE (Integer) Plot the particle positions on processor movienode (see Sec. 13).
MOVIEPLOT (Integer) Plot the particle positions every movieplot moves (see Sec. 13).
MPC CUTOFF (Physical ) mpc cuto is the energy cuto for G-vectors used in (a) the FFT
of the MPC interaction and (b) the FFT of the one-particle density required when generating
the mpc.data le. The program will suggest a value for mpc cuto if the existing value is
unsuitable, or if the user inputs a value of zero. The default is 30 a.u. See Sec. 21.4.4.
NEIGHPRINT (Integer) neighprint= n will generate a printout of the rst n stars of neighbours
of each atom in the primitive cell, with the relevant interatomic distances given in both
Angstrom
and a.u. If n = 0 or if you have an atom-free electron or electron-hole uid phase, then the
keyword has no eect. Note that activating cusp corrections when using a Gaussian basis (the
default) will trigger a neighbour analysis irrespective of the value of this keyword.
NEU, NED (Integers) Number of up-spin and down-spin electrons.
NEWRUN (Logical ) Species whether a new run or a continuation of an old one is to be performed:
T: (VMC) Start a new run;
(DMC) Read old VMC congurations and recalculate the current best estimate
of the ground-state energy as the mean of the conguration energies;
F: (VMC) Continuation of an old run. Read in old congurations;
(DMC) Continuation of an old run. Do not recompute the current best estimate
of the energy.
31
NLCUTOFFTOL (Real ) This is used to dene the cuto radius for the nonlocal parts of the
pseudopotential. It is dened as the maximum deviation of the nonlocal potentials from the
local potential at the nonlocal cuto radius. See Sec. 21.3.
NON LOCAL GRID (Integer) non local grid selects the grid for nonlocal integration, ranging
from coarse (low non local grid value) to ne (high non local grid value). The value is
assumed to be the same for all atoms if it is controlled through this keyword; alternatively you
can provide values of non local grid for particular species by specifying values for nlrule1 at
the top of the corresponding pseudopotential les. non local grid can take values between 1
and 7, the default being 4. See Sec. 21.2 for more information.
NPCELL (Block) Vector of length three giving the number of primitive cells in each dimension that
make up the simulation cell. N.B., for the 1D periodic case, npcell(2) and npcell(3) must be
1; for 2D slab case npcell(3) must be 1.
NUCLEUS GF MODS (Logical ) This keyword is the switch for enabling the use of the modi-
cations to the DMC Greens function for the presence of bare nuclei, suggested in Ref. [13], in
order to reduce time-step errors in all-electron calculations. See Sec. 15.6.
NUM CPUS IN GROUP (Integer) Single-particle orbitals that appear in the determinants can
require a great deal of memory when expanded in a blip basis. num cpus in group species
the number of CPUs in a group that share the blip orbitals. The allowed values are powers of
2. The default is 1. This parameter is only relevant when the atom basis type=blip.
ONEP DENSITY MAT (Logical ) If onep density mat is set to T, then the spherically averaged
one-particle density matrix will be computed and written to the expval.data le. This is only
available if the system is homogeneous for the moment. See Sec. 33.
OPT BACKFLOW (Logical ) Optimize backow parameters in wave-function optimization. See
Sec. 24.
OPT CYCLES (Integer) Number of cycles of conguration generation and optimization to be car-
ried out if runtype=vmc opt or opt vmc. For variance minimization, 36 cycles is typical;
for energy minimization, 510 cycles is usual unless only determinant coecients are being
optimized, in which case 12 cycles will be enough.
OPT DET COEFF (Logical ) Optimize the coecients of the determinants in wave-function opti-
mization.
OPT DTVMC (Integer) This keyword may take two possible values: opt dtvmc=0 (default) turns
o optimization of the VMC time step, while opt dtvmc=1 causes the time step to be optimized
during equilibration in order to achieve an acceptance ratio of (roughly) 50%. See Sec. 14.4.
OPT FIXNL (Logical ) If this keyword is set to T then the nonlocal energy will be xed where
possible in optimization. This is recommended for variance minimization (and T by default)
as it greatly improves the speed of the optimization process, and possibly the accuracy of the
optimization as well. For energy minimization, it is F by default, as the speed increase is small.
OPT INFO (Integer) Controls amount of information displayed and/or written out during wave-
function optimization. Variance minimization: (1) display no information; (2) display energies
at each function evaluation; (3) as (2), but calculate weights as well; (4) write out congurations
and their energies, etc., as they are read in. Energy minimization: (1) little information; (2)
basic information; (3) full information, write matrix algebra log le ; (4) also write full matrices
to log les; (5) also write SVD component matrices to log les, if SVD used.
OPT JASTROW (Logical ) Optimize the Jastrow factor in wave-function optimization.
32
OPT MAXEVAL (Logical ) Maximum number of evaluations of the variance during variance min-
imization (default 200).
OPT MAXITER (Integer) Largest permitted number of nl2sol or global EMIN iterations (de-
fault: 10).
OPT METHOD (Text) There are currently four optimization methods implemented in casino:
(1) variance minimization (varmin); (2) minimization of the mean absolute deviation of the
set of local energies from the median (madmin); (3) energy minimization (emin); (4) an
accelerated variance minimization technique for parameters that appear linearly in the Jastrow
factor (varmin linjas). The rst three methods are capable of optimizing the Jastrow factor,
orbitals, backow functions, and determinant coecients. The fourth method can only be used
to optimize linear parameters in the Jastrow factor. There are other keywords that aect the
behaviour of each of these methods. The default value of opt method is varmin.
OPT NOCTF CYCLES (Integer) Supplying a positive integer X for this keyword will cause all
cuto parameters (in the Jastrow factor, backow function and orbital functions) to be xed for
the nal X cycles of an optimization. Defaults to 0 for variance minimization, and to 50% of
total cycles for energy minimization.
OPT ORBITALS (Logical ) Optimize parameters in the orbitals in wave-function optimization.
Depends on use orbmods=T.
OPT STRICT (Logical ) Setting opt strict=T will cause casino to stop a vmc opt or opt vmc run
if the VMC energies are incremented within a 99.7% condence interval during two consecutive
cycles. Prevents wastage of CPU time in times of scarcity. Default value is F.
ORB NORM (Real ) Allows user to change normalization of orbitals by multiplying all of them by
this constant. Of course this should have no eect on the energy, but it can be useful if the
Slater determinant starts going singular, as it might for some very low-density systems.
ORBBUF (Logical ) Setting orbbuf =T turns on orbital buering in DMC. This is an eciency
device in which buered copies of orbitals/gradients/Laplacians are kept for later reuse. This
has a signicant memory cost. Orbital buering should always be used unless you start running
out of memory; hence the ability to turn it o.
PAIR CORR (Logical ) Set pair corr to T to accumulate the reciprocal-space pair-correlation func-
tion in the expval.data le. Currently restricted to periodic systems. Note that you also need
to give the position and type of a xed particle using the pcf rx block (unless the density is
homogeneous). See Sec. 33.
PAIR CORR SPH (Logical ) If pair corr sph is set to T then the spherically averaged real-space
pair-correlation function will be accumulated in the expval.data le. Note that for periodic
systems with inhomogeneous density you also need to give the position of a xed point using
the xed e pos block. See Sec. 33.
PARTICLES (Block) Using the particles block the user can dene quantum particles (other than
electrons, which can be introduced using neu and ned) to be used in the QMC calculation.
The format of each line is i) charge/[e[) mass/m
e
) spin/h) name). A negative value of
the mass indicates that the following three lines give an anisotropic 3 3 mass tensor [currently
unused]. casino decides whether each particle type is a fermion or a boson (based on the spin),
and selects the appropriate way to combine the one-particle orbitals (symmetric combination
[not currently implemented] or antisymmetric Slater determinants). The particles dened here
can be assigned orbitals using the free particles block.
PCF RFIX (Block) This block contains two lines. The rst line gives the type of particle to be
xed during accumulation of the pair correlation function g(r, r
l=1
p
l
exp(ik
l
r) , (2)
where the optimizable parameters are the linear p
l
coecients. The k
l
vectors are the recip-
rocal lattice vectors of the simulation cell. Notice that the coecients for all plane waves in
the same star are constrained to be the same (they need not be supplied more than once in
correlation.data).
The Gaussian pairing orbital is
(r) =
N
g
l=1
l
exp(
l
r
2
) , (3)
where
l
and
l
are the optimizable parameters. One can optionally constrain the parameters
so that they correspond to the Gaussian expansion of an exponential,
(r) exp (r/R
ex
) , (4)
in which case R
ex
is the only optimizable parameter, and the
l
and
l
are varied accordingly.
The polynomial pairing orbital is
(r) =
_
L
p
r
L
p
_
C
p
N
p
n=0
a
n
r
n
, (5)
where N
p
and C
p
are the order and truncation order of the polynomials, respectively, L
p
is the
cuto radius and a
n
are the polynomial coecients.
The Slater pairing orbital is
(r) =
N
S
s=1
c
s
exp
_
a
s
r
2
1 +b
s
r
_
+
N
P
p=1
(C
p
r) exp
_
A
p
r
2
1 +B
p
r
_
(6)
where N
S
and N
P
are the orders of the S-type and P-type expansions, respectively, and c
s
, a
s
,
b
s
, C
p
, A
p
and B
p
are optimizable parameters.
If more than one of these forms is dened inside the PAIRING section of the FREE ORBS block
in correlation.data, they are added together to form the nal orbital. In the following example all
four forms are combined.
START PAIRING
Spin-pair dependence (CURRENTLY HAS NO EFFECT)
0
54
START PLANE-WAVE TERM
Number of plane waves
3
Parameter ; Optimizable (0=NO; 1=YES)
1.3 1
2.0 1
2.1 0
END PLANE-WAVE TERM
START GAUSSIAN TERM
Number of Gaussians
3
Fit to exponential
F
Parameter ; Optimizable (0=NO; 1=YES)
0.132550237642873 1 ! g_1,1
0.534558971701745 1 ! exp_1,1
-0.193823021668688 1 ! g_2,1
1.057634525976201 1 ! exp_2,1
0.532728037567208 1 ! g_3,1
1.821074256123948 1 ! exp_3,1
END GAUSSIAN TERM
START POLYNOMIAL TERM
Order of polynomials
3
Truncation Order of polynomial
3
Parameter ; Optimizable (0=NO; 1=YES)
0.774223432432566 1 ! L_p
0.345435431123389 1 ! alpha_0,1
6.477832908479002 1 ! alpha_2,1
5.666348347747839 1 ! alpha_3,1
END POLYNOMIAL TERM
START SLATER TERM
Order of S-type expansion
1
Order of P-type expansion
1
Parameter ; Optimizable (0=NO; 1=YES)
0.999999304258297 0 ! S_c_1,1
1.12494764624888 1 ! S_a_1,1
1.29982910271845 1 ! S_b_1,1
0.000000000000000E+000 0 ! P_c_1,1,1
0.000000000000000E+000 0 ! P_c_2,1,1
1.004203030584676E-003 1 ! P_c_3,1,1
0.872921256476300 1 ! P_a_1,1
0.971277687984812 1 ! P_b_1,1
END SLATER TERM
END PAIRING
7.5 Pseudopotential le: xx pp.data
casino can carry out all-electron or pseudopotential calculations, but it is normally advantageous
to replace the core electrons by a pseudopotential. casino will automatically treat an atom as all-
electron unless there exists a pseudopotential le xx pp.data in the directory in which casino is run,
where xx is the symbol for the element in question in lower case. This le contains the dierent angular
momentum components of the pseudopotential given on a radial grid and some auxiliary information
in the following format:
55
LSDA Pseudopotential in real space for Si
Atomic number and pseudo-charge
14 4d0
Energy units (rydberg/hartree/ev):
rydberg
Angular momentum of local component (0=s,1=p,2=d.)
1
NLRULE override (1) VMC/DMC (2) config gen (0 ==> input/default value)
0 0
Number of grid points
2476
R(i) in atomic units
0.000000000000000E+000
7.178690774405650E-012
.
39.6567798705125
40.0553371342383
r*potential (L=0) in Ry
0.000000000000000E+00
0.131424063731862E-10
.
-8.00000000000000
-8.00000000000000
r*potential (L=1) in Ry
0.000000000000000E+00
-0.574393968349227E-10
.
-8.00000000000000
-8.00000000000000
r*potential (L=2) in Ry
0.000000000000000E+00
-0.128711823920867E-09
.
-8.00000000000000
-8.00000000000000
Core-polarization terms
0.1650 0.5446 ! alpha (a.u.) rbaree (a.u.) usually set to 0.5*(rbars+rbarp)
0.5216 0.5676 0.7172 ! rbar for s,p,d (a.u.)
The nlrule parameters control the grid on which the angular integration is performed (see Sec. 21.2)
and are normally specied in the le input. The values given in input are the default for all atoms
in the system but they can be overridden for particular elements by setting the parameters in this le
to nonzero values. Unless you explicitly wish to use a core polarization potential (see Sec. 21.3), the
few lines at the bottom relating to this should be omitted.
casino pseudopotential library: www.tcm.phy.cam.ac.uk/mdt26/casino users.html
7.6 MPC-interaction le: mpc.data
This contains the Fourier transform of the function f(r) dened in Sec. 21.4.4. It is required when
using the model periodic Coulomb (MPC) interaction to compute the electron-electron interactions.
Before doing a QMC calculation with the MPC interaction, this le should be generated from the
trial wave function given in the [x]wfn.data le by using runqmc to run casino with runtype set
to gen mpc in the input le. The data can be visualized in real space using the supplied plot mpc
utility.
56
The format of the mpc.data le is as follows:
START MPC DATA
Title
Title of system goes here
File version
1 [this should be an integer that signifies spec version]
START DENSITY DATA
Self consistent charge density in reciprocal space
Real space primitive cell translation vectors (au)
PA1X PA1Y PA1Z
PA2X PA2Y PA2Z
PA3X PA3Y PA3Z
Number of atoms in the primitive cell
nbasis
Positions of atoms (au)
atno(1) basis(1,1) basis(2,1) basis(3,1)
atno(2) basis(1,2) basis(2,2) basis(3,2)
...
atno(n) basis(1,n) basis(2,n) basis(3,n)
Energy cutoff used for G-vectors (au)
energy_cutoff
Number of particle types (1=electrons,2=electrons/holes)
2
Number of G-vectors
den_ngvec
G-vectors (au)
gvec(1,1) gvec(2,1) gvec(3,1)
gvec(1,2) gvec(2,2) gvec(3,2)
...
gvec(1,n) gvec(2,n) gvec(3,n)
START SET 1
Particle type
1
Complex charge density (real part, imaginary part)
Re{den_sc(1)} Im{den_sc(1)}
...
Re{den_sc(n)} Im{den_sc(n)}
END SET 1
START SET 2
Particle type
2
Complex charge density (real part, imaginary part)
Re{den_sc(1)} Im{den_sc(1)}
...
Re{den_sc(n)} Im{den_sc(n)}
END SET 2
END DENSITY DATA
START EEPOT DATA
Real space simulation cell translation vectors (au)
A1X A1Y A1Z
A2X A2Y A2Z
A3X A3Y A3Z
Multiples of primitive translation vectors
2 2 2
Energy cutoff used for G-vectors
57
energy_cutoff
Number of G-vectors
eepot_ngvec
G-vectors (au) and Fourier coefficients
gvec(1,1) gvec(1,2) gvec(1,3) fg(1)
gvec(2,1) gvec(2,2) gvec(2,3) fg(2)
...
gvec(n,1) gvec(n,2) gvec(n,3) fg(n)
END EEPOT DATA
END MPC DATA
Notes:
1. The le version is an integer, which is always increased if the specication for this le changes.
2. The charge-density Fourier coecients may be complex.
3. The EEPOT Fourier coecients must be real (by denition).
4. This format allows for the existence of dierent types of particles.
5. Both the primitive-cell and simulation-cell translation vectors are included so that consistency
checks can be made. Furthermore, this allows the data to be scaled appropriately if they are
reused for a system of dierent size.
6. The normalization of the density should be such that the G = 0 component is equal to the
number of particles per primitive cell. This makes the density independent of simulation-cell
size.
Note: it is not necessary to regenerate this le for dierent supercell sizes, provided the lattice vectors
in the EEPOT set are obtainable from the lattice vectors in [x]wfn.data through scaling by a single
parameter.
7.7 Orbital les: awfn.data, bwfn.data, gwfn.data, pwfn.data and
stowfn.data
These les contain the geometry and the orbital and determinant data produced by the wave-function
generating code. The data can be given in a Gaussian basis set (gwfn.data), in a plane-wave basis
set (pwfn.data) or in a blip function basis set (bwfn.data). The awfn.data le contains a trial wave
function for an atom with the orbitals given explicitly on a radial grid.
Without going into details of specic formats, the les basically contain the following information:
Basic information about the trial wave-function generating calculation (e.g., DFT/HF/etc.),
including total energy and components;
Geometry of the system;
Details of the k-space net used by the program that generated the trial wave function (only if
the systems is periodic);
Details of the basis set:
Exponents, contraction coecients and shell types (Gaussians);
G-vectors of the plane waves;
Blip grid;
58
Multideterminant properties of the trial wave function (if any);
Specication of the orbitals:
Gaussian coecients;
Plane-wave coecients;
Blip coecients;
Eigenvalue spectrum (used to work out which orbitals to occupy and, crudely, whether the
system is a metal or an insulator);
The output le from the program that generated the trial wave function (not read by casino
for reference only).
These les are generated automatically by various utilities available for dierent electronic structure
programs (see Secs. 8, 9, 10.1 and 11). The format of the dierent les should be clear from looking
at the various examples for dierent dimensionalities and basis sets.
If correlated sampling is introduced into casino, it may be necessary to dene several xwfn.data
les. These will be named xwfn.data.1, xwfn.data.2, xwfn.data.3, . . .
7.7.1 gwfn.data le specication
The gwfn.data le contains orbitals expanded in a Gaussian basis set. The original specication is
below, followed by an actual example:
Dimensions of allocated arrays are shown.
For the larger fields I use the following formatting.
% strings (title,code,method,functional) may be up to 80 characters long.
* free format
$ FORMAT(3(1PE20.13)) - for reals naturally grouped in triples (e.g. coords)
& FORMAT(4(1PE20.13)) - other reals (e.g. gaussian exponents)
@ FORMAT(8I10) - lengthy lists of integers
use e.g. write(IO,format=&)(array(i),i=1,size)
First line of file is TITLE field.
MDT 1997
------------------------------------------------------------------------------
% TITLE (the title)
BASIC INFO
----------
% CODE:
name of code producing this file
(i.e. CRYSTAL95, CRYSTAL06, GAUSSIAN94, GAUSSIAN98, GAUSSIAN03, TURBOMOLE)
% METHOD:
Comment - RHF/ROHF/UHF/DFT/S-DFT/CI/etc.
% FUNCTIONAL
DFT functional name. If method not DFT then none.
* PERIODICITY:
system dimension 0,1,2,3 => molecule, polymer, slab, solid
59
* SPIN_UNRESTRICTED:
.true. or .false. (i.e. different orbitals for different spins)
* EIONION:
nuclear-nuclear repulsion energy (au/atom)
* NUM_ELECTRONS:
number of electrons per primitive cell
GEOMETRY
--------
* NUM_ATOMS:
number of atoms per primitive cell
$ BASIS(3,NUM_ATOMS):
atomic positions(au)
@ ATNO(NUM_ATOMS):
atomic numbers for each atom
& VALENCE_CHARGE(NUM_ATOMS):
valence charges for each atom
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PERIODIC INSERT%%%%%%%%%%%%%%%%%%%%%%%%%%%%
$ LATTICE_VECTORS(3,3):
primitive lattice vectors (au)
K SPACE NET
-----------
* NUM_K:
no. of k points in BZ
* NUM_REAL_K:
no. of real k points
(all components of real k points are either zero or half a
reciprocal lattice vector)
$ KVEC(3,NUM_K):
k point coordinates (a.u.)
NB: coordinates of real k points must occupy the first num_real_k
positions in kvec.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% END PERIODIC INSERT%%%%%%%%%%%%%%%%%%%%%%%%
BASIS SET
---------
* NUM_CENTRES
number of centres with associated Gaussian functions
(i.e. number of atoms + number of nonatom Gaussian sites) per primitive cell
* NUM_SHELLS:
number of shells per primitive cell
* NUM_AO:
number of basis functions (AO) per primitive cell
* NUM_PRIMS:
number of Gaussian primitives per primitive cell
* HIGHEST_ANG_MOM:
highest angular momentum of shells
@ SHELL_AM(NUM_SHELLS):
code for shell type
s=1, sp=2, p=3, d= 4, f= 5 etc. (harmonic representation)
d=-4, f=-5 (cartesian representation)
@ NUMPRIMS_IN_SHELL(NUM_SHELLS):
Number of primitive Gaussians in each shell
@ FIRST_SHELL(NUM_CENTRES+1)
Sequence number of first shell on each Gaussian centre.
Allows e.g.
do n=1,num_centres
60
do shell=first_shell(n),first_shell(n+1)-1
blah.
enddo
enddo
to loop over shells on each centre
Note dimension.
& EXPONENT(NUM_PRIMS):
exponents of Gaussian primitives
& C_PRIM(NUM_PRIMS)
correctly normalized contraction coefficients
& C_PRIM2(NUM_PRIMS) **must be omitted if no sp shells in basis**
correctly normalized 2nd contraction coefficients
(i.e. p coefficient for sp shells, zero otherwise)
$ SHELL_POS(3,NUM_SHELLS)
positions of shells (not necessarily atom-centred)
MULTIDETERMINANT INFORMATION
----------------------------
% GS - Ground state calculation
or
% SD - Single determinant inc. excitations/additions/subtractions
Example:
SD Single det calculation
DET 1 1 PR 2 1 5 1 Promote electron in band 2 kpoint 1
to band 5 kpoint 1 in determinant 1,
spin 1 ("up")
or
DET 1 2 PL 6 1 Add electron spin 2 ("down") to det 1,
band 6 kpoint 1
or
DET 1 2 MI 6 1 Remove the added electron
or
% MD - Multiple determinants
MD Multideterminant
3 3 determinants
1.d0 Determinant 1 prefactor
2.d0 Determinant 2 prefactor
-1.d0 Determinant 3 prefactor
DET 3 1 PR 2 1 5 1 Promotion as examples above
ORBITAL COEFFICIENTS
--------------------
& CK(NUM_REAL_K*NUM_AO*NUM_AO + NUM_COMPLEX_K*NUM_AO*NUM_AO)
block as follows
----spin (spin-polarized calcs only)---------------------------------
/ \
61
----k (for solids)-------------------------------
/ \
----bands-(solids)_or MOs (molecules)------
/ \
-AO-basis functions grouped by shell-
/ \
Complex coefficients are given as 2 adjacent real numbers (real,imaginary).
Ordering of d orbital coefficients;
z2, xz, yz, x2-y2, xy
Ordering of f,g,h...: m=0,1,-1,2,-2,3,-3,4,-4.....
OTHER STUFF
-----------
* Anything you like can be written here - intended for copy of input/output
files from DFT/HF/etc. program.
An example of a gwfn.data le for a silicon crystal is given below:
Silicon RHF
BASIC INFO
----------
Generated by:
CRYSTAL2003
Method:
RHF
DFT functional:
None
Periodicity:
3
Spin unrestricted:
.false.
Nuclear repulsion energy (au/atom):
-4.200509061764448
Number of electrons per primitive cell
8
GEOMETRY
--------
Number of atoms
2
Atomic positions (au)
1.2824155389174E+00 1.2824155389174E+00 1.2824155389174E+00
-1.2824155389174E+00-1.2824155389174E+00-1.2824155389174E+00
Atomic numbers for each atom
214 214
Valence charges for each atom
4.0000000000000E+00 4.0000000000000E+00
Primitive lattice vectors (au)
0.0000000000000E+00 5.1296621556694E+00 5.1296621556694E+00
5.1296621556694E+00 0.0000000000000E+00 5.1296621556694E+00
5.1296621556694E+00 5.1296621556694E+00 0.0000000000000E+00
K SPACE NET
-----------
62
Number of k points
8
Number of real k points on BZ edge
8
k point coordinates (au)
0.0000000000000E+00 0.0000000000000E+00 0.0000000000000E+00
-3.0621828087817E-01 3.0621828087817E-01 3.0621828087817E-01
3.0621828087817E-01-3.0621828087817E-01 3.0621828087817E-01
3.0621828087817E-01 3.0621828087817E-01 3.0621828087817E-01
3.0621828087817E-01 3.0621828087817E-01-3.0621828087817E-01
6.1243656175634E-01 0.0000000000000E+00 0.0000000000000E+00
0.0000000000000E+00 6.1243656175634E-01 0.0000000000000E+00
0.0000000000000E+00 0.0000000000000E+00 6.1243656175634E-01
BASIS SET
---------
Number of Gaussian centres
2
Number of shells per primitive cell
10
Number of basis functions (AO) per primitive cell
42
Number of Gaussian primitives per primitive cell
10
Highest shell angular momentum (s/p/d/f/g... 1/2/3/4/5...)
3
Code for shell types (s/sp/p/d/f... 1/2/3/4/5...)
2 2 2 4 2 2 2 2
4 2
Number of primitive Gaussians in each shell
1 1 1 1 1 1 1 1
1 1
Sequence number of first shell on each centre
1 6 11
Exponents of Gaussian primitives
2.0871000000000E+00 1.1464000000000E+00 3.4240000000000E-01 4.4610000000000E-01
1.1830000000000E-01 2.0871000000000E+00 1.1464000000000E+00 3.4240000000000E-01
4.4610000000000E-01 1.1830000000000E-01
Correctly normalized contraction coefficients
3.0098420484637E+00 1.9203853959954E+00 7.7586574622601E-01 9.7474724462951E-01
3.4964298562377E-01 3.0098420484637E+00 1.9203853959954E+00 7.7586574622601E-01
9.7474724462951E-01 3.4964298562377E-01
2nd contraction coefficients (p coeff., for sp shells, 0.0 otherwise)
8.6965165911299E+00 4.1123159952884E+00 9.0799499001157E-01 0.0000000000000E+00
2.4051778078084E-01 8.6965165911299E+00 4.1123159952884E+00 9.0799499001157E-01
0.0000000000000E+00 2.4051778078084E-01
Position of each shell (au)
1.2824155389174E+00 1.2824155389174E+00 1.2824155389174E+00
1.2824155389174E+00 1.2824155389174E+00 1.2824155389174E+00
1.2824155389174E+00 1.2824155389174E+00 1.2824155389174E+00
1.2824155389174E+00 1.2824155389174E+00 1.2824155389174E+00
1.2824155389174E+00 1.2824155389174E+00 1.2824155389174E+00
-1.2824155389174E+00-1.2824155389174E+00-1.2824155389174E+00
-1.2824155389174E+00-1.2824155389174E+00-1.2824155389174E+00
-1.2824155389174E+00-1.2824155389174E+00-1.2824155389174E+00
-1.2824155389174E+00-1.2824155389174E+00-1.2824155389174E+00
-1.2824155389174E+00-1.2824155389174E+00-1.2824155389174E+00
63
MULTIDETERMINANT INFORMATION
----------------------------
GS
ORBITAL COEFFICIENTS
---------------------------
7.9927874568142E-02 0.0000000000000E+00 0.0000000000000E+00 0.0000000000000E+00
-2.8262251738009E-01 0.0000000000000E+00 0.0000000000000E+00 0.0000000000000E+00
<snip>
-1.8480536384432E-03 0.0000000000000E+00 0.0000000000000E+00 0.0000000000000E+00
0.0000000000000E+00 0.0000000000000E+00 3.1778950736229E-01 0.0000000000000E+00
EIGENVALUES
-----------
k 1 0.00000000 0.00000000 0.00000000
-8.3654527718958E-01-2.0855050412594E-01-2.0855050412594E-01-2.0855050412594E-01
1.1891116371242E-01 1.1891116371242E-01 1.1891116371242E-01 1.6642614221042E-01
4.8905871448045E-01 5.5993323168592E-01 5.5993323168592E-01 7.0605030728642E-01
8.6499950558517E-01 8.6499950558517E-01 8.6499950558517E-01 1.0845740016273E+00
1.0845740016273E+00 1.0845740016273E+00 1.1874293233021E+00 1.1874293233021E+00
1.3682921598936E+00 1.3682921598936E+00 1.3682921598936E+00 1.5285057402088E+00
1.5285057402088E+00 1.5285057402088E+00 3.0863962899448E+00 3.0863962899448E+00
3.0863962899448E+00 3.1999760552302E+00 3.6143223221555E+00 3.6143223221555E+00
3.6143223221555E+00 3.6584331265112E+00 9.0595232556836E+00 9.0998780449430E+00
9.0998780449430E+00 9.0998780449430E+00 9.4963012296477E+00 9.4963012296477E+00
9.4963012296477E+00 9.5221533702082E+00
k 2 -0.30621828 0.30621828 0.30621828
-8.3195540313868E-01-2.4528906228096E-01-2.1458434393753E-01-2.1458434393753E-01
1.2112567282366E-01 1.2873111845318E-01 1.2873111845318E-01 1.9164631417601E-01
5.0097442550864E-01 5.5884325681737E-01 5.5884325681737E-01 6.8605998196272E-01
8.7087516518368E-01 8.7097496240349E-01 8.7097496240349E-01 1.0564198656000E+00
1.0687921848831E+00 1.0687921848831E+00 1.1911137685880E+00 1.1911137685880E+00
1.3813695578425E+00 1.3957621401173E+00 1.3957621401173E+00 1.5386574220184E+00
1.5386574220184E+00 1.5619812446828E+00 3.0953070972747E+00 3.1171873104694E+00
3.1171873104694E+00 3.1553855866583E+00 3.6172352384823E+00 3.6172352384823E+00
3.6473503138099E+00 3.7104355682694E+00 9.0295682518751E+00 9.1131656229938E+00
9.1189605126448E+00 9.1189605126448E+00 9.4985126051165E+00 9.4985126051165E+00
9.5096928174714E+00 9.5640262470037E+00
k 3 0.30621828 -0.30621828 0.30621828
<snip>
Input and output files for this calculation (not read by CASINO)
================================================================================
<deleted>
7.7.2 pwfn.data le specication
The pwfn.data le contains orbitals expanded in a plane-wave basis set. An example is shown below:
Si diamond
BASIC INFO
----------
Generated by:
CASTEP
Method:
64
DFT
DFT Functional
LDA
Pseudopotential
LDA Trouiller-Martin (1551 coeff)
Plane-wave cutoff (au)
7.5
Spin polarized:
F
Total energy (au per primitive cell)
-7.84635517057440
Kinetic energy (au per primitive cell)
3.24780615624099
Local potential energy (au per primitive cell)
-1.03508540683458
Nonlocal potential energy (au per primitive cell)
0.144898714904598
Electron-electron energy (au per primitive cell)
-1.80295658630558
Ion-ion energy (au per primitive cell)
-8.40101804857984
Number of electrons per primitive cell
8
GEOMETRY
--------
Number of atoms per primitive cell
2
Atomic numbers and positions of atoms (au)
14 1.2824155389173550 1.2824155389173550 1.2824155389173550
14 -1.2824155389173550 -1.2824155389173550 -1.2824155389173550
Primitive lattice vectors (au)
0.000000000000000E+000 5.12966215566942 5.12966215566942
5.12966215566942 0.000000000000000E+000 5.12966215566942
5.12966215566942 5.12966215566942 0.000000000000000E+000
G VECTORS
---------
Number of G-vectors
341
Gx Gy Gz (au)
0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000
<snip>
2.44974624702536 2.44974624702536 2.44974624702536
WAVE FUNCTION
-------------
Number of k-points
8
k-point # ; # of bands (up spin/down spin) ; k-point coords (au)
1 4 0 0.0 0.0 0.0
Band, spin, eigenvalue (au)
1 1 -2.432668987064920E-002
Eigenvector coefficients
-0.953978956601082
<snip>
0.000000000000000E+000
Band, spin, eigenvalue (au)
65
2 1 0.417639684278199
Eigenvector coefficients
-1.576227515378431E-012
<snip>
0.000000000000000E+000
Band, spin, eigenvalue (au)
3 1 0.417639711691157
Eigenvector coefficients
6.348405363267598E-008
<snip>
0.000000000000000E+000
Band, spin, eigenvalue (au)
4 1 0.417639745897256
Eigenvector coefficients
-2.030042411030856E-009
<snip>
0.000000000000000E+000
k-point # ; # of bands (up spin/down spin) ; k-point coords (au)
2 4 0 -0.3062182808781698 -0.3062182808781698 0.3062182808781698
Band, spin, eigenvalue (au)
1 1 6.261478573034787E-002
Eigenvector coefficients
0.683590846620266
<snip>
0.000000000000000E+000
Band, spin, eigenvalue (au)
2 1 0.156856931414136
etc. for all 8 k points with 4 bands per k point in this case.
OTHER STUFF
-----------
* Anything you like can be written here - intended for copy of input/output
files from the PW DFT program.
7.7.3 bwfn.data le specication
The bwfn.data le contains orbitals represented by blip functions. An example is shown below:
Bulk Si
BASIC INFO
----------
Generated by:
PWSCF
Method:
DFT
DFT Functional:
unknown
Pseudopotential
unknown
Plane-wave cutoff (au)
7.5
Spin polarized:
F
Total energy (au per primitive cell)
-62.76695352625196
66
Kinetic energy (au per primitive cell)
0.E+0
Local potential energy (au per primitive cell)
0.E+0
Non local potential energy(au per primitive cell)
0.E+0
Electron electron energy (au per primitive cell)
0.E+0
Ion ion energy (au per primitive cell)
-67.208144397949283
Number of electrons per primitive cell
64
GEOMETRY
--------
Number of atoms per primitive cell
16
Atomic number and position of the atoms(au)
14 -1.282415538750 -1.282415538750 -1.282415538750
14 -1.282415538750 3.847246616250 3.847246616250
:
:
14 11.541739848750 6.412077693750 6.412077693750
14 11.541739848750 11.541739848750 11.541739848750
Primitive lattice vectors (au)
10.259324310000 10.259324310000 0.000000000000
0.000000000000 10.259324310000 10.259324310000
10.259324310000 0.000000000000 10.259324310000
G VECTORS
---------
Number of G-vectors
2085
Gx Gy Gz (au)
0.000000000000 0.000000000000 0.000000000000
-0.306218280918 -0.306218280918 -0.306218280918
-0.306218280918 -0.306218280918 0.306218280918
:
:
2.143527966427 2.755964528263 1.531091404591
1.531091404591 3.368401090099 0.918654842754
Blip grid
20 20 20
WAVE FUNCTION
-------------
Number of k-points
1
k-point # ; # of bands (up spin/down spin) ; k-point coords (au)
1 32 0 0.0000000000000000 0.0000000000000000 0.0000000000000000
Band, spin, eigenvalue (au), localized
1 1 -0.015443213499 F
Blip coefficients
-0.347534087942
-0.517756216863
-0.528529751776
:
:
67
-0.450993755155
0.024823593723
-0.022992059309
Band, spin, eigenvalue (au)
2 1 -0.009057759900
Blip coefficients
-0.097602672632
-0.176031268912
-0.188226226118
:
:
(for 32 bands)
7.7.4 awfn.data le specication
The awfn.data le contains atomic orbitals represented numerically on a radial grid. An example is
shown below:
Atomic Be wave function in real space
Atomic number
4
Total number of orbitals
2
The 1s(2)2s(2) [1S] state electronic configuration
Number of up, down spin electrons
2 2
States
1 1 0 0 % label of spin up electron, quantum number n, l, m
2 2 0 0
1 1 0 0 % label of spin down electron, n, l, m
2 2 0 0
Radial grid (a.u.)
301 % Number of radial grid points are given
0.000000000000000E+00 % Distance from centre of atom r
0.457890972218354E-02
0.477372816593466E-02
0.497683553179352E-02
0.518858448775392E-02
0.540934270674177E-02
0.563949350502860E-02
:
:
0.108431746952108E+04
0.113045182349640E+04
0.117854905151603E+04
Orbital # 1 [1s]
0 1 0 % spin type [0=unpolarized, 1=up, 2=down], n, l
0.000000000000000E+00 % r * Value of trial wave function at point r
0.659528705936585E-01
0.687054582044431E-01
0.715705591983797E-01
:
:
0.000000000000000E+00
0.000000000000000E+00
0.000000000000000E+00
Orbital # 2 [2s]
68
0 2 0
0.000000000000000E+00
0.120187930416515E-01
0.125203784849961E-01
0.130424628552784E-01
:
:
0.000000000000000E+00
0.000000000000000E+00
0.000000000000000E+00
0.000000000000000E+00
7.7.5 stowfn.data le specication
The stowfn.data le contains Slater-type orbitals for atoms, molecules, polymers, slabs or solids. An
example is shown here:
CH4 molecule
BASIC INFO
----------
Generated by:
ADF
Periodicity:
0
Spin unrestricted:
.false.
Nuclear repulsion energy (au/atom):
2.696727236672644
Number of electrons
10
GEOMETRY
--------
Number of atoms
5
Atomic positions (au)
0.0000000000000E+00 0.0000000000000E+00 0.0000000000000E+00
1.1849716639362E+00 1.1849716639362E+00 1.1849716639362E+00
-1.1849716639362E+00-1.1849716639362E+00 1.1849716639362E+00
1.1849716639362E+00-1.1849716639362E+00-1.1849716639362E+00
-1.1849716639362E+00 1.1849716639362E+00-1.1849716639362E+00
Atomic numbers for each atom
6 1 1 1 1
Valence charges for each atom
6.0000000000000E+00 1.0000000000000E+00 1.0000000000000E+00 1.0000000000000E+00
1.0000000000000E+00
BASIS SET
---------
Number of STO centres
5
Position of each centre (au)
0.0000000000000E+00 0.0000000000000E+00 0.0000000000000E+00
1.1849716639362E+00 1.1849716639362E+00 1.1849716639362E+00
-1.1849716639362E+00-1.1849716639362E+00 1.1849716639362E+00
1.1849716639362E+00-1.1849716639362E+00-1.1849716639362E+00
69
-1.1849716639362E+00 1.1849716639362E+00-1.1849716639362E+00
Number of shells
51
Sequence number of first shell on each centre
1 16 25 34 43
Code for shell types (s/sp/p/d/f/g 1/2/3/4/5/6)
1 1 1 1 1 1 1 3
3 3 3 4 4 5 5 1
1 1 1 1 3 3 4 4
1 1 1 1 1 3 3 4
4 1 1 1 1 1 3 3
4 4 1 1 1 1 1 3
3 4 4
Order of radial prefactor r in each shell
0 0 0 1 1 1 1 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0
Exponent in each STO shell
1.1400000000000E+01 6.6000000000000E+00 4.8500000000000E+00 5.9000000000000E+00
2.5500000000000E+00 1.6500000000000E+00 1.1600000000000E+00 5.1500000000000E+00
2.4000000000000E+00 1.3000000000000E+00 7.8000000000000E-01 2.5000000000000E+00
1.5000000000000E+00 4.0000000000000E+00 2.0000000000000E+00 3.3000000000000E+00
2.0000000000000E+00 1.4000000000000E+00 1.0000000000000E+00 7.1000000000000E-01
2.0000000000000E+00 1.0000000000000E+00 2.5000000000000E+00 1.5000000000000E+00
3.3000000000000E+00 2.0000000000000E+00 1.4000000000000E+00 1.0000000000000E+00
7.1000000000000E-01 2.0000000000000E+00 1.0000000000000E+00 2.5000000000000E+00
1.5000000000000E+00 3.3000000000000E+00 2.0000000000000E+00 1.4000000000000E+00
1.0000000000000E+00 7.1000000000000E-01 2.0000000000000E+00 1.0000000000000E+00
2.5000000000000E+00 1.5000000000000E+00 3.3000000000000E+00 2.0000000000000E+00
1.4000000000000E+00 1.0000000000000E+00 7.1000000000000E-01 2.0000000000000E+00
1.0000000000000E+00 2.5000000000000E+00 1.5000000000000E+00
Number of basis functions (AO)
127
Number of molecular orbitals (MO)
5
MULTIDETERMINANT INFORMATION
----------------------------
GS
ORBITAL COEFFICIENTS (normalized AO)
------------------------------------
1.6988226730536E-02 2.5547553149910E-01 8.0520564294501E-01-7.6530531473020E-02
-1.0796538835168E-02 1.8427415395707E-02-2.8375885251793E-02 0.0000000000000E+00
0.0000000000000E+00 0.0000000000000E+00 0.0000000000000E+00 0.0000000000000E+00
:
:
-4.4321439503424E-02-2.6719231703795E-03-1.4778027220273E-03 1.4778027220273E-03
-5.8839059140813E-04-3.2662239102706E-20 9.3447725407852E-04 4.2896698516357E-03
-4.2896698516357E-03-1.7516507584000E-03-9.7236150153889E-20
70
7.8 External-potential le: expot.data
This le contains a representation of an external potential and of the orbitals associated with it.
The potential is built up as a sum over one-dimensional sets, each of which is a potential of a stated
representation (see the list below) varying as a function of r either isotropically or in a stated direction.
Each individual potential set may be nite or periodic (with certain restrictions depending on whether
the system itself is nite or one-, two-, or three-dimensionally periodic). Periodic external potentials
must be commensurate with the underlying lattice if the system is periodic along axes not orthogonal
to the potential direction.
The specication of the le is as follows (comments in square brackets):
START HEADER
User may put any comments here. CASINO will ignore this section.
END HEADER
START VERSION
1
END VERSION
START EXPOT
Title
title
Number of sets
1
START SET 1
Particle types affected
All
Periodicity [APERIODIC/PERIODIC]
APERIODIC
Type of representation
SQUARE
Direction [ISOTROPIC/A1/A2/A3/X/Y/Z/CUSTOM]
ISOTROPIC
[If CUSTOM then add direction vector after keyword e.g. CUSTOM 1.0 1.0 0.0]
Number of such potentials to add
1
Origin(s) for each potential (au)
0.0 0.0 0.0
Potential
... insert potential specification of appropriate type (see below)
END SET 1
... insert as many sets as required, consistently with Number of sets above
END EXPOT
START EXPOT_WFN
Title
title
Number of sets
1
START SET 1
Periodicity [APERIODIC/PERIODIC]
PERIODIC
Type of orbitals
FOURIER
Direction [ISOTROPIC/A1/A2/A3/X/Y/Z/CUSTOM]
Z
[If CUSTOM then add direction vector after keyword e.g. CUSTOM 1.0 1.0 0.0]
71
Origin of orbitals
0.d0 0.d0 0.d0
Orbitals
... insert orbital specification of appropriate type (see below)
END SET 1
... insert as many sets as required, consistently with Number of sets above
END EXPOT_WFN
Notes:
1. The Type of representation may take the following values for APERIODIC potentials (the
form of the corresponding Potential section is also given):
SQUARE Square well/barrier potentials centred at specied points. Height can be set to
INF or -INF for generating innite barriers or wells, respectively.
Potential
Width (au)
1.d0
Height (au)
-2.d0
LINEAR Linear potential corresponding to constant electric eld E (= dV/dx) passing
through 0 at specied point.
Potential
Electric Field (au)
1.d0
ANALYTIC Analytic aperiodic functions (for example, Gaussians, harmonic wells) centred
at specied points. Type of function to be specied in the Potential section:
Potential
Function type and defining parameters [(choose one; extra types definable)]
GAUSSIAN 1.d0 2.d0 0.d0 ! c,a,b in c*exp(-a*r^2)+b
HARMONIC 2.d0 0.d0 ! a,b in ar^2+b
SLAB 20.0 2.0 ! Slab width, 2D r_s param.
GAUSSIAN Aperiodic Gaussian expansion.
Potential
Number of Gaussians
2
Coefficients and exponents
1.d0 6.d0
1.d0 2.d0
NUMERICAL Numerical representation on a grid.
Potential
Number of grid points
2000
Grid point ; function value
0.01 2.345
0.02 2.456
...
2.d0 0.000
2. The Type of representation may take the following values for PERIODIC potentials (the
form of the corresponding Potential section is also given):
CONSTANT Constant potential.
72
Potential
Constant
0.d0
SQUARE PERIODIC Periodically repeated square well/barrier potential (square wave).
Height can be set to INF or -INF for generating innite barriers or wells, respectively.
Potential
Repeat distance (au)
3.d0
Width (au)
1.d0
Height (au)
-2.d0
SAWTOOTH Periodically repeated linear potential corresponding to electric eld E (=
dV/dx). (sawtooth wave).
Potential
Repeat distance (au)
3.d0
Electric field (au)
1.d0
COSINE Cosine wave of given wavelength and amplitude.
Potential
Amplitude
1.d0
Wavelength (au)
3.d0
ANALYTIC PERIODIC Simple analytic aperiodic function (for example, Gaussians, har-
monic) periodically repeated. Type of function to be specied in the Potential section:
Potential
Repeat distance (au)
3.d0
Function type and defining parameters [(choose one; extra types definable)]
GAUSSIAN 1.d0 2.d0 0.d0 ! c,a,b in c*exp(-a*r^2)+b
SLAB 20.0 2.0 ! Slab width, 2D r_s param.
FOURIER 1D Fourier series a
0
/2 +
n
i=1
[a
n
cos (2nx/L) +b
n
sin (2nx/L)]
Potential
Period L (au)
3.d0
Symmetry [ODD/EVEN/NONE]
NONE
Number of terms n (excluding a0)
2
Fourier coeffs [a_0 then a_n, b_n pairs; omit all a or b if symm ODD/EVEN]
1.d0
1.d0 3.d0
2.d0 4.d0
GAUSSIAN PERIODIC Periodic Gaussian expansion.
Potential
Repeat distance (au)
3.d0
Number of Gaussians
2
Coefficients and exponents
73
1.d0 6.d0
1.d0 2.d0
NUMERICAL PERIODIC Periodic numerical representation on a grid.
Potential
Repeat distance
3.d0 au
Number of grid points
2000
Grid point ; function value
0.01 2.345
0.02 2.456
...
2.d0 0.000
3. The Type of orbitals may take the following value (more to be added on request/need):
FOURIER One-dimensional Fourier series in the z-direction, plane waves in the XY plane.
Period L (au)
20.0
Symmetry (even/odd/none)
NONE
Number of terms n (excluding a0)
15
Number of bands
2
START BAND 1
Occupation
13
Fourier coefficients (a0 ; a_i,b_i {i=1,n}. Omit a/b if symm ODD/EVEN)
0.08197602811796 [a0]
0.00000000000000 0.00000000011629 [a1 b1]
-0.07488206414295 -0.00000000158436 [a2 b2]
... [13 more rows, according to the value of n=15 given above]
END BAND 1
START BAND 2
Occupation
11
Fourier coefficients (a0 ; a_i,b_i {i=1,n}. Omit a/b if symm ODD/EVEN)
...
END BAND 2
4. The le version is an integer, which is always increased if the specication for this le changes.
5. Where more than one set is given, the potentials dened in the dierent sets are added to give
the nal potential at a particular point.
6. The Direction parameter gives the direction along which a particular potential varies. This
may be along one of the three lattice vectors (periodic systems), along the x, y or z axes, or
along a custom direction given in input. If the Direction parameter is ISOTROPIC then the
potential varies radially as a function of distance from the given point.
7. Support for magnetic elds will be added when it is required.
8. In the case of the Fourier expansion, complex coecients need to satisfy c
G
= c
G
if the
potential is to be real. This will be checked for. With pure real coecients the option exists of
omitting the imaginary part of the Fourier coecients section in order to save disk space.
74
9. For periodic types the external potential will be checked for being commensurate with the
underlying lattice.
10. Clearly, the total number of possible forms of external potential is innite, and the associated
geometries can be arbitrarily complex. It is therefore envisaged that new representations and,
if necessary, new ways of describing the geometry will be added to the expot.data le on a
case-by-case basis. At some stage, the ability to do full 2D and 3D Fourier expansions of the
external potential will be added.
11. The orbital bands will be lled in order, e.g., the second band will be started once the rst one is
full. This is in contrast with an energy-based lling method which could also be implemented (on
request). All of the orbitals in a band have the z dependency given by the Fourier series, while
a dierent xy plane-wave will multiply each of them. Be sure to have odd occupation numbers
to keep translational symmetrycasino will stop otherwiseand to occupy your bands with
the right numbers to ensure isotropy as well, if requiredcasino will perform no checks in this
sense.
12. Fourier-expanded orbitals are pretty inecient if what you want to represent is a set of orbitals
localized in the z direction. Numerical orbitals would be a neat alternative, and are easy to
implement, but as none of us is interested in this so far, this is unavailable. Contact us if you
would like to use such a thing.
13. An accompanying Jastrow term is missing in the current version of casino, again due to the
fact that our group is not currently using the external-potential facility. Feel free to try and
persuade us into implementing this feature.
7.9 Raw QMC data les: vmc.hist and dmc.hist
The raw VMC and DMC energy data are stored in les called vmc.hist and dmc.hist, respectively.
Although the les have dierent names, they have the same format. The .hist les contain the local
energy and its components as calculated during the QMC simulation; by averaging these, one obtains
estimates of the total energy, etc. Note that the raw data in the .hist les are the averages of the
local energies across the processors of a parallel machine. Furthermore, the VMC local energies are
averaged over vmc ave period evaluations before being written out, while the DMC local energies are
averaged over the current population of congurations. One cannot, therefore, calculate the variance
of the energy by computing the variance of the total-energy data in vmc.hist and dmc.hist. The
energy data should be analysed using the reblock utility (or quickblock if the le is very large).
The data in vmc.hist and dmc.hist can be extracted for plotting using the plot hist utility.
An example of a vmc.hist le is given below.
# Title
# My CASINO vmc.hist file.
# File version number
# 1
# QMC method (VMC, DMC, PIMC, AFMC or RMC)
# VMC
# Electron-electron interaction type (interaction keyword)
# ewald
# Constant (ion-ion) energy
# 2.34
# Number of electrons (and other particles) in simulation
# 48
# Number of atoms per primitive cell
# 12
# Number of primitive cells
75
# 1
# Basis type (from atom_basis_type keyword - formerly btype)
# gaussian
# Periodic (0=NO; 1=YES)
# 0
# Number of data columns (excluding iteration number)
# 6
# Data items (For DMC, must have WEIGHT,POP,ETOT_PROP,EREF,EBEST as 1st 5)
# ETOT
# KEI
# TI
# VCPPEE
# VCPPEI
# VCPPE
# Raw QMC data
1 1.2 2.3 3.6 4.7 5.89 6.3
2 1.3 2.5 3.8 4.8 5.5 6.43
3 1.2 2.3 3.4 4.3 5.67 6.4
4 1.23 2.3 3.4 4.5 5.7 6.7
Notes:
It is not envisaged that ordinary users will ever need to look directly at the contents of this le.
The header lines of the le start with # so that it is easy to plot the raw data using xmgrace.
This is used by the graphit utility, for example. Note that graphit requires the rst ve
columns of DMC to be as indicated in the comment line in the example above.
The le version number is an integer which is increased each time the format of the .hist les
changes.
The total energy in vmc.hist or dmc.hist uses the Ewald or MPC interaction energy, as deter-
mined by the value of interaction.
The rst column is always the iteration number. This is not included in the number of data
columns, and no label for the iteration number needs to be supplied.
All energies are quoted in a.u. per primitive cell (per electron for electron phases, per particle
for electron-hole phases). Information about the dierent components of the energy and how
they are calculated may be found in Secs. 2121.4.4.
The following column labels may be used:
ETOT Total local energy;
KEI K (Used to evaluate the local kinetic energy: see Sec. 21.1);
TI T (Used to evaluate the local kinetic energy: see Sec. 21.1);
EWALD Electron-electron interaction energy (1/r or Ewald);
LOCAL Local electron-ion interaction energy (plus external potential energy);
NONLOCAL Nonlocal electron-ion interaction energy.
SHORT Short-range part of MPC;
LONG Long-range part of MPC;
CPPEI Electron-ion CPP term;
CPPE Electron part of CPP term;
CPPEE Electron-electron part of CPP;
76
MASSPOL Mass-polarization term (relativistic);
MASSVEL Mass-velocity term (relativistic);
DARWINEN Electron-nucleus Darwin term (relativistic);
DARWINEE Electron-electron Darwin term (relativistic);
RETARD Retardation term (relativistic).
WEIGHT (DMC only) Total weight of all congurations;
NCONF (DMC only) Number of congurations at this time step;
EREF (DMC only) Reference energy;
EBEST (DMC only) Best estimate of the ground-state energy (mixed estimate);
ACC (DMC only) Acceptance ratio at this time step;
TEFF (DMC only) Eective time step;
DIPOLE13 x-, y- and z-components of the dipole moment.
DIPOLESQ Squared magnitude of the dipole moment.
FUTURE010 (DMC only) Future-walking data.
The end of equilibration and the start of statistics accumulation in DMC is indicated by the line
#### START STATS. If there is more than one occurrence of this line in the le then the last
occurrence is taken to mark the boundary.
7.10 Expectation-value le: expval.data
The expval.data le may contain a large variety of data sets. This specication describes the
format of the density, spin density, spin-density matrix, reciprocal-space pair-correlation function,
spherically averaged pair-correlation function, structure factor, spherically-averaged structure factor,
one-electron density matrix, two-electron density matrix, and momentum density sets. When new
expectation values are implemented in casino, appropriate data sets can be added to this le. Each
set is optional. The overall format is the same as that of correlation.data, as described in Appendix
D. The expval.data le also acts as an input le. If a data set is already present and casino is
asked to accumulate data for that particular set then the newly accumulated data will be added to
the existing data.
The format of the expval.data le is as follows. (Note that the text in square brackets below should
not actually appear in the le.)
START HEADER
User may put any comments in here. CASINO will ignore this section
and is required to copy it verbatim if this file is written to.
END HEADER
START EXPVAL
Title
Some system
File version
1
Number of particle types (e.g. 2=electrons,4=electrons+holes)
4
Number of each type of particle
nele(1) nele(2) nele(3) nele(4)
Dimensionality
3
Periodicity
77
3
Primitive translation vectors (au)
-1.2345 1.2345 1.2345
1.2345 -1.2345 1.2345
1.2345 1.2345 -1.2345
Multiples of primitive translation vectors
npcell(1) npcell(2) npcell(3)
Volume of simulation cell (area/length for 2D/1D)
volume
Wigner-Seitz radius of simulation cell
1.2345678
Number of available G-vector sets
1
START GVECTOR SET 1
Energy cutoff used to generate set
e_cutoff
Number of G-vectors in set
ng
Primitive/supercell reciprocal lattice vectors (au)
g1(1) g1(2) g1(3)
g2(1) g2(2) g2(3)
g3(1) g3(2) g3(3)
G-vector components (Gx, Gy, Gz) in atomic units
gvec(1,1) gvec(2,1) gvec(3,1)
...
gvec(1,ng) gvec(2,ng) gvec(3,ng)
END GVECTOR SET 1
START DENSITY
Accumulation carried out using
VMC/DMC
Use G-vector set
1
Number of sets
2
START SET 1
Particle type (1=electron,2=hole)
1
Total weight
expval_den_weight_total
Complex charge-density coefficients (real part, imaginary part)
Re{expval_den_total(1)} Im{expval_den_total(1)}
...
Re{expval_den_total(ng)} Im{expval_den_total(ng)}
END SET 1
START SET 2
Particle type (1=electron,2=hole)
2
Total weight
expval_den_weight_total
Complex charge-density coefficients (real part, imaginary part)
Re{expval_den_total(1)} Im{expval_den_total(1)}
...
Re{expval_den_total(ng)} Im{expval_den_total(ng)}
END SET 2
END DENSITY
78
START SPIN DENSITY
Accumulation carried out using
VMC/DMC
Use G-vector set
1
Number of sets
4
START SET 1
Particle type (1=up elec,2=dn elec,3=up hole, 4=dn hole)
1
Total weight
expval_sden_weight_total
Complex spin density coefficients (real part, imaginary part)
Re{expval_sden_total(1)} Im{expval_sden_total(1)}
...
Re{expval_sden_total(ng)} Im{expval_sden_total(ng)}
END SET 1
START SET 2
...
...
END SET 4
END SPIN DENSITY
START SPIN-DENSITY MATRIX
Accumulation carried out using
VMC/DMC
Use G-vector set
1
Number of sets
2
START SET 1
Particle type (1-4)
1
Total weight
expval_sdenmat_weight_total
Component
1 1
Complex coefficients (real part, imaginary part)
Re{expval_sdenmat_total(1)} Im{expval_sdenmat_total(1)}
...
Re{expval_sdenmat_total(ng)} Im{expval_sdenmat_total(ng)}
Component
1 2
Complex coefficients (real part, imaginary part)
...
Component
2 1
Complex coefficients (real part, imaginary part)
...
Component
2 2
Complex coefficients (real part, imaginary part)
...
END SET 1
START SET 2
Particle type
3
...
79
END SET 2
END SPIN-DENSITY MATRIX
START RECIPROCAL-SPACE PCF
Accumulation carried out using
VMC/DMC
Fixed particle type (1-4)
1
Fixed particle coordinate (in atomic units)
Rx Ry Rz
Use G-vector set
2
...
[format of the rest identical to spin density]
...
END RECIPROCAL-SPACE PCF
[example below is for fixed particle mode in inhomogeneous system]
START SPHERICAL PCF
Accumulation carried out using
VMC/DMC
Number of bins
nbin
Cutoff radius (in atomic units)
rcutoff [usually the wigner_seitz radius]
Accumulation mode (1=fixed particle, 2=homogeneous system)
1
Fixed particle type (1-4)
1
Fixed particle position
Rx Ry Rz
Number of sets
2
START SET 1
Types of particles in pair (1-4, 1-4)
1 1
Total weight
upbin_numall
Bin contents
matuptotbin(1)
...
matuptotbin(nbin)
END SET 1
START SET 2
Types of particles in pair (1-4, 1-4)
1 2
Total weight
dnbin_numall
Bin contents
matdntotbin(1)
...
matdntotbin(nbin)
END SET 2
END SPHERICAL PCF
[this example is for homogeneous system]
START SPHERICAL PCF
Accumulation carried out using
80
VMC/DMC
Number of bins
nbin
Cutoff radius (in atomic units)
rcutoff [usually the wigner_seitz radius]
Accumulation mode (1=fixed particle, 2=homogeneous system)
2
Number of sets
3
START SET 1
Types of particles in pair
1 1
Total weight
no. of accum steps
Bin contents
corrdata(1,1,1)
...
corrdata(nbin,1,1)
END SET 1
START SET 2
Types of particles in pair
1 2
...
END SET 2
START SET 3
Types of particles in pair
2 2
...
END SET 3
END SPHERICAL PCF
START STRUCTURE FACTOR
Accumulation carried out using
VMC/DMC
Use G vector set
1
Number of sets for rho_a(G)*rho_b(-G)
3
START SET 1
Types of particles in pair
1 1
Total weight
1000.0
rho_a(G)*rho_b(-G)
16.0
4.12345
...
1.0123
END SET 1
START SET 2
Types of particles in pair
1 2
...
END SET 2
START SET 3
Types of particles in pair
2 2
...
81
END SET 3
Number of sets for spin density part
2
START SET 1
Particle type
1
Total weight
1000.0
Complex spin density coefficients (real part, imaginary part)
4.0 0.0
0.12345 0.0
...
1.0 0.0
END SET 1
START SET 2
Particle type
2
...
END SET 2
Total weight
expval_sden_weight_total
Complex spin density coefficients (real part, imaginary part)
Re{expval_sden_total(1)} Im{expval_sden_total(1)}
END STRUCTURE FACTOR
START SPHERICAL STRUCTURE FACTOR
Accumulation carried out using
VMC/DMC
Radial k point grid : (k1, k2, nk)
0.d0 10.d0 11
Number of sets
1
START SET 1
Particle type
1
Total weight
expval_sf_sph_weight_total
k, SF(k)
0.d0 0.0
1.d0 0.12345
...
10.d0 1.0
END SET 1
END SPHERICAL STRUCTURE FACTOR
START ONE-PARTICLE DENSITY MATRIX
Accumulation carried out using
VMC
Number of sets
1
Number of bins
100
Number of random points to sample
20
START SET 1
Number of particle types in set
2
82
Particle types
1 2
r,Weight(r),One-Particle-DM(r)
(...)
END SET 1
END ONE-PARTICLE DENSITY MATRIX
START TWO-PARTICLE DENSITY MATRIX
Accumulation carried out using
VMC
Number of sets
1
Number of bins
100
Number of random points to sample
20
START SET 1
Number of particle-pair types in set
2
Particle-pair types
1 4 2 3
r,Weight(r),Two-Particle-DM(r)
(...)
END SET 1
END TWO-PARTICLE DENSITY MATRIX
START MOMENTUM DENSITY
Accumulation carried out using
VMC
Number of sets
1
Number of random points to sample
2
START SET 1
Number of particle types in set
2
Particle types
1 2
Weight for this set
1000.000000
|k|/k_F,MOM_DEN(k)**2,MOM_DEN(k)
(...)
END SET 1
END MOMENTUM DENSITY
START LOCALIZATION TENSOR
Not yet documented.
END LOCALIZATION TENSOR
END EXPVAL
1. General notes:
(a) The le version is an integer, which is always increased if the specication for this le
changes.
(b) The data in this le should always be normalized. For example, they should be divided by
the total weight, which is usually the total number of accumulation steps. However, the
83
total weight must always be included alongside the data so that further accumulation steps
can be carried out. The correct way to perform additional accumulation is to set
new tot. weight = old tot. weight + new weight (7)
new tot. data =
old tot. weight old tot. data + new weight new data
new tot. weight
. (8)
The new total weight and new total data should be written out to expval.data.
(c) Sets of reciprocal space vectors (G-vectors) are specied at the start of the le and are
then referenced by the dierent sets in the le, because expectation values for dierent
operators are often accumulated using the same set of G-vectors.
(d) Each of the subsequent data sets is optional. If a data set is present when this le is read
as input, but casino is not accumulating further data for this set, then the set must be
copied verbatim on output.
(e) It is permitted to have, for example, the VMC-accumulated charge density present in this
le, to be used for the MPC interaction in a DMC calculation whilst accumulating, for
example, the pair-correlation function.
2. Notes on the density data set:
(a) There should be one set of data present for each type of particle (electron, hole).
(b) The normalization of the data for a given particle type is such that the G = 0 component
is equal to the total number of particles of that type in the primitive cell. This is naturally
the result if the data is accumulated during the simulation, then divided by the total weight
(that is, the number of accumulation steps) then divided by the number of primitive cells
in the simulation cell.
(c) The QMC charge density may be used in the MPC interaction, if desired.
3. Notes on the spin density data set:
(a) The format of this section is the same as that of the density section, except that there are
two sets of data for each particle type, to allow for up and down spins.
4. Notes on the spin-density matrix data set:
(a) These data can be obtained when using the noncollinear-spin mode of casino. There are
separate 2 2 spin-density matrices for each particle type.
(b) Due to the way in which noncollinear spins are implemented in casino, it would be possible
in principle to have a separate set of data for up-like electrons, down-like electrons, up-like
holes and so on. In practice this does not make sense, and only one type of electron and
one type of hole should be used.
5. Notes on the reciprocal-space pair-correlation function data set:
(a) This data set contains the Fourier coecients of the pair-correlation function, accumulated
with the position of one particle being xed.
(b) Apart from information on the type and location of the xed particle, the format of this
data set is identical to the spin density set.
6. Notes on the spherical pair-correlation function data set:
(a) This set contains a real-space representation of the pair-correlation function, obtained by
binning particle separations.
84
(b) There are two slightly dierent ways in which spherical PCFs may be accumulated. For
homogeneous and nite systems, we accumulate the spherical PCF based on the relative
distances of all pairs of particles. For inhomogeneous and periodic systems, we must accu-
mulate the spherical PCF as the distance of all other particles from one xed particle.
(c) The format of this set is exible enough to allow for both methods. Two examples are
given above to show the two possible scenarios.
(d) When the data is for xed-particle accumulation, the rst of the two particle types appear-
ing on the Types of particles in pair line must be that of the xed particle.
8 Using CASINO with the CRYSTAL program
[See ~/CASINO/utils/wfn converters/crystal 9x/, /crystal 03/ and /crystal 06.]
8.1 The CRYSTAL program
crystal is a commercially available quantum-mechanical package which is able to calculate the elec-
tronic structure of both molecules and systems with periodic boundary conditions in 1, 2 or 3 dimen-
sions (polymers, slabs or crystals) using either Hartree-Fock or density-functional theory. The latest
version of the program was written by Roberto Dovesi, Vic Saunders, Carla Roetti, Roberto Orlando,
Nic Harrison, Claudio Zicovich-Wilson, Klaus Doll, Bartolomeo Civalleri, Ian Bush, Philippe DArco,
Miquel Llunell and F. Pascale. See www.tcm.phy.cam.ac.uk/~mdt26/crystal.html and the various
links from there for more information.
casino supposedly supports the ocial releases crystal95, crystal98, crystal03 and crystal06
(but not 88 or 92).
With the now rather antiquated crystal95 or crystal98 you must use a separate utility crysgen98 -
included with the casino distribution - which transforms the contents of various crystal temporary
fortran les into a casino gwfn.data le.
crystal03 was supposed to contain a facility to write out a casino gwfn.data le directly. The
necessary routines were written by MDT following a specication agreed by the Daresbury authors of
crystal but its incorporation into crystal was then vetoed by the Torino group. MDT was then
asked to change the routines into a separate utility, but necessary information regarding the crystal
source code was not available. The practical upshot of this is that casino is only supported in MDTs
private version of crystal03 which he is not allowed to distribute. Best to use crystal06 instead.
crystal06 is able to write out all the information required by external programs but as this is not
specic to casino a utility crysgen is required to convert the data into casino gwfn.data format.
8.2 Generating gwfn.data les with CRYSTAL95/98
These early versions of crystal are absolutely not designed to communicate with other programs so
we will need to jump through some hoops in order to get things to work.
Basically, MDTs crysgen98 utility is used to convert the output of crystal95 or crystal98
into a gwfn.data le readable by casino. We will assume in what follows that you know
how to use crystal. You need to run the program using the runcrystal script, which lives in
~/CASINO/wfn converters/crystal9x/run script/, using the -qmc ag as an argument (this should
be set up automatically for you during utilities compilation). The publicly available run script on
MDTs crystal website does not contain this ag, so you need to use the script included with casino
instead. You may need to change some environment variable denitions in the run and crysgen98
scripts to get them to work properly on your system.
85
If you want to use your own copy of crystal95 or crystal98 to generate QMC wave func-
tions, you will need to make some minor modications to the source code (see the accompanying
~/CASINO/wfn converters/crystal to qmc/README CHANGES le). If you are working in Cambridge,
you can use the programs that have already been so modied by MDT - please ask.
(NOTE: 4/2003the above changes involve turning o the use of symmetry in k spacefor some
metallic calculations this seems to cause a problem (Gilat net?) unless you also manually turn o all
symmetry in the input le with the keyword symmremo. This is unlikely to be xed in the future.)
crystal will produce three binary les in the scratch directory you dene in the run scriptnamely
fort.12 (basis set, geometry, common variables), fort.10 (orbital coecients) and fort.30 (eigen-
values). These les would normally be deleted at the end of a crystal run. Including the -qmc ag
as an argument to the run script means these les will be grabbed and renamed as silicon.f12,
silicon.f10 and silicon.f30 (or whatever). They will be kept in the scratch directory since they
can become very large.
Sit in the directory where these three les live and type crysgen98. This script will run the crystaltoqmc
program, which will ask you some questions and then generate the gwfn.data le.
crysgen will ask you for the size of the Monkhorst-Pack k-point net in the crystal calculation, and
the desired size of supercell in the QMC calculation. These need not be the same (if not, you are
plucking to use the local vernacular), but the former must be divisible by the latter. For example,
a 121212 MP net in crystal will allow you to generate gwfn.data for 111, 222, 333,
444 and 666 supercell cases. Note that it is desirable to carry out the calculation on a higher
density k-point grid than you actually need so that the orbital coecients are calculated accurately.
Note that for polymer and slab calculations the last one and two numbers in the MP net and supercell
specications should be 1 to reect the fact that the system is not periodic in those dimensions. For
example, polymer (1211 111, 211, 311, 411, 611) slab (1211 111,
221, 331, 441, 661). For molecular calculations, just imagine you have a 111 MP
net.
So, to summarize, to produce gwfn.data from the crystal input le dna:
% run -qmc dna
The -qmc ag invokes generation of relevant QMC les in temp.
% cd /temp/mdt
. . . or whatever the temp directory is called in your crystal runscript.
% crysgen
Then answer the questions.
% mv gwfn.data ~ ; rm dna.*
Then run casino.
8.3 Generating gwfn.data les with CRYSTAL03
NOTE: THE FOLLOWING INSTRUCTIONS WILL NOT WORK WITH THE STANDARD
RELEASE OF CRYSTAL03 - SEE DISCUSSION ABOVE. THE BEST WAY AROUND THIS
NOW IS TO USE CRYSTAL06.
The gwfn.data le can be generated directly using the crystal03 properties program.
Note that this facility only exists in the ocial version of crystal03 in binaries produced after
December 2003, and that some early versions of crystal03 had a broken pseudopotential evaluator
(which should now be xed).
The crystal run script included with casino will actually force the production of gwfn.data auto-
matically if you invoke it with the -qmc ag when running the calculations, so all you need to do is
86
type run -qmc input lename. If the calculation is periodic, the script will ask you how many dierent
supercell sizes N you wish to generate, and then to input N sets of integer triplets indicating the
supercell sizes (these must be a subset of the MP shrinking factors in the crystal input le). For
example,
% run -qmc h
Number of dierent QMC supercell sizes to calculate? (Maximum 5)
% 1
Size of cell 1? (e.g. 2 2 2)
% 2 2 2
Put the script in the background with Ctrl-Z then bg.
If you want to do this by hand, rather than letting the run script do it for you, then the relevant part
of the crystal properties input le looks like this (for periodic systems):
QMC
2 ! want to generate 2 supercell sizes i.e.
2 2 2 ! a 2x2x2 one
3 3 3 ! and a 3x3x3 one
END
For molecules, only the keyword QMC is required with no additional input.
8.4 Generating gwfn.data les with CRYSTAL06
Note this is only possible with versions of crystal06 from 1 0 2 onwards, since the 1 0 1 version does
not recognize the required CRYAPI OUT keyword.
The entire process is automated by running crystal06 with the supplied script runcrystal. If you
choose to do this, then simply typing runcrystal -qmc input filename will run the SCF calculation
as normal then invoke all the necessary post-processing to generate the gwfn.data le automatically.
The only complication is in periodic systems where, before executing the crystal code, the run script
will ask you how many dierent supercell sizes you require. You then need to input that many integer
triplets (divisors of the casino shrinking factors) to specify the size of each of the supercells. A
gwfn.data le will then be generated for each required cell (appropriately labelled with the integer
triplet - rename them before running with casino).
8.4.1 Running the gwfn.data generation procedure manually
If you choose to run crystal06 without our runcrystal script (say, with the scripts provided by
the Torino people) then you will need to carry out the following manual procedure to generate the
gwfn.data le(s).
Molecules
After completing a converged DFT/HF run with the crystal06 crystal binary, the properties program
needs to be run to produce the formatted data les needed by the casino crysgen utility. A minimal
input le for the properties program in the case of a nonperiodic system is:
NEWK
1 0
CRYAPI_OUT
END
87
After successfully running properties, the directory should contain the les GRED.DAT and KRED.DAT
Running the casino utility crysgen in the same directory reads these les and writes gwfn.data for
use in casino.
1D/2D/3D periodic systems
For periodic systems, the k-point mesh used within crystal06 should be an integer multiple of the
supercell size that is used in casino. Within crystal06, the mesh is dened using the SHRINK
keyword followed by 1, 2 or 3 integers depending on the number of periodic dimensions.
Next, the input for the properties program needs one additional line after the NEWK keyword. To
simply output the full k-point mesh that was used with crystal06, use the following:
NEWK
0 0
1 0
CRYAPI_OUT
END
After running properties successfully, the directory should contain the les GRED.DAT and KRED.DAT
IMPORTANT: The program crysgen now needs to know some parameters related to the size of the
supercells required. These are taken from a le called crysgen.dat. This converter can output several
sizes of supercells in one run. A typical crysgen.dat indicating that three supercells of sizes 222, 333
and 444 should be generated might look like :
QMC
3
2 2 2
3 3 3
4 4 4
END
The rst number it reads after the QMC line is the number N of dierent super cell sized is should
produce. After this, it takes N triples of integers each specifying one size of a supercell. These
supercells have to be integer dividers of the k-point mesh that was output by the properties program.
After all N triples have been given, the individual gwfn.data les are produced for use by casino.
8.4.2 Dierences between CRYSTAL03 and CRYSTAL06 input les
The crystal03 and CRYSTAL06 codes have minor irritating and mutually incompatible dierences
in their input formats. The dierences that casino users are most likely to encounter using old
example input les from our distributions are as follows:
In crystal06 there are now three sections to the input le rather than four. To update earlier
input les, delete the superuous END statement after the third section.
The shrinking factors of the Monkhorst and Gilat nets are now given by the SHRINK keyword
followed by e.g. 8 16, rather than the old three numbers at the start of the fourth section.
The TOLSCF keywordwhich is common in input les round hereno longer works. Replace
this block with the TOLDEE block which contains one number (the usual energy threshold e.g.
7).
88
9 Using CASINO with the Gaussian94/98/03 programs
[See ~/CASINO/utils/wfn converters/gaussian9x-03/.]
Gaussian is an extremely large and widely used commercially available quantum chemistry package.
More details are available from www.gaussian.com.
gaussiantoqmc is a utility to read the wave function from the output of a gaussian94/98/03
(g94/g98/g03) calculation and output it in a form compatible with casino. gaussiantoqmc was
originally written by Andrew Porter (2000). Note that there is an associated utility called egaussian
which extracts the SCF energy (and components) from a Gaussian output le.
The gaussiantoqmc code requires the existence of a formatted checkpoint le (produced by putting
FormCheck=(MO,Basis) in the route section of the Gaussian job le for g94/g98, produced auto-
matically by g03). It expects this le to have a .Fchk sux. The output le of the gaussian job
is also required. It is assumed that this has a .out sux. If the original gaussian job le is present
then it will be appended to the end of the QMC input le (as is the gaussian output le).
9.1 How to use GAUSSIANTOQMC
If you have a gaussian job le called dna (say), and you run it to produce dna.out and Test.FChk,
then you must:
% mv Test.FChk dna.Fchk
run gaussiantoqmc . . . and follow the prompts
% mv dna.qmc gwfn.data
run casino.
The code should automatically detect what sort of gaussian job it is and give you the opportunity
to construct an excited-state wave function if applicable.
It can deal with the following sorts of calculation:
HF and DFT ground states, open and closed shell.
CIS excited states, open and closed shell.
CASSCF states. Getting gaussian to output these can be problematic for large calculations.
It is possible that gaussiantoqmc will get confused if you use some combination of IOps other
than those described in Sec. 9.2.5.
Time-dependent HF (TD-HF) or DFT (TD-DFT) excited states.
If the user chooses to output a CIS or TD-DFT wave function, they are given the option of resumming
it. The wave function must also be resummed if the user wishes to analyse its composition. As
distributed, gaussiantoqmc will not do this analysis but if you wish to switch this option on then
the ag analyse cis in cis data.f90 must be set to T and gaussiantoqmc recompiled.
With this ag set the code evaluates the percentage contribution of each single excitation to the CIS
expansion. Degenerate virtual and occupied orbitals are identied and their contributions summed.
The nal output takes the form of les called fromi j.dat where ij indicates a range of degenerate
occupied orbitals (if i = j then i is a nondegenerate orbital). These les detail all excitations out
of the specied orbitals along with a percentage giving their contribution to the CIS expansion as a
whole. The sum of the percentages (nal column) from each of the fromi j.dat should be 100 if
everything is working OK.
89
9.2 Other features of GAUSSIANTOQMC
The code also contains some crude normalization and plotting routines that are really just debugging
aids. By setting the ag test=T in gaussiantoqmc.f90 and recompiling, the user is given the option
of plotting and testing the normalization of individual molecular orbitals. The axis along which the
plotting is done is set in wfn construct.f90 and this must be hacked if the user wishes to change
things.
9.2.1 Getting GAUSSIAN to do what you want
In principle, gaussian can do an awful lot of things. In fact, some of these things seem to require
magical incantations. These will be described in this section, broken down into the dierent calcu-
lations to which they apply. The comments on g98 refer to revision A9 and may depend on which
version is used.
9.2.2 General bits and pieces
Some points to note:
Both g94 and g98 appear to have formatting errors when printing out the Gaussians used in
the ECP expansionlarge exponent values are replaced with stars. This does not aect the
subsequent calculation.
g94s ECP (pseudopotential) package will not accept expansions containing more than 13 Gaus-
sians per angular-momentum channel.
g98s ECP integral package crashes when one attempts to do a large (both in terms of basis
and ECP expansion) calculation with symmetry switched on. The solution to this is to switch
symmetry o using Nosymm.
One cannot use basis functions containing g and higher basis functions with a pseudopotential
in g94.
Obviously, gaussiantoqmc needs the molecular orbitals (MOs) produced by the calcula-
tion. It gets these from the formatted checkpoint le which is produced by putting Form-
check=(Basis,MO) in the route section of the gaussian job. Alternatively, it may be obtained
from the binary checkpoint le (.chk) using the formchk utility: see the gaussian manual.
Many (but not all) of the IOps mentioned here are described on gaussians website at
www.gaussian.com/iops.htm
9.2.3 CIS
Performing a HF test for an excited state: It is possible to get gaussian to output a breakdown
of the energy of a CIS excited state which may be compared with the results of a determinant-
only VMC run. The key to this is the density used to perform the population analysis and other
post-SCF calculations. By default, gaussian uses the density produced by the original SCF
run. To get the kinetic, nuclear-nuclear potential and electron-nuclear potential energies you
must tell it to use the one-particle CI density via density=RhoCI. You must also specify the
excited state that you are interested in via Root=N in the CIS options. With all of this done
properly, gaussian produces some output like:
N-N= 6.9546274D+00 E-N=-2.3781323D+01 KE= 3.3771062D+00
(units of a.u.), which is hidden in the density analysis right at the end of the output.
90
Some trouble has been encountered with the Add=N option to CIS (which reads converged ex-
cited states from the checkpoint le and then calculates N more). The IOp alternative which does
work is IOp(9/49=2) (use guess vectors from the checkpoint le) combined with IOp(9/39=N)
(make N additional guesses to those present).
Using the 5050 option to CIS to calculate singlet and triplet excitations simultaneously can
cause problems. It appears best to do the singlet (singlets) and triplet (triplets) calculations
separately.
For QMC, we want the complete CIS expansion. gaussian may be persuaded to output all
excited states with coecients > 10
N
by using IOp(9/40=N). Typically N = 5 is good
enough. gaussiantoqmc outputs the sum of the square of the coecients so that the user
can see how complete the wave function is. (Standard gaussian output has the coecients
normalized so that the sum of their squares for a complete expansion would be unity.)
9.2.4 CISD
Although gaussiantoqmc cannot read a CISD wave function it might be worth mentioning that
IOp(9/6)=N is equivalent to MAXCYCLE=N for such a calculation.
9.2.5 CASSCF
As described in Foresman and Frischs book [15], getting CASSCF to converge for a singlet state
is dicult. The following procedure normally works:
1. Run a ROHF calculation for the lowest triplet state of the system and save the checkpoint
le.
2. Run CASSCF for the second triplet state (Nroot=2) taking the initial guess from the
checkpoint le. (gaussian calculates the rst and second triplets but converges on the
second.)
3. Run CASSCF for the rst triplet (Nroot=1) taking the initial guess from the checkpoint
le.
4. Run CASSCF for the singlet excited state (Nroot=2) taking the initial guess from the
triplet checkpoint le.
5. Finally, run CASSCF for the singlet ground state (Nroot=1).
By default, gaussian uses spin congurations (combinations of Slater determinants) in a
CASSCF calculation. It is best to converge the CASSCF state that you want using this option.
However, for input to the QMC code, the wave function must be in terms of Slater determinants.
In principle, the SlaterDet option to CASSCF will do this, but I never succeeded in getting it
to work. Instead, specifying IOp(4/21=10) does the trick, as does IOp(4/46=3).
For large CASSCF calculations on the alpha cluster Columbus, the diagonalization method must
be changed by specifying IOp(5/51=1).
In large CASSCF calculations where very many determinants are involved, gaussian currently
only prints the rst fty determinants in the expansion (those with the largest coecients).
The signicance of the truncation may be judged by looking at the sum of the squares of the
coecients that gaussiantoqmc outputs when it reads the wave function. Unfortunately, this
truncation prevents a full HF test (i.e., running the wave function in VMC without a Jastrow
factor and checking that the result agrees with that of gaussian), but the energy returned by
such a test should be above that reported by gaussian.
91
As well as this truncation to fty determinants, gaussian has a formatting error which means
that if the index number of a determinant is greater than 99,999 then it is replaced by stars and
is thus useless. gaussiantoqmc deals with this by simply throwing away such congurations
which further truncates the expansion.
gaussian switches to direct mode for large CASSCF calculations and in doing so automatically
stops printing the denitions of the Slater determinants used in the calculation. In order to recon-
struct the wave function we do of course need to know what the Slater determinants are. gaus-
sian may be persuaded to print them by using IOp(4/46=3) IOp(4/21=10) IOp(4/21=100).
The rst two of these both tell gaussian to use Slater determinants (I specied both to be on
the safe side) and the last one in theory tells it to just print the congurations although in fact
it still proceeds to do the calculation as well.
Restarting a CASSCF calculation from a previously converged run fails when symmetry is
switched on. Use Nosymm to avoid this problem.
9.2.6 TD-HF and TD-DFT
As far as converting the resulting wave function for use in casino is concerned, these two methods
are no dierent to CIS apart from the issue of normalization. In CIS, the default output is normalized
so that the sum of the squares of the coecients is equal to unity. In a TD-HF or TD-DFT calcu-
lation (which involves solving a non-Hermitian eigenvalue problem) a dierent scheme is used which
essentially means that the sum of the squares of the coecients is arbitrary.
It should also be noted that gaussian cannot do gradients within TD-DFT yet and so cannot relax
excited states.
92
9.3 Summary of routines used in GAUSSIANTOQMC
Routine Purpose
analyse cis state Break the selected CIS/TD-DFT state down into excita-
tions from each distinct occ. MO
awk like Module and subroutines to give AWK-like functionality.
Used in parsing the gaussian output les
cas wfn Brings each of the CAS congurations into maximum co-
incidence with the reference conguration and (optionally)
calls resum cas
cas write Outputs the CAS wave function (i.e., the determinant ex-
pansion) to the gwfn.data le
cis data MODULEholds data dening the CIS and other multi-
determinant wave functions
con coes Multiplies the common part of shell normalization factors
into the contraction coecients and adjusts their storage
for improved accessibility
fatal Echoes a string and then kills the program
g94 wave function MODULEholds the data about the type of gaussian run
as well as the data dening the MOs etc.
gaussiantoqmc Main driver unit
g d type Evaluates a primitive d-type Gaussian basis function at a
specied location in 3D space
g s type Evaluates a primitive s-type Gaussian basis function at a
specied location in 3D space
get gauss version Reads the gaussian output le and identies whether it is
from gaussian94 or gaussian98
integ params MODULEholds parameters dening granularity of plot-
ting and integration grids as well as which MO to plot/test
max coincidence Brings a CIS conguration into maximum coincidence with
a specied reference determinant
normalisation check Tests the normalization of a specied MO
normalise ci Normalizes the CIS expansion. Not necessary for QMC but
keeps things tidy and output gives an idea of how complete
the expansion is
numsrt Sort an array into descending (numeric) order and (option-
ally) keep track of reordering
numsrt 2way As for numsrt but has additional argument to specify as-
cending or descending order
numsrt signchange As for numsrt but returns an associated sign change given
by multiplying by 1 for each exchange
pack evcoes Stores the alpha and beta eigenvector coecients separately
and multiply in remaining normalization factors (which dif-
fer between d
xx
,d
x
2
y
2 etc.)
paramle MODULEcontains define pi and also denes conversion
factors for Hartree to eV and Bohr to
Angstrom
psi Evaluates an MO of a given spin at a specied point in
space
93
Routine Purpose
qmc write Writes the gwfn.data le
re sum Resums a CIS/TD-DFT wave function
read G9xout Reads the output le produced by the gaussian job. Gets
the nuclear-nuclear potential energy, CIS/TD-DFT/CAS
expansion (if present) and HF eigenvalues
read fchk Reads the formatted checkpoint le produced by the gaus-
sian job. Gets the MOs etc.
rejig MODULEcontains numsrt and hence prototypes it which
is necessary because it has an optional argument
resum cas Partially resums a CAS expansion
set parameter values Sets the value of Pi and related constants
shell centres Identies the positions of the distinct shell centres and store
the rst shell index corresponding to each
sum degen excite Called by analyse cis. Loops over excitations out of a
given range (ij) of (degenerate) occ. MOs and sums those
that correspond to degenerate nal (virtual) MOs. Outputs
the results to a fromi j.dat le.
user control Calls the major reading routines and asks the user about
excited states and resumming
wfn construct Plot an MO (debugging option). Called by wfn test
wfn test Asks user about plotting and normalization testing. Op-
tionally calls wfn construct and normalization check.
10 Using CASINO with other programs
10.1 Supported programs
10.1.1 TURBOMOLE
See www.turbomole.com. For the converter/interface, see the README le in
~/CASINO/utils/wfn converters/turbomole/. However, this interface almost certainly no
longer works.
10.1.2 GAMESS-US
See www.msg.chem.iastate.edu/gamess. An interface to this Gaussian basis set package exists as a
set of perl scripts. These live, along with a README le with instructions and some basic examples,
in the directory CASINO/utils/wfn converters/gamess. The converter is maintained by Alexander
Badinski (abadinski at gmail.com).
10.1.3 CASTEP
The modern castep ?? is an entirely new Fortran 90 version of the venerable Cambridge plane-wave
program which it is designed to replace. It is distributed by Accelrys as part of its Materials Stu-
dio package see www.accelrys.com/products/mstudio/index.html. It is freely available to UK aca-
demics: see www.cse.clrc.ac.uk/cmg/NETWORKS/UKCP/castep.shtml. Mail Chris Pickard (cjp10
at st-andrews.ac.uk) to discuss castep and how to get hold of a copy.
We assume that the reader is familiar with castep. (It takes about ve minutes to learn how to
perform basic castep calculations.) To generate a trial wave function using castep:
94
1. Download the pseudopotentials that you need from www.tcm.phy.cam.ac.uk/mdt26/casino users.html.
You need to download the tabulated le pp.data, which should be renamed as x pp.data,
where x is the chemical symbol in lower-case letters, and the casino awfn.data le for the
ground state, which should be renamed as x pp.awfn. In your castep seedname.cell le
allocate the pseudopotential to species X using
%block SPECIES_POT
X x_pp.data
%endblock SPECIES_POT
Note that both x pp.data and x pp.awfn must be present.
2. If you want to relax the geometry using these pseudopotentials, do so at this point. (However,
it is generally best not to use casinos HF pseudopotentials for DFT geometry optimization.)
3. Specify your k points using the kpoints list block in seedname.cell. If you intend to use
a complex wave function then you should supply the complete list of k points; otherwise you
should only supply one out of each k pair. The symmetry generate ag should be given in
seedname.cell.
4. Run a castep single-point energy calculation (not geometry optimization, etc.) using castep
seedname).
5. Then run the castep2casino converter, which is part of the castep distribution using
castep2casino seedname).
9
6. Rename seedname.casino as pwfn.data.
7. The pwfn.data can be read by casino, but its usually best to convert to a blip basis by running
the blip program. (See Sec. 11.)
10.1.4 PWSCF
See www.pwscf.org. For the converter, see the README le in
~/CASINO/utils/wfn converters/pwscf/; contact Dario Alf`e for further information.
10.1.5 ABINIT
See www.abinit.org.
To produce a wave function suitable for use as a casino trial wave function, certain abinit parameters
must be set correctly. To tell abinit to write the wave function in casino format, set prtwf to 2
in the abinit input le. casino (and QMC methods generally) can only take advantage of time-
reversal symmetry, and not the full set of symmetries of the crystal structure. Therefore, abinit
must be instructed to generate k points not just in the irreducible Brillouin zone, but in a full half
of the Brillouin zone (using time-reversal symmetry to generate the other half). Additionally, unless
instructed otherwise, abinit avoids the need for internal storage of many of the coecients of its
wave functions for k points that have the property 2k = G
latt
, where G
latt
is a reciprocal lattice
vector, by making use of the property that c
k
(G) = c
k
(GG
latt
). abinit must be instructed not
to do this in order to output the full set of coecients for use in casino. See the abinit theoretical
background documents ABINIT/Infos/Theory/geometry.pdf and ABINIT/Infos/Theory/1WF.pdf
for more information.
The rst of these requirements is met by setting the abinit input variable kptopt to 2 (see
ABINIT/Infos/varbas.html#kptopt) and the second by setting istwfk to 1 for all the k points (see
9
If you are using an old version of castep then you will need to insert the line continuation : seedname in the
seedname.param le before running castep2casino.
95
ABINIT/Infos/vardev.html#istwfk). Since casino is typically run with relatively small numbers
of k points, this is easily done by dening an array of 1s in the input le.
For example, for the eight k points generated with ngkpt 2 2 2, we add the following lines to the
abinit input le:
# Turn off special storage mode for time-reversal k-points
istwfk 1 1 1 1 1 1 1 1
# Use only time reversal symmetry, not full set of symmetries.
kptopt 2
# Write a CASINO pwfn.data wave function file
prtwf 2
Other useful input variables of relevance to the plane waves abinit will produce include ecut,
nshiftk, shiftk, nband, occopt, occ, spinat and nsppol (see relevant input variable documents
in ABINIT/Infos/). If abinit is run in multiple dataset mode, the dierent wave functions for the
various datasets are exported as pwfn1.data, pwfn2.data, . . . , pwfnn.data where the numbers are
the contents of the contents of the input array jdtset (defaults to 1,2,. . . ,ndtset).
The exporter does not currently work when abinit is used in parallel mode (i.e., with abinip) on
multiple processors if k-point parallelism is chosen. abinit does not store the full wave function on
each processor but rather splits the k points between the processors, so no one processor could write
out the whole le. The sort of plane wave DFT calculations usually required to generate QMC trial
wave functions execute very rapidly anyway and will generally not require a parallel machines. The
outqmc routine currently bails out with an error if this combination of modes is selected.
If there is any doubt about the output of this routine, the rst place to look is the log le produced
by abinit: if there are any warnings about incorrectly normalized orbitals or noninteger occupation
numbers there is probably something set wrong in the input le.
There exists a utility called abinit sc to convert abinit pseudopotentials, as long as they are in
grid-based formats, i.e. pspcod=1 or pspcod=6, to casino x pp.data format. The utility does not
currently work for the non-grid-based or outdated pseudopotential formats (2,3,4 and 5).
10.1.6 GP
If you dont work at Lawrence Livermore then youre not allowed to use this, as it is a Government
Secret. If you do, then obviously you already know about it.
The converter jeep to pwfn works with an old version of gp (version 1.9). It reads in gp jeep.wf
and atoms.sys les and generates a casino pwfn.data le.
10.1.7 ADF
See www.scm.com.
The converter adf2stowf.py was developed for version 2008.01 of the adf code. It takes the output
of a molecular adf calculation and produces a casino trial wave function in a Slater-type basis. The
cusp condition is implemented as a simple linear constraint, which is enforced by projection in the
converter. The eect of this projection may be signicant for small basis sets.
In our experience, the ZORA/QZ4P basis set has been found to perform well.
Importing frozen-core states is supported in principle. However, frozen-core states are not implemented
in casino (no QMC algorithm for this is available at present). Therefore, adf frozen-core states are
used as regular orbitals within casino.
The adf converter and the Slater-type orbital implementation in casino have not yet been tested
heavily, so expect bugs and limitations, which we will try to x when reported.
96
10.2 Unsupported programs
If the program in question uses Gaussian, plane-wave or blip basis sets, then write your own converter
to write the output of the program in the appropriate [x]wfn.data format and send it to us (mdt26
at cam.ac.uk) for inclusion in future releases. It may be a standalone program, or a routine to be
inserted into the electronic structure package in question.
If your program uses some other basis set, then this could be a major project. Please ask.
11 Using CASINO with blip functions
Blip functions were devised by Mike Gillan and implemented in casino by Dario Alf`e [16].
The blip utility is used to convert pwfn.data les generated by a plane-wave DFT package into
bwfn.data les, where the wave function is represented in a basis set of localized blip functions on
a grid. This should make the code run faster and scale better with system size than it does with
plane-waves, which are horrible for QMC calculations. Blips can require a lot of memory and disk
space.
If your machine has CPUs with multiple cores, the set of blip coecients can be shared among the
cores in each CPU, thus saving a signicant amount of memory. This feature, which is implemented
using the unix System V Inter-Process Communication Library, must be enabled at compile-time by
setting the ag NEED SHM to yes in the relevant Makefile include les.
The quality of the blip expansion (i.e. the neness of the blip grid) can be improved by increasing
the grid multiplicity parameter (blip will ask you to supply this when it is run). Increasing the grid
multiplicity results in a greater number of blip coecients and therefore larger memory requirements,
but the CPU time should be unchanged. For accurate work, the grid multiplicity should be at least
2.
blip will ask you whether you wish to carry out an overlap test. If you reply in the armative then
the converter will sample the wave function, the Laplacian and the gradient at a large number of
random points in the simulation cell and compute the overlap of the blip orbitals with the original
plane-wave orbitals:
=
BW[PW)
_
BW[BW) PW[PW)
(9)
The closer is to 1, the better the blip representation. By increasing xmul one can make as close
to 1 as desired.
Finally, blip will ask you whether you wish to calculate the kinetic energies of your orbitals (in the
plane-wave and blip representations). Obviously, the kinetic energies should be in good agreement.
This test can take some time to run, however, and is often skipped.
When casino is run, the formatted bwfn.data le is converted into one or more unformatted
bwfn.data.b* les if write binary blips is T. These contain some or all of the blip orbitals. (On
parallel machines it is possible to divide the blip orbitals between groups of num cpus in group
processors; the dierent unformatted les contain dierent subsets of the orbitals.) If you update
the formatted bwfn.data le then please be sure to delete the bwfn.data.b* le(s); otherwise the
bwfn.data.b* le(s) will be read and the (updated) bwfn.data le will be ignored.
casino has the ability to use the MPI 2 input/output facilities to write the binary blip les, in which
case only one le is produced independently of num cpus in group. To turn this on, set use mpiio
to T in addition to write binary blips.
Note that binary blips may be generated separately in a small number of CPUs by setting testrun
to T, and the binary le(s) produced can be used by the production run to reduce the time required
to load the blip coecients, which is a very wise thing to do in machines with batch queues in place.
97
The gain in speed with respect to plane waves should be of the order of N
PW
/64, where N
PW
is the
number of plane waves in the plane-wave basis.
Localized plane-wave orbitals can also be represented in terms of blips, using the blip conversion
utility. This is discussed in Sec. 27.
12 Utilities provided with the CASINO distribution
A large variety of little programs which do useful things are provided in the ~/CASINO/utils/ di-
rectory. Although you should probably refer to the README les in each of the subdirectories for
up-to-date and more comprehensive information, here we provide a reasonably current list of them:
abinit to casino pp, casino to abinit pp: Converts pseudopotentials for the abinit pro-
gram into casino format, and vice versa.
billy: Shell script for optimizing basis sets and geometrical parameters with crystal95/98/03.
Reasonably vital for developing decent trial wave functions for casino with these programs. See
the documentation in ~/CASINO/utils/billy/.
blip: Utility to read in a pwfn.data le and produce a bwfn.data le. See Sec. 11 for further
information.
casinohelp: Simple script to invoke the casino help system. Usage:
casinohelp <casino_keyword> : tells you the definition and type of keyword
casinohelp search <text> : finds <text> in descriptions of all keywords
casinohelp all : lists all possible keywords
casinohelp basic : lists all basic level keywords
casinohelp inter : lists all intermediate level keywords
casinohelp expert : lists all expert level keywords
casinoupdate: Script to manage casino version changes, minimizing the eort that must be
put into keeping your sources up-to-date while developing new code.
clearup: Script for cleaning up after casino by removing output and indicator les, etc. It
attempts to reset directories to a suitable starting point.
clearup twistav: Script for cleaning up after a twist-averaging calculation using twistav.
crysgen, crystaltoqmc: The crysgen script drives the program crystaltoqmc, which
takes the output of crystal9X and produces a casino gwfn.data le. See Sec. 8.2.
denconvert, d2rs and plot density: The denconvert script runs d2rs, which converts
the density expanded in plane waves, stored in the expval.data le into a real-space density on
a grid. This can be converted into a data format readable by gnuplot using the plot density
utility. See the manual in ~/CASINO/utils/density plotter/ for further information.
dfit: Draw a polynomial through a set of energy points and nd the minimum (lives in the
billy distribution, but can be used on its own).
egausian: Utility for extracting energies etc. from the output of the gaussian code. See 9.
extrapolate tau: Program to extrapolate DMC energies to zero time step by tting a poly-
nomial form to the DMC energy as a function of time step. For suciently small time steps, the
bias in the DMC energy should be linear in the time step. To use, create a text le containing
DMC time steps, energies and error bars, arranged in three columns; then type extrapolate tau
and answer the questions.
98
extrapolated est: Utility for calculating the extrapolated estimator of the expectation value
of a quantity which does not commute with the Hamiltonian. If g
DMC
represents the expecta-
tion value calculated with DMC, the extrapolated estimator is 2g
DMC
g
V MC
. To use, type
extrapolated est and provide lenames when prompted. These data les can be generated by
running plot expval in a directory containing an expval.data le and retaining the resultant
lineplot.dat les. Statistical errorbars, if present, will be combined in the standard way. See
Sec. 33.
finsize: Calculates post-run table of kinetic-energy and exchange-correlation-energy nite-size
corrections and reports the nite-size-corrected Ewald and/or MPC energies. The utility requires
an expval.data le containing a structure factor, as well as the casino input and out les.
format configs: Format an unformatted config.in le to give a formatted
config.in formatted (or vice versa). This enables one to read its contents, e.g. for de-
velopment purposes. Furthermore, it allows one to transfer the architecture-specic config.in
le between dierent computer systems, since the formatted le can be read by any machine.
gaussiantoqmc: This program takes the output of gaussian and produces a casino
gwfn.data le. See Sec. 9 for information.
graphit: Plot energy versus move data from a DMC run (i.e., the numbers in dmc.hist) in
an xmgrace plot. If for any reason some lines have been removed from the dmc.hist le then
type graphit -x to generate a new set of line numbers when the plot is made. An example of the
use of graphit is given in Sec. 6.4.
ion dist Program for automatic generation of the edist by ion block in the input le for
casino. Currently works only for antiferromagnetic Wigner crystals that have been generated
by the crystal program (since the numbers are generated from an analysis of gwfn.data). See
documentation in ~/CASINO/utils/ion dist/.
jeep pp: Convert a pseudopotential from the format used by gp into the format used by casino.
jeep to pwfn: This program takes the output of GP version 1.8.0 and produces a casino
pwfn.data le.
job, wherejob: Scripts to help manage running jobs on TCM computers. See documentation
in ~/CASINO/utils/job/. (Cambridge interest only.)
localizer: Utility to read in a pwfn.data le containing extended orbitals expanded in plane
waves and generate localized orbitals, also represented in a plane-wave basis. See Sec. 27.
make new mpc: Convert casino 1.x density.data and eepot.data les into casino 2.x
mpc.data.
make p stars: Utility for helping users construct p terms in the Jastrow factor. Type
make p stars and answer the questions. Note that p should have the symmetry of the simu-
lation cell rather than the primitive cell. See Sec. 23.
menugrep Script to facilitate the process of editing lines containing items found by grep:
useful for editing the casino source code. See documentation in ~/CASINO/utils/menugrep/.
modify inputs: Simultaneously modify all input les in subdirectories of the current direc-
tory (e.g. ~/CASINO/examples/) by adding or deleting keywords or by changing the value of a
keyword.
mpr: Pretty printing script for source-code listings, which saves trees (assuming a2ps has been
set up correctly for your system).
99
multirun: Script for running several casino runs sequentially changing any set of parameters
in the input le for each of them.
nstring: Generate integer number sequences. Useful for strings required in correlation.data
les.
plot 2D: This script generates 2D plots of trial wave functions and particle positions us-
ing data produced by qmc plot. The script uses gnuplot. See the documentation in
~/CASINO/utils/plot 2D/ for further information.
plot bffield, plot bfphi: These scripts generate 2D plots of the backow transformation
and the inhomogeneous term (electron-electron-nucleus) of the backow transformation. They
make use of gnuplot. See documentation in ~/CASINO/utils/plot backflow/.
plot expval: General program to read a casino-produced expval.data le and visualize
the results. Converts the data to standard 1D lineplot.dat les which can be visualized with
xmgrace, or 2Dplot.dat/3Dplot.dat les for higher dimensional data which can be visualized
by gnuplot (via the casino plot 2D utility).
plot hist: General program to read vmc.hist and dmc.hist les and plot selected quantities
as a function of move number.
plot reblock: This script uses xmgrace to plot the reblocked standard error in the mean
energy against reblocking transformation number, which is contained in the reblock.plot le
produced by the reblock utility. An example of the use of this script is given in Sec. 6.2.
plot mpc: Reads a casino mpc.data le (containing a Fourier representation of the density of
the Slater wave function and a Fourier representation of 1/r treated with the minimum image
convention). It can convert the data to standard 1D lineplot.dat les which can be visualized
with xmgrace, or 2Dplot.dat/3Dplot.dat les for higher dimensional data which can be
visualized by gnuplot (via the casino plot 2D utility).
ptm: Manipulate pseudopotentials on radial grids or as Gaussian expansions. See documentation
in ~/CASINO/utils/ptm/.
runvp: Utility to run a calculation using several workstations as if they formed a cluster (TCM
only for the moment).
quad fit: Program for carrying out a quadratic t to a set of data, in order to nd a local
extremum. Simply type quad t and supply the code with the name of a le containing columns
of data in the form x, y or x, y, y.
quickblock: Simple reblocking utility intended for analysing very large dmc.hist les (since
it only looks at one column at a time). Alternative to reblock. quickblock allows reblocking
of data other than the energy in the dmc.hist les. If a le called dmc.hist is present in the
directory then quickblock will assume that you want to analyse the total energy in that le.
Otherwise it will ask you for the name of the le (and the column of data) to analyse.
reblock: Perform statistical analysis and reblocking of QMC data in vmc.hist and dmc.hist.
Use this! Information about the reblocking algorithm is given in Sec. 25. Further information
can be found in the documentation in ~/CASINO/utils/reblock/.
runcrystal: Run script for carrying out crystal9x and crystal03 calculations. Its use is
discussed in Sec. 8.2.
runqmc: Runscript for carrying out casino calculations.
tcm comps: Script for listing the jobs running on each of the computers in TCM (Cambridge
interest only).
100
twistav: Script for carrying out twist averaging for real systems, using the castep plane-wave
DFT code in conjunction with casino. See Sec. 28.3.2.
update hist: A utility for converting casino version 1 .hist les to casino version 2 .hist
les.
ve: Utility to extract VMC energies, energy components, standard errors and time taken from
the standard output le. Examples of the use of ve are given in Sec. 6.2 and Sec. 6.3. See
~/CASINO/utils/ve/ for further information.
13 Making movies with CASINO
13.1 How to make movies
In the input le the following keywords control the movie-making process:
# MOVIES
makemovie : T #*! Make movie (Boolean)
movieplot : 1 #*! Plot every * moves (Inte
movienode : 0 #*! Processor to plot (Integer)
moviecells : F #*! Plot nn cells (Boolean)
Set the keyword makemovie to T to enable the movie-making facility. You could set movieplot to
an integer greater than 1 so that the particle positions are only written out every movieplot moves.
The processor which plots the particle positions are chosen by the keyword movienode, which has
to be zero or a positive integer less than the total number of processors. If moviecells is set to F
then the unit cell will be plotted, if set to T then nearest-neighbour cells in the (x, y)-plane will also
be written. Type runqmc and an output le called movie.out will be produced. The format of the
movie.out le is as follows:
4
Input geometry
C 0.000000 0.000000 0.000000 5.000000
H -1.407651 -1.138185 0.054434 -1.000000
H 0.894354 0.554315 1.263301 -1.000000
H 0.528074 1.081535 -0.755823 -1.000000
4
Input geometry
C 0.000000 0.000000 0.000000 5.000000
H -1.407651 -1.138185 0.054434 -1.000000
H 0.894354 0.554315 1.263301 -1.000000
H 0.528074 1.081535 -0.755823 -1.000000
(etc.)
Notes:
1. The movie.out le follows the standard (x, y, z) molecular format.
2. Line 1 indicates the total number n of ions and particles.
3. Line 2 is a comment.
4. The following n lines consist of ve columns. Column 1 species the type of particle (H=electron,
O=hole and C=other atoms). Columns 2, 3 and 4 are the x, y and z coordinates of the particle.
Column 5 species the charge of the particle.
101
5. This information is then repeated. The total number of sets of geometry contained in movie.out
is controlled by the keywords vmc equil nstep, vmc nstep and movieplot in the input le.
6. For column 1, the H=electron, O=hole and C=other atoms convention is somewhat confusing,
but is necessary because particles have to take on element symbols in order for the standard
visualization programs to read the movie.out le.
7. Column 5 is not read by the visualization programs. It is only there so that dierent types of
particle can be distinguished.
13.2 Visualization
Having generated the movie.out le we are able to visualize the results using vmd or jmol.
13.2.1 VMD
vmd (Visual Molecular Dynamics) is a molecular visualization program. It supports computers run-
ning MacOS-X, Unix, or Windows, is distributed free of charge, and includes source code. VMC can
be downloaded from www.ks.uiuc.edu/Research/vmd/.
Type vmd. A VMD console and a VMD Display window will appear.
In the VMD console window type menu main on. An extra VMD Main menu bar will appear.
On the VMD Main menu bar, click on File New Molecule. A Molecule File Browser
will appear.
In the Molecule File Browser, browse for the le movie.out and choose the le type to be xyz.
Click Load to open the le.
On VMD Main, click on Graphics Representations. A Graphical Representations menu
bar will pop up. Choose CPK as the drawing method, the bond resolution to be 1 and the
sphere resolution to be 15. Click Apply.
On VMD Main, click on Extensions vmdmovie. (For version 1.8.3, click on Extensions
Visualisation Movie Maker.) A VMD Movie Generator will pop up.
In Movie Settings choose Trajectory. The movie can be saved in the AVI or MPEG format.
Choose by clicking on Format and tick the preferred format. Then check whether the name of
the temporary directory suggested is right (this is where the RGB les are created). Note that
this directory should be free of RGB les belonging to other users. If this has to be changed
then click on the Set working directory button and browse for the directory.
Type in the name of the movie in the box provided. Click on the Make Movie button.
The movie will be displayed in the Open GL Display screen. The .mpg or .avi movie le
will be produced in the working directory being specied. They have to be viewed with other
viewers, for example mpeg play for .mpg les.
For an example movie made with vmd (a casino VMC simulation of cyclohexane) see
www.tcm.phy.cam.ac.uk/mdt26/downloads/cyclohexane2.mpg.
102
13.2.2 JMOL
jmol is a free, open source molecule viewer. It supports computers running Windows, Mac OS X and
Linux/Unix systems. Jmol can be downloaded from jmol.sourceforge.net/
Type jmol. Click on File Open. Browse for the le movie.out and click Open.
Click on Display and untick the box for Bonds.
Click on Extras Animate. An animation tool bar will appear. To start the movie click on
the play symbol.
14 Detailed information: the VMC method
14.1 Evaluating expectation values
The expectation value of the Hamiltonian
H with respect to the trial wave function can be written
as
H) =
_
E
L
(R)[(R)[
2
dR
_
[(R)[
2
dR
, (10)
where E
L
(R) =
1
(R)
H(R)(R) is the local energy. We can evaluate this expectation value by
using the Metropolis algorithm [17] to generate a sequence of congurations R distributed according
to [(R)[
2
and averaging the corresponding local energies.
14.2 The sampling algorithm
The implementation of VMC in casino involves making trial moves, whether of a single electron or
of the entire conguration, and accepting or rejecting the moves in accordance with the Metropolis
algorithm. The Metropolis transition probability density is Gaussian of variance , where is the
VMC time step (dtvmc).
In the electron-by-electron algorithm, each step consists in proposing individual moves for each of the
electrons and subject each move to a separate accept/reject step. In the conguration-by-conguration
algorithm one conguration move is proposed per step, and is accepted or rejected as a whole.
Another dierence in the casino implementation of these two methods is that in the conguration-by-
conguration the local energy (and all other expectation values) are evaluated both before and after
the move, and it is the average of the two, weighted by the acceptance probability, that enters the
accumulation arrays. In the electron-by-electron algorithm we only evaluate the energy after having
moved the conguration.
The conguration-by-conguration algorithm has the disadvantage of suering from long correlation
times, which makes it in practice more expensive than the electron-by-electron algorithm in virtually
all cases. Thus we will restrict our descussion below to the electron-by-electron algorithm.
The vmc method input parameter selects which is to be used: a value of 1 means electron-by-
electron, whereas a value of 3 means conguration-by-conguration.
10
The local energy does not have to be calculated every conguration move. In particular, energies are
not calculated during the rst vmc equil nstep moves of a VMC simulation when the Metropolis
algorithm has yet to reach its equilibrium. Furthermore, because the congurations are serially cor-
related, the expense of calculating the energy at every conguration move is unjustied: it is more
10
There used to be a vmc method=2, but after extensive testing we concluded that it did not oer any advantage
over the other methods and was hard to support.
103
ecient to calculate the energy once every vmc decorr period moves, where typically the input
parameter vmc decorr period might be in the range 420.
Note that it is not necessary to write out every local energy calculated. vmc ave period successive
energies can be averaged over before being written out to vmc.hist: this helps ensure that the
vmc.hist le is not excessively large when long production calculations are carried out. Furthermore,
on parallel machines the local energies computed on each processor are averaged over before being
written out.
The input parameter vmc nstep gives the number of energy-calculating steps in the VMC simulation.
In parallel machines, each processor goes over vmc nstep/nnodes energy-calculating steps.
14.3 Two-level sampling
The Metropolis acceptance probability for a move from R
) = min
_
1,
[(R)[
2
[(R
)[
2
_
= min
_
1,
[D
2
(R)D
2
(R)[ exp[2J(R)]
[D
2
(R
)D
2
(R
)[ exp[2J(R
)]
_
. (11)
It is straightforward to show that if detailed balance [8] in conguration space is satised then the
resulting ensemble of congurations will be distributed according to the square of the trial wave
function.
However, casino employs a two-level sampling algorithm, which has been shown to be considerably
more ecient [18].
Let us dene the rst-level acceptance probability
p
1
(R R
) = min
_
1,
[D
2
(R)D
2
(R)[
[D
2
(R
)D
2
(R
)[
_
(12)
and the second-level acceptance probability
p
2
(R R
) = min
_
1,
exp[2J(R)]
exp[2J(R
)]
_
. (13)
In the two-level algorithm we accept trial moves from R
to R with probability p
1
(R R
)p
2
(R
R
). It can be shown that, provided detailed balance in conguration space is satised, this procedure
also results in an ensemble of congurations distributed according to the square of the trial wave
function.
The two-level approach is computationally advantageous because the Metropolis accept/reject step
can be carried out in two stages: if the rst level is accepted (with probability p
1
) then we compute
the Jastrow factors of the new and old congurations and determine whether the second level is
accepted (with probability p
2
). Thus, if a move is rejected at the rst level then we do not have to
compute the Jastrow factors for the new and old conguration
12
.
14.4 Optimal value of the VMC time step
Ideally, the VMC time step dtvmc should be chosen such that the correlation period (as determined
by reblocking analysis) of the resulting conguration local energies is minimized. For large time steps
the move rejection probability is high, which obviously leads to serial correlation. On the other hand,
11
In the electron-by-electron algorithm, R and R
, t t
)f(R
, t
) dR
, (14)
where the Greens function G(R R
, t t
, 0) = (RR
) . (15)
The Greens function used in DMC is an approximation to the exact form which is accurate for short
time steps, = t t
(dtdmc),
G
DMC
(R R
, ) = G
D
(R R
, ) G
B
(R R
, ) , (16)
where
G
D
(R R
, ) =
1
(2)
3N/2
exp
_
(RR
V(R
))
2
2
_
(17)
is the drift-diusion Greens function and
G
B
(R R
, ) = exp
_
2
[E
L
(R) +E
L
(R
) 2E
T
]
_
(18)
is the branching Greens function. E
T
is the reference energy, which acts as a renormalization factor
(see Sec. 15.4). E
L
is the local energy,
E
L
(R) =
1
H, (19)
where
H is the Hamiltonian and V is the drift vector,
V(R) =
1
. (20)
Note that V = (v
1
, . . . , v
N
), where v
i
is the drift vector of electron i.
13
2000 steps are required for conguration-by-conguration VMC.
105
15.2 The ensemble of congurations
The f distribution is represented by an ensemble of electron congurations, which are propagated
according to rules derived from the Greens function of Eq. (16). G
D
represents a drift-diusion
process while G
B
represents a branching process. The branching process leads to uctuations in the
population of congurations and/or uctuations in their weights.
We will introduce labels for the dierent congurations present at each time step m. From now
on R represents the electron coordinates of a particular conguration in the ensemble and i labels a
particular electron.
In the casino implementation of DMC, electrons can moved one at a time (electron-by-electron,
dmc method= 1, default) or all at once (conguration-by-conguration, dmc method= 2). The
former is much more ecient and is the standard procedure for large systems, but most of the algo-
rithms described in the literature are for moving all electrons at once.
15.3 Drift and diusion
We now discuss the practical implementation of the drift-diusion process using the electron-by-
electron algorithm in which electrons are moved one at a time, as used in casino.
To implement the drift-diusion step, each electron i in each conguration is moved from r
i
() to
r
i
() in turn according to
r
i
= r
i
+ +v
i
(r
1
, . . . , r
i1
, r
i
, . . . , r
N
), (21)
where is a three-dimensional vector of normally distributed numbers with variance and zero mean.
v
i
(R) denotes those components of the total drift vector V(R) due to electron i.
Hence each electron i is moved from r
i
to r
i
with a transition probability density of
t
i
(r
1
, . . . , r
i1
, r
i
r
i
, r
i+1
, . . . , r
N
) =
1
(2)
3/2
exp
_
(r
i
r
i
v
i
(r
1
, . . . , r
i1
, r
i
, . . . , r
N
))
2
2
_
.
(22)
For a complete sweep through the set of electrons, the transition probability density for a move from
R
= (r
1
, . . . , r
N
) to R = (r
1
, . . . , r
N
) is simply the probability that each electron i moves from r
i
to
r
i
. So the transition probability density for the conguration move is
T(R R
) =
N
i=1
t
i
(r
1
, . . . , r
i1
, r
i
r
i
, r
i+1
, . . . , r
N
). (23)
In the limit of small time steps, the drift velocity V is constant over the (small) conguration move.
Evaluating the product in this case, we nd that the transition probability density is
T(R R
) = G
D
(R R
, ), (24)
so that the drift-diusion process is described by the drift-diusion Greens function G
D
.
At nite time steps, however, the approximation that the drift velocity is constant leads to the violation
of the detailed balance condition.
We may enforce the detailed balance condition on the DMC Greens function by means of a Metropolis-
style accept/reject step introduced by Ceperley et al. [20]. This has been shown to greatly reduce
time-step errors [21]. The move of the ith electron of a conguration is accepted with probability
min
_
1,
t
i
(r
1
, . . . , r
i1
, r
i
r
i
, r
i+1
, . . . , r
N
)
2
(r
1
, . . . , r
i
, r
i+1
, . . . , r
N
)
t
i
(r
1
, . . . , r
i1
, r
i
r
i
, r
i+1
, . . . , r
N
)
2
(r
1
, . . . , r
i1
, r
i
, . . . , r
N
)
_
106
= min
_
1, exp
_ _
r
i
r
i
+
2
(v
i
(r
1
, . . . , r
i1
, r
i
, . . . , r
N
) v
i
(r
1
, . . . , r
i
, r
i+1
, . . . , r
N
)
_
_
v
i
(r
1
, . . . , r
i1
, r
i
, . . . , r
N
) +v
i
(r
1
, . . . , r
i
, r
i+1
, . . . , r
N
)
_
_
2
(r
1
, . . . , r
i
, r
i+1
, . . . , r
N
)
2
(r
1
, . . . , r
i1
, r
i
, . . . , r
N
)
_
a
i
(r
1
, . . . , r
i1
, r
i
r
i
, r
i+1
, . . . , r
N
). (25)
This leads to the single-electron detailed balance condition
s
i
(r
1
, . . . , r
i1
, r
i
r
i
, r
i+1
, . . . , r
N
)
2
(r
1
, . . . , r
i1
, r
i
, . . . , r
N
)
= s
i
(r
1
, . . . , r
i1
, r
i
r
i
, r
i+1
, . . . , r
N
)
2
(r
1
, . . . , r
i
, r
i+1
, . . . , r
N
),
(26)
where
s
i
(r
1
, . . . , r
i1
, r
i
r
i
, r
i+1
, . . . , r
N
) = a
i
(r
1
, . . . , r
i1
, r
i
r
i
, r
i+1
, . . . , r
N
)
t
i
(r
1
, . . . , r
i1
, r
i
r
i
, r
i+1
, . . . , r
N
), (27)
is the eective single-electron transition probability density, once the accept/reject step has been
introduced.
Hence we nd that the eective transition probability density for the entire conguration move satises
S(R R
) =
N
i=1
s
i
(r
1
, . . . , r
i1
, r
i
r
i
, r
i+1
, . . . , r
N
)
=
N
i=1
s
i
(r
1
, . . . , r
i1
, r
i
r
i
, r
i+1
, . . . , r
N
)
2
(r
1
, . . . , r
i
, r
i+1
, . . . , r
N
)
2
(r
1
, . . . , r
i1
, r
i
, . . . , r
N
)
= S(R
R)
2
(R)
2
(R
)
. (28)
And so detailed balance in conguration space is satised.
It is more ecient to use an electron-by-electron algorithm than the (perhaps more straightforward)
conguration-by-conguration algorithm in which moves of entire congurations are proposed and
then accepted or rejected. This is because, for a given time step, a conguration will travel further
on average if the accept/reject step is carried out for each electron in turn. For example, it is clear
that it is very unlikely for a conguration not to be moved at all in an electron-by-electron algorithm.
Hence the sampling of conguration space in an electron-by-electron algorithm is more ecient.
After each move of each electron we check whether the conguration has crossed the nodal surface
(by checking the sign of the Slater part of the trial wave function). If it has then the move is rejected.
This has been found to be the least-biased method of imposing the xed-node approximation [8].
15.4 Branching and population control
The branching Greens function can be implemented by altering the population of congurations
and/or their weights. At the start of the calculation one chooses a target population, M
0
, and the
actual population M
tot
(m) [see Eq. (32)] is controlled so that it does not deviate too much from M
0
.
The population control is principally exerted by altering the reference energy, E
T
(m). Large changes
in E
T
can lead to a bias and therefore it is varied smoothly over the simulation.
For each move of all the electrons in conguration the branching factor is calculated as:
M
b
(, m) = exp
__
1
2
_
S(R
,m
) +S(R
,m
)
_
+E
T
(m)
_
e
(, m)
_
(29)
107
where
e
is the eective time step for conguration at time step m (see Sec. 15.5), S is the local
energy (we denote it by S because it is usually a modied version of E
L
, see Sec. 15.5). Unless weighted
DMC is used (i.e., unless lwdmc=T), the number of copies of this conguration that continue to the
next time step is given by:
M(, m) = INT +M
b
(, m), (30)
where is a random number drawn from a uniform distribution on the interval [0,1].
In weighted DMC, each conguration carries a weight that is simply multiplied by M
b
(, m) after
each move; only if the weight of a conguration goes outside certain bounds (above wdmcmax or
below wdmcmin) is it allowed to branch or be combined with another conguration.
Throughout this section we denote the best estimate of the ground-state energy at time step by
E
best
(m). At the start of a DMC run we set E
best
(0) = E
T
(0) = E
V
, where E
V
is the average
local energy of the initial congurations. During equilibration E
best
is updated after each iteration
as the average local energy over the previous ebest av window moves. During accumulation E
best
is set equal to the current value of the mixed estimator of the energy, given by Eq. (50), with
A =
E
L
(, m). The algorithms dier because we wish to discard data from the start of the simulation
during equilibration. E
T
is updated after every iteration as
E
T
(m+ 1) = E
best
(m)
g
1
EFF
(m)
log
_
M
tot
(m)
M
0
_
, (31)
where g
1
= min1, c
E
T
, c
E
T
is a constant which must be set in the input le (cerefdmc), but
is usually set equal to one, M
0
=dmc target weight is the target number of congurations (in our
implementation it is allowed to take non-integer values) and
M
tot
(m) =
N
config
(m)
=1
w
(m), (32)
where N
cong
(m) is the number of congurations and w
e
(, m) =
i
p
i
r
2
d,i
i
r
2
d,i
, (33)
where the averages are over all attempted moves of the electrons i in conguration at time step
m. The r
d,i
are the diusive displacements [i.e., the distances travelled by the electrons without the
drift-displacement: see Eq. (21)] and p
i
is the acceptance probability of the electron move [see Eq.
(25)]. The values averaged over the current run are written in the output le.
We calculate
EFF
(m) using Eq. (50) with
A
e
(, m).
108
15.5.2 Drift-vector and local-energy limiting
The drift vector diverges at the nodal surface and a conguration which approaches a node can exhibit
a very large drift, resulting in an excessively large move in the conguration space. One can improve
the Greens function by cutting o the drift vector when its magnitude becomes large. The total drift
vector is dened in Eq. (20).
We use the smoothly cut-o drift vector suggested by UNR [13]. For each electron with drift vector
v
i
, we dene the smoothly cut-o drift vector:
v
i
=
1 +
_
1 + 2a[v
i
[
2
a[v
i
[
2
v
i
, (34)
where a is a constant that can be chosen to minimize the bias. The value of a = alimit can be entered
by the user if nucleus gf mods is set to F (the default is a = 1); otherwise a will be calculated as
described in Sec. 15.6.
In the UNR [13] scheme the modied local energy, S(, m), is given by
S(, m) = E
best
(m) [E
best
(m) E
L
(, m)]
[
V[
[V[
, (35)
where
V(, m) = ( v
1
, . . . , v
N
). Note that we dene S slightly dierently from Ref. [13]. S is used only
in the branching factor. When evaluating the average energy, we sum the unlimited local energies,
E
L
. In practice, even though the local energy is calculated at the end of the conguration move, the
limiting scheme of Eq. (35) is applied to the single-electron drift velocities. The ratio of drift velocities
is therefore calculated as
V (R)
V (R)
=
_
v
2
1
(R) +. . . + v
2
N
(R)
_
1/2
V (R)
. (36)
Finally, a very simple option is simply to cut o the local energy drift vector when their magnitudes
becomes large using the method of Depasquale et al. [12],
S(R) = E
V
+ sign[2/
, E
L
(R) E
V
] for [E
L
(R) E
V
[ > 2/
v
i
(R) = sign[1/, v
i
] for [v
i
[ > 1/ . (37)
In the paper of Depasquale et al. [12] they recommend using the variational energy for E
V
, but we
use the best estimate of the energy. We prefer the UNR scheme.
The limited single-electron drift velocities are calculated at the same time as the local energy of the
conguration, after all of the electron positions in the conguration have been updated.
15.6 Modications to the DMC Greens function at bare nuclei
15.6.1 Modications to the limiting of the drift velocity
The limiting of the drift velocity is intended to remove the divergence at the nodal surface; interference
with the cusps at bare nuclei is an undesirable side-eect, which may introduce bias. In order to
distinguish between nodes and nuclei, UNR make the a-parameter in their limiting scheme dependent
on electron position. Immediately before the limited drift velocity of an electron at r
is calculated, a
is evaluated as
a(r
) =
1
2
(1 + v e
z
) +
Z
2
z
2
10(4 +Z
2
z
2
)
, (38)
where v is the unit vector in the direction of the unlimited drift velocity, e
z
is the unit vector from
the closest bare nucleus to the electron, z is the distance of the electron from the nucleus and Z is
the atomic number. This formula makes a small (and hence the limiting weak) if the electron is both
close to the nearest nucleus and drifting towards it.
109
15.6.2 Preventing electrons from overshooting nuclei
In its immediate vicinity, the single-electron drift velocity is always directed towards a bare nucleus.
Therefore, drifting particles should never cross the nucleus; rather, they should end up on top of it.
In order to impose this condition at nite time steps, we work in cylindrical polar coordinates with
the z-axis lying along the line from the nucleus to the electron. Let the position of the closest nucleus
be R
Z
.
The position of the electron relative to the nucleus is
r
R
Z
= z
e
z
, (39)
while the limited drift velocity can be resolved as
v = v
z
e
z
+ v
, (40)
where e
= maxz
+ v
z
, 0, (41)
which cannot lie beyond the nucleus.
The drift in the radial direction over one time step is
=
2 v
+z
. (42)
The new radial coordinate is approximately v
= z
e
z
+
.
15.6.3 Diusion close to a bare nucleus
Close to a nucleus, f is proportional to the square of the hydrogenic 1s orbital (assuming the trial
wave function has the correct behaviour). This cusp cannot be reproduced by Gaussian diusion at
nite time steps. In fact, starting from the nucleus, we would like our electron to take a random step
w distributed according to exp(2Z[w[).
However, we only want to diuse in this fashion when the electron is likely to cross the nucleus. Let
be the plane with normal e
z
that contains the nucleus. For the usual Gaussian diusion process, the
probability that an electron drifts (assuming that nuclear overshoot is permitted) and diuses across
, is
q = 1 p =
1
2
erfc
_
z + v
z
2
_
. (43)
So, with probability p, we sample w from
g
1
(w) = (2)
3/2
exp
_
[w[
2
2
_
, (44)
and set the new electron position to be r = r
exp(2[w[), (45)
14
In order to sample w from g
2
(w), we sample the polar angle uniformly on [0, ], the azimuthal angle uniformly on
[0, 2] and the magnitude w from 4
3
w
2
exp(2w). This is achieved by sampling r
1
, r
2
and r
3
uniformly on [0, 1] and
setting w = log(r
1
r
2
r
3
)/2; see reference [22] for further information.
110
and set r = R
Z
+w. We have dened by
=
_
Z
2
+
1
, (46)
which reduces to Z for large time steps, giving the desired cusp; however, this choice of causes the
second moments of g
1
and g
2
to be equal to O(). Hence the Greens function remains correct to
O().
The single-electron Greens function for the move from r
to r is given by
g(r r
) = pg
1
(r r
) + qg
2
(r R
Z
). (47)
In order to calculate the Greens function for the reverse move, need to perform all of the steps above
(apart from the random diusion), starting at point r and ending up at r
.
15.6.4 Using the modications in CASINO
These three modications to the DMC Greens function are applied if the nucleus gf mods keyword
is set to T. Note that they can only be used if bare nuclei are actually present!
15.7 Evaluating expectation values of observables
The reference energy E
T
is varied to maintain a reasonably steady population. However, this procedure
can result in a bias in the estimate of expectation values, especially for small populations. To remove
this one can evaluate expectation values using the method of UNR [13].
Using the label m for time step, Eq. (16) becomes
f(R, m) =
_
G
DMC
(R R
, )f(R
, m1) dR
. (48)
Clearly, in the absence of the accept/reject step, the eect of including the (time-step-dependent)
reference energy E
T
(m) in G
DMC
can be undone by multiplying the right-hand-side of Eq. (48) by
exp[E
T
(m)]. In a similar fashion the eect of including the reference energy from the previous
time step can be eliminated by multiplying by exp[E
T
(m 1)]. When the accept/reject step is
present, we can approximately undo the eect of the reference energy by using our best estimate of
the eective time step
EFF
(See Sec. 15.5) in the undoing factors.
Continuing this process, we may eliminate the eect of changing the reference energy from f(m) by
multiplying it by
(m) =
=0
exp [
EFF
E
T
(mm
)] , (49)
where in principle the product runs over all previous time steps. In practice it is sucient to include
T
p
(=tpdmc) terms in the product, provided that T
p
is greater than the number of iterations over
which the DMC data are correlated by uctuations in the reference energy: T
p
= NINT(10/) is
generally sucient (the estimation of correlation periods is discussed in Sec. 25.3). Let (m, T
p
) =
T
p
m
=0
exp[
EFF
(m)E
T
(m m
A[)
[)
=
_
(R)
A(R)(R) dR
_
(R)(R) dR
m
m
=1
(m
, T
p
)
N
config
(m
)
=1
w
(m
)
A(, m
m
m
=1
(m
, T
p
)
N
config
(m
)
=1
w
(m
)
, (50)
111
where w
(m
=0
exp [
EFF
(1)E
V
EFF
(m)E
T
(mm
)] , (51)
where E
V
is the variational energy. This is necessary in order to avoid oating point errors.
Note that in practice population-control bias is usually negligible if more than a few hundred con-
gurations are used, and that the weights are an additional source of statistical noise. For this
reason we do not usually use the UNR -weighting scheme [i.e., (m, T
p
) = 1 for all m in all formulae
involving the weights]. The scheme is not used when tpdmc is set to 0, which is the default.
15.8 Growth estimator of the energy
The total weight of a DMC simulation at time t = m is given by:
W(t)
_
f(R, t) dR
N
config
(m)
=1
w
(m) M
tot
(m). (52)
Suppose the DMC simulation is equilibrated, so that f(R, t) = (R)
0
(R). Then
W(t +) =
_ _
G(R R
, )f(R
, ) dR
dR
=
_ _
(R)R[ exp[(
H E
T
)][R
)
1
(R
)(R
)
0
(R
) dRdR
= [ exp[(
H E
T
)][
0
) = W(t) exp[(E
0
E
T
)].
So
E
0
=
1
log
_
W(t +) exp(E
T
)
W(t)
_
1
log
_
exp[E
T
(m+ 1)]M
tot
(m+ 1)
M
tot
(m)
_
. (53)
This is the single-iteration growth estimator.
By taking the expectation value of the argument of the logarithm and using our estimate of the
eective time step, we obtain a much less noisy estimate of the ground state
15
:
E
growth
(m) =
1
EFF
(m)
log
_
_
m
m
=1
(m
, T
p
)M
tot
(m
)
_
exp[E
T
(m
+1)
EFF
(m
)]M
tot
(m
+1)
M
tot
(m
)
_
m
m
=1
(m
, T
p
)M
tot
(m
)
_
_
=
1
EFF
(m)
log
_
m
m
=1
(m
, T
p
) exp[E
T
(m
+ 1)
EFF
(m
)]M
tot
(m
+ 1)
m
m
=1
(m
, T
p
)M
tot
(m
)
_
. (54)
Equation (54) is used to evaluate the growth estimator of the energy in casino if the
growth estimator ag is set to T in the input le. The error bar on the growth estimator is always
much larger than the error on the mixed estimator in practice, so we do not normally use the growth
estimator.
15
Note that by bringing the average inside the logarithm we introduce a small bias into E
growth
.
112
15.9 Automatic block-resetting
Numerous schemes for preventing population control catastrophes due to the occurrence of persistent
electrons have been investigated. Of these, the one that seems to perform best in practice involves
returning to an earlier point in the simulation and changing the random number sequence.
If the dmc trip weight input variable is set to a nonzero value, then a config.backup le will be
created. This contains the data in the config.out le from the previous block. If the total weight
at any given iteration exceeds dmc trip weight, then the data from config.backup will be read in,
the last block of lines will be erased from the dmc.hist le and the random number generator will
be called a few times so that the congurations go o on new random walks, hopefully avoiding the
catastrophe that led to the population explosion in the rst place. (If dmc trip weight is exceeded
in the rst or second blocks, then config.in will be read in instead of config.backup.)
If a block has to be reset more than max rec attempts times then the program will abort with an
error.
Great care should be taken when choosing a value for dmc trip weight. It should be suciently large
that it cannot interfere with normal population uctuations: this would lead to population control
biasing. (Note that the population often grows rapidly at the start of equilibration: again, it must
be ensured that automatic block resetting does not interfere with this natural process.) On the other
hand, dmc trip weight should be suciently small that persistence is dealt with quickly and that
there is insucient time for a population of congurations containing a persistent electron to stabilize.
Choosing larger block lengths (by decreasing the value of dmc equil nblock and dmc stats nblock)
allows the program to return to an earlier point in the simulation, increasing the likelihood that the
catastrophe will be avoided.
Population-control catastrophes should not occur under normal circumstances. The following have
been found to lead to catastrophic behaviour: (i) the use of a trial wave function that does not satisfy
the electron-nucleus cusp conditions, e.g., when a non-cusp-corrected Gaussian basis is used; (ii) the
use of certain nonlocal pseudopotentials in the absence of the T-move scheme [14] (set use tmove
to T in order to use the T-move scheme); (iii) the severe truncation of localized orbitals, especially
when a smooth truncation scheme is used; (iv) the use of an inadequate basis set to represent the
orbitals; (v) pathological trial wave functions, resulting from optimizations that have gone awry (use
jastrow plot to examine the behaviour of u(r
ij
): it should increase monotonically to 0). All of these
circumstances should be avoided if possible.
16 Evaluation of Gaussian orbitals in the Slater wave function
casino can handle Gaussian basis sets up to and including angular momentum l = 4 (s, p, sp, d, f
and g functions). Suppose we have N Gaussians g
w=1,...,N
located at positions r
w
in the primitive
cell. Let R label the other primitive cells. There are therefore copies of the basic set of Gaussian
functions located at positions r
w
+R. We want to evaluate the Bloch orbitals at some point r. The
orbital is labelled by band and k point,
,k
(r) =
w
C
,k
R
g
w
(r r
w
+R) exp[ik R] . (55)
casino implicitly assumes the following about the k points when in Gaussian mode:
The k points form a grid,
k
lmn
=
l
q
1
b
1
+
m
q
2
b
2
+
n
q
3
b
3
+k
s
, (56)
113
where the q
i
are integers, the b
i
are the primitive reciprocal lattice vectors, 0 l q
1
1,
0 m q
2
1 and 0 n q
3
1. In crystal the oset k
s
is always zero, but casino does
not assume this.
casino deals only with real orbitals, which can be formed by making linear combinations of
the states at k and k. The list of k points in the le gwfn.data must contain only one of
each (k, k) pair; the presence of the other is assumed. To make a many-body Bloch wave
function satisfying the condition that it is multiplied by a phase factor under the replacement
r
i
r
i
+ R
s
, where R
s
is a translation vector of the simulation cell, the oset must satisfy
k
s
= G
s
/2, where G
s
is a reciprocal lattice vector of the simulation cell [23]: see Sec. 17.
Finite systems are treated as if they had a single k point.
17 Constructing real orbitals
The Bloch orbitals at an arbitrary point in k-space are complex. If the set of wave vectors consists of
k pairs then one can always construct a set of real orbitals spanning the same space as the original
complex set. A necessary and sucient condition for the mesh of Eq. (56) to consist of k pairs is
that k
s
= G
s
/2, where G
s
is a reciprocal lattice vector of the simulation cell lattice. It is four times
more ecient to use real orbitals than complex ones because it takes four multiplications to evaluate
the product of two complex numbers but only one multiplication for the product of two real numbers.
An orbital satisfying Blochs theorem can be written as
k
(r) = u
k
(r)e
ikr
, (57)
where u
k
has the periodicity of the primitive lattice. The function
k
is a Bloch function with wave
vector k. Therefore we can make two real orbitals from
k
and
k
as follows:
+
(r) =
1
2
[
k
(r) +
k
(r)] ,
(r) =
1
2i
[
k
(r)
k
(r)] . (58)
The orbitals
+
and
are orthogonal if
k
and
k
=
k
are orthogonal, which is true unless
k (k) = G
p
, i.e., their wave vectors dier by a reciprocal lattice vector of the primitive lattice. In
this case
+
and
are linearly dependent and we must use only one of them. Therefore the scheme
is:
Case 1. If k ,=
G
p
2
use
+
and
.
Case 2. If k =
G
p
2
use
+
or
. (59)
In the second case, if one of
+
or
=
+ . (63)
The correction,
, is therefore spherically symmetric about the nucleus. We now demand that
)
dr
_
0
= Z
)
0
. (64)
Note that ) is cuspless because it arises from the Gaussian basis functions centred on the origin
with nonzero angular momentum, whose spherical averages are zero, and the tails of the Gaussian
basis functions centred on other sites, which must be cuspless at the nucleus in question. We therefore
obtain
_
d
dr
_
0
= Z
_
(0) +(0)
_
. (65)
We use Eq. (65) as the basis of our scheme for constructing cusp-corrected orbitals.
115
18.2 Cusp correction algorithm
We apply a cusp correction to each orbital at each nucleus at which it is nonzero. Inside some cusp
correction radius r
c
we replace , the part of the orbital arising from s-type Gaussian functions centred
on the nucleus in question, by
= C + sgn[
(r
c
) C[ = p(r
c
) = X
1
; (68)
2.
1
R(r
c
)
d
dr
r
c
= p
(r
c
) = X
2
; (69)
3.
1
R(r
c
)
d
2
dr
2
r
c
= p
(r
c
) +p
2
(r
c
) = X
3
; (70)
4.
1
R(0)
d
dr
0
= p
(0) = Z
_
C +R(0) +(0)
R(0)
_
= X
4
; (71)
5.
ln [
(0) C[ = p(0) = X
5
. (72)
Although the constraint equations are nonlinear, they can be solved analytically, giving
0
= X
5
1
= X
4
2
= 6
X
1
r
2
c
3
X
2
r
c
+
X
3
2
3
X
4
r
c
6
X
5
r
2
c
X
2
2
2
3
= 8
X
1
r
3
c
+ 5
X
2
r
2
c
X
3
r
c
+ 3
X
4
r
2
c
+ 8
X
5
r
3
c
+
X
2
2
r
c
4
= 3
X
1
r
4
c
2
X
2
r
3
c
+
X
3
2r
2
c
X
4
r
3
c
3
X
5
r
4
c
X
2
2
2r
2
c
. (73)
116
Our procedure is to solve Eq. (73) using an initial value of
(0) = (0). We then vary
(0) so that
the eective one-electron local energy,
E
s
L
(r) =
1
_
1
2
Z
e
r
_
(74)
=
1
2
R(r)
C +R(r)
_
2p
(r)
r
+p
(r) +p
2
(r)
_
Z
e
r
,
is well-behaved. Here the eective nuclear charge Z
e
is given by
Z
e
= Z
_
1 +
(0)
C +R(0)
_
, (75)
which ensures that E
s
L
(0) is nite when the cusp condition of Eq. (71) is satised.
We use an ideal eective one-electron local energy curve given by
E
ideal
L
(r)
Z
2
=
0
+
1
r
2
+
2
r
3
+
3
r
4
+
4
r
5
+
5
r
6
+
6
6r
7
+
7
r
8
. (76)
The values chosen for the coecients were
1
= 3.25819,
2
= 15.0126,
3
= 33.7308,
4
= 42.8705,
5
= 31.2276,
6
= 12.1316,
7
= 1.94692, obtained by tting to the data for the 1s orbital of the
carbon atom. The value of
0
depends on the particular atom and its environment. The ideal eective
one-electron local energy for a particular orbital is chosen to have the functional form of E
ideal
L
(r),
but with the constant value
0
chosen so that the eective one-electron local energy is continuous at
r
c
. Hydrogen is treated as a special case as the 1s orbital of the isolated atom is only half-lled, and
we use E
ideal
L
(r) =
0
.
We wish to choose
(0) so that E
s
L
(r) is as close as possible to E
ideal
L
(r) for 0 < r < r
c
, i.e., the
eective one-electron local energy is required to follow the ideal curve as closely as possible. In our
current implementation we nd the best
(0) by minimizing the maximum square deviation from the
ideal energy, [E
s
L
(r) E
ideal
L
(r)]
2
, within this range. Beginning with
(0) = (0), we rst bracket the
minimum then rene
(0) using a simple golden section search.
We use an automatic procedure for choosing appropriate values of the cusp correction radii. The
maximum possible cusp correction radius is taken to be r
c,max
= 1/Z. The actual value of r
c
is then
determined by a universal parameter c
c
(cusp control in the input le) for which a default value of
50 was found to be reasonable. The cusp correction radius r
c
for each orbital and nucleus is set equal
to the largest radius less than r
c,max
at which the deviation of the eective one-electron local energy
calculated with from the ideal curve has a magnitude greater than Z
2
/c
c
. Appropriate polynomial
coecients
i
and the resulting maximum deviation of the eective one-electron local energy from
the ideal curve are then calculated for this r
c
. As a nal renement one might then allow the code to
vary r
c
over a relatively small range centred on the initial value, recomputing the optimal polynomial
cusp correction at each radius, in order to optimize further the behaviour of the eective one-electron
local energy. This is done by default in the implementation.
When a Gaussian orbital can be readily identied as, for example, a 1s orbital, it generally does
not have a node within r
c,max
. In many cases, however, some of the molecular orbitals have small s-
components which may have nodes close to the nucleus. The possible presence of nodes inside the cusp
correction radius complicates the procedure because the eective one-electron local energy diverges
there. One could simply force the cusp correction radius to be less than the radius of the node closest
to the nucleus, but in practice nodes can be very close to the nucleus and such a constraint severely
restricts the exibility of the algorithm. In practice we dene small regions around each node where
the eective one-electron local energies are not taken into account during the minimization, and from
which the cusp correction radius is excluded.
The Gaussian cusp correction is activated through the input keyword cusp correctionthis has an
eect only if the system contains at least one all-electron atom. In periodic systems it has proved
117
dicult to implement this scheme eciently, and while it works perfectly well the performance of
the code is signicantly aected. Check the timings. More information about the cusp correction of
each orbital at each nucleus can be produced with the keyword cusp info which can be useful in ne
tuning. Clearly this can produce a lot of output, so beware.
19 General-purpose cusp corrections
A scheme for modifying real, Gaussian orbitals so that they satisfy the Kato cusp conditions is
described in Sec. 18 and Ref. [24]. An extension of this scheme can be used to enforce the Kato cusp
conditions on complex orbitals expanded in any smooth basis set. Both cusp-correction schemes are
present in casino. We refer to the former as the Gaussian cusp-correction scheme and the latter as
the general-purpose (GP) cusp-correction scheme.
For simplicity, we consider only the case of a single nucleus of charge Z at the origin in the following
discussion.
In the Gaussian cusp-correction scheme, the s-type basis functions are replaced by radial functions
in the vicinity of the bare nucleus. These functions satisfy the cusp conditions and make the single-
particle local energy resemble an ideal curve [24]. In the GP scheme, instead of replacing part of
the orbital, we add a spherically symmetric function of constant phase to the orbital. The function
added to uncorrected orbital (r) is
(r) = exp(i
0
)(r) = exp(i
0
) [C + exp [p(r)] (r)] (r
c
r), (77)
where is the Heaviside function, C is a real constant, r
c
is a cuto length,
0
= arg[(0)],
(r) = Re
_
exp(i
0
)
4
_
(r) d
_
, (78)
and
p(r) =
0
+
1
r +
2
r
2
+
3
r
3
+
4
r
4
, (79)
where the are real constants to be determined. In practice (r) is calculated by cubic spline
interpolation: the spherical averaging of the uncorrected orbital is performed at the outset on a grid
of radial points. C is chosen so that (r) C is positive everywhere within the Bohr radius of the
nucleus.
The uncorrected orbital may be written as
(r) = exp(i
0
)(r) +(r), (80)
where (r) consists of the l > 0 spherical harmonic components of (r), together with the phase-
dependence of the l = 0 component. Note that exp(i
0
)(0) = (0), and hence (0) = 0. Let
playing the roles of the uncorrected and corrected s-type Gaussian functions centred on the nucleus
in question [24]. The constant phase exp(i
0
) cancels out of the equations determining the (Eqs.
(9)(13) in Ref. [24]), so the determination of the and r
c
is exactly as described in Ma et al.,
except that we do not need to modify Z at the nuclei when more than one atom is present, because
(0) = 0.
Each orbital is corrected at each all-electron ion in the simulation cell. If twisted boundary conditions
are used then the phase of the uncorrected orbital at the nucleus in simulation cell R
s
is exp[i(
0
+
118
k
s
R
s
)], where k
s
is the simulation-cell Bloch vector. [So we can evaluate the cusp correction using
minimum-image distances, then multiply by exp(ik
s
R
s
), where R
s
is the dierence of the actual
and minimum-image positions of the electron relative to the ion.]
To use the scheme, set use gpcc to T. Note that cusp correction (which activates the Gaussian
cusp correction) must be set to F.
20 Wave-function updating
20.1 Slater determinants
Consider the Slater wave function
S
(R) = D
(r
1
, . . . , r
N
)D
(r
N
+1
, . . . , r
N
) , (82)
where D
and D
are Slater determinants for the spin-up and spin-down electrons respectively. We
will need to calculate the ratio of the new wave function to the old when, for example, the ith spin-up
electron is moved from r
old
i
to r
new
i
. The wave-function ratio can be written as
q
=
D
(r
1
, r
2
, . . . , r
new
i
, . . . , r
N
)
D
(r
1
, r
2
, . . . , r
old
i
, . . . , r
N
)
. (83)
A direct calculation of the determinants in q
via
T
jk
=
j
(r
k
) , (84)
where
j
is the jth one-electron orbital of the spin-up Slater determinant and r
k
is the position of
the kth spin-up electron. The transpose of the inverse of T
, which we call T
, may be expressed in
terms of the cofactors and determinant of T
,
T
jk
=
cof(T
jk
)
det(T
)
. (85)
The move of electron i changes only the ith column of T
=
det(T
,new
)
det(T
,old
)
=
j
(r
new
i
)T
,old
ji
. (86)
If the T
in a time proportional to N.
Evaluating T
matrix
has been calculated it can be updated at a cost proportional to N
2
using the formulae
T
,new
ji
=
1
q
T
,old
ji
, (87)
in the case where k = i, and
T
,new
jk
= T
,old
jk
1
q
T
,old
ji
m
(r
new
i
)T
,old
mk
, (88)
when k ,= i.
119
21 Evaluating the local energy
The local energy is given by
E
L
(R) =
N
i=1
1
2
1
(R)
2
i
(R)+
N
i=1
V (R)+
N
i=1
1
(R)
V
ps
nl,i
(R)+V
CPP
(R)+
N
i>j
v
ee
(R) , (89)
where the terms are the kinetic energy, the local part of the external potential energy, the nonlocal part
of the potential energy, the core polarization potential energy (if present) and the electron-electron
interaction energy. The evaluation of the kinetic energy is discussed in Sec. 21.1. The evaluation of
the nonlocal energy is discussed in Sec. 21.2, while the core-polarization potential energy is discussed
in Sec. 21.3. The local part of the external potential energy is divided into a short range part around
each ion, which is evaluated directly, and a long range Coulomb part which is evaluated using the
Ewald potential in periodic systems (see Sec. 21.4) or simply as a sum of 1/r potentials in nite
systems. The electron-electron interaction energy is evaluated either using the Ewald interaction or
the MPC interaction (see Sec. 21.4.4) in periodic systems, or simply as a sum of 1/r potentials in
nite systems.
21.1 Evaluating the kinetic energy
The kinetic part of the local energy, K, can be expressed as a sum of contributions from each electron,
K =
N
i=1
K
i
=
N
i=1
1
2
(R)
1
2
i
(R) . (90)
Because of the exponential form of the Jastrow factor, it is convenient to re-express K
i
in terms of
the logarithm of . We dene
T
i
=
1
4
2
i
(ln [[) =
1
4
2
i
+
1
4
_
_
2
, (91)
and the drift vector F
i
,
F
i
=
1
i
(ln [[) =
1
. (92)
Therefore
K
i
= 2T
i
[F
i
[
2
. (93)
In VMC an integration by parts shows that
K) = [F[
2
) = T) , (94)
where the angle brackets denote averages over the variational distribution, [(R)[
2
. Equation (94)
provides a useful consistency check for VMC calculations but note that it does not hold exactly
within DMC, except in the limit of perfect importance sampling. In VMC the kinetic energy may
be evaluated using any of the three estimators in Eq. (94). casino automatically uses K) for the
evaluation of the total energy, because this normally leads to the lowest variance. However, the lowest
variance of the kinetic energy itself is often obtained from T). In DMC the three estimators are not
exactly equivalent and K) should always be used as the kinetic-energy estimate.
For the Slater-Jastrow wave function of Eq. (82) we have
i
(ln [[) =
i
D
i
D
i
+
i
J , (95)
2
i
(ln [[) =
2
i
D
i
D
i
D
i
D
i
_
2
+
2
i
J . (96)
120
The terms involving Slater determinants may be evaluated by expanding D
i
in terms of the cofactors
of the ith column of the Slater matrix T
i
. If electron i has spin up, for example, the required
expansion is
D
= det (T
) =
j
(r
i
) cof(T
ji
) . (97)
Since all the cofactors appearing in this equation are independent of r
i
, we obtain
i
D
j
(
i
j
(r
i
)) T
ji
, (98)
2
i
D
j
_
2
i
j
(r
i
)
_
T
ji
. (99)
When moving electron i from r
old
i
to r
new
i
, it is useful to be able to evaluate the kinetic energy at the
new position before updating the T matrix. Since the cofactors in Eq. (97) are independent of r
i
,
Eqs. (98) and (99) become
i
D
,new
D
,new
=
1
q
j
(
i
j
(r
new
i
)) T
,old
ji
, (100)
2
i
D
,new
D
,new
=
1
q
j
_
2
i
j
(r
new
i
)
_
T
,old
ji
, (101)
where q
= D
,new
/D
,old
.
21.2 Evaluating the nonlocal pseudopotential energy
The action of the nonlocal pseudopotential on the wave function can be written as a sum of contribu-
tions from each electron and each angular momentum channel. The contribution to the local energy
made by the nonlocal pseudopotential is
V
nl
=
1
V
nl
V
ps
nl,i
=
i
V
nl,i
, (102)
where for simplicity we consider the case of a single atom placed at the origin. V
nl,i
may be written
as [26]
V
nl,i
=
l
V
ps
nl,l
(r
i
)
2l + 1
4
_
P
l
[cos(
i
)]
(r
1
, . . . , r
i1
, r
i
, r
i+1
, . . . , r
N
)
(r
1
, . . . , r
i1
, r
i
, r
i+1
, . . . , r
N
)
d
r
i
, (103)
where P
l
denotes a Legendre polynomial.
casino currently performs the nonlocal projections for l = 0, 1, 2 only. The integral over the surface of
the sphere in Eq. (103) is evaluated numerically. The r
J=I
Z
J
R
JI
[R
JI
[
3
+
i
r
iI
[r
iI
[
3
, (104)
where R
JI
= R
J
R
I
and r
iI
= r
i
R
I
. The CPP energy is then
V
CPP
=
1
2
I
F
I
F
I
, (105)
where
I
is the dipole polarizability of core I.
Equation (104) assumes a classical description, which is valid when the valence electrons are far from
the core. When a valence electron penetrates the core, the classical result is a very poor approximation,
diverging at the nucleus. To remove this unphysical behaviour each contribution to the electric eld
in Eq. (104) is multiplied by a cuto function f(r
iI
/ r
I
), which tends to unity at large r
iI
. A further
possible modication is to allow the one-electron term in Eq. (105), which takes the form
I
/(2r
4
iI
),
to depend on the angular momentum component, l, so that r
I
in the cuto function is replaced by
r
lI
. With these modications the CPP energy operator becomes
V
CPP
=
1
2
I
_
_
i
1
r
4
iI
l
f
_
r
iI
r
lI
_
2
P
l
+
j=i
r
iI
r
jI
r
3
iI
r
3
jI
f
_
r
iI
r
I
_
f
_
r
jI
r
I
_
2
J=I
r
iI
R
JI
r
3
iI
R
3
JI
f
_
r
iI
r
I
_
Z
J
+
_
_
J=I
R
JI
R
3
JI
Z
J
_
_
2
_
_ , (106)
122
where
P
l
is the projector onto the lth angular momentum component of the ith electron with respect
to the Ith ion.
We use the cuto function [29, 28],
f (x) =
_
1 e
x
2
_
2
. (107)
For ecient evaluation, Eq. (106) is written as
V
CPP
=
1
2
I
[
F
I
[
2
+
1
2
i
1
r
4
iI
lmx
l=0
_
f
_
r
iI
r
I
_
2
f
_
r
iI
r
lI
_
2
_
P
l
, (108)
where
F
I
=
J=I
Z
J
R
JI
[R
JI
[
3
+
i
r
iI
[r
iI
[
3
f
_
r
iI
r
I
_
, (109)
and the maximum angular momentum is lmx = 2. In our approach the cuto parameter for all
angular momenta l > 2 is r
I
, which is slightly dierent from Shirley and Martin [28] who use r
2I
.
Equation (108) contains 5 parameters for each ion,
I
, r
0I
, r
1I
, r
2I
and r
I
, whose values are entered at
the end of the xx pp.data le, see Sec. 7.5. Suitable values of the parameters are given in the paper
by Shirley and Martin [28]. If r
0I
= r
1I
= r
2I
= r
I
, the second term in Eq. (108) is zero and it is not
calculated. The second term in Eq. (108) is short-ranged because f(x) 1 at large x. This term is
calculated in real space.
The second term in Eq. (108) is added to the pseudopotential and the core radii lcutotol and
nlcutotol are determined from the resulting potential. The electric eld evaluation is activated by
the presence of core-polarization terms in the pseudopotential les; they are not calculated by default
since they may be expensive, especially when periodic boundary conditions are used.
In periodic boundary conditions the electric elds are evaluated directly from the analytic rst deriva-
tives of the Ewald potential: see Sec. 21.4. Calculations using CPPs may be 510% slower than ones
without CPPs in periodic systems.
Note: the evaluation of the rst derivatives of the periodic potential in 1D polymers has not yet been
implemented, and thus the core-polarization energy cannot be evaluated in such systems.
21.4 Evaluation of innite Coulomb sums
21.4.1 3D Ewald interaction
In three dimensionally periodic systems, the periodic potential of a neutralized lattice of point charges
may be evaluated using the Ewald method [30, 31]. Consider the periodic charge density consisting
of a unit point charge at r
j
in every simulation cell plus a uniform cancelling background,
j
(r) =
R
_
(r r
j
R)
1
_
, (110)
where R denotes the lattice translation vectors and is the volume of the simulation cell. The Ewald
formula for the periodic potential corresponding to this charge density is
v
E
(r, r
j
) =
R
erfc
_
1
2
[r (r
j
+R)[
_
[r (r
j
+R)[
+
4
G=0
exp
_
G
2
/4
_
G
2
exp(iG (r r
j
)) , (111)
123
where G denotes the reciprocal lattice translation vectors. The value of v
E
(r, r
j
) is in principle
independent of the screening parameter and this also holds in practice provided enough vectors are
included in the sums.
16
The larger the value of the more rapidly convergent is the real space sum,
but the more slowly convergent is the reciprocal space sum. A compromise is required to minimize
the overall computational cost. In casino, this parameter is set to (2.8/
1/3
)
2
which approximately
minimizes the cost for a wide variety of Bravais lattices [32].
The full periodic potential of the simulation cell is obtained by adding the potentials of all the N
charges and their cancelling backgrounds (which sum to zero because the cell has no net charge),
v(r) =
N
j=1
q
j
v
E
(r, r
j
) . (112)
The potential acting on the charge at r
i
is therefore
v(r
i
) =
N
j(=i)
q
j
v
E
(r
i
, r
j
) +q
i
, (113)
where
= lim
rr
i
_
v
E
(r, r
i
)
1
[r r
i
[
_
(114)
=
R=0
erfc(
1
2
R)
R
2
1
2
1
2
+
4
G=0
exp(G
2
/4)
G
2
(115)
is the potential acting on the charge at r
i
due to its own images and cancelling background. The full
Ewald potential energy appearing in the QMC Hamiltonian is therefore
U(r
1
, . . . , r
N
) =
1
2
N
i=1
N
j=1
(j=i)
q
i
q
j
v
E
(r
i
, r
j
) +
2
N
i=1
q
2
i
(116)
=
1
2
N
i=1
N
j=1
(j=i)
q
i
q
j
(v
E
(r
i
, r
j
) ) , (117)
where we have used the charge neutrality condition, q
i
=
j(=i)
q
j
. The interaction v
E
(r
i
, r
j
)
approaches 1/[r
i
r
j
[ as r
i
r
j
and is independent of the choice of the zero of potential.
The gradient of the 3D Ewald potential [Eq. (111)] is required for evaluation of the core-polarization
contribution to the total energy (Sec. 21.3). It is given by
v
E
(r, r
j
) =
R
r (r
j
+R)
[r (r
j
+R)[
2
_
erfc
_
1
2
[r (r
j
+R)[
_
[r (r
j
+R)[
+
2
1
2
1
2
exp([r (r
j
+R)[
2
)
_
G=0
G
exp
_
G
2
/4
_
G
2
sin (G (r r
j
)) . (118)
16
Increasing the input parameter ewald control will increase the number of reciprocal vectors included in the sum,
the eect of which is to increase the range of over which the energy is constant. The default value of should
normally lie in the middle of the constant energy region for the default number of reciprocal vectors, so playing with
ewald control is normally unnecessary.
124
21.4.2 2D Ewald interaction
Innite Coulomb sums in systems which are periodic in two dimensions (the xy-plane, according to
casino) are performed using the standard 2D Ewald method originally developed by Parry [33]. One
way to derive the relevant formula is to take the innite separation limit of the 3D sum for a periodic
stack of nite-width slabs. casino uses this algorithm when treating two-dimensional slabs of atoms
with local Gaussian basis sets (useful in modelling surfaces) and also when treating 2D electron and
electron-hole phases (either as strict 2D planes, 2D slabs with nite thickness, or strict 2D bilayers). In
the case of periodic arrays of slabs separated by a nite vacuum gap (necessary when using plane-wave
basis sets), the regular 3D algorithm is used.
Consider a nite width slab with a charge density periodic in two dimensions consisting of a unit point
charge at r
j
in every simulation cell plus a uniform cancelling background.
j
(r) =
R
_
(r r
j
R)
1
A
_
, (119)
where R now denotes the 2D lattice translation vectors in the xy-plane, and A is the area of the
simulation cell in that plane. The Parry formula for the periodic potential corresponding to this
charge density is
v
2D
E
(r, r
j
) =
R
erfc
_
1
2
[r (r
j
+R)[
_
[r (r
j
+R)[
+
A
G=0
exp(iG (r r
j
))
G
_
exp(zG)erfc
_
G
2
1
2
+z
1
2
_
+ exp(zG)erfc
_
G
2
1
2
z
1
2
__
A
_
erf(z
1
2
)z +
exp(z
2
)
()
1
2
_
, (120)
where G denotes the reciprocal lattice translation vectors in the xy-plane, and z is the z-component
of the r r
j
vector. In two dimensions casino sets the screening parameter to (2.4/A
1/2
)
2
which
again should approximately minimize the cost over dierent Bravais lattices.
The full periodic potential of the simulation cell is obtained by following a procedure analogous to
that described for the 3D case, with the self term given by
= lim
rr
i
_
v
E
(r, r
i
)
1
[r r
i
[
_
(121)
=
R=0
erfc
_
1
2
R
_
R
2
1
2
1
2
+
2A
G=0
erfc
_
G
2
1
2
_
G
1
2
A
1
2
. (122)
The rst derivatives of the 2D Ewald potential, required for the evaluation of the core-polarization
energy in 2D slabs, are dierent in directions parallel and perpendicular to the plane of the slab. The
x and y derivatives are given by
v
2D
E
(r, r
j
)
R
(r (r
j
+R))
[r (r
j
+R)[
2
_
erfc
_
1
2
[r (r
j
+R)[
_
[r (r
j
+R)[
+
2
1
2
1
2
exp([r (r
j
+R)[
2
)
_
(123)
G=0
G
sin(G (r r
j
))
G
_
exp(zG)erfc
_
G
2
1
2
+z
1
2
_
+ exp(zG)erfc
_
G
2
1
2
z
1
2
__
.
where = x or y, and the z derivative is given by
v
2D
E
(r, r
j
)
z
=
R
z
[r (r
j
+R)[
2
_
erfc
_
1
2
[r (r
j
+R)[
_
[r (r
j
+R)[
+
2
1
2
1
2
exp([r (r
j
+R)[
2
)
_
125
+
A
G=0
cos(G (r r
j
))
_
exp(zG)erfc
_
G
2
1
2
+z
1
2
_
+ exp(zG)erfc
_
G
2
1
2
z
1
2
__
2
A
erf(z
1
2
) . (124)
Note nally that in things such as 2D bilayer systems (electrons in one layer, holes in the other,
say) there is an additional capacitor term due to interaction of the backgrounds. casino does not
evaluate this term.
21.4.3 1D Coulomb interaction
Coulomb sums in systems that are periodic in one dimension (the x-direction, according to casino)
are performed using an algorithm based on the Euler-Maclaurin summation formula.
See, for example, Eq. (4.8) in Ref. [34]. More details to appear here later.
21.4.4 Model periodic Coulomb interaction
The model periodic Coulomb (MPC) interaction [35, 36, 23] is used to reduce nite size eects in
periodic calculations. The exact MPC interaction operator is
H
exact
ee
=
i>j
f(r
i
r
j
) +
i
_
WS
(r) [v
E
(r
i
r) f(r
i
r)] dr
1
2
_
WS
(r)(r
) [v
E
(r r
) f(r r
)] dr dr
, (125)
where f(r) is the 1/r Coulomb interaction treated within the minimum-image convention, which
corresponds to reducing the vector r into the Wigner-Seitz (WS) cell of the simulation cell, v
E
is the
Ewald potential, and is the electronic charge density from the many-electron wave function . The
electron-electron interaction energy is
E
exact
ee
= [
H
exact
ee
[) , (126)
which gives
E
exact
ee
=
1
2
_
WS
(r)(r
)v
E
(r r
) dr dr
+
_
_
_
WS
[[
2
i>j
f(r
i
r
j
)
k
dr
k
1
2
_
WS
(r)(r
)f(r r
) dr dr
_
_
, (127)
where the rst term on the right-hand side is the Hartree energy and the term in brackets is the
exchange-correlation energy. We can see that the Hartree energy is calculated with the Ewald interac-
tion while the exchange-correlation energy (expressed as the dierence between a full Coulomb term
and a Hartree term) is calculated with the cuto interaction f.
In a DMC calculation we require the local energy at every step, but we only know the DMC charge
density, , at the end of the run. Normally we have a good approximation to the charge density,
A
,
either from an independent particle calculation or a VMC calculation. We can avoid the need to know
exactly by constructing a new interaction operator which involves only
A
,
H
ee
=
i>j
f(r
i
r
j
) +
i
_
WS
A
(r) [v
E
(r
i
r) f(r
i
r)] dr
1
2
_
WS
A
(r)
A
(r
) [v
E
(r r
) f(r r
)] dr dr
. (128)
126
The interaction energy becomes
E
ee
= [
H
ee
[)
=
_
WS
(r)
A
(r
)v
E
(r r
) dr dr
1
2
_
WS
A
(r)
A
(r
)v
E
(r r
) dr dr
+
_
WS
[[
2
i>j
f(r
i
r
j
)
k
dr
k
_
WS
(r)
A
(r
)f(r r
) dr dr
+
1
2
_
WS
A
(r)
A
(r
)f(r r
) dr dr
. (129)
Noting that
E
ee
= E
exact
ee
1
2
_
WS
[(r)
A
(r)] [(r
)
A
(r
)] [v
E
(r r
) f(r r
)] dr dr
, (130)
we see that the error due to this approximation is second order in (
A
), and in addition the
operator (v
E
f) becomes very small as the size of the simulation cell goes to innity. The error term
is therefore usually small and is neglected although it could be calculated after the simulation. We
use the MPC expressions of Eqs. (128) and (129) in both VMC and DMC calculations.
The rst term of the Hamiltonian of Eq. (128) is evaluated in real space and the second term in
Fourier space. The third term is a constant which is evaluated in reciprocal space at the start of the
calculation. Introducing the Fourier transformed quantities,
f
G
=
1
_
WS
f(r)e
iGr
dr , (131)
G
=
1
_
WS
(r)e
iGr
dr , (132)
where is the volume of the cell, and noting that the Fourier transform of the Ewald interaction is
4/(G
2
), we have
H
ee
=
i>j
f(r
i
r
j
) +
G=0
_
4
G
2
f
G
_
A,G
e
iGr
i
i
f
G=0
A,G=0
C , (133)
where
C =
2
2
G=0
_
4
G
2
f
G
_
A,G
A,G
2
2
f
G=0
A,G=0
A,G=0
(134)
The calculation of f
G
is achieved using the following scheme developed by Randy Hood. The integrand
in Eq. (131) diverges at the origin and we separate out the divergent behaviour by writing
f(r) = g(r) +h(r) (135)
where
g(r) =
_
y(r) r < L
1/r r > L ,
(136)
(137)
h(r) =
_
1/r y(r) r < L
0 r > L ,
(138)
and L is the radius of the largest sphere which is contained within the Wigner-Seitz cell and y(r) is
chosen to be
y(r) =
r
2
2L
3
+
3
2L
, (139)
127
so that both g and h have continuous rst derivatives at r = L. The Fourier transform of h(r) is
calculated analytically as
h
G
=
1
_
L
0
_
+1
1
_
1
r
+
r
2
2L
3
3
2L
_
2r
2
e
iGrcos
dcos dr
=
4
G
2
+
12
L
2
G
4
_
cosGL
sinGL
GL
_
, (140)
from which the G = 0 value can be extracted as
h
G=0
=
2L
2
5
, (141)
The Fourier transform of g(r) must be evaluated numerically. The gradient of g(r) is discontinuous
at the boundary of the WignerSeitz cell. The errors in the Fourier components obtained using the
fast Fourier transform (FFT) method therefore fall o slowly, going approximately as N
2
grid
, where
N
grid
is the number of FFT grid points along each lattice vector. It is assumed that the FFT Fourier
coecients of g satisfy
g
N
grid
G
= a
G
N
4
grid
+b
G
N
2
grid
+c
G
, (142)
where the a
G
, b
G
and c
G
are constants. Note that c
G
= g
G
, the value of the Fourier coecient
in the limit of an innite grid. FFTs are carried out at three dierent grid sizes in order to determine
the g
G
.
To investigate whether the extrapolation has been successful, a
G
is set to 0, and the FFT data for the
two nest grids are used to extrapolate to innite system size. casino prints out the G = 0 coecients
obtained by these two extrapolation methods (referred to as quadratic and linear extrapolation,
respectively). casino also displays the extrapolated coecients for which the disagreement between
the two schemes is largest. The user should examine these data, and verify that the extrapolation has
been successful.
Once the extrapolated Fourier coecients of g have been obtained by running casino with runtype
set to gen mpc, they are added to the analytic Fourier coecients of f and stored in the le mpc.data.
Note that, for historical reasons, the coecients stored in mpc.data are actually f
G
.
22 Manual interactions
22.1 Introduction
When using a model particle-particle interaction, the interaction keyword should be set to manual.
This should be done, for instance, when describing the interaction between fermions in a Bose-Einstein
condensate. Note that in this case the interaction only exists between particles of opposite spin, as
the interaction is short-ranged and particles of the same spin have their interaction dominated by the
Pauli exclusion principle. The form of the interaction is set in the manual interaction block. The
rst line of the block can be set to square well or poschl teller.
22.2 Square-well interaction
For the square well the subsequent lines in the manual interaction block should be set to: width
and height, where height is magnitude of the interaction, V
0
, (negative for a well) and width is the
extent of the interaction of the radial well, L.
v(r) = V
0
r L
= 0 r > L (143)
Note that the square well is the one used by Astrakharchik et al. [37].
128
22.3 Modied Poschl-Teller interaction
For the modied Poschl-Teller interaction the well has the form
v(r) =
V
0
m
cosh
2
(r)
, (144)
where r is the distance between the two particles,
m
is the reduced mass and V
0
is the strength of
the interaction. Note that currently casino only calculates this for particles of the same mass; hence
Eq. (144) has the substitution
m
= m/2, which is the same as the method of Carlson et al. [38].
Again V
0
< 0 implies a potential well.
23 The Jastrow factor
The Slater-Jastrow wave function is
(R) = exp [J]
n
c
n
D
n
D
n
, (145)
where the D
n
are determinants of up and down spin orbitals and J is the Jastrow factor.
23.1 General form of CASINOs Jastrow factor
casino uses the form of Jastrow factor proposed in Ref. [39]. casinos Jastrow factor is the sum of
homogeneous, isotropic electron-electron terms u, a homogeneous, isotropic electron-electron-electron
term W, isotropic electron-nucleus terms centred on the nuclei, isotropic electron-electron-nucleus
terms f, also centred on the nuclei and, in periodic systems, plane-wave expansions of electron-electron
separation and electron position, p and q. The form is
J(r
i
, r
I
) =
N1
i=1
N
j=i+1
u(r
ij
) +W(r
ij
) +
N
ions
I=1
N
i=1
I
(r
iI
) +
N
ions
I=1
N1
i=1
N
j=i+1
f
I
(r
iI
, r
jI
, r
ij
)
+
N1
i=1
N
j=i+1
p(r
ij
) +
N
i=1
q(r
i
), (146)
where N is the number of electrons, N
ions
is the number of ions, r
ij
= r
i
r
j
, r
iI
= r
i
r
I
, r
i
is the
position of electron i and r
I
is the position of nucleus I. In periodic systems the electron-electron and
electron-ion separations, r
ij
and r
iI
, are evaluated under the minimum-image convention. Note that
u, , f, p and q may also depend on the spins of electrons i and j.
The plane-wave term, p, will describe similar sorts of correlation to the u term. In periodic systems the
u term must be cut o at a distance less than or equal to the Wigner-Seitz radius of the simulation cell
and therefore the u function includes electron pairs over less than three quarters of the simulation cell.
The p term adds variational freedom in the corners of the simulation cell, which could be important
in small cells. The p term can also describe anisotropic correlations, such as might be encountered
in a layered compound. It is expected that the u term will be considerably more important than the
p term, which cannot describe the electron-electron cusps and is therefore best limited to describing
longer-ranged correlations. The q term will describe similar electron-nucleus correlations to the
I
terms.
23.2 The u, and f terms in the Jastrow factor
The u term consists of a complete power expansion in r
ij
up to order r
C+N
u
ij
which satises the Kato
cusp conditions at r
ij
= 0, goes to zero at the cuto length, r
ij
= L
u
, and has C 1 continuous
129
derivatives at L
u
:
u(r
ij
) = (r
ij
L
u
)
C
(L
u
r
ij
)
_
0
+
_
ij
(L
u
)
C
+
0
C
L
u
_
r
ij
+
N
u
l=2
l
r
l
ij
_
, (147)
where is the Heaviside function and
ij
= 1/2 if electrons i and j have opposite spins and
ij
= 1/4
if they have the same spin. In this expression C determines the behaviour at the cuto length.
If C = 2, the gradient of u is continuous but the second derivative and hence the local energy is
discontinuous, and if C = 3 then both the gradient of u and the local energy are continuous.
The form of is
I
(r
iI
) = (r
iI
L
I
)
C
(L
I
r
iI
)
_
_
0I
+
_
Z
I
(L
I
)
C
+
0I
C
L
I
_
r
iI
+
N
m=2
mI
r
m
iI
_
_
. (148)
It may be assumed that
mI
=
mJ
where I and J are equivalent ions. The term involving the ionic
charge Z
I
enforces the electron-nucleus cusp condition.
The expression for f is the most general expansion of a function of r
ij
, r
iI
and r
jI
that does not
interfere with the Kato cusp conditions and goes smoothly to zero when either r
iI
or r
jI
reach cuto
lengths:
f
I
(r
iI
, r
jI
, r
ij
) = (r
iI
L
fI
)
C
(r
jI
L
fI
)
C
(L
fI
r
iI
)(L
fI
r
jI
)
N
eN
fI
l=0
N
eN
fI
m=0
N
ee
fI
n=0
lmnI
r
l
iI
r
m
jI
r
n
ij
. (149)
Various restrictions are placed on
lmnI
. To ensure the Jastrow factor is symmetric under electron
exchanges it is demanded that
lmnI
=
mlnI
I, m, l, n. If ions I and J are equivalent then it is
demanded that
lmnI
=
lmnJ
. The condition that the f term has no electron-electron cusps is
_
f
r
ij
_
r
ij
=0
r
iI
=r
jI
= 0, (150)
which implies that
N
eN
fI
l=0
N
eN
fI
m=0
lm1I
r
l+m
iI
(r
iI
L
fI
)
2C
= 0 , (151)
for all r
iI
. Hence, k 0, . . . , 2N
eN
fI
,
l,m : l+m=k
lm1I
= 0. (152)
The condition that the f term has no electron-nucleus cusps is
_
f
r
iI
_
r
iI
=0
r
ij
=r
jI
= 0, (153)
which gives
N
eN
fI
m=0
N
ee
fI
n=0
(C
0mnI
L
fI
1mnI
)(L
fI
)
C1
r
m+n
jI
(r
jI
L
fI
)
C
= 0, (154)
for all r
jI
. It is therefore required that, k
0, . . . , N
eN
fI
+N
ee
fI
,
m,n : m+n=k
(C
0mnI
L
fI
1mnI
) = 0. (155)
130
23.3 The RPA form of the u term
An alternative to the u term described above is the common RPA form, which in casino has been
implemented as
u
RPA
ij
=
A
r
ij
_
1 exp
_
r
ij
F
__
, (156)
in three dimensions, where A and F are variational parameters. In two dimensions, the equivalent
expression is
u
RPA
ij
=
A
r
ij
_
1 exp
_
r
ij
2F
_
r
ij
F
__
. (157)
The usual polynomial cuto function is applied to these terms. This alters the cusp conditions, which
are, in three dimensions,
A(F) =
2L
u
ij
F
2
L
u
+ 2CF
, (158)
and in two dimensions,
A(F) =
3L
u
ij
F
3/2
L
u
+ 3CF
, (159)
where
ij
= 1/4 if i and j are electrons of the same spin, and
ij
= 1/2 if their spins are dierent. If i
and j are particles other than electrons, the value of
ij
will also depend on their masses and charges.
Note that in two-dimensional bilayer systems, where electrons of dierent spins are on separate layers,
the anti-parallel cusp conditions are lifted, and the antiparallel A is a free parameter.
The RPA u term is rarely used in practice, as the polynomial u term generally gives lower variational
energies.
23.4 The p and q terms in the Jastrow factor
The p term takes the cuspless form
p(r
ij
) =
A
a
A
G
+
A
cos(G
A
r
ij
) , (160)
where the G
A
are the reciprocal lattice vectors of the simulation cell belonging to the Ath star of
vectors that are equivalent under the full symmetry group of the Bravais lattice, and + means that,
if G
A
is included in the sum, G
A
is excluded. The p term is important if the nite-size correction
to the kinetic energy is to be calculated (see Sec. 29).
For systems with inversion symmetry the q term takes the cuspless form
q(r
i
) =
B
b
B
G
+
B
cos(G
B
r
i
), (161)
where the G
B
are the reciprocal lattice vectors of the primitive unit cell belonging to the Bth star
of vectors that are equivalent under the space-group symmetry of the crystal, and the + means that,
if G
B
is included in the sum, G
B
is excluded. The q term is rarely of use in practice.
23.5 The three-body W term
The W term is given by
W =
N
j,k,l
jk
jl
kl
s
lj
s
lk
, (162)
131
s
jk
= w
jk
r
jk
, (163)
where w
jk
= w(r
jk
) is a suitably parametrized function of the distance between electrons j and k,
r
jk
= r
j
r
k
, and the symbol
jk
(no-delta of j, k) is short-hand for 1
jk
.
The core function w
ij
is parametrized in casino as
w
ij
= w(r
ij
) = f
C
(r
ij
; L
w
)
n
l=0
c
l
r
l
ij
. (164)
where n is the order of the expansion, c
l
are the expansion coecients and f
C
(r
ij
; L
w
) = (r
ij
L
w
)
C
is the usual cuto function.
24 Backow transformations
The most widely-used form of the trial wave function
T
is the Slater-Jastrow (SJ) form
T
= e
J
S
, (165)
where the Jastrow correlation factor e
J
is an optimizable function of the particle coordinates, J =
J(r
i
), and the Slater part
S
is in general a multideterminant expansion,
S
=
N
D
k=1
c
k
N
S
j=1
D
(jk)
, (166)
D
(jk)
= D
(jk)
(r
i
) , (167)
where c
k
are the expansion coecients, and D
(jk)
is the Slater determinant of the one-electron
orbitals of electrons of spin j in the kth term of such expansion.
Backow corrections in QMC are capable of introducing further correlations in
T
by substituting
the coordinates in the Slater determinants by a set of collective coordinates x
i
(r
j
), given by
x
i
= r
i
+
i
(r
j
) , (168)
where
i
is the backow displacement of particle i, which depends on the conguration of the system
r
j
, and contains optimizable parameters that can be fed into a standard method like variance
minimization.
While the use of a Jastrow factor does not modify the nodal surface of the wave function, backow
transformations do change it.
24.1 The generalized backow transformation
The form of the backow displacement
i
in homogeneous systems has traditionally been taken as
[40]
(ee)
i
=
N
j=i
ij
r
ij
, (169)
where
ij
= (r
ij
) is an appropriate function of interparticle distance. Equation (169) can be regarded
as the most general two-body coordinate transformation for a homogeneous system.
Notice that the above expression implicitly assumes that there is a set of preferred directions in the
system, given by the electron-electron vectors r
ij
. In a system with nuclei a new set of preferred
132
directions is introduced, the electron-ion vectors r
iI
. Following the same idea, one is led to introduce
an electron-nucleus contribution to
i
, of the form:
(eN)
i
=
N
ion
iI
r
iI
, (170)
where
iI
= (r
iI
). However, this is a one-electron term; to be consistent with the order of the
term, it is necessary to introduce an inhomogeneous two-electron term (i.e., an electron-electron-
nucleus term), which would be given by
(eeN)
i
=
N
j=i
N
ion
I
_
jI
i
r
ij
+
jI
i
r
iI
_
, (171)
where
jI
i
= (r
iI
, r
jI
, r
ij
) and
jI
i
= (r
iI
, r
jI
, r
ij
).
These functions must be cut o at given lengths for eciency. We use a simple truncation function,
f(r; L) =
_
L r
L
_
C
(L r) , (172)
where L is a cuto length, C is the truncation order and denotes the Heaviside function.
Notice that the above can be easily extended to inhomogeneities other than atoms by introducing any
other coordinates appearing in the potential energy into the expressions. This is not implemented in
casino yet.
24.1.1 The function
Three forms of the homogeneous backow function have been tested with casino. Following extensive
tests, no advantages were found from using the rational and Gaussian forms, and only the polynomial
form remains in the code,
ij
= f(r
ij
; L
)
N
k=0
c
k
r
k
ij
, (173)
where N
+C < 20
17
.
24.1.2 The function
We use the following polynomial expansion for ,
iI
= f(r
iI
; L
,I
)
N
,I
k=0
d
k,I
r
k
iI
, (174)
where L
,I
is the cuto length for ion I, N
,I
is the expansion order and d
k,I
are the optimizable
coecients.
17
It is estimated that numerical problems arise in the evaluation of polynomials beyond order 20 when using
double-precision arithmetics. More complicated polynomial forms (e.g., Chebyshev polynomials) should be used to be
able to exceed this limit.
133
24.1.3 The and functions
Our choice for
jI
i
and
jI
i
are the following power expansions,
jI
i
= f(r
iI
; L
,I
)f(r
jI
; L
,I
)
N
eN,I
k=0
N
eN,I
l=0
N
ee,I
m=0
klm,I
r
k
iI
r
l
jI
r
m
ij
, (175)
jI
i
= f(r
iI
; L
,I
)f(r
jI
; L
,I
)
N
eN,I
k=0
N
eN,I
l=0
N
ee,I
m=0
klm,I
r
k
iI
r
l
jI
r
m
ij
, (176)
where N
eN,I
and N
ee,I
are the expansion orders, L
,I
are the truncation lengths and
klm,I
and
klm,I
are optimizable coecients.
24.2 Constraints on the backow parameters
In SJ wave functions it is common practice to impose the electron-electron cusp conditions on the
parameters in the Jastrow factor and the electron-nucleus ones on the orbitals in the Slater determi-
nant. Backow can modify the cusp conditions; we have constrained the backow parameters so that
they do not.
When AE atoms are present, it can be shown that the electron-nucleus cusp conditions cannot be
fullled unless there is no homogeneous backow term present. However, this issue can be bypassed
by smoothly truncating (r
ij
) around such nuclei. This is automatically done by casino.
An additional set of constraints can be added in order to satisfy the relation
i
(r
j
) =
i
Y (r
j
) , (177)
where Y (r
j
) is an object called backow potential, which appears in the derivation of backow of
Ref. [41]. This equation is already satised by both the electron-electron and the electron-nucleus
terms by denition, and it can be imposed on the electron-electron-nucleus backow functions by
using an appropriate set of constraints, which correspond to the no-curl ag in the phi term in
correlation.data. It is found that the no-curl conditions do not give particularly good backow
functions; it has been left in casino as a means of drastically reducing the number of free parameters
in cases where this is absolutely necessary.
24.3 Improving the nodes of
T
casinos implementation of backow has the ability to improve the nodal surface of the trial wave-
function with respect to that of the SJ form. There is an additional computational expense in going
from SJ to BF, which is a factor of 2 for the AE neon atombased on the CPU time taken to
achieve a given error bar in the mean energyin both VMC and DMC; other systems may vary, but
we expect backow to be a reasonably ecient way of reducing the xed-node error in most cases.
134
Plot of the wave-function nodes of a water molecule, performed by moving an electron in the molecular plane
(XY ) while keeping all others xed in an arbitrary conguration (generated using HF-VMC).
-1 -0.5 0 0.5
-0.06
-0.04
-0.02
0
0.02
0.04
HF
SJ
BF
Plot of the HF, SJ and BF wave-functions across a node in a water molecule, corresponding to moving (x, y)
from (1, 1) to (1, 0.5) in the previous graph.
It should be noticed, however, that the application of backow has a greater eect on VMC than on
DMC. For instance, BF-VMC applied on AE neon has been found to recover a 53% of the correlation
energy missing at the SJ-VMC level, while BF-DMC achieves about 38% with respect to SJ-DMC.
The case of AE Carbon is even more pronounced, the gures being 45% for VMC and a mere 17% for
DMC.
The reason for this is clear: the backow parameters are optimized within VMC, where the nodal
error is far less important than the bulk errorbulk meaning the wave-function away from the nodes
in this contextsimply because of the dierence in the size of the two regions in conguration space.
Theoretically, it is even possible to worsen the DMC results by using a wave-function that improves
135
the VMC energies, but this case has not been found in practice. It is unknown whether a dierent
optimization scheme may be used to systematically improve the nodal surface of a wave-function
regardless of its bulk.
Even so, there are two solid points that encourage the use of backow on many problems:
It reduces the xed-node error by a statistically signicant amount in VMC and DMC at little
additional cost in many cases.
BF-VMC energies are often found to be very close to the SJ-DMC ones. The VMC method is
thus turned into a powerful, yet simple tool delivering highly reliable results.
25 Statistical analysis of data
25.1 The reblocking method
Each conguration generated by the QMC algorithms is related to a conguration from the previous
iteration, so the raw QMC data in the vmc.hist and dmc.hist les are serially correlated. A nave
calculation of the variance of the energy (and hence the standard error in the mean) is an under-
estimate, because successive local energies are more similar on average than they would be if the
congurations were independent.
The eects of serial correlation can be eliminated by gathering successive data points into blocks and
averaging over the data in each block [42]. The variance of the set of block averages can then be
calculated. If the block length is greater than the correlation length between data points then the
block averages are uncorrelated and an unbiased estimate of their variance is obtained. Thus, if the
estimated standard error in the mean energy is plotted against block length then it should, for large
enough blocks, be distributed about a constant value, which is the true standard error in the mean.
If it does not reach such a plateau then there is insucient data to estimate the standard error in the
energy estimate.
Each iteration is equally weighted in a VMC calculation; however, for DMC, each iteration is weighted
by the total weight of the congurations multiplied by the -weight. In either case, let the iteration
weights be w
i
, the total number of data points be M and the energy from iteration i be e
i
.
Consider the bth reblocking transformation, in which the block length is B
b
= 2
b1
. The data range
may be divided into M
b
blocks, the last of which is usually incomplete.
For each block j, the block weight is
W
bj
=
ij
w
i
, (178)
and the corresponding block energy is
E
bj
=
ij
e
i
w
i
W
bj
. (179)
The reblocked energy is
E
b
=
j
E
bj
W
bj
j
W
bj
=
i
e
i
w
i
i
w
i
E, (180)
136
which is therefore independent of reblocking transformation. On the other hand, the reblocked variance
is
2
b
=
j
W
bj
(E
bj
E)
2
j
W
bj
j
W
2
bj
j
W
j
, (181)
which does depend on the reblocking transformation number.
The number of blocks at the bth reblocking transformation is N
b
= M/B
b
. (Note that N
b
is not
necessarily an integer, because the last block may be incomplete.) The standard error in the energy
estimate at reblocking transformation number b is
b
=
b
N
b
, (182)
and the error in
b
may be estimated as
b
=
b
_
2(N
b
1)
. (183)
The reblock utility produces a table of
b
and
b
against b; the user can then look for a region
in which the standard error
b
has reached a plateau as a function of b, and choose an appropriate
reblocking transformation number, which is then used to calculate the error bars on all the dierent
components of energy.
25.2 Estimate of the correlation time given by CASINO
The correlation time of the energy is computed and shown for every block in a VMC calculation, and
also when using the reblock utility. The correlation time measures the average number of Monte
Carlo steps between two uncorrelated values of the energy, and should be unity for optimal statistics.
Note that by Monte Carlo step we mean every step for which an energy is stored, in this context. For
example, in a VMC calculation, every vmc decorr periodvmc ave period conguration moves
produce a single datum for later analysis.
The denition of the correlation time of an observable H is
=
_
+
A(t)dt =
_
+
(H
t
H
t
)
t
)(H
t
+t
H
t
)
t
))
t
2
H
dt, (184)
where A(t) is the value of the autocorrelation function at an interval of t,
2
H
= (H
t
H
t
)
t
)
2
)
t
is
the variance of the expectation values, and the latter are taken with respect to their subscript, which
we shall remove for the sake of clarity. For a discrete set of values, equally spaced by an amount
t = 1,
=
+
t=
A(t) = 1 + 2
+
t=1
A(t) = 1 + 2
+
t=1
(H
t
H))(H
t
+t
H)))
2
H
(185)
and for a nite set of length N,
= 1 + 2
N1
t=1
(H
t
H))(H
t
+t
H)))
2
H
. (186)
Numerically, the problem with this expression is that if averages are used instead of proper expectation
values (which are, of course, unknown), great uctuations will appear at the tail of the autocorrelation
function. This problem is solved by introducing a cuto in the summation [43]:
(t
max
) = 1 + 2
t
max
t=1
(H
t
H)(H
t
+t
H)
2
H
, (187)
137
where the numerator is the average of the measured values of its arguments over the congurations
indexed by 1 t
N t, and
2
H
is the variance of these measures. One possibility for setting the
cuto is to check against the self-consistent inequality t
max
< 3(t
max
) while computing the sum, and
truncate it as soon as it stops being true. This allows an estimate of the error in above expression to
be calculated:
(t
max
) =
_
2(2t
max
+ 1)
N
. (188)
The reblocking method and the correlation time are in principle equally valid methods for estimating
the error in the energy. Each of them has its own disadvantages, though: the plot of reblocked standard
errors can often become noisy before the plateau is reached, preventing accurate determination of the
optimal reblocking length, whereas the error in the correlation time decays very slowly with the
number of energies in the sample. It is recommended that both measures of serial correlation be taken
into account for optimal results.
25.3 Estimating equilibration times and correlation periods
The root-mean-square distance diused by a particle in a period T of imaginary time is
2N
D
DAT,
where A is the move acceptance ratio (which is usually close to 1 in DMC and 1/2 in VMC), N
D
is the
dimensionality of the system (which is usually 3, unless a strict 2D or 1D system is being studied) and
D = 1/2m is the diusion constant, where m is the particle mass (note that D = 1/2 for electrons).
We expect that correlation eects will disappear when the particles have diused through distances
in excess of the largest physically-relevant length-scale . Let T = N
move
, where N
move
is the
number of moves and is the time step. Then the number of moves over which we expect correlation
eects to be present is
N
move
=
2
2N
D
DA
. (189)
The number of equilibration moves should be substantially larger than the above estimate of the
correlation period in order to ensure that all of the transient eects due to the initial distribution die
away. The required equilibration period is often greater than one might expect by simply examining
the variation of the total energy with time.
In practical QMC calculations, with sensible choices of time step, we often nd the VMC correlation
period to be about 5 conguration moves and the DMC correlation period to be about 1000 moves.
26 Wave-function optimization
Optimization of the trial wave function is a crucial part of a VMC or DMC calculation. casino
allows optimization of the parameters in the Jastrow factor, the coecients of the determinants in
a multideterminant wave function, the parameters in the backow functions, pairing parameters in
electron-hole gases and parameters in the orbitals for certain electron and electron-hole phases as
well as modication functions for atomic orbitals. All optimizable parameters are contained in the
le correlation.data. Furthermore, each optimizable parameter is followed by a ag indicating
whether the parameter is xed (0) or free to be optimized (1). See Sec. 7.4 for information on
correlation.data.
There are two methods available within casino for wave function optimization: variance minimiza-
tion and energy minimization. Both methods can be used to optimize any or all of the parameters
mentioned above. In addition to the standard variance-minimization method, there also exists a
much faster version, which can be used when only parameters which appear linearly in the Jastrow
factor are being optimized.
138
26.1 Variance minimization: the standard method
Consider a real trial wave function (R), where R is a point in the electron conguration space. In
VMC the energy is written as
E =
_
[(R)[
2
E
L
(R) dR
_
[(R)[
2
dR
, (190)
where the local energy, E
L
, is
E
L
(R) = (R)
1
H(R)(R), (191)
and
H is the Hamiltonian. The variance of the energy is
2
=
_
[(R)[
2
[E
L
(R) E[
2
dR
_
[(R)[
2
dR
. (192)
We write the trial wave function as
{}
(R), to denote that it depends on a set of free parameters,
. Consider a set of N
C
congurations R distributed according to
{
0
}
(R)
2
for some xed
parameter set
0
. The variance
2
is then estimated for any given parameter set using a
correlated-sampling procedure, which gives rise to the reweighted variance,
2
w
=
T
{}
{
0
}
_
T
{}
{
0
}
_
2
R
_
W
{}
{
0
}
(R)
_
2
E
{}
L
(R)
E
w
2
W
{}
{
0
}
(R), (193)
where the reweighted energy is
E
w
=
1
T
{}
{
0
}
R
Re
_
E
{}
L
(R)
_
W
{}
{
0
}
(R), (194)
which is an estimate of E, and the total weight is
T
{}
{
0
}
=
R
W
{}
{
0
}
(R), (195)
and the weights W are
W
{}
{
0
}
(R) =
{}
(R)
{
0
}
(R)
2
. (196)
The nodal surface of the trial wave function is independent of parameters in the Jastrow factor, so
the weights cannot diverge when such parameters change. For parameters that do aect the nodal
surface, however, it is possible for the weights to diverge.
The unreweighted variance as a function of parameter set is dened to be
2
u
=
1
N
C
1
E
{}
L
(R)
E
u
2
, (197)
where the unreweighted energy is
E
u
=
1
N
C
R
Re
_
E
{}
L
(R)
_
. (198)
The reweighted and unreweighted variances are identical when the same set of congurations is used
and =
0
. However, for any given
0
they are dierent functions of , and there is no
reason to expect that their minima coincide with each other, or that either minimum should coincide
with that of the (reweighted) energy.
139
Both
2
w
and
2
u
are non-negative, but are zero when
{}
is an eigenstate of
H. The reweighted
and unreweighted variances are therefore reasonable cost functions for wave-function optimizations.
The reweighted energy is also a reasonable cost function. However, the problem with the reweighted
energy and variance is that the weights W may vary rapidly as the parameters change, especially for
large systems, which leads to instabilities in optimization procedures [44]. From these considerations
we conclude that the cost function with the most suitable mathematical properties for the stable
optimization of wave functions within the correlated-sampling approach is the unreweighted variance.
The usual variance-minimization procedure is to generate a set of electron congurations R dis-
tributed according to
{
0
}
(R)
2
using VMC, and then to minimize the reweighted or unreweighted
energy variance over this set. Since the variance landscape depends on the distribution of congura-
tions, several cycles of conguration generation and optimization are normally carried out, with the
optimized wave function from the previous cycle being used in each VMC conguration-generation
phase. We usually iterate several times and choose the wave function that gives the lowest variational
energy. In the limit of perfect sampling, the reweighted variance is equal to the actual variance, and
is therefore independent of the conguration distribution, so that the optimized parameters would
not change over successive cycles of reweighted variance minimization. This is not the case for un-
reweighted variance minimization; nevertheless, by carrying out a number of cycles, a self-consistent
parameter set may be obtained.
In casino the minimization of the variance is carried out by the routine nl2sno in module nl2sol,
which performs an unconstrained minimization (without requiring derivatives) of a sum of m squares
of functions which contain n variables, where m n. (Information on the minimization routine can
be found in Ref. [45]).
Before carrying out this process, the user must decide how they wish to parametrize the trial wave
function, and with how many parameters. They must also decide on the number of congurations to
be used in the optimization. These choices are system specic, and depend on the level of accuracy
to which the user wishes to work.
A systematic approach to deciding on an appropriate number of variational parameters is to start by
optimizing a few parameters, then to add more and re-optimize, and so on, until the decrease in energy
resulting from the inclusion of additional parameters is small compared with the energy dierence that
the user wishes to resolve. Note that the error bars on the VMC energy must be smaller still, so that
the user can make accurate judgements about the energy dierences.
It is clearly desirable for the VMC-generated congurations to be completely uncorrelated. This can
be achieved by giving vmc decorr period a large value (e.g. 10). Reblocking VMC energies in
a preliminary VMC run will allow the user to determine the correlation period for VMC energies,
which in turn suggests a suitable value for vmc decorr perriod. It is also essential that the VMC
conguration-generation run is fully equilibrated. Since VMC equilibration is usually computationally
inexpensive, this should be straightforward enough. The utility plot vmc energy can be used to
verify that the VMC energies have equilibrated.
The user may choose whether to optimize the Jastrow factor, determinant-expansion coecients,
or the pairing parameter and orbital coecients, by setting the opt jastrow, opt detcoe and
opt orbitals ags as appropriate. For most applications, it is only necessary to optimize the Jastrow
factor. If only linear parameters in casinos Jastrow factor are to be optimized then the varmin-linjas
method should be used: see Sec. 26.2.
The user may choose between the reweighted or unreweighted variance-minimization algorithms by
choosing the vm reweight keyword to be T or F, respectively. As shown in Ref. [46], the unreweighted
variance-minimization has several desirable properties, which often make it a more useful technique
than reweighted variance minimization: (i) the unreweighted algorithm is numerically more stable; (ii)
in general the unreweighted variance has a simple functional form and only a single minimum in the
space of linear Jastrow parameters; (iii) for a large number of model systems it can be demonstrated
that the wave functions generated by unreweighted variance minimization iterated to self-consistency
140
have a lower variational energy than wave functions optimized by reweighted variance minimization.
If reweighted variance minimization is performed then it is possible to limit the values that the weights
can take, in an attempt to improve the stability. The vm w max and vm w min parameters can
be used to specify the maximum and minimum values that the weights can take.
When optimizing parameters that aect the nodal surface, the local energies of congurations may
diverge as the nodal surface is moved. The aected congurations will then have a disproportionate
eect on the value of the unreweighted variance. It is therefore desirable to remove congurations
from the optimization procedure when their local energies deviate substantially from the mean local
energy. This can be achieved by introducing an eective weight for each conguration, which is a
function of the deviation of the local energy from the mean local energy,
f(E
L
) =
_
_
1
E
L
/
E
L
< T
exp
_
_
[E
L
E[/
E
L
T
W
_
2
_
E
L
/
E
L
> T
, (199)
where T is a user-dened threshold, W is a user-dened lter width, E
L
is the local energy of a
conguration,
E is the average energy, and
E
L
is the square root of the unreweighted variance. To
activate the conguration-ltering scheme, turn vm lter to T in input; the T parameter corresponds
to the keyword vm lter thres and W corresponds to vm lter width. The default values of T = 4
and W = 2 are found to work well in most cases.
Another variant of variance minimization which has proven to be very robust is the minimization of
the mean-absolute-deviation (MAD) of the local energies with respect to the median local energy
E
m
,
MAD =
1
N
C
E
{}
L
(R)
E
m
, (200)
which is found to be adequate for parameters which aect the nodes of the trial wave function. To
use this optimization method, set opt method to madmin in the input le.
It has been suggested [47] that using an estimate of the ground-state energy in place of the mean (or
median) energy in the expression for the variance can improve the variance-minimization algorithm
by adding an element of energy minimization. This can be achieved by setting vm use E guess to
T and supplying the energy estimate using vm E guess. However, we have very rarely obtained any
advantage by doing this.
It is possible to choose how much information casino will provide during the optimization process.
Setting opt info to 1 will provide no information during the minimization; setting it to 2 will provide
a list of the parameters, the mean energy and variance at each iteration [default]; 3 will give addi-
tional information about the numerical derivatives that are computed between iterations to build the
Jacobian; 4 will add the mean and variance of the weights to the output (note that the weights are
then computed but not actually used unless vm reweight is set); 5 provides an enormous amount of
detail and is only likely to be of use for development or debugging purposes.
When carrying out variance minimization, one usually observes a sharp fall in both the variance and
the energy at the rst cycle. Thereafter the energy bounces around. Note that the energies of
subsequent cycles may change by more than the statistical error bars on the individual VMC runs,
because the reoptimization of the parameters constitutes an additional source of variance.
If one wishes to obtain an adequate wave function without spending a lot of time on the optimiza-
tion process then it is advisable to (i) use unreweighted variance minimization; (ii) err on the side
of underparametrization, as this reduces the chance of encountering instabilities; (iii) use as many
congurations as is practicable, but certainly more than 10,000; (iv) carry out a few (e.g., 4) variance-
minimization cycles, in order to check that the optimization process was successful.
If one wishes to obtain a highly accurate wave function then the following approach is often successful:
(i) use unreweighted variance minimization; (ii) systematically investigate the use of dierent num-
bers of parameters and dierent forms of parametrization; (iii) ensure that the VMC error bars are
141
much smaller than the energy dierences to be resolved; (iv) carry out a large number of variance-
minimization cycles (e.g., 20) and choose the correlation.data le that gives the lowest variational
energy.
26.2 Variance minimization: the varmin-linjas method
26.2.1 Background
Consider the linear parameters in casinos Jastrow factor (the expansion coecients
l
,
m
,
lmn
, a
A
and b
B
in the u, , f, p and q terms respectively). The local energy of a single
conguration can be shown to be a quadratic function of the linear parameters; hence the variance of
the local energies of a xed, nite set of congurations is a quartic function of the parameters. But
this is precisely the quantity that is minimized in an unreweighted variance-minimization calculation.
The process of variance minimization can therefore be greatly simplied and accelerated if only linear
Jastrow parameters are to be optimized.
In an ordinary variance-minimization calculation, the VMC method is used to generate a set of con-
gurations distributed according to the initial trial wave function. During the optimization process,
the variance of the local energies of this conguration set is computed for dierent sets of parameters,
and the variance is minimized with respect to the parameters. By contrast, in the varmin-linjas
method, the quartic expansion coecients of the unreweighted variance are accumulated directly in
VMC: there is no need to write out a set of congurations. Furthermore, when the unreweighted
variancereferred to as the least-squares function (LSF)is evaluated during the subsequent opti-
mization stage, there is no need to sum repeatedly over a set of congurations: the quartic LSF can
be evaluated directly.
The fact that the LSF can be evaluated as a quartic function of the parameters gives two signicant
advantages over the standard variance-minimization algorithm: (i) the LSF can be evaluated extremely
rapidly (typically thousands of times per second); furthermore the CPU time required is independent
of the system size; and (ii) the LSF along any line in parameter space is a simple quartic polynomial,
so that the exact, global minimum of the LSF along that line can be computed analytically.
The method has two drawbacks: (i) only linear Jastrow parameters can be optimized in this fashion;
and (ii) the number of quartic coecients to be evaluated and stored in memory grows as the fourth
power of the number of parameters to be optimized.
Detailed information about the varmin-linjas method can be found in Ref. [46].
26.2.2 Using the varmin-linjas method
A casino variance-minimization calculation using the varmin-linjas method is carried out in exactly
the same way as an ordinary variance-minimization calculation except that:
1. The opt method keyword in input should be set to varmin linjas.
2. If desired, the user may change the method used to minimize the LSF with respect to the
set of parameters by using the vm linjas method keyword. This can take the values: CG
(conjugate gradients); SD (steepest descents); GN (Gauss-Newton); MC (Monte Carlo line
minimization); LM (simple line minimization); CG MC (alternate conjugate gradients and
Monte Carlo line minimization); BFGS (Broyden-Fletcher-Goldfarb-Shanno); BFGS MC (al-
ternate BFGS and Monte Carlo line minimization); or GN MC (alternate Gauss-Newton and
Monte Carlo line minimization). If the vm linjas method keyword is omitted then the BFGS
method will be used by default. If you experience diculty optimizing a large set of parame-
ters then the Gauss-Newton method is worth trying. The BFGS method seems to be the most
ecient method in general, however.
142
3. If desired, the user can change both the maximum number of iterations and the number of
line minimizations to be performed by means of the vm linjas its keyword. If this keyword is
omitted, or it is given a negative value, then a default number of iterations will be performed.
The cuto lengths in the Jastrow factor are important variational parameters, and some attempt
to optimize them should always be made. It is recommended that a (relatively cheap) calculation
using the standard variance-minimization method should be carried out in order to optimize the
cuto lengths, followed by an accurate optimization of the linear parameters using the varmin-linjas
method. For some systems, good values of the cuto lengths can be supplied immediately (for example,
in periodic systems at high density with small simulation cells, the cuto length L
u
should be set equal
to the Wigner-Seitz radius of the simulation cell), and one can make use of the varmin-linjas method
straight away.
26.3 Energy minimization
26.3.1 Motivation
Although it was originally motivated by diculties in optimizing the variational energy, variance mini-
mization has proven capable of reliably producing very high quality trial wave functions. Nevertheless,
there are several reasons why optimizing the energy may still be desirable:
Since trial wave functions generally cannot exactly represent an eigenstate, the energy and
variance minima do not coincide. Energy minimization should therefore produce lower VMC
energies. This might in turn yield lower DMC energies, although it is not clear how improvements
in the energy (or variance) relate to improvements in the nodal surface. (In practice, lower VMC
energies usually lead to lower DMC energies.)
Energy-optimized wave functions have been shown to give better estimates of other expectation
values [48, 49, 50].
It is known that the variance of the DMC wave function is proportional to the dierence between
the ground-state energy and the VMC energy [51, 52].
The energy minimization method used in casino has two additional benets. Firstly, it does not re-use
the same set of congurations with dierent parameters. This means that, when optimizing parameters
which change the nodal surface, it will not encounter diculties caused by old congurations lying
very close to the new nodal surface. Secondly, it is especially accurate when optimizing parameters
which appear linearly in the wave function (i.e., determinant coecients). When only optimizing such
parameters, the global energy minimum is found, usually in one cycle.
Sections 26.3.2 and 26.3.3 briey summarize the theory of the method, and Sec. 26.3.6 explains its use.
The theoretical background given here is far from exhaustive. For a much more thorough discussion,
see Refs. [53, 54, 55, 56].
26.3.2 Basic theory
Consider a (generally complex) trial wave function which depends upon a set of p real, variable
parameters . If the cycle
(n)
(n+1)
involves parameter changes
(n)
(n)
+
(n)
, then we
can Taylor-expand
(n+1)
= (
(n+1)
) as:
(
(n+1)
) = (
(n)
) +
p
i=1
(n)
i
(n)
+O
_
[
(n)
]
2
_
(201)
=
(n+1)
lin
+O
_
[
(n)
]
2
_
, (202)
143
where
(n+1)
lin
is the linear sum
(n+1)
lin
=
p
i=0
a
i
i
, (203)
with the coecients a
i
and the basis functions
i
dened as:
a
i
=
_
1 i = 0
(n)
i
i ,= 0
(204)
i
=
_
(
(n)
) i = 0
(n)
i ,= 0.
(205)
The form of
(n+1)
lin
allows a
i
to be optimized using diagonalization (the freedom of normalization
in the resulting eigenvectors of coecients can be exploited to demand that a
0
= 1). The energy
minimization method in casino makes the approximation that
(n+1)
(n+1)
lin
, (206)
and determines the parameter changes
i
at each cycle by optimizing a
i
using diagonalization,
and taking the eigenvector of coecients corresponding to the lowest eigenvalue. This approach is
motivated by the existence of a formulation of diagonalization for VMC which incorporates a zero-
variance principle similar to that enjoyed by variance minimization [56].
In the standard derivation of diagonalization,
(n+1)
lin
would be optimized by demanding that the
variational energy be stationary with respect to the variable parameters:
(n+1)
lin
[
H[
(n+1)
lin
)
(n+1)
lin
[
(n+1)
lin
)
= 0, (207)
which leads to the generalized eigenproblem
(H+H
T
)a = E(S +S
T
)a, (208)
where:
S
ij
=
i
[
j
)
(n+1)
lin
[
(n+1)
lin
)
; (209)
H
ij
=
i
[
H[
j
)
(n+1)
lin
[
(n+1)
lin
)
. (210)
Since H
T
= H
0
_
_
H
j
0
_
+
_
0
_
_
H
i
0
__
|
0
|
2
(211)
ensures that the VMC estimate of the H matrix is symmetric, but does not ensure that it is real. The
dierent choice
_
_
0
_
_
H
j
0
_
+
_
0
_
_
H
j
0
_
_
|
0
|
2
(212)
ensures that it is real, but not necessarily symmetric. (The exact H+H
T
is both real and symmetric.)
In Ref. [56], Nightingale and Melik-Alaverdian show that it is possible to re-derive diagonalization as a
least-squares t, over a nite number of VMC congurations, to the ideal situation in which the basis
functions
i
span an invariant subspace of the Hamiltonian. Because this approach incorporates
144
nite-sampling from the beginning, it removes the ambiguity over how to VMC-estimate H + H
T
.
The analysis introduced in Ref. [56] (and used in Ref. [53, 54, 55]) assumes the wave function is real,
but it is not dicult to extend it to the complex case: what follows is a very concise outline.
Assume that the basis functions span an invariant subspace of the Hamiltonian, i.e.,
H[
i
) =
p
j=0
c
ji
[
j
) i, (213)
meaning that
(n+1)
lin
will be an eigenstate of
H if a is an eigenvector of E. In general,
i
are
complex, but we choose to restrict c
ji
to be real. Equation (213) cannot be exactly satised, so
instead we seek an approximate solution for E by minimizing:
2
=
M
=1
p
i=0
H
i
(R
)
p
j=0
c
ji
j
(R
2
. (214)
Demanding that
2
c
pq
= 0 p, q, (215)
and seeking the eigenvalues and eigenvectors of the resulting approximation to E, leads to exactly
the same eigenproblem as in Eq. (208). The dierence is that the VMC estimate of H+ H
T
is now
specied, as:
_
_
0
_
_
H
j
0
_
+
_
0
_
_
H
j
0
_
_
|
0
|
2
. (216)
Using this expression to estimate H + H
T
gives the method a zero-variance principle: if the basis
functions
i
genuinely do span an invariant subspace of the Hamiltonian, exact diagonalization will
be achieved for any number of congurations greater than p. In practice, this condition never holds
true. Nevertheless, using this expression to VMC-estimate H+ H
T
massively reduces the statistical
noise in the diagonalization process. As noted above, this expression does not guarantee that the
estimate of H + H
T
is symmetric. This means that the eigenvalues E and a may not be real,
but, since their imaginary parts only arise from statistical noise, we can simply discard them.
Using this method to optimize the trial wave function relies on the accuracy of the approximation
made in Eq. (206). If all the parameters being optimized appear linearly in the wave function, the
approximation is exact, and the global minimum of the energy will be found in one cycle.
18
If other
parameters are included in the optimization, the energy will converge to a local minimum over several
cycles, provided that the central approximation holds true.
26.3.3 Stabilization
The basic method described above can encounter two main problems: (i) linear dependencies in
the basis functions
i
; (ii) parameter changes too large for the approximation of Eq. (206) to be
valid. The rst problem, which arises from redundancies in the parameters, leads to the algorithm
attempting to invert a singular matrix. Exact redundancies in the parameters should be avoided
when setting up the wave function, but parameters which are approximately redundant (to within
the numerical precision of the computer) are harder to detect. The solution, as described in Ref.
[56], is to use Singular Value Decomposition [57] for matrix inversions. The practical problems of
redundant parameters are discussed in more detail in Sec. 26.3.6. The second problem can cause
18
In fact, a second cycle may sometimes improve the accuracy of the optimized parameters. The parameters resulting
from the rst cycle will be inexact because of statistical noise. The second cycle uses an improved wave function, which
will result in lower noise when determining the second cycles parameters.
145
the optimization to diverge. Two techniques are used in casino to prevent divergence and stabilize
the algorithm: semi-orthogonalization of the basis functions, and level-shifting [58, 59] in either the
H+H
T
matrix or the (S +S
T
)
1
(H+H
T
) matrix. Both ideas were rst introduced to the method
by Umrigar et al. [53, 54].
26.3.4 Semi-orthogonalization
Consider multiplying by a (complex) re-normalizing factor A() which does not depend on R:
lin
are
minimized by dierent parameter sets. We can choose A() to improve the parameter changes. The
new basis
i
is given by:
0
= A(
(n)
)
0
; (218)
i
=
(A)
(n)
= A(
(n)
)
i
+
0
A
(n)
(i ,= 0). (219)
Following Ref. [53, 54], we choose A(
(n)
) = 1 (such that
0
=
0
), and
A
(n)
= A
i
(
(n)
) =
[
i
)
[
(n)
)
i. (220)
The basis
i
is semi-orthogonalized, in the sense that, while the basis functions are not orthogonal
to one another, they are all orthogonal to a chosen wave function . Umrigar et al. suggest choosing
=
(n)
[[
(n)
[[
+(1 )
(n+1)
lin
[[
(n+1)
lin
[[
, (221)
where 0 1 is a parameter which can be chosen freely, and takes the value 1 when the angle
between
(n)
and
(n+1)
lin
is acute, and 1 when it is obtuse, i.e.,
= 1 sgn
_
Re(
(n)
[
(n+1)
lin
))
_
. (222)
The primary purpose of this choice of is simply to reduce the size of the parameter changes, although
it also achieves certain other conditions for particular choices of . This can be seen using geometrical
arguments, presented and explained
19
in Ref. [55]. Although it is possible to vary in casino (see
Sec. 26.3.6), the default value of 0.5 is believed to be eective in all circumstances.
To use the semi-orthogonalized basis
i
, an expression for A
i
(
(n)
) is needed. From expanding Eq.
(220):
A
i
=
S
0i
D (1 )(
S
0i
+
p
j=1
j
S
ji
)
D +(1 )(1 +
p
j=1
j
S
j0
)
, (223)
where
D =
_
1 +
p
j=1
j
(
S
j0
+
S
0j
) +
p
j,k=1
k
S
jk
, (224)
19
The treatment in Ref. [55] does not include , but its necessity (noted by Umrigar et al.) is clear when one considers
the case where the angle between
(n)
and
(n+1)
lin
is obtuse. Also, in Ref. [55], is assumed to be real, although the
extension to the complex case is simple, and the correct expressions are given here.
146
and
S
ij
is the VMC estimate of S
ij
(note that, unlike for H
ij
, there is no ambiguity over how to do
these VMC estimates). These expressions dier very slightly from those appearing in Refs. [53, 54, 55],
because here the wave function is allowed to be complex.
26.3.5 Matrix manipulation (level-shifting)
We can rewrite Eq. (208) as a simple eigenproblem:
(S +S
T
)
1
(H+H
T
)a = Ea. (225)
If the (S +S
T
)
1
(H+H
T
) matrix had the form
_
_
_
_
_
0
0 0 0
0
1
0 0
0 0
.
.
.
0
0 0 0
p
_
_
_
_
_
,
0
<
i
i = 1 . . . p, (226)
then there would be no change at all in the variable parameters . It is possible to bring any
(S + S
T
)
1
(H + H
T
) matrix qualitatively closer to this no-change condition using level-shifting
[58, 59], in which a positive real constant L is added to all the diagonal elements of the matrix except
the rst:
_
_
_
_
_
0
1
.
.
.
p
_
_
_
_
_
_
_
_
_
_
0
1
+L
.
.
.
p
+L
_
_
_
_
_
. (227)
The approximation in Eq. (206) fails when the parameter changes are too large. Level-shifting can
be used to reduce the size of the parameter changes, stabilizing the optimization. In casino, the
best value for the constant L is determined automatically by performing a line minimization of the
VMC energy estimate with respect to L. (Where possible, correlated sampling is used, both to reduce
computational eort and to increase the statistical precision of energy dierences.) As noted by
Umrigar et al. [53, 54], level-shifting can equally well be applied to the H+H
T
matrix.
26.3.6 Using energy minimization
Energy minimization is used very similarly to standard variance minimization. After selecting it by
setting opt method to emin, the user must choose the number of optimization cycles (opt cycles),
and the number of optimization congurations per cycle (vmc ncong write). As for variance
minimization, vmc decorr period should be chosen so as to generate approximately-uncorrelated
congurations, and the number of congurations required is usually similar to the number required
for variance minimization.
The keyword emin min energy is unique to energy minimization. During level-shifting (described
above), some of the candidate wave functions may be so poor that they cause numerical errors resulting
in an energy estimate which appears to be very low, but is actually spurious. To protect against
this, any energy estimate which is lower than emin min energy is rejected as invalid. During
diagonalization, eigenvalues are also thrown away if they are below emin min energy. The user
may set emin min energy to an energy below the ground-state energy if it is know, else casino will
calculate an estimate at each cycle based on the energy and variance of the initial set of local energies,
which works well in practice.
Two other keywords aect the stabilization procedures (semi-orthogonalization and level-shifting) but
they are mainly intended for the use of developers and should rarely, if ever, be changed by users.
147
emin xi value controls the value of in Eq. (221), but the default value of 0.5 performs well in all
tests.
As mentioned in Sec. 26.3.3, parameters with respect to which the energy is a shallow function may not
allow energy minimization to converge accurately to the best of its precision. Therefore casino xes
parameters internally agged as shallow for the second half of the optimization cycles if using energy
minimization; the precise behaviour can be controlled using the input keyword opt noctf cycles.
If the Jastrow u term is optimized from scratch, the initial HF congurations will not match the
starting wave function (because the u term has a cusp which is present even if all parameters are
zero). Variance minimization has no problem with this, but energy minimization does. Therefore,
casino will instruct the energy minimization module to run unreweighted variance minimization
for the rst cycle if it detects an empty Jastrow factor. This behaviour can be modied using the
emin auto varmin input keyword.
Finally, a brief list of possibilities to investigate if an energy minimization run appears to diverge or
otherwise behave badly (in no particular order):
Are enough congurations being used? (Try increasing vmc ncong write.)
Is the reported VMC correlation time signicantly greater than 1? (If so, increase
vmc decorr period.)
Is emin min energy too high? This may be the case if casino rejects what appear to be
perfectly good energies.
Is energy minimization being used to optimize cuto parameters? It is recommended to x them
at some point to allow the rest of the parameters to fully converge.
27 Use of localized orbitals and bases in CASINO
27.1 Theoretical background
27.1.1 Introduction
The rate-determining step in practical QMC calculations is the evaluation of the orbitals in the Slater
part of the trial wave function after each electron has moved
20
. We explain how the amount of CPU
time spent evaluating the orbitals after each electron move can be made essentially independent of
system size.
27.1.2 Standard QMC
Let the number of electrons in our system be N. In standard QMC the orbitals are HF or DFT
eigenfunctions extending over the entire system. On the other hand, the basis functions used to
represent those orbitals are usually localized functions. Each time an electron is moved, all O(N)
occupied orbitals must be evaluated; however, only the O(1) basis functions in the vicinity of the
electron need to be computed to evaluate each orbital. So, the time taken to carry out a conguration
move of all N electrons in the system is O(N
2
).
If the orbitals are represented by extended basis functions, such as plane waves, then the time taken
for a conguration move scales as O(N
3
), because every basis function in every orbital has to be
computed for every electron.
20
The time spent updating the cofactor matrices will in principle dominate in the limit of large system size, but this
limit is not usually reached in practice. Note that, throughout this section, we assume that electron-by-electron QMC
algorithms are used.
148
27.1.3 Localized orbitals
It is easy to show that a nonsingular linear transformation of a set of orbitals can only change
the normalization of the Slater determinant of those orbitals. For insulating materials there exist
straightforward and ecient algorithms for determining linear transformations to highly localized sets
of orbitals [60, 61].
Highly localized orbitals can be truncated to zero at a certain distance from their centres without
introducing a substantial bias. Therefore, each time an electron is moved, only a few orbitals need to
be evaluated; the others must be zero because the electron lies outside their truncation radii. So the
number of orbitals to be computed after each electron move is O(1) [62].
The truncation of the orbitals results in small discontinuities in the Slater wave function. These are
potentially serious for QMC because they result in the presence of Dirac delta functions in the kinetic-
energy integrand. The delta functions cannot be sampled, so their contribution to the total energy
is lost. However, in practice the resulting bias is extremely small, provided the truncation radii are
suciently large. In fact the bias can be made arbitrarily small by increasing the truncation radii.
The discontinuities can be avoided by bringing the localized orbitals smoothly to zero over a thin,
spherical skin. Surprisingly, it has been shown that the bias resulting from the use of smooth truncation
schemes is larger than the bias that occurs if the orbitals are truncated abruptly at their cuto radii
[63]. The reason for this is that the smooth truncation schemes introduce a new, small length scale
(the skin thickness) into the problem, and the local kinetic energy in the truncation region is extremely
large. A time step that is physically reasonable for the system being simulated is much too large for
the length-scale introduced by the truncation region. This results in large time-step bias and frequent
population-explosion catastrophes. We therefore recommend truncating localized orbitals abruptly:
the bsmooth input parameter should be set to F.
27.1.4 Localized bases
Suppose the basis functions are zero outside xed radii about their centres. Then the only functions
that have to be evaluated when an electron is moved are those with the electron inside their radii. So
the number of basis functions to be computed simply depends on the local environment of the electron
and is therefore independent of system size.
Gaussian basis functions can be regarded as localized if they are truncated to zero outside a certain
radius. This is done by default in casino: Gaussian functions exp(ar
2
) are assumed to be zero
when exp(ar
2
) < 10
G
T
, where G
T
is the gautol input parameter. Gaussian basis sets cannot yet
be used in conjunction with localized orbitals, however.
Alternatively, orbitals can be represented numerically using blip functions, which also constitute a
localized basis. If the orbitals are localized then the memory requirements are greatly reduced (by
a factor of O(N)), because we only have to store the blip coecients needed to evaluate the orbital
within its truncation radius.
27.1.5 Linear-scaling QMC
If the numbers of orbitals and basis functions to be evaluated are both O(1) then the CPU time for
a conguration move scales as O(N). This is what is meant by linear-scaling QMC. Note, however,
that the number of conguration moves required to achieve a given error bar on the total energy scales
as O(N); hence, in practice, the CPU time for linear-scaling QMC calculations scales as O(N
2
).
149
27.2 Using CASINO to carry out linear-scaling QMC calculations
27.2.1 Generation of Bloch orbitals
At present the Bloch orbitals must be represented in a plane-wave basis. A plane-wave DFT code
should be used to generate a pwfn.data le as though an ordinary QMC calculation with a plane-wave
basis were to be carried out. Note that only one k point may be used: the point. This is not a
severe restriction since, for large systems, one would usually only carry out calculations at anyway.
27.2.2 Generation of localized orbitals
The localizer code should be used to carry out the linear transformation to a localized set of orbitals.
The code has the following features:
localizer implements the method described in Ref. [60].
localizer requires a pwfn.data le holding the Bloch orbitals represented in a plane-wave
basis and a centres.dat le of format:
Number of centres
<N>
Display coefficients of linear transformation (0=NO; 1=YES)
<iprint>
Use spherical (1) or parallelepiped (2) localization regions
<icut>
x,y & z coords of centres ; radius ; no. orbs on centre (up & dn)
<pos(1,1)> <pos(2,1)> <pos(3,1)> <radius(1)> <norbs_up(1)> <norbs_dn(1)>
...
<pos(1,N)> <pos(2,N)> <pos(3,N)> <radius(N)> <norbs_up(N)> <norbs_dn(N)>
where N is the total number of localization centres. If iprint is 1 then the coecients of the
linear combination are written to stdout; otherwise they are not. icut can take values 1 or
2, specifying that the localization regions are spherical or parallelepiped-shaped, respectively.
pos(i,j) is the ith Cartesian component of the position vector of the jth centre. radius(j) is
the cuto radius for the jth localization centre. norbs up(j) and norbs dn(j) are the number
of spin-up and spin-down orbitals to be localized on the jth centre, respectively. Note that if a
parallelepiped-shaped localization region is used then the shape of the parallelepiped is dened
by the lattice vectors, but the distance to each face is given by the cuto radius.
The choice of localization centres requires some chemical intuition. See the discussion in Ref.
[60]. At some point in the future, the optimization of the localization centres will be enabled.
Note that in some highly symmetric molecules, symmetric choices of localisation centres can
lead to two localised orbitals being identical. This problem can be avoided by breaking the
symmetry of the localisation centres.
Note that the orbitals will become linearly dependent as two centres approach one another. In
the limit that two centres are located in the same place, the orbitals localized on those centres
will be identical. (One should instead dene a single centre and increase the number of orbitals
localized on that centre.)
localizer produces a pwfn.data.localized le that contains the localized orbitals represented
in the same plane-wave basis as that specied in pwfn.data.
localizer can only work with Bloch orbitals at . Since it is intended for use in large systems,
this should not be a serious restriction.
150
One can only choose dierent numbers of localized orbitals for spin-up and spin-down electrons
if pwfn.data contains spin-polarized data.
If the number N of localized orbitals specied in centres.dat is less than the number M of
orbitals included in pwfn.data then only the rst N orbitals are included in the localization
transformation; the remainder are left as extended orbitals. The orbitals in pwfn.data are
usually arranged in ascending order of eigenvalue, so the orbitals left out of the localization
transformation are those with the highest eigenvalue. If you want to leave particular orbitals of
lower eigenvalue out of the transformation, you could edit the pwfn.data le to put the orbitals
that are to be localized at the start of the le.
27.2.3 Generation of a blip representation of the localized orbitals
A truncated blip representation of a set of localized orbitals can be generated using the blip utility,
which was described in Sec. 11. blip reads in (i) a pwfn.data le containing plane-wave orbital data
(pwfn.data localized should be renamed pwfn.data before blip is used) and (ii) a centres.dat
le. Note that the latter le is optional. blip will also ask the user for the grid multiplicity, whether
to carry out the overlap test described in Sec. 11, and whether the kinetic energy is to be calculated.
blip produces a bwfn.data le holding a blip representation of the localized orbitals. The format
of the centres.dat le is the same as that which is read by localizer, except that two lines may
added to the end of the le:
Number of centres
<N>
Display coefficients of linear transformation (0=NO; 1=YES)
<iprint>
Use spherical (1) or parallelepiped (2) localization regions
<icut>
x,y & z coords of centres ; radius ; no. orbs on centre (up & dn)
<pos(1,1)> <pos(2,1)> <pos(3,1)> <radius(1)> <norbs_up(1)> <norbs_dn(1)>
...
<pos(1,N)> <pos(2,N)> <pos(3,N)> <radius(N)> <norbs_up(N)> <norbs_dn(N)>
Minimum skin thickness (a.u.) <- OPTIONAL LINE
0.d0 <- OPTIONAL LINE
If a centres.dat le is not present when blip is used then the orbitals in pwfn.data will be
represented by a blip grid spanning the entire simulation cell. Likewise, any orbitals that are
not included in the localization transformation described in centres.dat will be represented by
a blip grid that spans the entire cell.
If one requests that the kinetic energy be calculated then blip will calculate the kinetic energies
of the orbitals represented by plane waves and the truncated orbitals represented by blips. Note
that the kinetic energies of nonorthogonal orbitals cannot be summed to obtain the Hartree-Fock
kinetic energy. Nevertheless, the kinetic energies of the plane-wave and blip orbitals should be
in agreement. blip will also calculate the ratio of the squared norm of the truncated orbitals
to that of the original plane-wave ones. This fraction should be very close to 1. For example,
percentages in excess of 99.7% are typical.
The smallest array of blip grid points that completely spans the requested localization region
(including the minimum skin thickness) is worked out for each state. The skin thickness is
then given the largest possible value such that the localization region is contained within the
region spanned by the localized blip grid. The requested localization radius (excluding the skin
thickness) is referred to as the inner truncation radius and the localization radius (including
the actual skin thickness) is referred to as the outer truncation radius. In the subsequent QMC
calculation, if bsmooth is T then the orbital is brought smoothly to zero between these radii.
151
If bsmooth is F then the abrupt truncation of the orbital occurs at the outer truncation radius.
It is recommended that bsmooth be set to F and that the minimum skin thickness be set to 0
(which is the default if it is not specied).
27.2.4 Running a QMC calculation with localized orbitals
The bwfn.data le containing the truncated, localized orbitals can be read by casino. The
usual input les (input, correlation.data and pseudopotentials) should also be supplied. The
atom basis type input parameter should be set to blip.
Please note the following:
It is possible to use blip orbitals to study systems that are nite, or periodic in just the x direc-
tion, or in the (x, y) plane, or are periodic in all three dimensions by setting the blip periodicity
keyword to 0, 1, 2 or 3, respectively. The periodic keyword must be set to T if the system is
periodic in any direction. Note that if reduced-periodicity systems are studied then the atoms
should be placed in the centre of the unit cell spanned by the blip grid, i.e. the unit cell dened
by the lattice vectors.
When excitations are specied, it should be noted that band indices start at the rst nonlocalized
band. For example, if all bands apart from the highest occupied molecular orbital (HOMO) are
localized then the HOMO is band 1. Likewise, when casino reports the number of bands
occupied at a given k point, it does not include the number of localized orbitals.
Multideterminant calculations involving localized orbitals are possible, but all localized orbitals
must be occupied in every determinant. (It only makes sense to carry out a localization trans-
formation between the set of occupied orbitals.)
The bsmooth input parameter is used to specify whether localized orbitals with spherical
truncation surfaces should be abruptly or smoothly truncated. It is recommended that bsmooth
be set to F.
For large systems it is advisable to set the sparse input parameter to T in order to exploit
the fact that most of the orbital values are zero when updating cofactor matrices used in the
evaluation of the Slater determinants.
28 Twist averaging in QMC
28.1 Periodic and twisted boundary conditions
Suppose we wish to calculate the energy per particle of a periodic solid. In one-electron theories
we can often reduce the problem to the primitive unit cell and integrate over the rst Brillouin zone.
Reduction to the primitive cell is not possible in many-body calculations, however, because correlation
eects may be long-ranged; hence such calculations must be performed in periodic simulation cells
consisting of several primitive cells.
Suppose the simulation cell is of volume and contains N electrons, and let r
1
, . . . , r
N
be the
electron coordinates. The Hamiltonian
H must satisfy
H(r
1
, . . . , r
i
+R
s
, . . . , r
N
) =
H(r
1
, . . . , r
i
, . . . , r
N
) i 1, . . . , N, (228)
where R
s
is a simulation-cell lattice vector. This translational symmetry leads to the many-body
Bloch condition
k
s
(r
1
, . . . , r
N
) = U
k
s
(r
1
, . . . , r
N
) exp
_
ik
s
i
r
i
_
, (229)
152
where U has the periodicity of the simulation cell for all electrons [64]. The use of a nonzero simulation-
cell Bloch vector k
s
is sometimes described as the application of twisted boundary conditions [65].
In a nite simulation cell subject to periodic boundary conditions, each single-particle orbital is usually
taken to be of Bloch form
k
(r) = exp[ik r]u
k
(r), where u
k
has the periodicity of the primitive cell
and k lies on the grid of integer multiples of the simulation-cell reciprocal-lattice vectors within the
rst Brillouin zone of the primitive cell, the grid being oset from the origin by the simulation-cell
Bloch vector k
s
. For metallic systems some of the ground-state orbitals are nonanalytic functions
of k, because the occupancy depends on k. Instead of integrating over single-particle orbitals inside
the Fermi surface to calculate the Hartree-Fock (HF) kinetic and exchange energies, one sums over
a discrete set of k vectors when a nite cell is used. As the system size is increased, the neness of
the grid of single-particle Bloch k vectors increases, and the HF energy changes abruptly as shells of
orbitals pass through the Fermi surface.
One usually nds that the uctuations in the QMC energy due to single-particle nite-size eects are
proportional to the corresponding uctuations in the HF kinetic energy or the DFT energy. Hence
HF or DFT energy data can be used to extrapolate QMC energies to innite system size. Note that a
judicious choice of k
s
(e.g., the Baldereschi point [66] for insulators) can greatly reduce single-particle
nite-size errors [64]. The common choice of k
s
= 0 generally maximizes shell-lling eects and is
therefore usually the worst possible value for estimating the total energy, although it does maintain
the correct symmetry of the system.
Twist averaging within the canonical ensemble means taking the average of expectation values over
all simulation-cell Bloch vectors k
s
in the rst Brillouin zone of the simulation cell, i.e., over all osets
to the grid of k vectors, keeping the number of electrons xed [65]. At the HF level, the eect of
twist averaging is to replace sums over the discrete set of single-particle orbitals by integrals over the
volume of reciprocal space dened by placing copies of the simulation-cell Brillouin zone around each
ground-state occupied k point. The boundary of this region tends to the Fermi surface in the limit of
innite system size and the region has the correct volume at all system sizes. Twist averaging removes
a large part of the error caused by the use of a discrete set of orbitals, although some residual errors
remain because the shape of the Fermi surface is not quite correct. At the single-particle level this
gives a small positive bias to the KE, in which shell-lling eects are still visible.
28.2 Using twisted boundary conditions in CASINO
28.2.1 Complex wave functions and the xed-phase approximation
The procedure described in Sec. 17 for constructing real orbitals cannot be carried out if orbitals at
arbitrary k points are used. In general the trial wave function must be complex under twisted boundary
conditions. To specify that a complex wave function is to be used in casino the complex wf keyword
should be set to T. Using complex arithmetic causes casino to run more slowly, so complex wf should
be set to F wherever possible.
The use of a complex wave function makes very little dierence to the VMC and wave-function
optimization algorithms. Since the expectation values of Hermitian operators are real, only the real
parts of the local-energy components are calculated and gathered.
The use of a complex trial wave function necessitates the use of the xed-phase approximation in DMC
[67], in which DMC wave function is constrained to have the same phase as the trial wave function.
In fact it turns out that the xed-node algorithm needs very few modications to allow the use of
complex wave functions within the xed-phase approximation: the real part of the drift vector is used
when proposing trial electron moves; it is not possible to reject node-crossing electron moves
21
; and,
as in VMC, only the real parts of the local energies are gathered.
21
In fact rejecting moves that cross the nodal surface has almost no eect on the time-step bias in systems with real
wave functions anyway.
153
The fact that casino can use complex wave functions means that it will be relatively simple to add
the ability to perform simulations with an external magnetic eld. Please ask Neil to add this feature
if you require it.
28.2.2 HEG uid phases
To specify an oset k
s
to the grid of k vectors for a HEG uid, use the k oset keyword in the
free particles block in input. This should be followed by the Cartesian components of the oset
vector. For example:
%block free_particles
r_s 3
dimensionality 3
cell_geometry
0.0 0.5 0.5
0.5 0.0 0.5
0.5 0.5 0.0
particle 1 det 1 : 9 orbitals free
particle 2 det 1 : 9 orbitals free
k_offset 0.1 0.2 0.3
%endblock free_particles
Note that ground-state calculations for HEG uids with real wave functions must have magic
numbers of electrons, such that there are no partially lled shells of k vectors. If the wave functions is
complex, however, then any number of electrons may be used. This reects the fact that for general
TBC, each shell contains just one k vector.
28.3 Monte Carlo twist averaging within CASINO
Twist averaging [65] can be performed for uid phases of the HEG within casino. At specied
intervals during the simulation, a new k-vector oset is chosen at random, then a short period of
equilibration is carried out before statistics accumulation is resumed.
To specify that twist averaging is to be used in VMC, set vmc ntwist to the required number of
twist angles to sample. After each change of the k-vector oset, vmc reequil nstep VMC equi-
libration moves will be carried out. Note that vmc reequil nstep can be much smaller than
vmc equil nstep, because the distribution of congurations obtained at dierent k-vector osets
should be similar. A typical value for vmc equil nstep might be 100.
To specify that twist averaging is to be used in DMC, set dmc ntwist to the desired number of
twist angles to sample. In the statistics-accumulation phase of DMC the following process will
occur dmc ntwist times: (i) a random k-vector oset will be chosen, (ii) dmc reequil nstep
DMC equilibration moves will be carried out, but no data will be written to dmc.hist and (iii)
dmc stats nstep statistics-accumulation moves will be carried out. So the total amount of data
generated is dmc ntwist dmc stats nstep. Note that the number of post-twist-change equi-
libration moves dmc reequil nstep can be much less than the number of equilibration moves
dmc reequil nstep because the conguration distribution at one twist angle is a reasonably good
approximation to the conguration distribution at another.
Obviously, if twist averaging is to be used in either VMC or DMC then complex wf should be set
to T. The twist-averaged Hartree-Fock energy of the HEG will be calculated and written to the out
le for single-determinant ground-state calculations. One can check that vmc reequil nstep and
dmc reequil nstep are suciently large by setting use jastrow, backow and ibran to F and
comparing the VMC and DMC energies with the twist-averaged Hartree-Fock value (they should be
the same).
154
Note that one cannot expect to nd a plateau when performing reblocking analysis until the block
length is greater than the number of data points between changes of twist angle, i.e., greater than
vmc nstep for VMC data and dmc stats nstep for DMC data.
28.3.1 Real systems
For real systems one can perform the DFT/HF wave-function generation calculations at arbitrary grids
of k points, then use the wave-function converters (including blip) in the usual fashion to generate
casino input les, then read in and use those wave functions in casino, provided that complex wf
is set to T. This functionality is not yet available for Gaussian orbitals, however.
28.3.2 Monte Carlo twist averaging for real systems using TWISTAV
A script called twistav exists to help users carry out twist averaging using casino in conjunction
with the castep plane-wave DFT code. The script repeatedly osets the grid of k vectors in the
castep .cell le and runs castep, then castep2casino, then blip and then casino. The castep
and casino output les are put in directories called twist0001, twist0002, etc. The progress of the
calculations is reported in a le called STATUS. All the necessary castep and casino input les must
be set up in the directory in which the calculation is run. The complete list of k vectors must be
specied (note that both members of a k pair must be given), and complex wf must be T in the
input le. It is not generally necessary to reoptimize the Jastrow factor and backow functions for
the dierent twists; just a single correlation.data le should be supplied. The osets to the grid
of k vectors are chosen randomly.
By default the script uses runqmc to run the casino calculations. If the script is to be used on a
machine with a queueing system then the -batch ag should be set and the command for running
casino should be specied with, e.g., -casino "runqmc nnodes 4 time 00:05:00". The script
doesnt currently let you submit the castep jobs to a queue, but the castep runs are relatively
quick. The number of twists to use is specied using the -ntwist ag. For more information on
available options, type twistav -help.
The clearup twistav script can be used to clear up the output from a twist-averaging run.
29 Finite-size correction to the kinetic energy
29.1 Finite-size correction due to long-ranged correlations
Consider a periodic system of N particles. Suppose there are N
s
species present, each with mass m
and charge q
, and let N
=1
N
s
=+1
N
i=1
N
j=1
u
(r
i
r
j
) +
N
s
=1
N
i=1
N
j=i+1
u
(r
i
r
j
)
_
_
, (230)
where u
(r) = u
be
u
(G) =
_
(G; R) =
N
i=1
exp(iG r
i
) (232)
be the Fourier transform of the density operator
(r; R) =
i=1
(r r
i
). Then
(R) =
s
(R) exp
_
_
1
N
s
1
=1
N
s
=+1
G
u
(G)
(G; R)
(G; R)
+
1
2
N
s
=1
N
i=1
G
u
(G; R)
(G; R)
1
2
N
s
=1
N
G
u
(G)
_
=
s
(R) exp
_
_
1
2
N
s
=1
N
s
=1
G=0
u
(G)
(G; R)
(G; R) +K
_
_
, (233)
where K is independent of R.
If we assume that only electrons are present, the TI kinetic-energy estimator [8] may be written as
T(R) =
1
4
2
log() = T
s
(R)
1
8
N
s
=1
N
s
=1
G=0
u
(G)
2
[
(G; R)
2
[
(G; R)
(G; R)
(G; R) N
] . (235)
Hence the kinetic energy is
T(R)) = T
s
) +
1
4
G=0
[G[
2
_
_
N
s
=1
N
s
=1
u
(G)
(G; R)
(G; R))
N
s
=1
N
(G)
_
_
. (236)
The Fourier transform of the translationally averaged structure factor is
(k) =
1
N
_
(k; R)
(k; R)
_
(k; R))
(k; R)
__
. (237)
The charge density has the periodicity of the primitive lattice and therefore
G=0
[G[
2
N
s
=1
N
s
=1
u
(G)
(G)
1
4
G=0
[G[
2
N
s
=1
N
(G). (238)
In the innite system limit, the sum over G should be replaced by an integral. The leading order
nite-size error is due to the omission of the G = 0 contribution in the third term in Eq. (238) [11].
Assuming that u
(k) has the same form at dierent system sizes, the missing contribution, which is
our nite-size correction, is given by
T =
N
s
=1
N
4(2)
3
m
_
Q
0
4k
2
k
2
u
(k) dk (239)
156
in three dimensions, where u(k) is the spherical average of u(k) and Q is the radius of the sphere in
reciprocal space that has the same volume as that associated with each G vector, (2)
2
/. Hence
Q = (6
2
/)
1/3
. Note that we have also reintroduced the particles masses in Eq. (239).
The corresponding expression in two dimensions is
T =
4(2)
2
m
_
Q
0
2k k
2
u
4(2)m
_
Q
0
2k
2
u
l=0
l
r
l
, (242)
where L
u
, C and are parameters, is the Heaviside function, and r is the magnitude of electron-
electron distance evaluated within the minimum-image convention. (Throughout this section we omit
the spin indices and .)
The Fourier transformation of the two-body Jastrow factor is just the sum of the Fourier transforms
of u and p. Note that the Fourier transform of u is spherically symmetric, whereas spherical averaging
may have to be performed for the Fourier transform of p.
29.2.2 Fourier transformation of p
The p term in the Jastrow factor is
p(r) =
A
a
A
G
+
A
cos(G
A
r) =
G
A
1
2
a
A
exp(iG
A
r), (243)
where A denotes a set of symmetry-equivalent simulation-cell G vectors and + means that, if G is
included in the sum, G is excluded [39]. So the Fourier coecient for G
A
is a
A
/2 in 3D, Aa
A
/2
in 2D and La
A
/2 in 1D.
29.2.3 Fourier transformation of u in 3D
Suppose k ,= 0. Then
u(k) =
_
u(r) exp(ik r) dr
157
=
4
k
_
L
u
0
ru(r) sin(kr) dr
=
4
k
N
u
l=0
l
C
m=0
_
C
m
_
(L
u
)
Cm
_
L
u
0
r
m+l+1
sin(kr) dr. (244)
Let I
n
(k) =
_
L
u
0
r
n
sin(kr) dr. Then I
0
= [1 cos(kL
u
)]/k and I
1
= L
u
cos(kL
u
)/k + sin(kL
u
)/k
2
,
and, for n 2,
I
n
(k) =
1
k
_
n
k
_
L
n1
u
sin(kL
u
) (n 1)I
n2
(k)
_
L
n
u
cos(kL
u
)
_
. (245)
Hence we can rapidly evaluate I
n
(k) for all n required (that is, up to n = N
u
+C + 1).
For k = 0 we have
u(0) = 4
N
u
l=0
l
C
m=0
_
C
m
_
(L
u
)
Cm
L
l+m+3
u
l +m+ 3
. (246)
29.2.4 Fourier transformation of u in 2D
An analytic expression for u(k) is not available in two dimensions. We therefore evaluate u(k) nu-
merically using a fast Fourier transform.
29.2.5 Fourier transformation of u in 1D
u(k) =
_
L/2
L/2
u([x[) exp(ikx) dx
= 2
N
u
l=0
l
_
L
u
0
(x L
u
)
C
x
l
cos(kx) dx
= 2
N
u
l=0
l
C
n=0
_
C
n
_
(L
u
)
Cn
J
n+l
(k), (247)
where L is the length of the simulation cell and J
n
=
_
L
u
0
x
n
cos(kx) dx. Suppose k ,= 0. Then
J
0
(k) = sin(kL
u
)/k, J
1
(k) = L
u
sin(kL
u
)/k + [cos(kL
u
) 1]/k
2
and, for n 2
J
n
(k) =
1
k
_
n
k
_
L
n1
u
cos(kL
u
) (n 1)J
n2
(k)
_
+L
n
u
sin(kL
u
)
_
. (248)
Hence we can rapidly evaluate J
n
(k) for all n required (from n = 0 to n = N
u
+ C). If k = 0 then
J
n
= L
n+1
u
/(n + 1).
29.3 Fitting form for the long-ranged two-body Jastrow factor (3D)
29.3.1 The RPA-Kato Jastrow factor
Consider the innite-system RPA-Kato two-body Jastrow factor [8] for pairs of particles of type ,
which satises the Kato cusp condition and has the long-ranged 1/r decay predicted by the random
phase approximation (RPA) [69],
u
(r) =
A
r
[1 exp(r/F
)] , (249)
158
where A
= c
=
2/(q
2
(k) = 4A
_
1
k
2
1
k
2
+ 1/c
)
_
. (250)
Note that this has the k
2
divergence predicted by the RPA [69]. If the value of u
(k) is known at
a single point k then the parameter A
may be evaluated as
A
=
k
2
u
(k)
4 +c
k
4
u
(k)
. (251)
If one inserts this form for u
=1
N
2m
_
Q
c
tan
1
_
c
Q
_
c
_
. (252)
Making use of the Taylor expansion of tan
1
, it is found that the leading-order correction to the
kinetic energy is
T =
N
s
=1
N
+O(N
2/3
), (253)
where the rst term is independent of N, so the error in the kinetic energy per particle falls o as
O(N
1
).
29.3.2 Application to the homogeneous electron gas
The Jastrow factor of Eq. (249) for a homogeneous electron gas of density parameter r
s
has A
= 1/
p
where
p
=
_
3/r
3
s
is the plasma frequency [8]. Note that = 4r
3
s
N/3 = 4N/
2
p
, and m
= 1.
Hence the leading-order correction to the kinetic energy is T =
p
/4, as found by Chiesa et al. [11].
29.3.3 A simpler tting form for the long-ranged two-body Jastrow factor
Suppose
u
(k) = 4
_
A
k
2
+
B
k
_
, (254)
for small k, which has the divergent terms predicted by the RPA. Then Eq. (239) gives
T =
N
s
=1
N
_
A
+
3B
4
_
6
2
_
1/3
_
. (255)
29.4 Fitting form for the long-ranged two-body Jastrow factor (2D)
Suppose
u
(k) =
a
k
3/2
b
k
, (256)
for small k, which has the k
3/2
divergence predicted by the random phase approximation in 2D (see
e.g. Ref. [70]). Then
T =
N
s
=1
N
2
1/4
a
5A
5/4
+
3A
3/2
_
(257)
where the leading term is O(N
1/4
), so that the error in the kinetic energy per electron falls o as
O(N
5/4
).
159
29.5 Applying the correction scheme in practice
The steps carried out by casino in order to calculate the kinetic-energy correction for a 3D system
are as follows:
1. Calculate the Fourier transformation of u
(r) + p
+ p
at the smallest
nonzero star of G vectors into Eq. (251).
3. Use Eq. (252) to calculate the kinetic-energy correction.
4. As a check, calculate a
and b
+ p
, ) =
1
(4D
e
)
3N
e
/2
exp
_
(R
e
R
e
2D
e
V
e
(R
e
))
2
4D
e
1
(4D
h
)
3N
h
/2
exp
_
(R
h
R
h
2D
h
V
h
(R
h
))
2
4D
h
_
, (258)
where e and h denote electron and hole quantities, N
e
and N
h
are the numbers of electrons and
holes, the diusion constants are dened as D
e
= 1/(2m
e
) and D
h
= 1/(2m
h
), where m
e
and
m
h
are the electron and hole masses in atomic units (i.e., in units of the mass of the electron).
When particle i is moved, Eq. (21) becomes,
r
i
= r
i
+ + 2D
i
v
i
(R
), (259)
where is a 3D vector of normally distributed numbers with variance 2D
i
and zero mean.
The probability of accepting this move, Eq. (25) is then,
p
i
min
_
1, exp [(r
i
r
i
+D
i
(v
i
(R
) v
i
(R)) (v
i
(R
) +v
i
(R))]
(R)
2
(R
)
2
_
. (260)
The eective time step, Eq. (33), is given by,
e
(, m) =
i
m
i
p
i
r
2
d,i
i
m
i
r
2
d,i
(261)
The drift vector limiting, Eq. (34), takes the form,
v
i
=
1 +
_
1 + 4D
i
a[v
i
[
2
2a[v
i
[
2
D
i
v
i
. (262)
Separate Jastrow factors must be dened for the electron-electron, hole-hole and electron-hole
interactions. The general form of the cusp condition for Coulomb interactions is,
1
d
dr
r=0
=
2q
i
q
j
ij
d 1
, (263)
where q
i
and q
j
are the charges in units of the charge of the electron,
ij
= m
i
m
j
/(m
i
+m
j
) is
the reduced mass and d is the dimensionality. The minus sign is used for distinguishable particles
(e.g., anti-parallel-spin electrons or electron and holes) and the plus sign for indistinguishable
particles (e.g., parallel-spin electrons).
Backow transformations for the pairing wave-function have to be carefully rederived.
The kinetic energy term in the local energy is modied to include the mass,
K =
N
i=1
K
i
=
N
i=1
1
2m
i
(R)
1
2
i
(R) . (264)
Similarly,
T
i
=
1
4m
i
2
i
(ln [[) =
1
4m
i
2
i
+
1
4m
i
_
_
2
, (265)
and for the drift vector F
i
,
F
i
=
1
2m
i
i
(ln [[) =
1
2m
i
. (266)
161
32 Relativistic corrections to atomic energies
Relativistic corrections to the ground state energies of closed shell atoms can be calculated using rst-
order perturbation theory, which gives results accurate to the order 1/c
2
, where c is the velocity of
light. This method works well for atoms of low nuclear charge Z when the relativistic corrections are
small, but is not satisfactory when Z is large. In casino the relativistic corrections can be calculated
for VMC method 1 and DMC, by setting the relativistic ag in the input le to T. By default the
relativistic corrections are not calculated.
First we consider the mass polarization term
1
, which accounts for the correction due to the nite
mass of the nucleus to order 1/M, where M is the nuclear mass in amu. This term is given by
1
=
1
M
i<j
v
i
v
j
, (267)
where v
i
(R) is the drift vector of electron i, v
i
(R) = (R)
1
i
(R). By default casino uses nuclear
masses averaged over isotopes, which are listed in Table 2. If a nuclear mass for a specic isotope is
required, the default setting can be overridden by the isotope mass keyword in the input le.
The relativistic terms can be written as a sum of the mass-velocity term, Darwin terms and the
retardation term. The mass-velocity term
2
arises from the relativistic variation of mass with velocity,
and is written as
2
=
1
8c
2
i
(
i
v
i
+v
2
i
)
2
. (268)
This term is proportional to the square of the nonrelativistic kinetic energy. The spread of electronic
charge is described by the electron-nucleus and electron-electron Darwin terms
3
+
4
, which are
expressed together as
3
+
4
=
1
4c
2
_
i
(
i
v
i
+ 2v
2
i
)
_
_
_
j
Z
r
j
j<k
1
[r
j
r
k
[
_
_
, (269)
with Z as the nuclear charge. The last term, known as the retardation term
5
, arises from the
interaction between spin magnetic moments which are not mutually penetrating. It is given by the
expression
5
=
1
2c
2
i<j
_
(r
ij
v
i
)(r
ij
v
j
)
r
3
ij
+
v
i
v
j
r
ij
_
, (270)
where r
ij
= r
i
r
j
. Calculations for the beryllium atom [71] show that the total relativistic cor-
rection to the energy is approximately 0.00239 a.u., with the mass-velocity term having the greatest
contribution of 0.0145 a.u., followed by the Darwin terms of 0.0119 a.u.
33 Expectation values computable by CASINO
Although the total energy is indeed the expectation value of the Hamiltonian, the term expectation
value in casino is generally intended to refer to all other observables that the program is able to
calculate. In the current version of the code there are twelve of these, and in this section we will
describe how to calculate and plot them, and outline some of the theoretical details. If you have this
version of the manual, then please be aware that this section was hurriedly assembled from disparate
sources in order to meet a deadline, and some of the information here may not be correct. It is
intended that it will be reviewed shortly.
The twelve currently-available expectation values are :
162
1
2
H
H
e
1
.
0
0
7
9
4
4
.
0
0
2
6
0
3
4
5
6
7
8
9
1
0
L
i
B
e
B
C
N
O
F
N
e
6
.
9
4
1
9
.
0
1
2
1
8
7
1
0
.
8
1
1
1
2
.
0
1
0
7
1
4
.
0
0
6
7
4
1
5
.
9
9
9
4
1
8
.
9
9
8
4
0
2
0
.
1
7
9
7
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
N
a
M
g
A
l
S
i
P
S
C
l
A
r
2
2
.
9
8
9
7
7
2
4
.
3
0
5
0
2
6
.
9
8
1
5
4
2
8
.
0
8
5
5
3
0
.
9
7
3
7
6
3
2
.
0
6
6
3
5
.
4
5
2
7
3
9
.
9
4
8
1
9
2
0
2
1
2
2
2
3
3
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6
K
C
a
S
c
T
i
V
C
r
M
n
F
e
C
o
N
i
C
u
Z
n
G
a
G
e
A
s
S
e
B
r
K
r
3
9
.
0
9
8
3
4
0
.
0
7
8
4
4
.
9
5
5
9
1
4
7
.
8
6
7
5
0
.
9
4
1
5
5
1
.
9
9
6
1
5
4
.
9
3
8
0
5
5
5
.
8
4
5
5
8
.
9
3
3
2
0
5
8
.
6
9
3
4
6
3
.
5
4
6
6
5
.
3
9
6
9
.
7
2
3
7
2
.
6
1
7
4
.
9
2
1
6
0
7
8
.
9
6
7
9
.
9
0
4
8
3
.
8
0
3
7
3
8
3
9
4
0
4
1
4
2
4
3
4
4
4
5
4
6
4
7
4
8
4
9
5
0
5
1
5
2
5
3
5
4
R
b
S
r
Y
Z
r
N
b
M
o
T
c
R
u
R
h
P
d
A
g
C
d
I
n
S
n
S
b
T
e
I
X
e
8
5
.
4
6
7
8
8
7
.
6
2
8
8
.
9
0
5
8
5
9
1
.
2
2
4
9
2
.
9
0
6
3
8
9
5
.
9
4
9
8
.
0
1
0
1
.
0
7
1
0
2
.
9
0
5
5
0
1
0
6
.
4
2
1
0
7
.
8
6
8
2
1
1
2
.
4
1
1
1
1
4
.
8
1
8
1
1
8
.
7
1
0
1
2
1
.
7
6
0
1
2
7
.
6
0
1
2
6
.
9
0
4
4
7
1
3
1
.
2
9
5
5
5
6
7
1
7
2
7
3
7
4
7
5
7
6
7
7
7
8
7
9
8
0
8
1
8
2
8
3
8
4
8
5
8
6
C
s
B
a
L
u
H
f
T
a
W
R
e
O
s
I
r
P
t
A
u
H
g
T
l
P
b
B
i
P
o
A
t
R
n
1
3
2
.
9
0
5
4
5
1
3
7
.
3
2
7
1
7
4
.
9
6
7
1
7
8
.
4
9
1
8
0
.
9
4
7
9
1
8
3
.
8
4
1
8
6
.
2
0
7
1
9
0
.
2
3
1
9
2
.
2
1
7
1
9
5
.
0
7
8
1
9
6
.
9
6
6
5
5
2
0
0
.
5
9
2
0
4
.
3
8
3
3
2
0
7
.
2
2
0
8
.
9
8
0
3
8
2
0
9
.
0
2
1
0
.
0
2
2
2
.
0
8
7
8
8
1
0
3
1
0
4
1
0
5
1
0
6
1
0
7
1
0
8
1
0
9
1
1
0
1
1
1
1
1
2
1
1
3
1
1
4
1
1
5
1
1
6
1
1
7
1
1
8
F
r
R
a
L
r
R
f
D
b
S
g
B
h
H
s
M
t
D
s
U
u
u
U
u
b
U
u
t
U
u
q
U
u
p
U
u
h
U
u
s
U
u
o
2
2
3
.
0
2
2
6
.
0
2
6
2
.
0
2
6
1
.
0
2
6
2
.
0
2
6
3
.
0
2
6
4
.
0
2
6
5
.
0
2
6
8
.
0
5
7
5
8
5
9
6
0
6
1
6
2
6
3
6
4
6
5
6
6
6
7
6
8
6
9
7
0
L
a
n
t
h
a
n
o
i
d
s
L
a
C
e
P
r
N
d
P
m
S
m
E
u
G
d
T
b
D
y
H
o
E
r
T
m
Y
b
1
3
8
.
9
0
5
5
1
4
0
.
1
1
6
1
4
0
.
9
0
7
6
5
1
4
4
.
2
4
1
4
5
.
0
1
5
0
.
3
6
1
5
1
.
9
6
4
1
5
7
.
2
5
1
5
8
.
9
2
5
3
4
1
6
2
.
5
0
1
6
4
.
9
3
0
3
2
1
6
7
.
2
6
1
6
8
.
9
3
4
2
1
1
7
3
.
0
4
8
9
9
0
9
1
9
2
9
3
9
4
9
5
9
6
9
7
9
8
9
9
1
0
0
1
0
1
1
0
2
A
c
t
i
n
o
i
d
s
A
c
T
h
P
a
U
N
p
P
u
A
m
C
m
B
k
C
f
E
s
F
m
M
d
N
o
2
2
7
.
0
2
3
2
.
0
3
8
1
2
3
1
.
0
3
5
8
8
2
3
8
.
0
2
8
9
2
3
7
.
0
2
4
4
.
0
2
4
3
.
0
2
4
7
.
0
2
4
7
.
0
2
5
1
.
0
2
5
2
.
0
2
5
7
.
0
2
5
8
.
0
2
5
9
.
0
T
a
b
l
e
2
:
T
h
e
d
e
f
a
u
l
t
n
u
c
l
e
a
r
m
a
s
s
e
s
u
s
e
d
i
n
c
a
s
i
n
o
.
163
Density (density).
Spin-density (spin density).
Spin-density matrix; noncollinear spin systems only (spin density mat).
Reciprocal-space pair-correlation function (pair corr.
Spherical real-space pair-correlation function (pair corr sph).
Structure factor (structure factor).
Spherically-averaged structure factor (struc factor sph).
One-body density matrix (OBDM) (onep density mat).
Two-body density matrix (TBDM) (twop density mat).
Condensate fraction : unbiased TBDM, goes as TBDMOBDM
2
(cond fraction).
Momentum density
Localization tensor (loc tensor).
Dipole moment (dipole moment).
By default these observables are not accumulated during a VMC/DMC simulation; to do this one must
set to T the corresponding input keyword (the bold terms in brackets in the above list). With the ex-
ception of the dipole moment (for which the required information is stored in the vmc.hist/dmc.hist
le) the activation of any of the above keywords will ag the creation of an expval.data le (see Sec.
7.10) wherein the required data will be accumulated.
The data in the expval.data le is stored in independent sets corresponding to each observable. If
a data set is already present at the start of a calculation, then any newly accumulated data will be
added to the existing data. The expval.data le also contains basic information about the system,
plus all the G-vector sets necessary to represent any reciprocal-space quantities.
At the end of the calculation, the data in expval.data can usually be visualized using the plot expval
utility. The use of this program is fairly self-explanatory. Type plot expval in any directory contain-
ing an expval.data le, and the utility will read the data then ask you a series of questions designed
to elicit information about exactly what kind of plot you want. It will then write out the data in a
le readable by standard plotting programs such as xmgrace (for 1D data) or gnuplot (for 2D/3D
data). A casino shell-scriptplot 2Dis available which will call gnuplot with appropriate ar-
guments.
Note that, for operators that do not commute with the Hamiltonian, the error in the usual DMC
mixed estimator will be linear in the error in the wave function. However, the error in the extrapolated
estimator 2p
DMC
p
VMC
will be quadratic in the error in the wave function (Here p
VMC
and p
DMC
are the VMC and DMC estimates of the expectation value using the same wave function). One may
also use the future walking technique (see Sec. 35) to obtain better estimates for such observables.
After a short summary of relevant theoretical results, each expectation value will now be described in
turn.
164
33.1 Basics
33.1.1 Fourier transforms
Dene the Fourier transform and its inverse by
f(G) =
1
f(r) e
iGr
dr (271)
f(r) =
f(G) e
iGr
, (272)
where the set of G vectors are the reciprocal lattice vectors of the simulation cell lattice. Using this
denition, the Kronecker delta is
G,G
=
1
_
e
i(G
G)r
dr, (273)
and the Dirac delta function is
(r r
) =
1
G
e
iG(rr
)
. (274)
The 3N-dimensional Fourier transform of the wave function is
(k
1
, . . . , k
N
) =
1
N
_
(r
1
, . . . , r
N
) e
ik
1
r
1
. . . e
ik
N
r
N
dr
1
. . . dr
N
(275)
(r
1
, . . . , r
N
) =
k
1
,...,k
N
(k
1
, . . . , k
N
) e
ik
1
r
1
. . . e
ik
N
r
N
. (276)
33.1.2 Translational averaging
Consider a function f(r, r
f(k, k
) =
1
2
_
f(r, r
) e
ikr
e
ik
dr dr
. (277)
The translational average of f(r, r
) is
f
T
(r) =
1
_
f(r
, r
) (r
r) dr
dr
. (278)
The Fourier transform of the translational average is
f
T
(k) =
1
_
f
T
(r) e
ikr
dr (279)
=
1
f(k, k) =
2
f
T
(k). (281)
The operations of translational averaging and Fourier transforming commute.
The function f(r, r
+R) = f(r, r
), (282)
where R is a translation vector of the simulation cell lattice. Equation (282) implies that f
T
(r) is
also periodic,
f
T
(r +R) = f
T
(r). (283)
The Fourier transforms of f
T
(r) and f(r, r
) ([r
[ r) dr
. (284)
The rotationally averaged function f(r) is no longer periodic. The Fourier transform of the rotational
average is
f(k) =
1
_
f(r) e
ikr
dr (285)
=
1
_
0
f(r) 4r
2
sin(kr)
kr
dr. (286)
The operations of rotational averaging and Fourier transforming commute because
1
4k
2
_
f(r) e
ik
r
([k
[ k) dk
dr =
_
1
4r
2
f(r
) ([r
[ r) e
ikr
dr
dr. (287)
In practise, two-point correlation functions such as the pair correlation function and density matrix
are calculated by summing over the contributions from pairs of particles whose separation is dened
by the minimum image convention. We accumulate contributions from all pairs of particles whose
separation is less than or equal to the radius L
WS
of the sphere inscribed within the Wigner-Seitz cell
of the simulation cell. We then accumulate
f
WS
(k) =
1
_
f(r) (L
WS
r) e
ikr
dr (288)
=
1
_
0
f(r) (L
WS
r) 4r
2
sin(kr)
kr
dr, (289)
which is the convolution of
f(k) with the Fourier transform of the Heaviside function. Rather than
perform the deconvolution it is probably better just to calculate the translational average in reciprocal
space on the reciprocal lattice vectors of the simulation cell, averaging over the length of the vectors
as the calculation proceeds.
A spherical average can be performed to obtain
f
T
(G) =
1
N
G
N
G
i=1
f
T
(G
i
), (290)
where N
G
is the number of reciprocal lattice vectors of length G. The spherical average can be
accumulated as the calculation proceeds.
33.2 Density and spin density
The charge density operator for spin is
(r) =
i,
(r r
i,
). (291)
The Fourier transform of the charge density operator is
(k) =
1
_
i,
e
ikr
(r r
i,
) dr (292)
=
1
i,
e
ikr
i,
. (293)
166
The charge density for spin is
n
(r) =
_
[[
2
(r) dR
_
[[
2
dR
(294)
=
_
[[
2
i,
(r r
i,
) dR
_
[[
2
dR
. (295)
The Fourier transform of the charge density is
n
(k) =
1
_
n
(r) e
ikr
dr. (296)
So the charge density may be accumulated by summing exp(iG r) for each primitive-cell G vector
after each single electron move from r
(2)
(r, r
; r
, r
) = N
(N
)
_
(r, r
, r
3
, . . . , r
N
)(r
, r
, r
3
, . . . , r
N
) dr
3
. . . dr
N
_
(r
1
, r
2
, . . . , r
N
)(r
1
, r
2
, . . . , r
N
) dR
, (297)
where r and r
and r
(2)
(r, r
; r, r
) = N
(N
)
_
(r, r
, r
3
, . . . , r
N
)(r, r
, r
3
, . . . , r
N
) dr
3
. . . dr
N
_
(r
1
, r
2
, . . . , r
N
)(r
1
, r
2
, . . . , r
N
) dR
, (298)
are of special interest. The normalization has been chosen so that
_
(2)
(r, r
; r, r
) dr dr
= N
(N
). (299)
The sum over spin indices gives
(N
+N
.
The pair correlation functions, g
(r, r
(2)
(r, r
; r, r
) = n
(r) n
(r
) g
(r, r
). (301)
167
The pair correlation functions are given by
g
(r, r
) =
1
n
(r)n
(r
)
_
[[
2
i,
(r
i,
r)
j,=i,
(r
j,
r
) dR
_
[[
2
dR
(302)
=
N
(N
)
n
(r)n
(r
)
_
[[
2
(r
i,
r) (r
j,
r
) dR
_
[[
2
dR
. (303)
33.4.1 The total or spin-averaged pair correlation function
g(r, r
) =
,
n
(r)n
(r
)
n(r)n(r
)
g
(r, r
). (304)
33.4.2 Properties of the pair correlation functions
The pair correlation functions satisfy the following properties:
g
(r, r
) 0 (305)
g
(r, r
) = g
(r
, r) (306)
g
(r, r
) = 0 for = , r = r
(307)
_
n
(r
) [g
(r, r
) 1] dr
. (308)
33.4.3 Homogeneous and isotropic systems
Suppose we specialize to a homogeneous and isotropic system where g
(r, r
) = g
([rr
[) = g
(r),
and n
(r) = N
we obtain
g
(r) =
1
_
g
(r
, r
) (r
r) dr
dr
(309)
=
N
_
[[
2
i,
j,=i,
(r
i,
r
j,
r) dR
_
[[
2
dR
. (310)
Performing a rotational average we obtain
g
(r) =
1
4r
2
_
g
(r
) ([r
[ r) dr
(311)
=
4r
2
N
_
[[
2
i,
j,=i,
([r
i,
r
j,
[ r) dR
_
[[
2
dR
. (312)
The rotationally and translationally averaged pair correlation functions could be evaluated by collect-
ing in bins, see Sec. 33.4.5.
The sum rule of Eq. (308) gives
N
_
[g
(r) 1] 4r
2
dr =
. (313)
168
33.4.4 Translational and rotational averaging of g
(r, r
)
The translational average of g
(r, r
) is
g
T
(r) =
1
_
g
(r
, r
) (r
r) dr
dr
(314)
=
1
_
[[
2
i,
(r
i,
r
j,=i,
(r
j,
r
) (r
r) dr
dr
_
[[
2
dR n
(r
) n
(r
)
dR (315)
=
1
_
[[
2
i,
j,=i,
(r
i,
r
j,
r)
_
[[
2
dR n
(r
i,
) n
(r
j,
)
dR. (316)
The rotational average of g
T
(r) is
g
TR
(r) =
1
4r
2
_
g
T
(r
) ([r
[ r) dr
(317)
=
1
4r
2
_
[[
2
i,
j,=i,
([r
i,
r
j,
[ r)
_
[[
2
dR n
(r
i,
) n
(r
j,
)
dR. (318)
As well as the above averages one can calculate the pair correlation g
(r, r
) where an electron of
spin is xed at a particular position r. Suppose we write g
(r
, r
) as
g
(r, r
) =
_
[[
2
i,
(r
i,
r)
j,=i,
(r
j,
r
) dR
_
[[
2
i,
(r
i,
r) dRn
(r
)
(319)
=
N
(N
)
N
_
[[
2
(r
1,
r)(r
2,
r
) dR
_
[[
2
(r
1,
r) dR n
(r
)
. (320)
We now dene the probability distribution [
F
[
2
as
[
F
[
2
=
_
[[
2
(r
1,
r) dr
1,
. (321)
Writing Eq. (319) in terms of [
F
[
2
we obtain
g
(r, r
) = (N
)
_
[
F
[
2
(r
2,
r
) dr
2
. . . dr
N
_
[
F
[
2
dr
2
. . . dr
N
n
(r
)
(322)
=
n
(r, r
)
n
(r
)
, (323)
where n
(r, r
(r, r
(r, ) =
1
4
2
_
g
(r, r
) ([r
r[ ) d, (324)
where d = sin d d. This gives
g
F
(r, ) =
1
4
2
_
g
(r, r
) ([r
r[ ) d (325)
=
1
4
2
_
[
F
[
2
j=1
([r
j,
r
[ ) dr
2
. . . dr
N
_
[
F
[
2
dr
2
. . . dr
N
n
(r
)
d. (326)
169
This type of averaging was used by Maezono et al. [72]. The pair correlation functions can be evaluated
in bins for each r of interest. Equations (316), (318) and (326) contain one or two charge densities
in the denominator. When one or both of these charge densities is very small there will be a large
amount of noise in the quantity evaluated. We expect g
(r, r
) to tend to 1
/N
as r r
(r
(r
n
) =
n
_
N
n
_
, (327)
where N
n
is the number of , -spin pairs whose separation falls within the nth bin (the pairs i, j
and j, i should be counted separately, and similarly for the parallel -spins), and
n
is the volume
of the nth bin. Note that if we consider a single bin, so that =
n
, then N
n
= N
(N
).
This conrms that the normalization of Eq. (327) is correct, but note that our formulae disagree with
Eq. (35) of Ortiz and Ballone [102].
The volume of the nth bin,
n
, is given by
n
=
4
3
_
n
3
(n 1)
3
_
3
= 4
_
n
2
n + 1/3
_
3
. (328)
One could dene r
n
to be the centre of the nth bin, but a better choice is [74]
r
n
=
3
4
[n
4
(n 1)
4
]
[n
3
(n 1)
3
]
=
3
4
[4n
3
6n
2
+ 4n 1]
[3n
2
3n + 1]
. (329)
If g were to be linear across each bin and if g were sampled exactly without statistical error then Eqs.
(327) and (328) would reproduce the exact value at each point r
n
.
In two dimensions one requires the area of the nth circular strip,
A
n
= ((n)
2
((n 1))
2
) =
2
(2n 1). (330)
We want to average f(r) = ar +b over a strip, and nd the corresponding radius r
n
. Therefore
f(r
n
) =
_
n
(n1)
f(r) 2r dr
_
n
(n1)
2r dr
=
[
1
3
ar
3
+
1
2
br
2
]
n
(n1)
[
1
2
r
2
]
n
(n1)
= a
2[(n)
3
((n 1))
3
]
3[(n)
2
((n 1))
2
]
+b
= ar
n
+b.
Hence
r
n
=
2
3
[n
3
(n 1)
3
]
[n
2
(n 1)
2
]
=
2
3
[3n
2
3n + 1]
[2n 1]
. (331)
170
33.5 Structure factor and spherically-averaged structure factor
One may dene the following correlation function,
S
(r, t; r
, t
) = [
(r, t)
H
(r
, t
)
H
[), (332)
where is the density operator, and the subscript H denotes that we are using the Heisenberg picture.
In fact one normally considers a modied correlation function
S
(r, t; r
, t
) = [
(r, t)
H
(r
, t
)
H
[) n
(r)n
(r
), (333)
because S tends to zero as [t t
(r, r
) = [
(r)
H
(r
)
H
[) n
(r)n
(r
), (334)
which has the form of a covariance. The covariance might show a lower variance than the individual
terms in Eq. (334), so it might be better to evaluate them together. Note that as [r r
[ we
expect the electrons to be uncorrelated, so that in this limit S
(r, r
(r, r
) =
_
[[
2
i,
(r
i,
r)
j,
(r
j,
r
) dR
_
[[
2
dR
n
(r)n
(r
). (335)
33.5.1 Relationship between S
and g
(r, r
) = n
(r)n
(r
) [g
(r, r
) 1] +n
(r)
(r r
), (336)
see Dreizler and Gross, page 276. Using Eq. (308) we nd that S
(r, r
) satises
_
S
(r, r
) dr dr
= 0. (337)
The Fourier transform of S
is
(k, k
) =
1
2
_
S
(r, r
) e
ikr
e
ik
dr dr
(338)
=
(k)
(k
)) n
(k) n
(k
). (339)
The translational average of S
(r, r
) is
S
T
(r) =
1
_
S
(r
, r
) (r
r) dr
dr
(340)
=
1
_
[[
2
i,
j,
(r
i,
r
j,
r) dR
_
[[
2
dR
1
_
n
(r
)n
(r
r) dr
. (341)
The rst term in Eq. (341) is the translational average of n
(r)n
(r
)g
(r, r
) + n
(r)
(r r
),
while the second is the translational average of n
(r)n
(r
). S
T
(r) satises
_
S
T
(r) dr = 0. (342)
171
The Fourier transform of S
T
(r) is
S
T
(k) =
1
_
S
T
(r) e
ikr
dr (343)
=
1
(k)
(k))
1
2
n
(k) n
(k) (344)
=
1
(k = 0, k
= 0) = 0
and
S
T
(k = 0) = 0.
The rotational average of S
T
(r) is
S
TR
(r) =
1
4r
2
_
S
T
(r
) ([r
[ r) dr
(346)
=
1
4r
2
_
[[
2
i,
j,
([r
i
r
j
[ r) dR
_
[[
2
dR
(347)
1
4r
2
_
n
(r
)n
(r
) ([r
[ r) dr
dr
. (348)
The Fourier transform of S
TR
(r) is
S
TR
(k) =
1
2
_
[[
2
i,
j,
sin(k|r
i
r
j
|)
k|r
i
r
j
|
dR
_
[[
2
dR
(349)
G
1
kG
n
(G) n
(G)
_
0
sin(kr) sin(Gr) dr. (350)
Unfortunately the integral in the second term is undened. However, we can use the argument that,
for large enough r, S
T
(r) 0 because the eects of exchange and correlation will tend to zero. The
Fourier transforms of S
T
(r) and S
TR
(r) are therefore well dened. The contributions from the rst
and second terms in Eq. (348) must therefore cancel at large distances. In practise we will include
only pairs of particles whose separation is within the radius of the Wigner-Seitz cell of the simulation
cell, L
WS
. We can therefore include only pairs of particles whose separation is less than L
WS
and set
the upper limit on the integral to L
WS
, in which case it can be evaluated,
_
L
WS
0
sin(kr) sin(Gr) dr =
1
2
_
sin(k G)L
WS
k G
sin(k +G)L
WS
k +G
_
. (351)
For k G small or k + G small the relevant sin function should be expanded, as described by Rene
Gaudoin. In this method pairs of electrons in the corners of the WS cell whose separation is larger
than L
WS
are not included so that S
TR
(k )
. (352)
33.5.2 Homogeneous and isotropic systems
For a homogeneous and isotropic system, we have from Eq. (336),
S
H
(r) =
N
[g
(r) 1] +
(r)
N
. (353)
172
The Fourier transform of S
H
(r) is
S
H
(k) =
1
_ _
N
[g
(r) 1] +
(r)
N
_
e
ikr
dr (354)
=
1
_
N
[g
(r) 1] e
ikr
dr +
2
. (355)
As the system is homogeneous and isotropic S
H
(k) =
1
_
N
[g
(r) 1] 4r
2
sin(kr)
kr
dr +
2
. (356)
Using the sum rules of Eq. (313) we nd that
S
H
(k = 0) = 0 (357)
S
H
(k )
2
. (358)
33.6 One-body density matrix, two-body density matrix and condensate
fraction
Density matrices are important tools to determine properties of systems, such as the phase of an
electron-hole system.
33.6.1 Denition of the density matrices
The one-body density matrix (OBDM) is dened as
(1)
(r
1
; r
1
) = N
_
[(R)[
2 (r
1
)
(r
1
)
dr
2
. . . dr
N
_
[(R)[
2
dR
, (359)
and the two-body density matrix (TBDM) is
(2)
(r
1
, r
2
; r
1
, r
2
) = N
(N
)
_
[(R)[
2 (r
1
,r
2
)
(r
1
,r
2
)
dr
3
. . . dr
N
_
[(R)[
2
dR
, (360)
where and are the spin indices (or particle indices, in general) corresponding to r
1
and r
2
,
respectively, and the irrelevant dependencies of the wave function have been omitted (i.e., (r
1
, r
2
)
(r
1
, r
2
, r
3
, . . . , r
N
)). Normalization is such that
_
(1)
(r
1
; r
1
)(r
1
r
1
)dr
1
dr
1
= N , (361)
and
_
(2)
(r
1
, r
2
; r
1
, r
2
)(r
1
r
1
)(r
2
r
2
)dr
1
dr
2
dr
1
dr
2
= N(N 1) . (362)
We are interested in the QMC accumulation of the density matrices for the case of an isotropic,
homogeneous system. Hence we require the translational and rotational average of Eqs. (359) and
360. The translational average is
(1)T
(r
) =
N
_
[(R)[
2 (r
1
+r
)
(r
1
)
dR
_
[(R)[
2
dR
, (363)
173
and
(2)T
(r
) =
N
(N
2
_
[(R)[
2 (r
1
+r
,r
2
+r
)
(r
1
,r
2
)
dR
_
[(R)[
2
dR
, (364)
where is the volume of the simulation cell. The rotational average of Eqs. (363) and (364) is
(1)TR
(r) =
N
S(r)
_
[(R)[
2 (r
1
+r
)
(r
1
)
([r
[ r)dRdr
_
[(R)[
2
dR
, (365)
and
(2)TR
(r) =
N
(N
2
S(r)
_
[(R)[
2 (r
1
+r
,r
2
+r
)
(r
1
,r
2
)
([r
[ r)dRdr
_
[(R)[
2
dR
, (366)
where S(r) is 4r
2
in 3D, 2r in 2D and 1 in 1D.
33.6.2 QMC accumulation
The integral over R in Eqs. (363) and 364 can be approximated by a Monte Carlo average, using
_
[(R)[
2
f(R)dR
_
[(R)[
2
dR
=
1
M
M
i=1
f(R
i
) , (367)
where R
i
i=M
i=1
is a set of congurations distributed according to [(R)[
2
.
The estimate of the value of the rotational average of a function f(r) in the bth bin
b
, is
f
b
=
_
r
b
r
b1
__
f(r
)([r
[ r)dr
dr
_
r
b
r
b1
S(r)dr
=
_
b
f(r
)dr
b
dr
=
1
m
b
m
b
i=1
f(r
i
) , (368)
where r
i
is a set of points uniformly distributed in the simulation cell, and m
b
is the number of
such points falling into the bth bin.
Hence the estimate of the translational-rotational average of the OBDM is
(1)TR
(r
b
)
N
Mm
b
M
i=1
m
b
j=1
(r
i
1
+r
j
)
(r
i
1
)
, (369)
and for the TBDM we have
(2)TR
(r
b
)
N
(N
2
Mm
b
M
i=1
m
b
j=1
(r
i
1
+r
j
, r
i
2
+r
j
)
(r
i
1
, r
i
2
)
. (370)
In order to improve the statistics, one can take advantage of the antisymmetry of the wave function.
33.6.3 Condensate fraction
A well-known limit of the fermionic TBDM for ,= and N
= N
is [75, 76]
lim
|r|
(2)
(r
1
, r
2
; r
1
+r, r
2
+r) = cN
[([r
2
r
1
[)[
2
, (371)
where c is the condensate fraction and (r) is a function such that
_
[(r)[
2
dr = 1/. The OBDM is
zero in this limit.
Applying the limit to Eq. (366) and substituting, we can estimate c as
c =
2
N
lim
r
(2)TR
(r) . (372)
174
33.6.4 Improved estimators
Consider a system of two distinguishable particles with wave function (r
1
, r
2
) = (r
1
)(r
2
). The
two particles are independent from one another. Equations (359) and 360 can combined, giving
(2)
(r
1
, r
2
; r
1
+r
, r
2
+r
) =
(1)
(r
1
; r
1
+r
)
(1)
(r
2
, r
2
+r
) , (373)
from which we can see that in the independent-particle case the TBDM does nothing but reect the
one-body properties of the system.
An opposite example is a system of two completely paired particles with wave function (r
1
, r
2
) =
(r
1
r
2
), where
(2)
(r
1
, r
2
; r
1
+r
, r
2
+r
) =
[(r
1
, r
2
)[
2
_
[(r
1
, r
2
)[
2
dr
1
dr
2
. (374)
In this case the value of the TBDM is completely due to two-body eects.
To improve the estimation of the condensate fraction c it is necessary to eliminate the one-body
eects of the form of Eq. (373), while keeping the pure two-body eects of Eq. (374) intact. One
such approach [77] is to subtract
(1)
(r
1
; r
1
+r
)
(1)
(r
2
, r
2
+r
) from
(2)
(r
1
, r
2
; r
1
+r
, r
2
+r
). It is
clear from Eq. (373) that this removes one-body eects, and does not bias the value of c because the
OBDM is zero when Eq. (371) holds. The condensate fraction could then be estimated as
c =
2
N
lim
r
_
(2)TR
(r)
_
(1)TR
(r)
(1)TR
(r)
__
, (375)
where the approximation
_
(1)T
(r)
(1)T
(r)
_
R
(1)TR
(r)
(1)TR
(r
1
, r
2
; r
1
, r
2
) = N
(N
)
_
[(r
1
, r
2
)[
2
_
(r
1
,r
2
)
(r
1
,r
2
)
(r
1
,r
2
)
(r
1
,r
2
)
(r
1
,r
2
)
(r
1
,r
2
)
_
dr
3
. . . dr
N
_
[(R)[
2
dR
, (376)
and compute the condensate fraction as
c =
2
N
lim
r
(2)TR
(r) , (377)
which also achieves the same purposes, but benets from correlated sampling and is somewhat cheaper
to evaluate, as the wave function updates required for the OBDM can be re-used in the evaluation of
the TBDM.
The three condensate fraction estimators have been computed for a two-dimensional electron-hole
bilayer (r
s
= 5, d = 1, N
e
= N
h
= 58), and are represented in the gure below. From top to bottom,
the TBDM estimator [Eq. (372)], the TBDM-OBDM estimator [Eq. (375)], and the modied-TBDM
estimator [Eq. (377)]. The advantages of Eq. (377) are evident in the short-range region, while the
long-range region seems to display a slightly noisier behaviour than the other two.
175
0 1 2 3 4 5 6 7
r/r
s
0
0.5
(
2
/N
(2)TR
(r)
0
0.5
C
o
n
d
e
n
s
a
t
e
f
r
a
c
t
i
o
n
e
s
t
i
m
a
t
o
r
s
(
2
/N
) [
(2)TR
(r)-
(1)TR
(r)
(1)TR
(r)]
0
0.5
(
2
/N
(2)TR
(r)
33.7 Momentum density
The momentum density is the Fourier transform of the one-body density matrix, and is explicitly
calculated as such. The k-vectors of the transformation are the reciprocal-lattice vectors of the sim-
ulation cell. Notice that for a homogeneous system these vectors are aected by keyword k oset,
hence running dierent accumulations with dierent k oset values allows evaluating the momentum
density on an arbitrarily ne grid.
33.8 Localization tensor
An early success of quantum mechanics was to explain the distinction between metal and non-metal
using band theory. The system is metallic if the conduction and valence band overlap and more than
one band is partly lled, while in non-metallic systems all the bands are fully occupied or empty.
Exceptions arise in some systems in which the band is partially lled but the Coulomb interaction
between the electrons is suciently strong that the electrons are localized. An alternative view to band
theory would help to distinguish the character of the system. It is argued by Kohn [95] that the system
is insulating as a result of wave function localization in the conguration space. The development
of the Berry-phase theory of polarization [96, 97, 98, 99, 100] further advanced Kohns idea and
provided tools to measure the localization of the electrons and the polarization. This Berry-phase
approach solves the problem that the polarization is ill dened in an extended system by computing
the quantity directly from the many-body wave function instead of the electron positions. Souza and
Martin [99] provided the expressions for the localization tensor and the polarization in terms of a
many-body Wannier wave function. This wave function is linked to Kohns wave function: for an
insulating system it is localized in conguration space in the thermodynamic limit. Souza and Martin
[99] also showed that the localization tensor is related to a frequency integral of the conductivity. The
conductivity formula implies that for a system with non-vanishing conductivity the localization tensor
is innite, otherwise it has a nite value. In [104], the o-diagonal elements of the localization tensor
are used to calculate the dc conductivity in the transverse direction for a quantum hall uid.
176
The localization tensor and polarization are written in terms of a many body operator
Z
()
N
=
_
[e
iG
X(R
m
)
[
_
, (378)
where G
is a simulation cell reciprocal latice vector and X is the sum of electron positions
n
i=1
r
i
of a conguration R
m
.
The Berry-phase polarization is given by
P
=
N
V
r
)
c
, (379)
where r
)
c
is the expectation value of the electron distribution given by
r
)
c
=
1
NG
logZ
()
N
, (380)
the equation (379) measures the polarization current of the system in response to an adiabatic change
of the Hamiltonian by approximating the Coulomb interaction as a rst-order perturbation.
The localization tensor can be interpreted as a measure of the quadratic spread of a charge distribution.
This gives an indication of how well the electrons are localized in the simulation cell according to the
wave function. This is written as
r
2
_
c
=
1
NG
2
log [Z
()
N
[
2
, (381)
where N is the number of electrons in the simulation cell.
The o-diagonal elements of the localization tensor are dened by
r
)
c
=
1
NG
log
[Z
()
N
[[Z
()
N
[
[Z
()
N
[
, (382)
where Z
()
N
is dened as
[e
i(G
)X(R
m
)
[
_
.
In QMC, the localization tensor and polarization are calculated from Z
N
with the periodic boundary
conditions imposed. This is done by summing the electron positions of each conguration R
m
to
calculate e
iG
X(R
m
)
. This is then averaged over congurations generated by VMC or DMC to give
mean
z
N
=
1
M
M
m=1
Z
N
(R
m
) , (383)
to ensure (383) tends to (378) and the statistical error is small, a large number of steps must be
taken to sample the conguration. The localization tensor diverges when Z
N
is zero. Numerically,
Z
N
would never be zero, but could become small so that the localization tensor becomes very large
when approaching metal-insulator transition from the insulating side [103]. As the dierence between
z and Z
N
(R
m
) becomes large when approaching the divergence, it is often useful to examine the error
bar in Z
N
to determine when the localization tensor diverges.
The gure shows the localization length of a linear chain of antiferromagnetic hydrogen atoms as a
function of lattice spacing. The localization length has a maximum at 1.4
A indicating that the chain
becomes metallic at around this lattice spacing.
177
0 1 2 3 4 5
Lattice spacing ()
0
2
4
6
8
10
L
o
c
a
l
i
z
a
t
i
o
n
l
e
n
g
t
h
(
B
o
h
r
^
2
)
33.9 Dipole moment (molecules only)
The electric dipole moment of a nite set of point charges of charge q
i
and position vector r
i
is dened
to be
p =
i
q
i
r
i
. (384)
It is easy to show that the value of p is independent of the origin if the overall system is electrically
neutral.
We may use QMC to estimate the mean dipole moment of a molecule by averaging p over the set of
congurations generated by the VMC or DMC algorithms. The mean value of [p[
2
may be determined
in a similar fashion. This will be done if the dipole moment keyword is set to T in the input le.
The raw data will be written to the vmc.hist or dmc.hist le (not the expval.data le!) and the
error bars on components of the dipole moment should be evaluated using the reblock utility.
34 Atomic forces
The total atomic force is dened as the negative energy gradient with respect to the atomic position
within the Born-Oppenheimer approximation, where the atomic positions are treated as parameters
rather than dynamical variables. Section 34.1 states the force expression in VMC. Section 34.2 reports
the exact and approximate expressions for the forces in DMC under two dierent localization schemes.
Section 34.5 describes the implementation in casino and gives some practical advice.
178
34.1 Forces in the VMC method
We write the valence Hamiltonian for a many-electron system as
H =
H
loc
+
W, (385)
where
H
loc
consists of the kinetic energy, the Coulomb interaction between the electrons and the
local pseudopotential, and
W is the nonlocal pseudopotential operator. We now consider a general
parameter , e.g., a nuclear coordinate, which is used to vary the Hamiltonian, and upon which the
trial wave function
T
depends. Taking the derivative of the VMC energy E
VMC
with respect to
gives
F
VMC
=
_
T
T
_
H
T
_
dV
_
T
T
dV
2
_
T
T
(E
L
E
VMC
)
T
dV
_
T
T
dV
. (386)
We use the notation
H
A
=
H
loc
+
W
T
T
,
H
B
=
H
loc
+
W
+
T
+
W
. (387)
The nonlocal pseudopotential operator
W
+
corresponds to all positive matrix elements r
[
W
+
[r
),
and
W
corresponds to all negative matrix elements [14], where r is the 3N-dimensional position
vector for the N-electron system and N is the total number of electrons. Following Ref. [82], these
two approximations are referred to as the full-PLA (FPLA) and semi-PLA (SPLA) when using
H
A
and
H
B
, respectively. The corresponding xed-node DMC ground-state wave functions are denoted
by
A
and
B
.
The DMC energy can be written in the form
E
D
=
_
HdV
_
dV
, (388)
which includes the mixed DMC ( =
T
) and pure DMC ( = ) estimates of the energy. In all
later expressions, stands for either
A
or
B
, and
H for either
H
A
or
H
B
. Taking the derivative
of the DMC energy with respect to gives
dE
D
d
=
_
H
dV
_
dV
+
_
_
H E
D
_
+
_
H E
D
_
_
dV
_
dV
, (389)
for both the mixed and pure DMC methods. The rst term in Eq. (389) is the HFT force [78, 79] and
the other terms are Pulay terms [80].
34.3 The mixed DMC forces
The total force in the mixed DMC method, F
tot
mix
, is obtained by setting =
T
in Eq. (389). After
some rearrangements, we arrive at
F
tot
mix
= F
HFT
mix
+F
P
mix
+F
V
mix
+F
N
mix
, (390)
179
with
F
HFT
mix
=
_
T
_
W
T
_
dV
_
T
dV
_
T
V
loc
dV
_
T
dV
+Z
(=)
Z
[R
[
3
(391)
F
P
mix
=
_
T
_
W
T
_
W
T
T
_
T
_
dV
_
T
dV
(392)
F
V
mix
=
_
T
_
HE
D)
T
T
_
dV
_
T
dV
(393)
F
N
mix
=
_
T
_
(
HE
D)
T
_
dV
_
T
dV
. (394)
F
HFT
mix
is the mixed DMC HFT force and the other expressions are Pulay terms. The HFT force
in Eq. (391) contains two contributions from the pseudopotential, one from its local part V
loc
and
one from its nonlocal part
W, and a third contribution from the nucleus-nucleus interaction. In this
nucleus-nucleus interaction term, R
is the associated charge. The three Pulay terms in Eqs. (392)(394) are identied as follows:
F
P
mix
results from the PLA and is therefore called the pseudopotential Pulay term, F
V
mix
is the volume
term, and F
N
mix
is called the mixed DMC nodal term since it can be written as an integral over the
nodal surface [83]. Note that all terms in Eqs. (391)(394) take the same form under both localization
schemes; the only dierence is the distribution (
T
A
or
T
B
) used to evaluate the expectation
values. A simple way to understand this is to note that
H always acts on the trial wave function
T
and
H
A
T
=
H
B
T
.
In mixed DMC simulations, it is straightforward to evaluate the contributions to the force, except for
the volume term F
V
mix
, because it depends on the derivative of the DMC wave function,
. Since it is
unclear how to evaluate
T
, (395)
which is exact on the nodal surface [see Eqs. (4) and (16) of Ref. [83]] but introduces an error of rst
order in (
T
) away from the nodal surface.
34.4 The pure DMC forces
The total force in the pure DMC method, F
tot
pure
, is obtained by setting = in Eq. (389). After
some manipulations, we obtain
F
tot
pure
= F
HFT
pure
+F
P
pure
+F
N
pure
, (396)
with
F
HFT
pure
=
_
_
A
A
_
W
T
_
dV
_
A
A
dV
_
B
B
_
(
W
+
)
T
+
(
W
B
_
dV
_
B
B
dV
_
_
(397)
_
V
loc
dV
_
dV
+Z
(=)
Z
[R
[
3
180
F
P
pure
=
_
_
A
A
_
W
T
_
W
T
T
_
T
_
dV
_
A
A
dV
_
B
B
_
W
+
T
_
W
+
T
_
T
_
dV
_
B
B
dV
(398)
F
N
pure
=
1
2
_
[
r
[
dS
_
dV
. (399)
F
HFT
pure
is the pure DMC HFT force, F
P
pure
is the pure DMC pseudopotential Pulay term, and the pure
DMC nodal term F
N
pure
is an integral over the nodal surface (dened by
T
= 0). Where terms
appear in braces, the upper one refers to the FPLA and the lower to the SPLA. The form of the nodal
term in Eq. (399) is independent of the localization scheme. The nodal term involves the gradient
r
evaluated at the nodal surface . Reference [83] shows that this gradient is dened as its limit
when approaching the nodal surface from within a nodal pocket (where is nonzero). The derivation
of the nodal term from Eq. (389) can be found in Refs. [86, 83].
Although the HFT force F
HFT
pure
under the FPLA can be calculated in the pure DMC method, it is not
straightforward to evaluate the action of the nonlocal operator (
W
+
)
(
W
T
, (400)
is used in the evaluation of F
HFT
pure
under the SPLA scheme which introduces an error of rst order in
(
T
).
Another complication arises in the pure DMC nodal term F
N
pure
in Eq. (399) because it involves the
evaluation of an integral over the nodal surface. It is unclear how to evaluate such an integral in a
standard DMC simulation. The following relationship suggested in Ref. [83],
F
N
pure
= 2 F
N
mix
+O[(
T
)
2
], (401)
allows the approximate evaluation of F
N
pure
as twice its mixed DMC counterpart while introducing
an error of second order in (
T
). Since F
N
pure
is dened as a volume integral in Eq. (394),
the pure DMC nodal term F
N
pure
can then be calculated as a volume integral in a standard DMC
simulation. Equation (401) is an application of the standard extrapolation technique [8], as in this
case the variational estimate of the nodal term is zero [83].
34.5 Implementation of forces in CASINO
It is well-known that the HFT estimator has an innite variance when the bare Coulomb potential
is used to describe the electron-nucleus interaction. Dierent routes have been proposed to address
this problem. Assaraf et al. [87, 88] added a term to the HFT force which has a zero mean value but
greatly reduces the variance of the estimator. Chiesa et al. [89] developed a method to lter out the
part of the electron density that gives rise to the innite variance. Using soft pseudopotentials also
eliminates the innite variance problem [82], and this method is used in the casino code.
Since the atomic force equals the negative total derivative of the DMC energy with respect to a nuclear
position , all previous force expressions involve total derivatives, in particular
T
. Unfortunately,
it is not straightforward to calculate total derivatives in VMC and DMC. A dierent route is to
approximate all total derivatives by their partial derivatives, which introduces an error of rst order
in (
T
). We expect, however, this approximation to be rather accurate for the following reason:
taking the total derivative of the VMC or DMC energy with respect to gives
dE
d
=
E
i
E
c
i
dc
i
d
, (402)
181
where the c
i
are the parameters in
T
and the Hamiltonian. The sum on the right-hand side of Eq.
(402) is neglected when all total derivatives are replaced with partial derivatives in all previous force
expressions. This is exact in VMC when the wave function is optimized using energy minimization. In
DMC, we can assume that the energy is approximately minimized with respect to the c
i
. Therefore,
we expect that the parameters c
i
have little eect on both the VMC and DMC energy, i.e., E/c
i
is
small. Therefore, neglecting the sum in Eq. (402) or, equivalently, replacing all total derivatives with
partial derivatives in the expressions above, is expected to be a good approximation.
We use the analytic expressions derived in Ref. [82] for evaluating the HFT force. The Pulay terms
may also be evaluated using analytic expressions, but to make the code more easily adaptable to other
forms of trial wave function we use a nite-dierence approach. This introduces an error which is
linear in the innitesimal nuclear displacement, . We nd that 10
7
T
[
T
)
0
[
0
T
[
T
)
j
/(r
j
)
j
(r
j
)
j
j
(r
j
)
, (403)
with weights
j
(r
j
) =
(r
j
)
T
(r
j
)
. (404)
For the Eq. (403) to be satised, / must be a local operator. Once the weights are known, the pure
estimate can be calculated as an average over the local quantity /
j
j
with samples drawn from the
mixed distribution generated by a standard DMC simulation. We will show in the next section, that
these weights can be obtained from the asymptotic number of descendants of a walker r
j
. We then
give a description of the FW algorithm that is now implemented in casino.
35.1 Derivation of the FW method
We show that the weight
j
in Eq. (404) can be interpreted as the asymptotic number of descendents
from the walker r
j
. We write the importance-sampled Schrodinger equation as
f(r, ) =
_
((r r
, )f(r
, 0)dr
, (405)
where ( is the importance-sampled Greens function. When the initial walker r
j
is represented by a
-function, f(r
, 0) = (r
r
j
), Eq. (405) reduces to
f(r, ) = G(r r
j
, ). (406)
This can be interpreted as the transition probability of the walker to move from r
j
to r in time . We
write the importance-sampled Greens function in its spectral expansion [9],
f(r, ) = G(r r
j
, ) =
T
(r)
T
(r
j
)
n=0
exp[(E
n
E
Ref
)]
n
(r)
n
(r
j
), (407)
where
n
and E
n
are eigenfunctions and eigenvalues of
H, respectively, and E
Ref
is a constant. When
considering the limit of and integrating over the nal position r, we obtain
_
lim
f(r, ) dr =
T
[
0
) exp[(E
0
E
Ref
)]
0
(r
j
)
T
(r
j
)
(408)
=
T
[)
0
(r
j
)
T
(r
j
)
. (409)
183
When E
Ref
= E
0
, all contributions from the excited-states decay away in the penultimate equation
in the limit . The left-hand side of the penultimate equation can be interpreted as the number
of descendents from walker r
j
for asymptotic ,
N( ) =
_
lim
T
(r
j
)
, (411)
where
T
[) is a constant. This is the important relationship between the ratio /
T
and the
asymptotic number of walkers descended from the initial walker r
j
. When this relationship is inserted
in the pure estimator of Eq. (403), the constants cancel in the numerator and denominator. Hence,
the weights
j
can be calculated in a DMC simulation from the asymptotic number of walkers. Since
this technique involves taking information from a later time in the simulation to evaluate quantities
at an earlier time, this method is called future-walking or forward-walking method. We introduce the
future-walking time
FW
(or N
FW
when given in time steps) that is necessary to project out the ratio
of wave functions in Eq. (411). See Sec. 35.3 for a discussion of
FW
.
35.2 The algorithm
Dierent implementations exist to calculate the asymptotic number of descendents in FW. The
tagging algorithm introduced by Barnett et al. [93], for example, assigns a label to each walker which
uniquely identies all its ancestors. The asymptotic number of descendents of a walker r
j
at time t
is then determined by searching through all labels of the walkers at time t +
fw
and counting the
walkers that descend from r
j
. A more elegant algorithm was proposed by Casulleras and Boronat
(CB) [94] which evaluates the product /
j
j
and the sum
j
j
in Eq. (403) instead of calculating the
weight
j
and quantity /
j
for each walker individually. We use this idea for the FW implementation
in casino but chose a slightly improved version to the one originally proposed by CB.
To each walker r
j
, we assign a linked list L
j
(or an order set) of N
FW
elements, where N
FW
is the total
number of FW time steps. Each element in the list is a scalar or vector. At each time step, the local
quantities (forces, energies, etc.) evaluated at r
j
are written into one element, which is then added to
the linked list on one side. Simultaneously, one element is deleted on the other side. Following this
updating method, the nth element in the linked list always contains quantities that were evaluated n
time steps ago so that the last element in the linked list was calculated N
FW
time steps ago. When
the walker drifts, diuses and branches in a standard DMC simulation, the linked list is copied when
the walker is copied, and the linked list is deleted when the walker is deleted. The result of this
procedure is crucial: all walkers that have a common ancestor from N
FW
time steps ago also have the
same N
FW
th element in the linked list. Therefore, the numerator of the pure estimator in Eq. (403)
at each time step can be written as
j
/(r
j
)(r
j
) =
j
L
j
(N
FW
), (412)
where L
j
(N
FW
) is the N
FW
th element of the linked list associated with walker r
j
. Hence, the sum
of the product /
j
j
can be calculated as the sum over the N
FW
th elements of all linked lists for a
given time step. Similarly, the sum over all weights in the denominator of Eq. (403) reduces to the
population number N
pop
at a given time step,
j
(r
j
) = N
pop
. (413)
184
So far, we assumed a DMC simulation without reweighting. Since casino uses by default the reweight-
ing scheme (ibran=T), the additional weights p
j
from the branching factor need to be included in the
pure estimate,
j
p
j
j
/(r
j
)
j
p
j
=
j
p
j
L
j
(N
FW
)
j
p
j
. (414)
The dierence between the original algorithm by CB and the one implemented in casino and presented
above is that the former averages over all N
FW
elements in one linked list and only stores the averages
for each linked list. In particular, after N
FW
initial time steps, all elements of the linked lists are
averaged, and additional N
FW
time steps are required before these averaged values are used to calculate
the pure estimate. The advantage of this CB algorithm is that it does not require the storage of the
linked lists. The disadvantage is that the contribution to the pure estimate is only evaluated as an
average over one block, which makes it impossible to reblock the data and to properly determine the
statistical error bar. The FW implementation chosen in casino, in contrast, keeps and writes out the
contributions to the pure estimate for each time step, which can be used to properly decorrelate the
statistical data. The additional required storage of the linked lists is negligible for the systems tested
so far.
35.3 Some practical advice
In principle, the FW estimator of Eq. (403) is only exact when the FW time is innite. In practice,
however, this is not possible: if the FW time is too long, it is very likely that most asymptotic walkers
are descendents from only a few (possibly just one) walkers, since the total population is kept around
a target population. Therefore, most wave-function ratios will be zero and the FW estimate is only
calculated from a few (possibly just one) independent samples, and the FW estimate is inaccurate. In
contrast, if the FW time is too short, higher-states in Eq. (411) may not have decayed away. Therefore,
an optimal FW time must be chosen. For parallel computing, a larger target population is possible
than on a single computer, resulting in a larger optimal FW time.
For calculations with a target population of around 10,000, a FW time of 10 a.u. was found to be
sucient in calculations for some small molecules [82, 83, 91] and no signicant changes in the pure
FW estimates were found for longer FW times. Therefore, the FW time is currently hardwired to
10 a.u. in casino.
36 Noncollinear-spin systems
In a noncollinear-spin system, the particles of interest can have spin directions that are not parallel to
the global quantization axis and/or the spin direction can vary with position in space. To treat such
a system, it is not possible to assign a denite spin to each particle. Instead, the full four-dimensional
position-spin coordinates of the particles must be considered.
casino can perform VMC calculations on noncollinear-spin systems by evaluating the energy expec-
tation value:
E =
_
(X)[
H[(X)
_
(X)[(X))
=
S
_
[(R, S)[
2
E
L
(R, S) dR
S
_
[(R, S)[
2
dR
, (415)
where X is the 4N-dimensional position-spin coordinate of all particles in the system, R is their real-
space positions and S is their spin coordinates. This is achieved by extending the standard Metropolis
algorithm, so that there is a spin-ip step which changes the spin-coordinate s in addition to changing
the real-space position r of each particle. This extension is supported for VMC methods 1 and 3.
185
casino supports noncollinear calculations for Slater-Jastrow wave functions of the form
(X) = exp[J(R)]
1
(x
1
)
1
(x
N
)
.
.
.
.
.
.
N
(x
1
)
N
(x
N
)
. (416)
The Jastrow factor can only depend on the real-space positions of the particles, but the single-particle
orbitals depend on both position- and spin-coordinates. Equivalently, we can say that the single-
particle orbitals in the determinant can be arbitrary two-component spinors.
There are no specic keywords in the input les that control whether casino performs a noncollinear
calculation or not. If noncollinear mode is supported for the selected system type and the input data
about the wave function indicates noncollinear orbitals, casino automatically performs a noncollinear
VMC calculation.
DMC does not support noncollinear spins.
36.1 Spin density waves in the homogeneous electron gas
Currently the only system type that supports noncollinear-spin calculation is a spiral spin density
wave state in the homogeneous electron gas. In such a system, the single-particle orbitals are of the
spinor form:
k
(r) =
1
e
ikr
_
cos (
1
2
k
)e
i
1
2
qr
sin (
1
2
k
)e
+i
1
2
qr
_
, (417)
where k is the familiar plane-wave-vector, q is a constant vector (magnetization wave-vector) which
is the same for all orbitals, and the values
k
are independent parameters for each orbital. For each
orbital
k
, an electron can also occupy the orbital orthogonal to it, obtained by the replacement
k
k
+ . A determinant of orbitals of the above form gives rise to a static, spiral spin density,
with wave-vector q.
Setting up a calculation of this form is very similar to a standard electron uid calculation. In
addition to the usual parameters, the input le must contain a denition of the magnetization wave-
vector in the free particles block and the correlation.data le must contain a block specic to
the SDW system, giving a denition of the occupied single-particle orbitals. For an example, see
~/CASINO/examples/electron phases/3D fluid sdw.
37 Analysis of the performance of CASINO on parallel com-
puters
37.1 VMC in parallel
The VMC algorithm is perfectly parallel: no interprocessor communication is required during sim-
ulations. Each processor carries out an independent random walk using a dierent random-number
sequence, and the results are averaged at the end of each block, so that running for a length of time
T on P processors generates the same amount of data as running for time PT on a single processor
(assuming the equilibration time to be negligible). VMC should therefore scale to an arbitrarily large
number of processors.
Note that, although the energy obtained by running for time T on P processors should be in statistical
agreement with that obtained by running for time PT on a single processor, the results will not be
exactly equal, because the random walks are dierent in the two cases.
186
37.2 Optimization in parallel
37.2.1 Standard variance minimization
The VMC stages of a variance-minimization calculation are perfectly parallel, as described above.
In the optimization stages, the conguration set is distributed evenly between the processors. The
master processor broadcasts the current set of optimizable parameters, then each processor calculates
the local energy of each of its congurations and reports the energies (and weights, if required) to
the master. The CPU time required to evaluate the local energies of the conguration set usually far
exceeds the time spent communicating (reporting one or two numbers per conguration to the master
and receiving a handful of parameter values at each iteration). In particular the time spent evaluating
the local energies increases with system size, whereas the time spent on interprocessor communication
is independent of system size. So the standard variance minimization method is essentially perfectly
parallel.
Note that the number of processor communications could easily be reduced further if each processor
were simply to report the sum of its local energies and the sum of the squares of the local energies to
the master.
37.2.2 Variance minimization for linear Jastrow parameters
The VMC stage of the optimization (including the construction and accumulation of the quartic
coecients) is perfectly parallel. The optimization itself is carried out in serial on the master node.
However, this stage typically takes a fraction of a second, and is independent of system size. So the
varmin-linjas scheme is essentially perfectly parallel.
37.2.3 Energy minimization
The VMC stages of an energy minimization are perfectly parallel, as described above. For the matrix
algebra stages, the congurations are divided evenly between the processors, each of which separately
generates one section of the full matrices. The full matrices are then gathered on the master processor,
where the matrix algebra is done. The time taken to do the matrix algebra is usually insignicant
in comparison to the time taken in VMC and matrix generation. The time taken in interprocessor
communication is recorded and written out during energy minimization, and is typically at maximum
a few percent of the total time spent in an iteration (and often much less than one percent). Overall,
energy minimization is very nearly perfectly parallel.
37.3 DMC in parallel
37.3.1 Parallelization strategy
When performing DMC the conguration population is divided up evenly between the processors.
The algorithm is not perfectly parallel because the populations on each processor interact via the
setting of the reference energy. (Recall that the reference energy is adjusted in order to control the
size of the total population.) The conguration population uctuates on each processor, and the time
taken for each iteration is determined by the processor with the largest population of congurations;
it is clearly necessary to even up the conguration population between processors from time to time.
Unfortunately, transferring congurations between processors can be time-consuming. There is there-
fore a trade-o between balancing the load on each processor and reducing the number of conguration
transfers. The frequency of the conguration transfers can be controlled by the redist period key-
word: congurations are transferred to balance the load every redist period moves. The optimal
value of this parameter depends strongly on the system being simulated, the wave function quality,
187
the number of processors, the computer architecture, etc: see below. Users may wish to carry out a
few test runs in order to determine a suitable value of this parameter for the system in which they
are interested. (By default congurations transfers are performed after every iteration.)
37.3.2 Analysis of the parallel eciency
Suppose we are simulating a system of N particles, that we are running casino on P processors, and
that the total number of congurations is N
C
. Suppose that redist period is xed.
The cost of propagating all the congurations in one iteration, which is approximately the same on
each processor, is
T
CPU
A
N
N
C
P
, (418)
since there are about N
C
/P congurations on each processor and the time taken to propagate each
conguration scales as N