three_body_transcorr_fac_ksym Function

private function three_body_transcorr_fac_ksym(nI, p, q, k, spin)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
type(Symmetry) :: p
type(Symmetry) :: q
type(Symmetry) :: k
integer, intent(in) :: spin

Return Value real(kind=dp)


Contents


Source Code

    HElement_t(dp) function three_body_transcorr_fac_ksym(nI, p, q, k, spin)
        integer, intent(in) :: nI(nel), spin
        type(symmetry) :: p, q, k
#ifdef DEBUG_
        character(*), parameter :: this_routine = "three_body_transcorr_fac_ksym"
#endif
        type(symmetry) :: k1, k2
        real(dp) :: n_opp_loc

        ASSERT(spin == 1 .or. spin == -1)

        if (spin == -1) then
            n_opp_loc = real(nOccAlpha, dp)
        else
            n_opp_loc = real(nOccBeta, dp)
        end if

        k1 = SymTable(k%s, SymConjTab(q%s))
        k2 = SymTable(p%s, q%s)

        three_body_transcorr_fac_ksym = three_body_const_mat(p%s, k%s, spin) + &
                                        three_body_prefac * (get_one_body_diag(nI, -spin, k1) + get_one_body_diag(nI, -spin, k2, .true.))

    end function three_body_transcorr_fac_ksym