get_single_helem_rs_hub_transcorr Function

private function get_single_helem_rs_hub_transcorr(nI, ex, tPar) result(hel)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer, intent(in) :: ex(2)
logical, intent(in) :: tPar

Return Value real(kind=dp)


Contents


Source Code

    function get_single_helem_rs_hub_transcorr(nI, ex, tPar) result(hel)
        ! function to get the new 1-body matrix elements in the real-space
        ! hubbard with hopping transcorelation with influence from the
        ! newly introduced double excitations
        ! this is the standalone function outside get_offdiag_helement_rs_hub
        integer, intent(in) :: nI(nel), ex(2)
        logical, intent(in) :: tPar
        HElement_t(dp) :: hel
#ifdef DEBUG_
        character(*), parameter :: this_routine = "get_single_helem_rs_hub_transcorr"
#endif
        ASSERT(same_spin(ex(1), ex(2)))

        hel = GetTMatEl(ex(1), ex(2))

        if (t_trans_corr_hop) then
            hel = hel + get_2_body_contrib_transcorr_hop(nI, ex)
        else if (t_spin_dependent_transcorr .and. is_alpha(ex(1))) then
            hel = hel + tmat_rs_hub_spin_transcorr(ex(1), ex(2))
        end if

        if (tpar) hel = -hel

    end function get_single_helem_rs_hub_transcorr