calc_orb_pgen_guga_pchb_double Function

private pure function calc_orb_pgen_guga_pchb_double(this, excitInfo) result(pgen)

Type Bound

GugaAliasSampler_t

Arguments

Type IntentOptional Attributes Name
class(GugaAliasSampler_t), intent(in) :: this
type(ExcitationInformation_t), intent(in) :: excitInfo

Return Value real(kind=dp)


Contents


Source Code

    pure function calc_orb_pgen_guga_pchb_double(this, excitInfo) result(pgen)
        class(GugaAliasSampler_t), intent(in) :: this
        type(ExcitationInformation_t), intent(in) :: excitInfo
        real(dp) :: pgen

        integer :: ij, ab
        real(dp) :: p_elec

        ! i, j, k and l entries have the info about the electrons and
        ! holes of the excitation: E_{ij}E_{kl} is the convention ...
        ij = fuseIndex(excitInfo%j, excitInfo%l)

        p_elec = 1.0_dp / real(ElecPairs, dp)

        ab = fuseIndex(excitInfo%i, excitInfo%k)
        pgen = p_elec * this%alias_sampler%get_prob(ij, ab)

    end function calc_orb_pgen_guga_pchb_double