Monte Carlo estimate of size of the Hilbert space¶
Whilst calculating the size of an entire Hilbert space is straightforward via combinatorics, calculating the size of a specific part of the Hilbert space meeting a given set of quantum numbers (e.g. spin and symmetry) is more challenging. Instead, the size of this subspace can be estimated via a simple Monte Carlo approach [Booth10].
hilbert_space {
sys = system,
hilbert = { ... },
output = { ... },
}
- Returns:
- a table containing the mean (key:
mean
) and associated standard error (key:std. err.
) of the Monte Carlo estimate of the size of the Hilbert space.
Options¶
All options should be in the hilbert table bar the sys option.
sys
type: system object.
Required.
The system on which to perform the calculation. Must be created via a system function.
hilbert
type: lua table.
Required.
Further options to control the Monte Carlo estimation of the Hilbert space. See below.
output
type: lua_table.
Optional.
Further options to enable direction of calculation output to a different file. See output options for more information.
hilbert options¶
The hilbert
table can take the following options:
nattempts
type: integer.
Required.
Number of random attempts (i.e. the number of random determinants to generate) to perform per Monte Carlo cycle.
ncycles
type: integer
Optional. Default: 20.
Number of Monte Carlo cycles to perform. Each cycle produces an independent estimate of the Hilbert space size. Estimates of the mean and standard error are automatically calculated from each independent value.
rng_seed
type: integer.
Optional. Default: generate a seed based upon the time and UUID (if available).
Seed for initialising the random number generator.
reference
type: vector of integers.
Optional. Default: attempt to make a good guess based upon the spin and symmetry quantum numbers of the system.
The reference determinant as a list of occupied spin-orbitals. The reference determinant is used in the generation of truncated Hilbert spaces only.
ex_level
type: integer.
Optional. Default: set to the number of electrons in the system (i.e. generate the FCI space).
Maximum excitation level to consider relative to the reference determinant.