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.
spacetype: 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
writeoption (thewrite_determ_spacecan 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.sizetype: integer.
Required if
spaceis ‘high’, otherwise ignored.The number of states to include in the deterministic space.
ci_spacetype: reference table. See reference options for options.
Required if
spaceis ‘ci’, otherwise ignored. Must contain at leastex_level. The reference determinant, if not supplied, is identical to that given in the calculation’sreferenceoption.Defines the deterministic space to contain all determinants in a small (truncated) configuration interaction space.
start_iterationtype: 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
spaceis 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_iterationtype: integer.
Optional. Default: None. Overrides
start_iteration.The number of iterations to perform after the shift is varied (i.e. after the
target_populationis 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_annihilationtype: 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_annihilationto false might improve performance. For most systems and computer architectures, the default value is faster.writetype: boolean or integer.
Optional. Default: false.
Write out the deterministic space to file of form
SEMI.STOCH.X.H5, whereXis the file id. If set to true,Xwill be the smallest non-negative id such thatSEMI.STOCH.X.H5does not already exist, otherwise the value provided is used as the file id.readtype: integer.
Optional. Default: largest value of
Xsuch that the fileSEMI.STOCH.X.H5exists.Index of the file containing the deterministic space produced from a previous calculation.