getDoubleContribution Function

public elemental function getDoubleContribution(step1, step2, deltaB, genFlag, bValue) result(doubleContr)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: step1
integer, intent(in) :: step2
integer, intent(in) :: deltaB
integer, intent(in) :: genFlag
real(kind=dp), intent(in) :: bValue

Return Value real(kind=dp)


Contents

Source Code


Source Code

    elemental function getDoubleContribution(step1, step2, deltaB, genFlag, bValue) &
        result(doubleContr)
        ! Access necessary two-particle contribution to single excitation
        ! matrix elements.
        !
        ! input:
        ! step1/2 ... stepvector values of CSFs, step1 is from <d'|
        ! deltaB  ... current delta b value of excitation
        ! genFlag ... generator flag of excitation
        ! bValue  ... current b value of CSF
        !
        ! output:
        ! doubleContr ... product term from shavitt graph rules used to calculate
        !               the matrix element between two given CSFs
        integer, intent(in) :: step1, step2, deltaB, genFlag
        real(dp), intent(in) :: bValue
        real(dp) :: doubleContr
        integer :: ind

        ! get index
        ind = indContr(step1, step2, deltaB + (genFlag + 1) / 2)
        doubleContr = doubleContribution(ind)%ptr(bValue)
    end function getDoubleContribution