GAS_singles_PC_uniform_ExcGenerator_t Derived Type

type, public, extends(SingleExcitationGenerator_t) :: GAS_singles_PC_uniform_ExcGenerator_t

The precomputed GAS uniform excitation generator


Contents


Components

Type Visibility Attributes Name Initial
integer(kind=n_int), private, allocatable :: allowed_holes(:,:,:)
class(GASSpec_t), private, allocatable :: GAS_spec
type(SuperGroupIndexer_t), private, pointer :: indexer => null()
logical, public :: use_lookup = .false.

Use a lookup for the supergroup index in global_det_data.

logical, public :: create_lookup = .false.

Create and manage! the supergroup index lookup in global_det_data.


Type-Bound Procedures

procedure, public :: init => GAS_singles_uniform_init

procedure, public :: finalize => GAS_singles_uniform_finalize

procedure, public :: get_possible_holes => GAS_singles_uniform_possible_holes

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

  • private function GAS_singles_uniform_possible_holes(this, nI, ilutI, src, use_lookup, store) result(unoccupied)

    @brief For a determinant nI and a spin orbital src return the GAS allowed orbitals with the same spin as src which are not occupied in nI.

    Arguments

    Type IntentOptional Attributes Name
    class(GAS_singles_PC_uniform_ExcGenerator_t), intent(in) :: this
    integer, intent(in) :: nI(nel)
    integer(kind=n_int), intent(in) :: ilutI(0:nIfD)
    integer, intent(in) :: src
    logical, intent(in) :: use_lookup
    type(excit_gen_store_type), intent(in), optional :: store

    Return Value integer, allocatable, (:)

procedure, public :: gen_exc => GAS_singles_uniform_gen_exc

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

    @brief This is the uniform singles excitation generator which uses precomputed indices to generate only GAS allowed excitations.

    Arguments

    Type IntentOptional Attributes Name
    class(GAS_singles_PC_uniform_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_singles_uniform_get_pgen

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

    Arguments

    Type IntentOptional Attributes Name
    class(GAS_singles_PC_uniform_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_singles_uniform_gen_all_excits