TripleExcitationGenerator_t Derived Type

type, public, abstract, extends(ExcitationGenerator_t) :: TripleExcitationGenerator_t


Contents


Type-Bound Procedures

procedure(BoundGenExc_t), public, deferred :: gen_exc

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

    Arguments

    Type IntentOptional Attributes Name
    class(ExcitationGenerator_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(BoundGetPgen_t), public, deferred :: get_pgen

  • function BoundGetPgen_t(this, nI, ilutI, ex, ic, ClassCount2, ClassCountUnocc2) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(ExcitationGenerator_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(BoundGenAllExcits_t), public, deferred :: gen_all_excits

  • subroutine BoundGenAllExcits_t(this, nI, n_excits, det_list) Prototype

    Arguments

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

procedure(BoundFinalize_t), public, deferred :: finalize

This procedure finalizes. It has to be implemented in such a way, that one can call it on uninitialized instances and in particular it should be idempotent.

  • subroutine BoundFinalize_t(this) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(ExcitationGenerator_t), intent(inout) :: this