get_diag_helemen_rs_hub_transcorr_hop Function

public function get_diag_helemen_rs_hub_transcorr_hop(nI) result(hel)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)

Return Value real(kind=dp)


Contents


Source Code

    function get_diag_helemen_rs_hub_transcorr_hop(nI) result(hel)
        ! with the hopping transcorrelation also the diagonal matrix
        ! elements change!
        integer, intent(in) :: nI(nel)
        HElement_t(dp) :: hel

        integer :: i, j, id(nel)

        hel = 0.0_dp

        id = get_spatial(nI)

        ! now also n_iu n_jd contribute to the diagonal elements!
        do i = 1, nel
            do j = 1, nel
                if (.not. same_spin(nI(i), nI(j))) then

                    hel = hel + 0.5_dp * get_umat_rs_hub_trans(id(i), id(j), id(j), id(i))

                end if
            end do
        end do

    end function get_diag_helemen_rs_hub_transcorr_hop