pcpp_excitgen Module



Contents


Variables

Type Visibility Attributes Name Initial
type(AliasSampler_t), public, allocatable :: single_hole_sampler(:)
type(AliasSampler_t), public :: single_elec_sampler
type(AliasSampler_t), public :: double_elec_one_sampler
type(AliasSampler_t), public, allocatable :: double_elec_two_sampler(:)
type(AliasSampler_t), public, allocatable :: double_hole_one_sampler(:,:)
type(AliasSampler_t), public, allocatable :: double_hole_two_sampler(:,:,:)
integer, public, allocatable :: refDet(:)
integer, public, parameter :: spinMax = 1

Functions

public pure function create_elec_map(ilut) result(map)

Arguments

Type IntentOptional Attributes Name
integer(kind=n_int), intent(in) :: ilut(0:NifTot)

Return Value integer, (nel)

public function calc_pgen_pcpp(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_singles_pcpp(ilutI, ex) result(pgen)

Returns the probability of generating a single excitation using the pcpp excitation generator @param[in] ilutI starting determinant of the excitation in the ilut format @param[in] ex excitation as a 1-D integer array of size 2 @return pgen probability of picking ex as an excitation from ilutI with pcpp mode (does not account for pSingles)

Arguments

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

Return Value real(kind=dp)

public function calc_pgen_doubles_pcpp(ilutI, ex) result(pgen)

Returns the probability of generating a double excitation using the pcpp excitation generator @param[in] ilutI starting determinant of the excitation in the ilut format @param[in] ex excitation as a 2-D integer array of size 2x2 @return pgen probability of picking ex as an excitation from ilutI with pcpp mode (does not account for 1.0-pSingles)

Arguments

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

Return Value real(kind=dp)

public pure elemental function gtSpin(spinOrb) result(spinInd)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: spinOrb

Return Value integer

public function pp_weight_function(i, a) result(w)

Arguments

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

Return Value real(kind=dp)

public function symAllowed(a, b) result(allowed)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: a
integer, intent(in) :: b

Return Value logical


Subroutines

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

public subroutine generate_double_pcpp(nI, elec_map, ilut, nJ, ExcitMat, tParity, pGen)

Arguments

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

public subroutine generate_single_pcpp(nI, elec_map, ilut, nJ, ExcitMat, tParity, pGen)

Arguments

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

public subroutine init_pcpp_excitgen()

Arguments

None

public subroutine init_pcpp_doubles_excitgen()

Arguments

None

public subroutine init_pcpp_singles_excitgen()

Arguments

None

public subroutine update_pcpp_excitgen()

Arguments

None

public subroutine finalize_pcpp_excitgen()

Arguments

None

public pure subroutine apply_lower_bound(w)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(inout) :: w(:)