The NECI executable takes one input argument, which is the name of an input file containing the instructions for carrying out the calculation. The input file is organized in blocks, with each block being started and terminated by a dedicated keyword. Each block can contain a number of keywords to specify options. Here, a list of the blocks and their respective keywords is given.
The first line of the input is always title
, the last line is always
end
.
Some keywords are mandatory, those are marked in red and are given at the beginning of the description of each paragraph. Then come recommended options, marked in blue, followed by further options given in black.
Keywords which are purely for debugging purposes and only interesting for developers are marked in green.
Comments can be added in the code with #
. (A deprecated comment symbol found in legacy inputs is (
)
Line continuation is achieved with \
. (A deprecated line continuation string found in legacy inputs is +++
.)
The SYSTEM block specifies the properties of the physical system that is
considered. The block starts with the system
keyword and ends with the
endsys
keyword.
system
Starts the SYSTEM block. Has one mandatory additional
argument to specify the type of the system. The options are
read
Read in the integrals from a FCIDUMP file, used for ab-initio
calculations.
FCIDUMP-name
Specify the name of the FCIDUMP file. Defaults to FCIDUMP.
hubbard
Uses the Hubbard model Hamiltonian.
k-space
In the momentum-space basis (beneficial for low )
real-space
In the real-space basis (beneficial for large )
ueg
Uses the Hamiltonian of the uniform electron gas in a box.
endsys
Terminates the SYSTEM block.
electrons , nel
Sets the number of electrons to
spin-restrict []
Sets the total quantum number to . The
argument is optional and defaults to 0.
hphf
Uses a basis of (anti-)symmetric combinations of Slater determinants
with respect to global spin-flip. indicates anti-symmetric
combinations, symmetric combinations. This is useful to
exclude unwanted spin configurations. For example, no triplet states
can occur for hphf 0
.
guga
Activates the spin-adapted implementation of FCIQMC using CSFs (more
precisely Gel’fand-Tsetlin states) and the graphical Unitary Group
Approach (GUGA). The total spin must be specified in multiples
of . So is a singlet, a doublet
a Triplet and so on. This keyword MUST be combined with
certain nonuniformrandexcits
input as described below! Also it is
not allowed to use this keyword with the spin-restrict
or HPHF
keyword. And the number of electrons must allow the chosen spin
(even number for Singlet,Triplet,etc. and odd for
Doublet,Quartet,…). Additionally the choice of a reference
determinant via the definedet
keyword of the CALC
input block
(described below) is necessary in most cases, as the automatic
reference state setup is not always working in a CSF-based
implementation.
sym
Specifies the symmetry of the target state. The first three
arguments set the momentum and are only used for
Hubbard and ueg-type systems, the last argument specifies the
irrep within and is only used for ab-initio systems.
Note that the symmetry label is zero-indexed, so
corresponds to 0.
lztot
Set the total quantum number. Has one mandatory additional
argument, which is the value of .
useBrillouinTheorem
Assume that single excitations have zero matrix elements with the
reference. By default, this is determined automatically.
noBrillouinTheorem
Always assume that single excitations have nozero matrix elements
with the reference.
umatEpsilon
Defines a threshold value below which matrix elements
of the Hamiltonian are rounded to 0. Defaults to .
diagonaltmat
Assume the kinetic operator is diagonal in the given basis set.
noSingExcits
Assume there is no coupling between single excitations in the
Hamiltonian.
rohf
Use restricted open-shell integrals.
read_rofcidump
Read the integrals from a ROFCIDUMP file.
spinorbs
Uses spin orbitals instead of spatial orbtials for addressing the
integrals. This can be used if the integrals depend on the spin of
the orbitals.
molproMimic
Use the same orbital ordering as molpro, mimicking the behaviour of
calling NECI from molpro. First nelec/2 orbitals sorted by diagonal
elements of the Fock matrix are considered to be occupied, and the
rest to be virtual. Each sector is then sorted separately by
symmetry labels.
complexOrbs_realInts
The orbitals are complex, but not the integrals. This reduces the
symmetry of the 4-index integrals. Only affects kneci
and kmneci
calculations.
complexWalkers-realInts
The integrals and orbitals are real, but the wave function shall be
complex. Only affects kneci
and kmneci
calculations.
system-replicas
Specifies the number of wave functions that shall be evolved in
parallel. The argument is the number of wave functions
(replicas). Requires mneci
or kmneci
.
nonhermitian [1-body] [2-body]
Specifies that the input is a non-Hermitian Hamiltonian, but makes no further
assumptions. By default it assumes both 1- and 2-body non-Hermiticity.
However, it has two optional keywords, if 1-body
is given, only the
1-body components of the Hamiltonian are non-Hermitian; if 2-body
is given
then only the 2-body components are non-Hermitian. Note that in the case of
transcorrelation, only the 2-body component would be non-Hermitian; hence
if you are running a transcorrelated mean-field calculation, use
nonhermitian 2-body
.
stoquastize
Stoquastize the Hamiltonian. This means that the off-diagonal elements of the
original Hamiltonian become negative without changing the magnitudes,
i.e. .
nonUniformRandExcits
Use a non-uniform random excitation generator for picking
the move in the FCIQMC spawn step. This can significantly speed up
the calculation. Requires an additional argument, that can be chosen
from the following
pchb
Generates excitations weighted directly with the matrix
elements using pre-computed alias tables. This excitation
generator is extremely fast, while maintaining high acceptance
rates and is generally recommended when memory is not an issue.
The keyword has to be followed by either LOCALISED
,
DELOCALISED
, or MANUAL
.
With LOCALISED
and DELOCALISED
the fastest PCHB sampler is chosen automatically.
Specify DELOCALISED
for Hartree-Fock like orbitals and
LOCALISED
for localised orbitals.
With MANUAL
one can select the PCHB sampler themselves.
When selecting MANUAL
, first the singles are specified.
The precomputed weight is given by
Note that runs over all spin-orbitals, not only the occupied.
This makes the weighting determinant-independent.
The probabilites are then given by:
Now we can sample weighted without guaranteeing (un-)occupiedness ( or ), weighted with guaranteeing (un-)occupiedness ( or ), or uniformly ( or ).
We will write fast
, full
, and unif
for the three cases and separate the particle selection
from hole selelection with a colon.
This means that e.g. unif:full
corresponds to sampling via
.
The possible specifications are one of the following unif:unif
, unif:fast
, unif:full
, full:full
, or on-the-fly-heat-bath
.
Where on-the-fly-heat-bath
uses the exact on-the-fly calculated matrix element for weighting (which is slow).
After the singles the doubles are specified. The following weights are used for the doubles: and the probalities are given by:
Again we can combine different combinations of uniform, fast-, and fully-weighted sampling.
We will specify the selection for the first and second particle and then
the first and second hole. Again the particle and hole selections are separated by a :
.
The possible particle selections are full-full
( ),
unif-full
( ),
unif-fast
( ),
and unif-unif
( ).
The possible hole selections are full-full
()
and fast-fast
( ).
The particle and hole selections can be freely combined among eather, e.g. unif-full:fast-fast
.
An example input is:
nonuniformrandexcits pchb localised
An example input for manual specification is
nonuniformrandexcits pchb manual \
unif:full unif-full:full-full
guga-pchb
Uses the pre-computed alias tables for the spin-adapted GUGA implementation.
Needs the guga
keyword in the System
block.
If it is used in conjunction with the histogramming tau-search, which
is recommended for GUGA calculations in general, it automatically sets
more reasonable defaults than for the usual mol-guga-weighted
excitation generation option.
nosymgen
Generate all possible excitations, regardless of symmetry. Might
have a low acceptance rate.
4ind-weighted
Generate exictations weighted by a Cauchy-Schwarz estimate of
the matrix element. Has very good acceptance rates, but is
comparably slow. Using the 4ind-weighted-2
or
4IND-WEIGHTED-UNBOUND
instead is recommended.
4ind-weighted-2
Generates excitations using the same Cauchy-Schwary estimate as
4ind-weighted
, but uses an optimized algorithm to pick
orbitals of different spin, being faster than the former.
4ind-weighted-unbound
Generates excitations using the same Cauchy-Schwary estimate as
4-ind-weighted
and optimizations as 4ind-weighted-2
, but
uses more accurate estimates, having higher acceptance rates.
This excitation generator has high acceptance rates at
negligible memory cost.
pcpp
The pre-computed power-pitzer excitation generator [5]. Has low
memory cost and scales only mildly with system size, and can
thus be used for large systems.
mol-guga-weighted
Excitation generator for molecular systems used in the
spin-adapted GUGA Approach. The specification of this excitation
generator when using GUGA in ab initio systems is necessary!
ueg-guga
Excitation generator choice when using GUGA in the UEG or
k-space/real-space Hubbard model calculations. It is mandatory
to specify this keyword in this case!
GAS-CI
Specify the actual implementation for GAS.
Requires a GAS specification via the GAS-SPEC
keyword.
PCHB
This is the default and the fastest implementation, if
sufficient memory is available. The double excitations work
similar to the FCI precomputed heat bath excitation generator
but automatically exclude GAS forbidden excitations.
The keyword has two optional sub-keywords,
SINGLES
, DOUBLES
which allow to tailor the algorithm
for your system.
(The default choice is usually sufficiently fast.)
With SINGLES one can select the single excitation algorithm:
PC-WEIGHTED
Use precomputed weighted singles, which
is the default and recommended sampling scheme.
Read at Full CI PCHB for a deeper description.
It allows the same sampling schemes
fully-weighted
, weighted
, and fast-weighted
.
PC-UNIFORM
This is the default. It chooses GAS allowed single
excitations uniformly.
ON-THE-FLY-HEAT-BATH
It chooses GAS allowed electrons weighted by their matrix
element.
With doubles one can select the particle- and hole-selection
algorithm for double excitations.
It is followed by particle-selection
or hole-selection
.
Read at Full CI PCHB for a deeper description.
It allows the same sampling schemes.
An example input is:
nonuniformrandexcits GAS-CI PCHB \
singles pc-weighted weighted \
doubles particle-selection weighted \
doubles hole-selection fully-weighted
DISCARDING
Use a Full CI excitation generator and just discard excitations
which are not contained in the GAS space. Currently PCHB is used
for Full CI.
ON-THE-FLY-HEAT-BATH
Use heat bath on the fly general GAS, which is applicable to any
GAS specification, but a bit slower than necessary for
disconnected spaces.
DISCONNECTED
Use the disconnected GAS implementations, which assumes
disconnected spaces and performs there a bit better than the
general implementation.
lattice-excitgen
Generates uniform excitations using momentum conservation. Requires
the kpoints
keyword.
GAS-SPEC
Perform a Generalized Active Spaces (GAS) calculation and specify
the GAS spaces.[6] It is necessary to select the actual implementation
with the GAS-CI
keyword. It is possible to use local,
cumulative, or flexible constraints on the particle number. Local constraints
define the minimum and maximum particle number per GAS space.
Cumulative constraints define cumulative minima and maxima of the
cumulative particle number.
The flexible constraints allow the user to list the allowed
supergroups, i.e. the allowed distribution of particles
among the GAS spaces. The specification is first LOCAL
or
CUMULATIVE
to define the kind of constraints followed by the
number of GAS spaces . The next items are
rows with 3 numbers which are the number of spatial
orbitals and (cumulative) minimum and maximum number of particles
per GAS space .
Finally the last row
denotes for each spatial orbital to which GAS space it
belongs. Instead of 1 1 1 1 1
one can write 5*1
.
Two benzenes with single inter-space excitation
would be e.g. denoted as:
GAS-SPEC LOCAL 2
6 5 7
6 5 7
1 1 1 1 1 1 2 2 2 2 2 2
or
GAS-SPEC LOCAL 2
6 5 7
6 5 7
6*1 6*2
or
GAS-SPEC CUMULATIVE 2
6 5 7
6 12 12
6*1 6*2
In the given example the local and cumulative constraints are equivalent, but they are not always!
The flexible constraints start with the keyword FLEXIBLE
and require the number of GAS spaces and supergroups .
The next rows list the allowed supergroups.
Again the last row denotes for each spatial orbital to which GAS space it
belongs.
The previous example of two benzene with single excitations would be
GAS-SPEC FLEXIBLE 2 3
6 6
5 7
7 5
6*1 6*2
It is possible to switch off the spin recoupling between
different GAS spaces by appending NO-RECOUPLING
.
OUTPUT-GAS-HILBERT-SPACE-SIZE
Optional keyword. If a GAS calculation is performed, then output the
sizes of the CAS and GAS Hilbert-Space sizes.
Note that, depending on the GAS specifications, this operation can be actually
expensive, so it is not done by default.
lattice []
Defines the basis in terms of a lattice of type with extent
. and are mandatory,
is optional. can be any of chain
, star
,
square
, rectangle
, tilted
, triangular
, hexagonal
,
kagome
, ole
.
U
Sets the Hubbard interaction strengh to . Defaults to 4.
B
Sets the Hubbard hopping strengh to . Defaults to -1.
twisted-bc []
Use twisted boundary conditions with a phase of
applied along x-direction, where is
the lattice size. is optional and the additional phase along
y-direction, in multiples of .
open-bc []
Set the boundary condition in to open, i.e. no hopping
across the cell boundary is possible. is optional and
can be one of X
, Y
or , for open boundary
conditions in x-, y- or both directions. If omitted, both directions
are given open boundary conditions. Requires a real-space basis.
ueg-offset
Offset for the momentum grid used in for the
uniform electron gas.
bipartite-order []
Enables a bipartite ordering of bipartite lattice (chain, square for now)
Has to be put before! the lattice
keyword.
If an additional parameter n
, which has to equal to the number of lattice sites, is given an
arbitrary orbital ordering can be given in the subsequent input line.
(It has to be n
unique numbers from, 1 to .) An example:
bash
bipartite 5
1 3 2 5 4
molecular-transcorr
Enable the usage of a transcorrelated ab-initio Hamiltonian. This
implies the non-hermiticity of the Hamiltonian as well as the
presence of 3-body interactions. Requires passing the 3-body
integrals in either ASCII or HDF5 format in a TCDUMP
file, or
tcdump.h5
, respectively. Enables triple excitation generation.
When using this option, non-uniform random excitation generator
become inefficient, so using nonUniformRandExcits
is discouraged.
adjoint-calculation
Instead of calculating , NECI solves for . Note in the case
of transcorrelation, this is equivalent to switching the sign of your
Jastrow factor: to .
ueg-transcorr
Enable the usage of a transcorrelated Hamiltonian for the uniform
electron gas. This implies the non-hermiticity of the Hamiltonian as
well as the presence of 3-body interactions. can be one of
3-body
, trcorr-excitgen
or rand-excitgen
.
transcorr []
Enable the usage of a transcorrelated Hamiltonian for the real-space
hubbard mode. This implies the non-hermiticity of the Hamiltonian.
The optional parameter is the transcorrelation parameter and
defaults to 1.0.
2-body-transcorr []
Enable the usage of a transcorrelated Hamiltonian for the momentum
space hubbard model. This implies the non-hermiticity of the
Hamiltonian as well as the presence of 3-body interactions. The
optional argument is the correlation parameter and defaults to
0.25.
exclude-3-body-ex
Disables the generation of triple excitations, but still takes into
account 3-body interactions for all other purposes.
adjoint-replicas
For multiple replicas (mneci, system-replicas >=2) or a dneci run,
evolves the left eigenvector for the even replicas, while still
evolving the right eigenvector for the odd replicas.
This gives access to stochastically independent and
in the same simulation, for RDM calculation e.g.
sd-spin-purification [truncate-ladder-operator, only-ladder-operator]
Use an adjusted hamiltonian for the dynamic
to force antiferromagnetic ordering and ensure pure spin-states
in a Slater determinant (SD) basis.
One can add the optional keyword only-ladder-operator
after
not to use the full
operator but a truncated version,
which uses only the ladder operator term .
One can add the optional keyword truncate-ladder-operator
after
not to use the full
operator but a truncated version,
which uses only the ladder operator term and
truncates it by removing its diagonal.
This implies that the diagonal counting of open shell electrons
is removed.
The CALC block is used to set options concerning the simulation
parameters and modes of FCIQMC. The block starts with the calc
keyword
and ends with the endcalc
keyword.
calc
Starts the CALC block
endcalc
Terminates the CALC block
time
Set the maximum time in minutes the calculation is
allowed to run. After minutes, the calculation will end.
nmcyc
Set the maximum number of iterations the calculation is
allowed to do. After iterations, the calculation will end.
eq-cyc
Set the number of iterations to perform after reaching variable
shift mode. Iterations after entering the variable shift mode,
the calculation will end. If both eq-cyc
and nmcyc
are given,
the calculation ends when either of the iteration limits is reached.
seed
Sets the seed of the random number generator to . This can be
used to specifically probe for stochastic effects, but is generally
not required.
averageMcExcits
Sets the average number of spawning attempts from each walker to
.
rdmSamplingIters
Set the maximum number of iterations used for sampling the RDMs to
. After iterations of sampling RDMs, the calculation will
end.
load-balance-blocks [OFF]
Distribute the determinants blockwise in a dynamic fashion to
maintain equal load for all processors. This is enabled by default
and has one optional argument OFF. If given, the load-balancing is
disabled.
energy
Additionally calculate and print the ground state energy using an
exact diagonalization technique.
averageMcExcits
The number of spawns to attempt per walker. Defaults to and
should not be changed without good reason.
adjust-averageMcExcits
Dynamically update the number of spawns attempted per walker. Can be
used if the excitation generator creates a lot of invalid
excitations, but should be avoided else.
scale-spawns []
Store the maximum value of for each
determinant. If a bloom with more than spawns
happens, then several spawning attempts with individual lower probability
will happen instead.
has to be smaller equal than
from equations \ref{Eq:conventional_tau_search} and \ref{Eq:histogramming_tau_search}.
davidson-max-iters
Set the number of iterations in Davidson’s algorithm when this is used.
Such algorithm computes a few of the smallest (or largest) eigenvalues
of a large sparse real symmetric matrix. This method is used,
for instance, in the semi-stochastic implementation or when
CI Davidson is used. The default value is .
davidson-target-tolerance
Set the target convergence tolerance of the residual norm of Davidson
diagonalization. The default value is .
totalWalkers
Sets the targeted number of walkers to . This means,
the shift will be varied to keep the walker number constant once it
reaches .
diagShift
Set the initial value of the shift to . A value of
is not recommended, as it will decrease the population from
the beginning.
shiftDamp
Set the damping factor used in the shift update scheme to
. Has to be . Defaults to .
target-shiftDamp []
Uses the shift updating procedure presented in [7] and
can be used instead of the shiftDamp keyword.
is the usual shift damping factor, is the additional second
shift damping factor. If is not specified, it is set to
to achieve critical damping. Both parameters have to
be and .
stepsshift
Sets the number of steps per update cycle of the shift to
. Defaults to .
fixed-n0
Instead of varying the shift to fix the total number of walkers,
keep the number of walkers at the reference fixed at .
Automatically sets stepsSft 1
and overwrites any stepssft
options given.
targetGrowRate
When the number of walkers in the calculation exceeds , the
shift is iteratively adjusted to maintain a fixed grow rate
until reaching the requested number of total walkers.
jump-shift [OFF]
When entering the variable shift mode, the shift will be set to the
current projected energy. This is enabled by default. There is an
optional argument OFF that disables this behaviour.
pops-jump-shift
Reset the shift when restarting a previous calculation to the
current projected energy instead of using the shift from the
previous calculation.
trunc-nopen
Restrict the Hilbert space of the calculation to those determinants
with at most unpaired electrons.
avGrowthRate [OFF]
Average the change in walker number used to calculate the shift.
This is enabled by default and has one optional argument OFF, which,
when given, turns the option off.
allRealCoeff
Allow determinants to have non-integer population. There is
a minimal population below which the population of a determinant
will be rounded stochastically. This defaults to .
realSpawnCutoff ( | OFF | ON )
Continuous real spawning will be performed, unless the spawn
has weight less than x. In this case, the weight of the spawning
will be stochastically rounded up to x or down to zero, such that
the average weight of the spawning does not change. This is a method
of removing very low weighted spawnings from the spawned list, which
require extra memory, processing and communication.
This keyword is on by default with a value of .
It can be explicitly turned off via OFF
, explicitly turned on
via ON
(using the default value then), or it can read a user-supplied
value for .
realCoeffbyExcitLevel
Allow all determinants up to an excitation level of to have
non-integer population.
setOccupiedThresh
Set the value for the minimum walker weight in the main walker list.
If, after all annihilation has been performed, any determinants have
a total weight of less than x, then the weight will be
stochastically rounded up to x or down to zero such that the average
weight is unchanged. Defaults to , which should only be changed
with good reason.
energy-scaled-walkers [ ]
Scales the occupied threshold with the energy of a determinant. Has
three optional arguments and requires allRealCoeff
. The argument
can be one of EXPONENTIAL, POWER, EXP-BOUND or NEGATIVE and
defaults to POWER. Both and default to 1 and
realspawncutoff
is implied.
tau-values
This keyword is mandatory.
It is followed by “start”, “min”, or “max” and their respective sub-keywords.
It is necessary to define the source of the starting value of ,
this means that start
is required.
start
This defines the source of the initial .
Has to be followed by one of the following sub-keywords:
- user-defined
Has to be followed by a real number that is the initial .
from-popsfile
Use the value from a popsfile. Requires readpops
.
tau-factor
Use tau-factor
times the connections from the reference
determinant as starting guess.
refdet-connections
Use information about the connections from the reference
determinant as starting guess.
deterministic
Use the deterministic time-step:
where is approximated by the
spread of diagonal elements of .
not-needed
Say explicitly that is not needed.
This is only relevant for fully deterministic calculations,
e.g. Lanczos CI.
[min ]
Optional keyword. It defines a minimum for the initial value of
and following -searches.
[max ]
Optional keyword. It defines a maximum for the initial value of
and following -searches.
[readpops-but-tau-not-from-popsfile]
Optional keyword.
If readpops
is switched on, but should not be read from
a popsfile then it is necessary to explicitly state that
it is indeed wanted.
tau-search
The -search is off by default,
but can be switched on with two different algorithms.
It can also be switched off again when certain stop conditions are reached,
since it is an unnecessary expensive operation when has reached a
stable value.
Has the following sub-keywords:
[algorithm]
Optional keyword.
This defines the algorithm of the -search.
Has to be followed by one of the following sub-keywords:
conventional
Adjusts such that:
The prefactor is changed via MaxWalkerBloom
.
histogramming []
Update the time-step based on histogramming of the ratio
.
Where is the probability distribution of
which is obtained numerically by binning.
The three arguments , and are optional.
is the fraction of the histogram used for
determining the new timestep, the number of bins in the
histogram and is the maximum value of
to be stored.
For spin-adapted GUGA calculations this option is highly
recommended! Otherwise the time-step can become quite small in these
simulations.
Note that for the conventional and histogramming time-search are
equivalent.
The prefactor is changed via MaxWalkerBloom
.
[stop-condition]
Optional keyword.
Defines a stop-condition for the -search.
The default is var-shift
, i.e. the search ends, when
variable shift mode is reached.
Has to be followed by one of the following sub-keywords:
- off
No stop-condition, i.e. run -search until the
calculation ends.
no-change
The -search is switched off, if there
was no change of in the last iterations.
max-iter
The -search is switched off
after the -th iteration.
max-eq-iter
The -search is switched off
after the -th iteration counting from variable shift mode.
n-opts
The -search is switched off
after the -th optimization of .
var-shift
The -search is switched off if variable shift is reached.
[off]
Switch the tau-search explicitly off.
(Equivalent to not having the tau-search
keyword at all.)
Note that this keyword is incompatible with other options (e.g. maxWalkerBloom
).
[scale-tau-to-death]
Optional keyword. Off by default.
If the -search is off, still scale
such that the death probability is smaller than 1.0.
maxWalkerBloom
The time step is scaled such that at most
walkers are spawned in a single attempt,
with the scaling being guessed from previous spawning attempts.
Changes the prefactor in equations \ref{Eq:conventional_tau_search}
and \ref{Eq:histogramming_tau_search}.
truncate-spawns [ UNOCC]
Truncate spawns which are larger than a threshold value . Both
arguments are optional, defaults to . If UNOCC is given
the truncation is restricted to spawns onto unoccupied. Useful in
combination with hist-tau-search.
The following input start with and keeps its value between and . The conventional -search that is stopped if there was no change of for 1000 iterations.
tau-values \
start user-defined 0.002 \
min 0.001 \
max 0.003
tau-search \
algorithm conventional \
stop-condition no-change 1000
The following input start with from a popsfile. The histogramming -search is performed with and is stopped after 10000 iterations.
tau-values \
start from-popsfile
tau-search \
algorithm histogramming 1e-4 1000 2000 \
stop-condition max-iter 10000
walkContGrow
When reading in a wave function from a file, do not set the
shift or enter variable shift mode.
defineDet
Sets the reference determinant of the calculation to
. If no other initialisation is specified, this will also be
the initial wave function. The format can either be a
comma-separated list of spin orbitals, a range of spin orbitals
(like 12-24) or a combination of both.
For spin-adapted calculations using the GUGA
keyword defining a
starting reference CSF manually is highly encouraged, as the
automatic way often fails. It works in similar ways as for SDs,
however odd numbered singly occupied orbitals indicate a positive
spin coupled orbital in GUGA CSFs and even numbered singly occupied
orbitals negatively spin coupled. So one needs to be careful to not
define a unphysical CSF with an negative intermediate total spin
. E.g. a CSF like:
definedet 1 2 4 5
would cause the calculation to crash, as the first singly occupied
orbital (4) would cause the total spin to be negative .
When defining the starting CSF one also needs to ensure that the
defined CSFs satisfies the total number of electrons and total
defined in the System
block of the input with the keywords nel
and guga
. As an example a triplet (guga 2
) CSF with 4 electrons
(nel 4
) would be
definedet 1 2 3 5
with the first spatial orbital doubly occupied and 2 open-shell
orbitals (positively spin coupled, hence odd numbers).
readPops
Read in the wave function from a file and use the read-in wave
function for initialisation. In addition to the wave function, also
the time-step and the shift are read in from the file. This starts
the calculation in variable shift mode, maintaining a constant
walker number, unless walkContGrow
is given.
readpops-changeref
Allow the reference determinant to be updated after reading in a
wave function.
startSinglePart []
Initialise the wave function with walkers on the reference
only unless specified differently. The argument is optional
and defaults to .
proje-changeRef [ ]
Allow the reference to change if a determinant obtains
times the population of the current reference and the latter has a
population of at least . Both arguments are optional and
default to and , respectively. This is enabled by
default.
no-changeref
Never change the reference.
truncInitiator
Use the initiator method [3].
addToInitiator
Sets the initiator threshold to , so any determinant
with more than walkers will be an initiator.
senior-initiators []
Makes any determinant that has a half-time of at least
iterations an initiator. is optional and defaults to .
superInitiators []
Create a list of superinitiators, from which all connected
determinants are set to be initiators. The superinitiators are
chosen according to population. is optional and defaults to
.
coherent-superInitiators []
Apply a restriction on the sign-coherence between a determinant and
any connected superinitiator to determine whether it becomes an
initiator due to connection. The optional argument can be
chosen from STRICT, WEAK, XI, AV and OFF. The default is WEAK and is
enabled by default if the superInitiators
keyword is given.
dynamic-superInitiators
Updates the list of superinitiators every steps. This is
enabled by default with if the superInitiators
keyword
is given. A value of 0 indicates no update. This implies the
dynamic-core n
option (with the same ) unless specified
otherwise.
allow-signed-spawns
Never abort spawns with a given sign, regardless of initiators.
can be either POS or NEG, indicating the sign to keep.
initiator-space
Define all determinants within a given initiator space as
initiators. The space is specified through one of the following
keywords
doubles-initiator
Use the reference determinant and all single and double
excitations from it to form the initiator space.
cas-initiator cas1 cas2
Use a CAS space to form the initiator space. The parameter cas1
specifies the number of electrons in the cas space and cas2
specifies the number of virtual spin orbitals (the cas2 highest
energy orbitals will be virtuals).
ras-initiator ras1 ras2 ras3 ras4 ras5
Use a RAS space to form the initiator space. Suppoose the list
of spatial orbitals are split into three sets, RAS1, RAS2 and
RAS 3, ordered by their energy. ras1, ras2 and ras3 then specify
the number of spatial orbitals in RAS1, RAS2 and RAS3. ras4
specifies the minimum number of electrons in RAS1 orbitals. ras5
specifies the maximum number of electrons in RAS3 orbitals.
These together define the RAS space used to form the initiator
space.
optimised-initiator
Use the iterative approach of Petruzielo et al. (see PRL, 109,
230201). One also needs to use either
optimised-initiator-cutoff-amp or optimised-initiator-cutoff-num
with this option.
optimised-initiator-cutoff-amp , , …
Perform the optimised initiator option, and in iteration ,
choose which determinants to keep by choosing all determinants
with an amplitude greater than in the ground state of the
space (see PRL 109, 230201). The number of iterations is
determined by the number of parameters provided.
optimised-initiator-cutoff-num , , …
Perform the optimised initiator option, and in iteration ,
choose which determinants to keep by choosing the ni most
significant determinants in the ground state of the space (see
PRL 109, 230201). The number of iterations is determined by the
number of parameters provided.
fci-initiator
Use all determinants to form the initiator space. A fully
deterministic projection is therefore performed with this
option.
pops-initiator
When starting from a POPSFILE, this option will use the
most populated determinants from the popsfile to form the
initiator space.
read-initiator
Use the determinants in the INITIATORSPACE file to form the
initiator space. A INITIATORSPACE file can be created by using
the write-initiator option in the LOGGING block.
auto-adaptive-shift [ ]
Scale the shift per determinant based on the acceptance rate on a
determinant. Has three optional arguments. The first is the
threshold value which is the minimal number of spawning
attempts from a determinant over the full calculation required
before the shift is scaled, with a default of . The second is
the scaling exponent with a default of and the last
is the minimal scaling factor, which uses
as default.
linear-adaptive-shift [ ]
Scale the shift per determinant linearly with the population of a
determinant. All arguments are optional and define the function used
for scaling. gives the minimal walker number required to
have a shift and defaults to , the shift fraction to be
applied at with a default of and is the
shift fraction to be applied at the initiator threshold, defaults to
. Every initiator is applied the full shift.
core-adaptive-shift
By default, determinants in the corespace are always applied the
full shift. Using this option also scales the shift in the
corespace.
aas-matele2
Uses the matrix elements for determining the scaling factor in the
auto-adaptive-shift
. The recommended option to scale the shift.
multiple-initial-refs
Define a reference determinant for each replica. The following
lines give the reference determinants as comma-separated lists of
orbitals, where is the number of replicas.
orthogonalise-replicas
Orthogonalise the replicas after each iteration using Gram Schmidt
orthogonalisation. This will converge each replica to another state
in a set of orthogonal eigenstates. Can be used for excited state
search.
orthogonalise-replicas-symmetric
Use the symmetric Löwdin orthonaliser instead of Gram Schmidt for
orthogonalising the replicas.
replica-single-det-start
Starts each replica from a different excited determinant.
semi-stochastic
Turn on the semi-stochastic adaptation.
pops-core
This option will use the most populated determinants
to form the core space.
This keyword cannot be used with pops-core-proportion
.
Note that core-space configurations behave like initiators
and are treated as such by default.
See also the core-inits
keyword.
pops-core-proportion
This option will use a fraction of most populated initiator
determinants to form the core space. For example, about 50% of most
populated initiator determinants are chosen if .
This keyword cannot be used with pops-core
and requires
semi-stochastic
.
doubles-core
Use the reference determinant and all single and double excitations
from it to form the core space.
cas-core cas1 cas2
Use a CAS space to form the core space. The parameter cas1 specifies
the number of electrons in the cas space and cas2 specifies the
number of virtual spin orbitals (the cas2 highest energy orbitals
will be virtuals).
ras-core ras1 ras2 ras3 ras4 ras5
Use a RAS space to form the core space. Suppoose the list of spatial
orbitals are split into three sets, RAS1, RAS2 and RAS 3, ordered by
their energy. ras1, ras2 and ras3 then specify the number of spatial
orbitals in RAS1, RAS2 and RAS3. ras4 specifies the minimum number
of electrons in RAS1 orbitals. ras5 specifies the maximum number of
electrons in RAS3 orbitals. These together define the RAS space used
to form the core space.
optimised-core
Use the iterative approach of Petruzielo et al. (see PRL, 109,
230201). One also needs to use either optimised-core-cutoff-amp or
optimised-core-cutoff-num with this option.
optimised-core-cutoff-amp , , …
Perform the optimised core option, and in iteration , choose
which determinants to keep by choosing all determinants with an
amplitude greater than in the ground state of the space (see
PRL 109, 230201). The number of iterations is determined by the
number of parameters provided.
optimised-core-cutoff-num , , …
Perform the optimised core option, and in iteration , choose
which determinants to keep by choosing the ni most significant
determinants in the ground state of the space (see PRL 109, 230201).
The number of iterations is determined by the number of parameters
provided.
fci-core
Use all determinants to form the core space. A fully deterministic
projection is therefore performed with this option.
This option requires information about spin(-projection) and spatial
symmetry, so the keywords sym
, and spin-restrict
for a
diagonalization in a Slater Determinant basis or guga
for a
diagonalization in a Gelfand-Tsetlin basis are required.
read-core
Use the determinants in the CORESPACE file to form the core space. A
CORESPACE file can be created by using the write-core option in the
LOGGING block.
dynamic-core
Update the core space every iterations, where is
optional and defaults to . This is enabled by default if the
superinitiators
option is given.
core-inits [{OFF, ON}]
Declare all determinants in the core-space as initiators,
independent from their population.
Since core-space determinants behave like initiators regardless
of their population this option is enabled by default.
There is an optional keyword which is either ON, or OFF.
If the optional keyword is ommitted it defaults to ON.
trial-wavefunction []
Use a trial wave function to obtain an estimate for the
energy, as described in
1.4.
The argument is optional, when given, the trial wave function
will be initialised iterations after the variable shift mode
started, else, at the start of the calculation. The trial wave
function is defined through one of the following keywords
pops-trial
When starting from a POPSFILE, this option will use the
most populated determinants from the popsfile to form the
trial space.
doubles-trial
Use the reference determinant and all single and double
excitations from it to form the trial space.
cas-trial cas1 cas2
Use a CAS space to form the trial space. The parameter cas1
specifies the number of electrons in the cas space and cas2
specifies the number of virtual spin orbitals (the cas2 highest
energy orbitals will be virtuals).
ras-trial ras1 ras2 ras3 ras4 ras5
Use a RAS space to form the trial space. Suppoose the list of
spatial orbitals are split into three sets, RAS1, RAS2 and RAS
3, ordered by their energy. ras1, ras2 and ras3 then specify the
number of spatial orbitals in RAS1, RAS2 and RAS3. ras4
specifies the minimum number of electrons in RAS1 orbitals. ras5
specifies the maximum number of electrons in RAS3 orbitals.
These together define the RAS space used to form the trial
space.
optimised-trial
Use the iterative approach of Petruzielo et al. (see PRL, 109,
230201). One also needs to use either optimised-trial-cutoff-amp
or optimised-trial-cutoff-num with this option.
optimised-trial-cutoff-amp , , …
Perform the optimised trial option, and in iteration ,
choose which determinants to keep by choosing all determinants
with an amplitude greater than in the ground state of the
space (see PRL 109, 230201). The number of iterations is
determined by the number of parameters provided.
optimised-trial-cutoff-num , , …
Perform the optimised trial option, and in iteration ,
choose which determinants to keep by choosing the ni most
significant determinants in the ground state of the space (see
PRL 109, 230201). The number of iterations is determined by the
number of parameters provided.
fci-trial
Use all determinants to form the trial space. A fully
deterministic projection is therefore performed with this
option.
memoryFacPart
Sets the factor between the allocated space for the wave function
and the required memory for the specified number of walkers to
. Defaults to .
memoryFacSpawn
Sets the factor between the allocated space for new spawns and the
estimate of required memory for the spawns of the specified number
of walkers on a single processor to . The memory required for
spawns increases, the more processors are used, so when running with
few walkers on relatively many processors, a large factor might be
needed. Defaults to .
prone-determinants
Instead of terminating when running out of memory, randomly delete
determinants with low population and few spawns.
store-dets
Employ extra memory to store additional information on the
determinants that had to be computed on the fly else. Trades in
memory for faster iterations.
rdmSamplingIters
Set the number of iterations for sampling the RDMs to . After
iterations of sampling, the calculation ends.
inits-rdm
Only take into account initiators when calculating RDMs. By default,
only restricts to initiators for the right vector used in RDM
calculation. This makes the RDMs non-variational, and the resulting
energy is the projected energy on the initiator space.
strict-inits-rdm
Require both sides of the inits-rdm to be initiators.
no-lagrangian-rdms
This option disables the correction used for RDM calculation for the
adaptive shift. Use this only for debugging purposes, as the
resulting RDMs are flawed.
The METHODS block is a subblock of CALC, i.e. it is specified inside the
CALC block. It sets the main algorithm to be used in the calculation.
The subblock is started with the methods
keyword and terminated with
the endmethods
keyword.
methods
Starts the METHODS block
endmethods
Terminates the METHODS block.
method
Sets the algorithm to be executed. The relevant choice for
is VERTEX FCIMC to run an FCIQMC calculation. Alternative
choices are DETERM-PROJ to run a deterministic calculation and
SPECTRAL-LANCZOS to calculate a spectrum using the lanczos
algorithm.
The INTEGRAL block can be used to freeze orbitals and set properties of
the integrals. The block is started with the integral
keyword and
terminated with the endint
keyword.
integral
Starts the INTEGRAL block.
endint
Terminates the INTEGRAL block.
freeze
Freeze core and virtual orbitals which are not to be
considered active in this calculation. The orbitals are selected
according to orbital energy, the lowest and highest
orbitals in energy are frozen.
freezeInner
Freeze core and virtual orbitals which are not to be
considered active in this calculation. The orbitals are selected
according to orbital energy, the highest and lowest
orbitals in energy are frozen.
partiallyFreeze
Freeze core orbitals partially. This means at most
holes are now allowed in these orbitals.
partiallyFreezeVirt
Freeze virtual orbitals partially. This means at
most electrons are now allowed in these orbitals.
hdf5-integrals
Read the 3-body integrals for a transcorrelated ab-initio
Hamiltonian from an HDF5 file. Ignored when the
molecular-transcorrelated
keyword is not given. Requires compiling
with HDF5.
sparse-lmat
Store the 3-body integrals in a sparse format to save memory.
Initialisation and iterations might be slower. Requires
hdf5-integrals
.
This block enables the Krylov-projected FCIQMC (KPFCIQMC) method [8]
which is fully implemented in NECI. It requires dneci
or mneci
to be
run. When specifying the KP-FCIQMC block, the METHODS block should be
omitted. This block is started with the kp-fciqmc
keyword and
terminated with the end-kp-fciqmc
keyword.
kp-fciqmc
Starts the KP-FCIQMC block
end-kp-fciqmc
Terminates the KP-FCIQMC block.
num-krylov-vecs
specifies the total number of Krylov vectors to sample.
num-iters-between-vecs
specifies the (constant) number of iterations between each
Krylov vector sampled. The first Krylov vector is always the
starting wave function.
num-iters-between-vecs-vary , ,
…
specifies the number of iterations between the nth and
(n+1)th Krylov vectors. The number of parameters input should be the
number of Krylov vectors asked for minus one. The first Krylov
vector is always the starting wave function.
num-repeats-per-init-config
specifies the number repeats to perform for each initial
configuration, i.e. the number of repeats of the whole evolution,
from the first sampled Krylov vector to the last. The projected
Hamiltonian and overlap matrix estimates will be output for each
repeat, and the averaged values of these matrices used to compute
the final results.
averagemcexcits-hamil
When calculating the projected Hamiltonian estimate, an FCIQMC-like
spawning is used, rather than calculating the elements exactly,
which would be too computationally expensive. Here, specifies
the number of spawnings to perform from each walker from each Krylov
vector when calculating this estimate. Thus, increasing should
improve the quality of the Hamiltonian estimate.
finite-temperature
If this option is included then a finite-temperature calculation is
performed. This involves starting from several different random
configurations, whereby walkers are distributed on random
determinants. The number of initial configurations should be
specified with the num-init-configs option.
num-init-configs
specifies the number of initial configurations to perform the
sampling over. An entire FCIQMC calculation will be performed, and
an entire subspace generated, for each of these configurations. This
option should be used with the finite-temperature option, but is not
necessary for spectral calculations where one always starts from the
same initial vector.
memory-factor
This option is used to specify the size of the array allocated for
storing the Krylov vectors. The number of slots allocated to store
unique determinants in the array holding all Krylov vectors will be
equal to , where here is the length of the main walker
list, is the number of Krylov vectors, and is the value
input with this option.
num-walkers-per-site-init
For finite-temperature jobs, specifies the number of walkers
to place on a determinant when it is chosen to be occupied.
exact-hamil
If this option is specified then the projected Hamiltonian will be
calculated exactly for each set of Krylov vectors sampled, rather
than randomly sampling the elements via an FCIQMC-like spawning
dynamic.
fully-stochastic-hamil
If this option is specified then the projected Hamiltonian will be
estimated without using the semi-stochastic adaptation. This will
decrease the quality of the estimate, but may be useful for
debugging or analysis of the method.
init-correct-walker-pop
For finite-temperature calculations on multiple cores, the initial
population may not be quite as requested. This is because the
quickest (and default) method involves generating determinants
randomly and sending them to the correct processor at the end. It is
possible in this process that walkers will die in annihilation.
However, if this option is specified then each processor will throw
away spawns to other processors, thus allowing the correct total
number of walkers to be spawned.
init-config-seeds seed1, seed2…
If this option is used then, for finite-temperature calculations, at
the start of each calculation over an initial configuration, the
random number generator will be re-initialised with the
corresponding input seed. The number of seeds provided should be
equal to the number of initial configurations.
all-sym-sectors
If this option is specified then the FCIQMC calculation will be run
in all symmetry sectors simultaneously. This is an option relevant
for finite-temperature calculations.
scale-population
If this option is specified then the initial population will be
scaled to the populaton specified with the ‘totalwalkers’ option in
the Calc block. This is relevant for spectral calculations when
starting from a perturbed POPSFILE
wave function, where the
initial population is not easily controlled.
In spectral calculations, one also typically wants to consider a
particular perturbation operator acting on the ground state wave
functions. Therefore, you must first perform an FCIQMC calculation to
evolve to the ground state and output a POPSFILE
. You should then
start the KP-FCIQMC calculation from that POPSFILE
. To apply a
perturbation operator to the POPSFILE
wave function as it is read in,
use the pops-creation and pops-annihilate options. These allow operators
such as
to be
applied to the POPSFILE
wave function. The general form is
pops-annihilate n_sum
orb1 orb2...
...
where is the
number of terms in the sum for (2 in the above example), and
specify the spin orbital labels to apply. The number of lines
of such orbitals provided should be equal to . The first line
provides the orbital labels for the first term in the sum, the second
line for the second term, etc…
The REALTIME block enables the calculation of the real-time evolution of
a given state and is only required for real-time calculations. Real-time
evolution strictly requires kneci
or kmneci
and using kmneci
is
strongly recommended. This block is started with the realtime
keyword
and terminatd with the endrealtime
keyword.
realtime
Starts the realtime block. This automatically enables readpops
,
and reads from a file named <popsfilename>.0
.
endrealtime
Terminates the REALTIME block.
single
Applies a single excitation operator exciting from orbital to
orbital to the initial state before starting the calculation.
lesser
Calculates the one-particle Green’s function . Requires using one electron less than in the popsfile.
greater
Calculates the one-particle Green’s function . Requires using one electron more than in the
popsfile.
start-hf
Do not read in a popsfile but start from a single determinant.
rotate-time
Calculates the evolution along a trajectory instead
of pure real-time trajectory.
dynamic-rotation []
Determine a time-dependent on the fly for rotate-time
.
is optional and a damping parameter, defaults to 0.05.
is then chosen such that the walker number remains
constant.
rotation-threshold
Grow the population to walkers before starting to adjust
.
stepsalpha
The number of timesteps between two updates of the
parameter when using dynamic-rotation
.
log-trajectory
Output the time trajectory to a separate file. This is useful if the
same calculation shall be reproduced.
read-trajectory
Read the time trajectory from disk, using a file created by NECI
with the log-trajectory
keyword.
live-trajectory
Read the time trajectory from disk, using a file which is currently
being created by NECI with the log-trajectory
keyword. Can be used
to create additional data for the same trajectory while the original
calculation is still running.
noshift
Do not apply a shift during the real-time evolution. Strongly
recommended.
stabilize-walkers []
Use the shift to stabilize the walker number if it drops below 80%
of the peak value. Is optional and is an asymptotic value used
to fix the shift.
energy-benchmark
Set the energy origin to by applying a global, constant shift
to the Hamiltonian. Can be chosen arbitrarily, but a reasonable
selection can greatly help efficiency.
rt-pops
A second popsfile is supplied containing a time evolved state
created with the realtime
keyword whose time evolution is to be
continued. In this case, the original popsfile is still required for
calculating properties, so two popsfiles will be read in.
The LOGGING block specifies the output of the calculation and which
status information of the calculation shall be collected. This block is
started with the logging
keyword and terminated with the endlog
keyword.
logging
Starts the LOGGING block.
endlog
Terminates the LOGGING block.
hdf5-pops
Sets the format to read and write the wave function to HDF5.
Requires building with the ENABLE-HDF5
cmake option.
popsfile
Save the current wave function on disk at the end of the
calculation. Can be used to initialize subsequent calculations and
continue the run. This is enabled by default. is optional and,
when given, specifies that every iteration, the wave function
shall be saved. Setting disables this option.
popsFileTimer
Write out a the wave function to disk every hours, each time
renaming the last <popsfile>
to <popsfile>.bk
.
hdf5-pops-write
Sets the format to write the wave function to HDF5. Requires
building with the ENABLE-HDF5
cmake option.
hdf5-pops-read
Sets the format to read the wave function to HDF5. Requires building
with the ENABLE-HDF5
cmake option.
highlyPopWrite
Print out the most populated determinants at the end of the
calculation. Is enabled by default with .
replicas-popwrite []
Have each replica print out its own highly populated determinants in
a separate block instead of one collective output of the on average
most important determinants. Optionally, is the numbers of
determinants to print, this is the same as in
highlypopwrite
.
inits-exlvl-write
Sets the excitation level up to which the number of initiators is
logged to . Defaults to .
binarypops
Sets the format to write the wave function to binary.
nomcoutput
Suppress the printing of iteration information to stdout. This data
is still written to disk.
stepsOutput
Write the iteration data to stdout/disk every iterations.
Defaults to the number of iterations per shift cycle. Setting
disables iteration data output to stdout and uses the shift
cycle for disk output.
fval-energy-hist
Create a histogram of the scaling factor used for the auto-adaptive
shift over the energy of a determinant. Only has an effect if
auto-adaptive-shift
is used.
fval-pop-hist
Create a histogram of the scaling factor used for the auto-adaptive
shift over the population of a determinant. Only has an effect if
auto-adaptive-shift
is used.
local-spin
Activates the cumulative local spin, , measurement for spin-adapted GUGA calculations.
Needs two replicas for an unbiased measurement.
Since this is a diagonal property for the GUGA, there is no additional cost.
biased-RDMs
Only relevant for (k)-neci runs.
By default the calculation stops with an error if RDMs are sampled with (k)-neci
to prevent user error.
With this keyword the user can explicitly say that they want to sample RDMs without
replica.
ci-coefficients [ ]
Enables the collection of CI coefficients and their average over a number of iterations.
The outputs are printed in separate ASCII files named ci_coeff_*_av
.
Additional files named ci_coeff_*
are printed in a sorted manner that can directly be fed into
Molpro [9] for tailored Coupled/Distinguishable Cluster calculations
[10]-[11].
The optional argument \textit{n} is the number of iterations for averaging the CI coefficients
and defaults to 1000.
This is done in the last iterations of the FCIQMC run (i.e. if NMCYC = 10000 and
\textit{n} = 1000, the CI coefficients collection will start at iteration 9001).
However, the collection can begin after the NECI run reaches the preset number of walkers,
but it should only take place when the projected correlation energy is already converged.
The second optional argument is the \textit{excitation} level of the CI coefficients
to be collected and defaults to 2 (i.e., only singles and doubles).
CI coefficients up to triples (i.e. setting \textit{excitation} = 3) are available.
The semi-stochastic approach is recommended, in order to reach a lower stochastic error
for equal time averaging of the CI coefficients.
write-core
When performing a semi-stochastic calculation, adding this option to
the Logging block will cause the core space determinants to be
written to a file called CORESPACE. These can then be further read
in and used in subsequent semi-stochastic options using the
read-core
option in the CALC block.
write-most-pop-core-end
At the end of a calculation, output the most populated
determinants to a file called CORESPACE. This can further be read in
and used as the core space in subsequent calculations using the
read-core
option.
print-core-hamil
Prints the semi-stochastic Hamiltonian and the semistochastic basis states
to the output file semistoch-hamil
and semistoch-basis
.
Caution with the size of the semistochastic space!
print-core-vec
Prints the semi-stochastic “eigenvector” to the output files
determ_vecs
and determ_vecs_av
.
Caution with the size of the semistochastic space!
These options control how the RDMs are printed. For a description of how the RDMs are calculated and the content of the files, please see section 1.7.
calcRdmOnfly
Calculate RDMs stochastically over the course of the calculation.
Starts sampling RDMs after iterations, and outputs an
average every iterations. indicates whether only
1-RDMs (1), only 2-RDMs (2) or both are produced.
rdmLinSpace
A more user friendly version of calcrdmonfly
and
rdmsamplingiters
, this samples both 1- and 2-RDMs starting at
iteration , outputting an average every iterations
times, then ending the calculation.
diagFlyOneRdm
Diagonalise the 1-RDMs, yielding the occupation numbers of the
natural orbitals.
printOneRdm
Always output the 1-RDMs to a file, regardless of which RDMs are
calculated. May compute the 1-RDMs from the 2-RDMs.
writeRdmsToRead off
The presence of this keyword overrides the default. If the OFF word
is present, the unnormalised TwoRDM_POPS_a***
files will
definitely not be printed, otherwise they definitely will be,
regardless of the state of the popsfile/binarypops
keywords.
readRdms
This keyword tells the calculation to read in the TwoRDM_POPS_a***
files from a previous calculation. The restarted calc then continues
to fill these RDMs from the very first iteration regardless of the
value put with the calcRdmOnFly
keyword. The calculation will
crash if one of the TwoRDM_POPS_a***
files are missing. If the
readRdms
keyword is present, but the calc is doing a
StartSinglePart
run, the TwoRDM_POPS_a***
files will be ignored.
noNormRdms
This will prevent the final, normalised TwoRDM_a***
matrices from
being printed. These files can be quite large, so if the calculation
is definitely not going to be converged, this keyword may be useful.
writeRdmsEvery
This will write the normalised TwoRDM_a***
matrices every
iterations while the RDMs are being filled. At the moment, this must
be a multiple of the frequency with which the energy is calculated.
The files will be labelled with incrementing values -
TwoRDM_a***.1
is the first, and then next TwoRDM_a***.2
etc.
write-spin-free-rdm
Output the spin-free 2-RDMs to disk at the end of the calculation.
printRoDump
Output the integrals of the natural orbitals to a file.
print-molcas-rdms
It is now possible to calculate stochastic spin-free RDMs with the
GUGA implementation. This keyword is necessary if one intends to use
this feature in conjunction with Molcas
to perform a spin-free
Stochastic-CASSCF. It produces the three files DMAT, PAMAT
and
PSMAT
, which are read-in by Molcas
.
full-core-rdms
In the “normal” RDM only entries, e.g. for the 1-RDM, ,
which are actually connected by some Hamiltonian matrix element are sampled.
This has no negative effect on the energy calculation,
but for properties, e.g. spin-spin correlation functions.
This option activates a full sampling of RDMs,
at least in the semi-stochastic space.
This option does increase the cost though.
print-hdf5-rdms
Output the density matrices in HDF5 format to a file called
fciqmc.rdms.<statenumber>.h5
. Currently only pure state RDMs are
supported. This keyword needs to be used in conjunction with
write-spin-free-rdm
for the 2RDM and printonerdm
for the 1RDM
respectively.
instant-s2-full []
Calculate an instantaneous value for , and output it to the
relevant column (28) in the FCIMCStats
file.
The second optional parameter is a multiplier such that we only calculate once for every n update cycles (it must be on an update cycle such that is correct)
instant-s2-init []
Calculate an instantaneous value for , considering only
the initiators, and output it to the relevant column (29)
in the FCIMCStats
file.
The second optional parameter is a multiplier such that we only calculate once for every n update cycles (it must be on an update cycle such that is correct)