tJ_model Module



Contents


Variables

Type Visibility Attributes Name Initial
real(kind=dp), public, allocatable :: exchange_matrix(:,:)
real(kind=dp), public, allocatable :: spin_free_exchange(:,:)

Interfaces

private interface get_helement_tJ

  • 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)

  • private function get_helement_tJ_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 get_helement_heisenberg

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


Functions

public function calc_pgen_tJ_model(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 calc_pgen_heisenberg_model(ilutI, ex, ic) result(pgen)

Arguments

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

Return Value real(kind=dp)

private function get_heisenberg_exchange(src, tgt) result(hel)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: src
integer, intent(in) :: tgt

Return Value real(kind=dp)

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)

private function get_helement_tJ_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_helement_heisenberg_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_heisenberg_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)

public function get_diag_helement_heisenberg(nI) result(hel)

Arguments

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

Return Value real(kind=dp)

public function get_offdiag_helement_heisenberg(nI, ex, tpar) result(hel)

Arguments

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

Return Value real(kind=dp)

private pure function get_umat_heisenberg_spin_free(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_el_heisenberg(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 function get_offdiag_helement_tJ(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)


Subroutines

public subroutine init_guga_tJ_model()

Arguments

None

public subroutine init_tJ_model()

Arguments

None

public subroutine init_guga_heisenberg_model()

Arguments

None

public subroutine init_heisenberg_model()

Arguments

None

public subroutine init_get_helement_tj_guga()

Arguments

None

Arguments

None

public subroutine init_get_helement_tj()

Arguments

None

public subroutine init_get_helement_heisenberg()

Arguments

None

public subroutine gen_excit_heisenberg_model(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_tJ_model(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 create_cum_list_tJ_model(ilutI, src, neighbors, cum_arr, cum_sum, ic_list, 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(out), allocatable :: ic_list(:)
integer, intent(in), optional :: tgt
real(kind=dp), intent(out), optional :: cpt

public subroutine pick_orbitals_guga_tJ(ilut, nI, csf_i, excitInfo, orb_pgen)

Arguments

Type IntentOptional Attributes Name
integer(kind=n_int), intent(in) :: ilut(0:nifguga)
integer, intent(in) :: nI(nel)
type(CSF_Info_t), intent(in) :: csf_i
type(ExcitationInformation_t), intent(out) :: excitInfo
real(kind=dp), intent(out) :: orb_pgen

private subroutine gen_guga_tJ_cum_list(csf_i, id, cum_arr, tgt, tgt_pgen)

Arguments

Type IntentOptional Attributes Name
type(CSF_Info_t), intent(in) :: csf_i
integer, intent(in) :: id
real(kind=dp), intent(out), allocatable :: cum_arr(:)
integer, intent(in), optional :: tgt
real(kind=dp), intent(out), optional :: tgt_pgen

public subroutine pick_orbitals_guga_heisenberg(ilut, nI, csf_i, excitInfo, orb_pgen)

Arguments

Type IntentOptional Attributes Name
integer(kind=n_int), intent(in) :: ilut(0:GugaBits%len_tot)
integer, intent(in) :: nI(nel)
type(CSF_Info_t), intent(in) :: csf_i
type(ExcitationInformation_t), intent(out) :: excitInfo
real(kind=dp), intent(out) :: orb_pgen

private subroutine gen_guga_heisenberg_cum_list(csf_i, id, cum_arr, tgt, tgt_pgen)

Arguments

Type IntentOptional Attributes Name
type(CSF_Info_t), intent(in) :: csf_i
integer, intent(in) :: id
real(kind=dp), intent(out), allocatable :: cum_arr(:)
integer, intent(in), optional :: tgt
real(kind=dp), intent(out), optional :: tgt_pgen

public subroutine calc_orbital_pgen_contr_heisenberg(csf_i, occ_orbs, above_cpt, below_cpt)

Arguments

Type IntentOptional Attributes Name
type(CSF_Info_t), intent(in) :: csf_i
integer, intent(in) :: occ_orbs(2)
real(kind=dp), intent(out) :: above_cpt
real(kind=dp), intent(out) :: below_cpt

public subroutine create_cum_list_heisenberg(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

private subroutine setup_spin_free_exchange(in_lat)

Arguments

Type IntentOptional Attributes Name
class(lattice), intent(in), pointer :: in_lat

public subroutine setup_exchange_matrix(in_lat)

Arguments

Type IntentOptional Attributes Name
class(lattice), intent(in), pointer :: in_lat