get_helement_tJ_ex_mat Function

private function get_helement_tJ_ex_mat(nI, ic, ex, tpar) result(hel)

Arguments

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

Return Value real(kind=dp)


Contents


Source Code

    function get_helement_tJ_ex_mat(nI, ic, ex, tpar) result(hel)
        integer, intent(in) :: nI(nel), ic, ex(2, ic)
        logical, intent(in) :: tpar
        HElement_t(dp) :: hel

        if (ic == 0) then
            ! is the diagonal element the same as in the pure
            ! heisenberg model? yes or?
            hel = get_diag_helement_heisenberg(nI)

        else if (ic == 1) then
            ! the single excitation is the same as in the hubbard model
            hel = get_offdiag_helement_tJ(nI, ex(:, 1), tpar)

        else if (ic == 2) then
            hel = get_offdiag_helement_heisenberg(nI, ex, tpar)

        else
            hel = h_cast(0.0_dp)

        end if
    end function get_helement_tJ_ex_mat