impurity_models Module



Contents


Variables

Type Visibility Attributes Name Initial
integer, private, allocatable :: connections(:,:)
integer, private, allocatable :: ImpuritySites(:)
integer, private, allocatable :: nConnects(:)
integer, private :: nImp

Interfaces

interface

  • private function sumFunc(i, j, k, l, ilut)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: i
    integer, intent(in) :: j
    integer, intent(in) :: k
    integer, intent(in) :: l
    integer(kind=n_int), intent(in) :: ilut(0:NIfTot)

    Return Value real(kind=dp)


Functions

private function pick_source_el_single_excit(nI, ilut, iElec, pGen, pool) result(source)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer(kind=n_int), intent(in) :: ilut(0:NIfTot)
integer, intent(out) :: iElec
real(kind=dp), intent(inout) :: pGen
integer, intent(out), allocatable :: pool(:)

Return Value integer

private function pick_random_occ_impurity(nI, nOccImp) result(i)

Arguments

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

Return Value integer

private function pick_random_unocc_impurity(nI, ms, pgen) result(i)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer, intent(in) :: ms
real(kind=dp), intent(inout) :: pgen

Return Value integer


Subroutines

public subroutine setupImpurityExcitgen()

Arguments

None

private subroutine constructConnections()

Arguments

None

private subroutine constructBath()

Arguments

None

private subroutine assignPSingles()

Arguments

None

public subroutine gen_excit_impurity_model(nI, iLut, nJ, ilutnJ, exFlag, IC, ExcitMat, tParity, pgen, HElGen, store, part_type)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer(kind=n_int), intent(in) :: iLut(0:NIfTot)
integer, intent(out) :: nJ(nel)
integer(kind=n_int), intent(out) :: ilutnJ(0:NIfTot)
integer, intent(in) :: exFlag
integer, intent(out) :: IC
integer, intent(out) :: ExcitMat(2,maxExcit)
logical, intent(out) :: tParity
real(kind=dp), intent(out) :: pgen
real(kind=dp), intent(out) :: HElGen
type(excit_gen_store_type), intent(inout), target :: store
integer, intent(in), optional :: part_type

private subroutine generate_imp_single_excitation(nI, ilut, nJ, ilutnJ, ex, tParity, pGen)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer(kind=n_int), intent(in) :: ilut(0:NIfTot)
integer, intent(out) :: nJ(nel)
integer(kind=n_int), intent(out) :: ilutnJ(0:NIfTot)
integer, intent(out) :: ex(2,2)
logical, intent(out) :: tParity
real(kind=dp), intent(inout) :: pGen

private subroutine generate_imp_double_excitation(nI, ilut, nJ, ilutnJ, ex, tParity, pGen)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer(kind=n_int), intent(in) :: ilut(0:NIfTot)
integer, intent(out) :: nJ(nel)
integer(kind=n_int), intent(out) :: ilutnJ(0:NIfTot)
integer, intent(out) :: ex(2,2)
logical, intent(out) :: tParity
real(kind=dp), intent(inout) :: pGen

private subroutine assign_output_ilut(ilut, ilutnJ, i, j, k, l)

Arguments

Type IntentOptional Attributes Name
integer(kind=n_int), intent(in) :: ilut(0:NIfTot)
integer(kind=n_int), intent(out) :: ilutnJ(0:NIfTot)
integer, intent(in) :: i
integer, intent(in) :: j
integer, intent(in), optional :: k
integer, intent(in), optional :: l

public subroutine clearImpurityExcitGen()

Arguments

None