real_space_hubbard Module



Contents


Variables

Type Visibility Attributes Name Initial
real(kind=dp), public :: lat_tau_factor = 0.5_dp
logical, public :: t_start_neel_state = .false.
real(kind=dp), public, allocatable :: umat_rs_hub_trancorr_hop(:,:,:,:)
real(kind=dp), public, allocatable :: tmat_rs_hub_spin_transcorr(:,:)
complex(kind=dp), private, parameter :: imag_unit = cmplx(0.0_dp, 1.0_dp, dp)
real(kind=dp), private, allocatable :: hop_transcorr_factor_cached_vec(:,:,:)
real(kind=dp), private, allocatable :: hop_transcorr_factor_cached_vec_m(:,:,:)
logical, public :: t_recalc_umat = .false.
logical, public :: t_recalc_tmat = .false.
logical, private :: t_print_umat = .true.
logical, private :: t_print_tmat = .true.

Interfaces

private interface get_helement_rs_hub

  • private function get_helement_rs_hub_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)

  • private function get_helement_rs_hub_general(nI, nJ, ic_ret) result(hel)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: nI(nel)
    integer, intent(in) :: nJ(nel)
    integer, intent(inout), optional :: ic_ret

    Return Value real(kind=dp)

private interface sum_hop_transcorr_factor

  • private function sum_hop_transcorr_factor_vec(r1, r2, r3, r4)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: r1(3)
    integer, intent(in) :: r2(3)
    integer, intent(in) :: r3(3)
    integer, intent(in) :: r4(3)

    Return Value real(kind=dp)

  • private function sum_hop_transcorr_factor_orb(i, j, k, l)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: i
    integer, intent(in) :: j
    integer, intent(in) :: k
    integer, intent(in) :: l

    Return Value real(kind=dp)

private interface sum_spin_transcorr_factor

  • private function sum_spin_transcorr_factor_orb(i, j)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: i
    integer, intent(in) :: j

    Return Value real(kind=dp)

  • private function sum_spin_transcorr_factor_vec(r1, r2)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: r1(3)
    integer, intent(in) :: r2(3)

    Return Value real(kind=dp)


Functions

private function hop_transcorr_factor(J, r_vec)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: J
integer, intent(in) :: r_vec(3)

Return Value real(kind=dp)

private function sum_spin_transcorr_factor_vec(r1, r2)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: r1(3)
integer, intent(in) :: r2(3)

Return Value real(kind=dp)

private function sum_hop_transcorr_factor_vec(r1, r2, r3, r4)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: r1(3)
integer, intent(in) :: r2(3)
integer, intent(in) :: r3(3)
integer, intent(in) :: r4(3)

Return Value real(kind=dp)

private function sum_spin_transcorr_factor_orb(i, j)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: i
integer, intent(in) :: j

Return Value real(kind=dp)

private function sum_hop_transcorr_factor_orb(i, j, k, l)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: i
integer, intent(in) :: j
integer, intent(in) :: k
integer, intent(in) :: l

Return Value real(kind=dp)

public function get_optimal_correlation_factor() result(corr_factor)

Arguments

None

Return Value real(kind=dp)

public function calc_pgen_rs_hubbard_transcorr_uniform(ex, ic) result(pgen)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ex(2,2)
integer, intent(in) :: ic

Return Value real(kind=dp)

public function calc_pgen_rs_hubbard_spin_dependent_transcorr(nI, ilutI, ex, ic) result(pgen)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer(kind=n_int), intent(in) :: ilutI(0:NIfTot)
integer, intent(in) :: ex(2,2)
integer, intent(in) :: ic

Return Value real(kind=dp)

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)

public function calc_pgen_rs_hubbard_transcorr(nI, ilutI, ex, ic) result(pgen)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer(kind=n_int), intent(in) :: ilutI(0:NIfTot)
integer, intent(in) :: ex(2,2)
integer, intent(in) :: ic

Return Value real(kind=dp)

public function calc_pgen_rs_hubbard(ilutI, ex, ic) result(pgen)

Arguments

Type IntentOptional Attributes Name
integer(kind=n_int), intent(in) :: ilutI(0:NIfTot)
integer, intent(in) :: ex(2,2)
integer, intent(in) :: ic

Return Value real(kind=dp)

