semi_stoch options¶
The semi-stochastic approach [Petruzielo12], [Blunt15] divides the Hilbert space into two regions: a small region in which the action of the Hamiltonian is applied exactly, and the remainder of the Hilbert space, in which the action is applied stochastically. This can substantially reduce the stochastic error in many cases.
space
type: string.
Required.
Possible values: ‘read’, ‘high’, ‘ci’.
The type of deterministic space to use. Using ‘read’ uses a deterministic space produced from a previous calculation and saved to file using the semi_stoch
write
option (thewrite_determ_space
can be used but is now deprecated). Using ‘high’ sets the deterministic space to consist of the states with the highest population when the semi-stochastic projection is enabled. Using ‘ci’ sets the deterministic space to consist of a (small!) truncated configuration interaction space relative to a reference determinant.size
type: integer.
Required if
space
is ‘high’, otherwise ignored.The number of states to include in the deterministic space.
ci_space
type: reference table. See reference options for options.
Required if
space
is ‘ci’, otherwise ignored. Must contain at leastex_level
. The reference determinant, if not supplied, is identical to that given in the calculation’sreference
option.Defines the deterministic space to contain all determinants in a small (truncated) configuration interaction space.
start_iteration
type: integer.
Optional. Default: 1.
The number of iterations to perform, during which the action of the Hamiltonian is applied entirely stochastically, before semi-stochastic projection is enabled. This allows for a period for the population to grow and the ground-state wavefunction to emerge before the deterministic space is selected if
space
is set to ‘high’.Note
If the calculation is restarted from a previous one, this value refers to the iteration index of the entire set of calculations. If it is less than the iteration from which the calculation is started, semi-stochastic projection is enabled immediately.
shift_start_iteration
type: integer.
Optional. Default: None. Overrides
start_iteration
.The number of iterations to perform after the shift is varied (i.e. after the
target_population
is reached) before the semi-stochastic projection is enabled.Note
If the calculation is restarted from a previous one and the shift is already varying, then semi-stochastic projection is enabled immediately.
separate_annihilation
type: boolean.
Optional. Default: true.
If true, the deterministic amplitudes are communicated separately at the cost of an additional MPI call. If false, the annihilation of particles created from deterministic and stochastic projections are performed together, which removes the need for an additional MPI call at the cost of communicating an additional \(\mathcal{O}(N_p N_D)\) more amplitudes, where \(N_p\) is the number of processors and \(N_D\) the size of the deterministic space. If the deterministic space is small and communication latency high, setting
separate_annihilation
to false might improve performance. For most systems and computer architectures, the default value is faster.write
type: boolean or integer.
Optional. Default: false.
Write out the deterministic space to file of form
SEMI.STOCH.X.H5
, whereX
is the file id. If set to true,X
will be the smallest non-negative id such thatSEMI.STOCH.X.H5
does not already exist, otherwise the value provided is used as the file id.read
type: integer.
Optional. Default: largest value of
X
such that the fileSEMI.STOCH.X.H5
exists.Index of the file containing the deterministic space produced from a previous calculation.