get_possible_holes Function

private pure function get_possible_holes(this, det_I, add_holes, add_particles, n_total, excess) result(possible_holes)

Return the possible holes where a particle can be created under GAS constraints.

This function uses get_possible_spaces to find possible GAS spaces where a particle can be created and returns only unoccupied sites of correct spin.

“Trivial” excitations are avoided. That means, that a site is only counted as unoccupied if it was unoccupied in nI from the beginning on. (A double excitation where a particle is deleted, but immediately recreated would be such a trivial excitations.)

Type Bound

GASSpec_t

Arguments

Type IntentOptional Attributes Name
class(GASSpec_t), intent(in) :: this

Specification of GAS spaces.

integer, intent(in) :: det_I(:)

The starting determinant

integer, intent(in), optional :: add_holes(:)

An index of orbitals where particles should be deleted before creating the new particle.

integer, intent(in), optional :: add_particles(:)

An index of orbitals where particles should be created before creating the new particle.

integer, intent(in), optional :: n_total

The total number of particles that will be created. Defaults to one.

type(SpinProj_t), intent(in), optional :: excess

The current excess of spin projections. If a beta electron was deleted, the excess is (1 \cdot \alpha).

Return Value integer, allocatable, (:)


Contents