public function trans_corr_fac(ilutI, src, tgt) result(weight)

Arguments

Type IntentOptional Attributes Name
integer(kind=n_int), intent(in) :: ilutI(0:NIfTot)
integer, intent(in) :: src
integer, intent(in) :: tgt

Return Value real(kind=dp)

private function get_helement_rs_hub_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)

private function get_helement_rs_hub_general(nI, nJ, ic_ret) result(hel)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer, intent(in) :: nJ(nel)
integer, intent(inout), optional :: ic_ret

Return Value real(kind=dp)

private function get_diag_helemen_rs_hub(nI) result(hel)

Arguments

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

Return Value real(kind=dp)

public function get_diag_helemen_rs_hub_transcorr_spin(nI) result(hel)

Arguments

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

Return Value real(kind=dp)

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)

private function get_double_helem_rs_hub_transcorr(ex, tpar) result(hel)

Arguments

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

Return Value real(kind=dp)

public function get_offdiag_helement_rs_hub(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)

private function get_1_body_contrib_spin_transcorr(nI, ex) result(hel)

Arguments

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

Return Value real(kind=dp)

private function get_2_body_contrib_transcorr_hop(nI, ex) result(hel)

Arguments

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

Return Value real(kind=dp)

public pure function get_umat_el_hub(i, j, k, l) result(hel)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: i
integer, intent(in) :: j
integer, intent(in) :: k
integer, intent(in) :: l

Return Value real(kind=dp)

public pure function get_umat_rs_hub_trans(i, j, k, l) result(hel)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: i
integer, intent(in) :: j
integer, intent(in) :: k
integer, intent(in) :: l

Return Value real(kind=dp)


Subroutines

public subroutine init_real_space_hubbard()

Arguments

None

public subroutine init_hopping_transcorr()

Arguments

None

private subroutine init_hop_trancorr_fac_cached_vec(J_fac, in_lat)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: J_fac
class(lattice), intent(in) :: in_lat

public subroutine init_tmat_rs_hub_spin_transcorr()

Arguments

None

public subroutine init_umat_rs_hub_transcorr()

Arguments

None

public subroutine init_get_helement_hubbard()

Arguments

None

public subroutine check_real_space_hubbard_input()

Arguments

None

public subroutine init_tmat(lat)

Arguments

Type IntentOptional Attributes Name
class(lattice), optional :: lat

public subroutine init_spin_free_tmat(lat)

Arguments

Type IntentOptional Attributes Name
class(lattice), optional :: lat

public subroutine gen_excit_rs_hubbard_transcorr_uniform(nI, ilutI, nJ, ilutJ, exFlag, ic, ex, tParity, pGen, hel, store, run)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer(kind=n_int), intent(in) :: ilutI(0:NIfTot)
integer, intent(out) :: nJ(nel)
integer(kind=n_int), intent(out) :: ilutJ(0:NifTot)
integer, intent(in) :: exFlag
integer, intent(out) :: ic
integer, intent(out) :: ex(2,maxExcit)
logical, intent(out) :: tParity
real(kind=dp), intent(out) :: pGen
real(kind=dp), intent(out) :: hel
type(excit_gen_store_type), intent(inout), target :: store
integer, intent(in), optional :: run

public subroutine gen_excit_rs_hubbard_transcorr(nI, ilutI, nJ, ilutJ, exFlag, ic, ex, tParity, pGen, hel, store, run)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer(kind=n_int), intent(in) :: ilutI(0:NIfTot)
integer, intent(out) :: nJ(nel)
integer(kind=n_int), intent(out) :: ilutJ(0:NifTot)
integer, intent(in) :: exFlag
integer, intent(out) :: ic
integer, intent(out) :: ex(2,maxExcit)
logical, intent(out) :: tParity
real(kind=dp), intent(out) :: pGen
real(kind=dp), intent(out) :: hel
type(excit_gen_store_type), intent(inout), target :: store
integer, intent(in), optional :: run

