GAS_doubles_heat_bath_ExcGenerator_t Derived Type

type, private, extends(DoubleExcitationGenerator_t) :: GAS_doubles_heat_bath_ExcGenerator_t

The heath bath GAS on-the-fly excitation generator


Contents


Components

Type Visibility Attributes Name Initial
class(GASSpec_t), private, allocatable :: GAS_spec

Constructor


Type-Bound Procedures

procedure, public :: finalize => GAS_doubles_do_nothing

procedure, public :: get_possible_holes => GAS_doubles_possible_holes

Get the GAS allowed holes for a given determinant and a chosen particle.

  • private pure function GAS_doubles_possible_holes(this, nI, src, tgt) result(unoccupied)

    Arguments

    Type IntentOptional Attributes Name
    class(GAS_doubles_heat_bath_ExcGenerator_t), intent(in) :: this
    integer, intent(in) :: nI(:)
    integer, intent(in) :: src(2)
    integer, intent(in), optional :: tgt

    Return Value integer, allocatable, (:)

procedure, public :: gen_exc => GAS_doubles_gen_exc

  • private subroutine GAS_doubles_gen_exc(this, nI, ilutI, nJ, ilutJ, exFlag, ic, ex, tParity, pGen, hel, store, part_type)

    @brief Generate a single excitation under GAS constraints.

    Arguments

    Type IntentOptional Attributes Name
    class(GAS_doubles_heat_bath_ExcGenerator_t), intent(inout) :: this
    integer, intent(in) :: nI(nEl)
    integer(kind=n_int), intent(in) :: ilutI(0:NIfTot)
    integer, intent(out) :: nJ(nEl)
    integer(kind=n_int), intent(out) :: ilutJ(0:NifTot)
    integer, intent(in) :: exFlag
    integer, intent(out) :: ic
    integer, intent(out) :: ex(2,maxExcit)
    logical, intent(out) :: tParity
    real(kind=dp), intent(out) :: pGen
    real(kind=dp), intent(out) :: hel
    type(excit_gen_store_type), intent(inout), target :: store
    integer, intent(in), optional :: part_type

procedure, public :: get_pgen => GAS_doubles_get_pgen

  • private function GAS_doubles_get_pgen(this, nI, ilutI, ex, ic, ClassCount2, ClassCountUnocc2) result(pgen)

    Arguments

    Type IntentOptional Attributes Name
    class(GAS_doubles_heat_bath_ExcGenerator_t), intent(inout) :: this
    integer, intent(in) :: nI(nEl)
    integer(kind=n_int), intent(in) :: ilutI(0:NIfTot)
    integer, intent(in) :: ex(2,maxExcit)
    integer, intent(in) :: ic
    integer, intent(in) :: ClassCount2(ScratchSize)
    integer, intent(in) :: ClassCountUnocc2(ScratchSize)

    Return Value real(kind=dp)

procedure, public :: gen_all_excits => GAS_doubles_gen_all_excits

  • private subroutine GAS_doubles_gen_all_excits(this, nI, n_excits, det_list)

    Arguments

    Type IntentOptional Attributes Name
    class(GAS_doubles_heat_bath_ExcGenerator_t), intent(in) :: this
    integer, intent(in) :: nI(nEl)
    integer, intent(out) :: n_excits
    integer(kind=n_int), intent(out), allocatable :: det_list(:,:)