HPHFRandExcitMod Module

This routine will take a HPHF nI, and find Iterations number of excitations of it.

the excitation. This means that all excitations should be 0 or 1 after enough iterations.

number of excitations generated using the full enumeration excitation generation.



Contents


Variables

Type Visibility Attributes Name Initial
procedure(generate_excitation_t), public, pointer :: exc_generator_for_HPHF => null()

Subroutines

public subroutine CalcPGenHPHF(nI, iLutnI, nJ, iLutnJ, ex, ClassCount, ClassCountUnocc, pDoubles, pGen, tSameFunc)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer(kind=n_int), intent(in) :: iLutnI(0:niftot)
integer, intent(in) :: nJ(nel)
integer(kind=n_int), intent(in) :: iLutnJ(0:niftot)
integer, intent(in) :: ex(2,maxExcit)
integer, intent(in) :: ClassCount(ScratchSize)
integer, intent(in) :: ClassCountUnocc(ScratchSize)
real(kind=dp), intent(in) :: pDoubles
real(kind=dp), intent(out) :: pGen
logical, intent(out) :: tSameFunc

public subroutine gen_hphf_excit(nI, iLutnI, nJ, iLutnJ, exFlag, IC, ExcitMat, tParity, pGen, HEl, store, part_type)

We cannot guarentee that the pGens are going to be the same - in fact, generally, they wont be.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer(kind=n_int), intent(in) :: iLutnI(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) :: HEl
type(excit_gen_store_type), intent(inout), target :: store
integer, intent(in), optional :: part_type

public subroutine ReturnAlphaOpenDet(nI, nJ, iLutnI, iLutSym, tCalciLutSym, tCalcnISym, tSwapped)

Arguments

Type IntentOptional Attributes Name
integer, intent(inout) :: nI(NEl)
integer, intent(inout) :: nJ(NEl)
integer(kind=n_int), intent(inout) :: iLutnI(0:NIfTot)
integer(kind=n_int), intent(inout) :: iLutSym(0:NIfTot)
logical, intent(in) :: tCalciLutSym
logical, intent(in) :: tCalcnISym
logical, intent(out) :: tSwapped

public pure subroutine FindDetSpinSym(nI, nJ, NEl)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(NEl)
integer, intent(out) :: nJ(NEl)
integer, intent(in) :: NEl

public pure subroutine FindExcitBitDetSym(iLut, iLutSym)

Arguments

Type IntentOptional Attributes Name
integer(kind=n_int), intent(in) :: iLut(0:NIfTot)
integer(kind=n_int), intent(out) :: iLutSym(0:NIfTot)

public subroutine BinSearchListHPHF(iLut, List, Length, MinInd, MaxInd, PartInd, tSuccess)

Arguments

Type IntentOptional Attributes Name
integer(kind=n_int) :: iLut(0:NIfTot)
integer(kind=n_int) :: List(0:NIfTot,Length)
integer :: Length
integer :: MinInd
integer :: MaxInd
integer :: PartInd
logical :: tSuccess

public subroutine CalcNonUniPGen(nI, ilutI, ex, ic, ClassCount2, ClassCountUnocc2, pDoub, pGen, part_type)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nI(nel)
integer(kind=n_int), intent(in) :: ilutI(0:NIfTot)
integer, intent(in) :: ex(2,maxExcit)
integer, intent(in) :: ic
integer, intent(in) :: ClassCount2(ScratchSize)
integer, intent(in) :: ClassCountUnocc2(ScratchSize)
real(kind=dp), intent(in) :: pDoub
real(kind=dp), intent(out) :: pGen
integer, intent(in), optional :: part_type