public subroutine gen_excit_rs_hubbard_transcorr_hole_focus(nI, ilutI, nJ, ilutJ, exFlag, ic, ex, tParity, pGen, hel, store, run)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer(kind=n_int), intent(in) :: ilutI(0:NIfTot)
integer, intent(out) :: nJ(nel)
integer(kind=n_int), intent(out) :: ilutJ(0:NifTot)
integer, intent(in) :: exFlag
integer, intent(out) :: ic
integer, intent(out) :: ex(2,maxExcit)
logical, intent(out) :: tParity
real(kind=dp), intent(out) :: pGen
real(kind=dp), intent(out) :: hel
type(excit_gen_store_type), intent(inout), target :: store
integer, intent(in), optional :: run

public subroutine gen_excit_rs_hubbard_spin_dependent_transcorr(nI, ilutI, nJ, ilutJ, exFlag, ic, ex, tParity, pGen, hel, store, run)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer(kind=n_int), intent(in) :: ilutI(0:NIfTot)
integer, intent(out) :: nJ(nel)
integer(kind=n_int), intent(out) :: ilutJ(0:NifTot)
integer, intent(in) :: exFlag
integer, intent(out) :: ic
integer, intent(out) :: ex(2,maxExcit)
logical, intent(out) :: tParity
real(kind=dp), intent(out) :: pGen
real(kind=dp), intent(out) :: hel
type(excit_gen_store_type), intent(inout), target :: store
integer, intent(in), optional :: run

private subroutine create_cum_list_rs_hubbard_transcorr_single(nI, ilutI, src, cum_arr, cum_sum, tgt, p_orb)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer(kind=n_int), intent(in) :: ilutI(0:NIfTot)
integer, intent(in) :: src
real(kind=dp), intent(out) :: cum_arr(nBasis/2)
real(kind=dp), intent(out) :: cum_sum
integer, intent(in), optional :: tgt
real(kind=dp), intent(out), optional :: p_orb

private subroutine gen_double_excit_rs_hub_transcorr(nI, ilutI, nJ, ilutJ, ex, tPar, pgen)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer(kind=n_int), intent(in) :: ilutI(0:NIfTot)
integer, intent(out) :: nJ(nel)
integer(kind=n_int), intent(out) :: ilutJ(0:NIfTot)
integer, intent(out) :: ex(2,2)
logical, intent(out) :: tPar
real(kind=dp), intent(out) :: pgen

private subroutine create_cum_list_rs_hubbard_transcorr_double(nI, ilutI, src, orb_a, cum_arr, cum_sum, tgt, p_orb)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer(kind=n_int), intent(in) :: ilutI(0:NIfTot)
integer, intent(in) :: src(2)
integer, intent(in) :: orb_a
real(kind=dp), intent(out) :: cum_arr(nBasis/2)
real(kind=dp), intent(out) :: cum_sum
integer, intent(in), optional :: tgt
real(kind=dp), intent(out), optional :: p_orb

public subroutine gen_excit_rs_hubbard(nI, ilutI, nJ, ilutJ, exFlag, ic, ex, tParity, pGen, hel, store, run)

An API interfacing function for generate_excitation to the rest of NECI:

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer(kind=n_int), intent(in) :: ilutI(0:NIfTot)
integer, intent(out) :: nJ(nel)
integer(kind=n_int), intent(out) :: ilutJ(0:NifTot)
integer, intent(in) :: exFlag
integer, intent(out) :: ic
integer, intent(out) :: ex(2,maxExcit)
logical, intent(out) :: tParity
real(kind=dp), intent(out) :: pGen
real(kind=dp), intent(out) :: hel
type(excit_gen_store_type), intent(inout), target :: store
integer, intent(in), optional :: run

public subroutine create_cum_list_rs_hubbard(ilutI, src, neighbors, cum_arr, cum_sum, tgt, cpt)

Arguments

Type IntentOptional Attributes Name
integer(kind=n_int), intent(in) :: ilutI(0:NIfTot)
integer, intent(in) :: src
integer, intent(in) :: neighbors(:)
real(kind=dp), intent(out), allocatable :: cum_arr(:)
real(kind=dp), intent(out) :: cum_sum
integer, intent(in), optional :: tgt
real(kind=dp), intent(out), optional :: cpt

public subroutine create_avail_neighbors_list(ilutI, neighbors, orbs, n_orbs)

Arguments

Type IntentOptional Attributes Name
integer(kind=n_int), intent(in) :: ilutI(0:NIfTot)
integer, intent(in) :: neighbors(:)
integer, intent(out), allocatable :: orbs(:)
integer, intent(out) :: n_orbs