PropVec_PCHB_Doubles_t Derived Type

type, private, abstract, extends(DoublesGUGABase_t) :: PropVec_PCHB_Doubles_t


Components

Type Visibility Attributes Name Initial
logical, public :: use_lookup = .false.

Use a lookup for the prop_vec index in global_det_data

logical, public :: create_lookup = .false.

Create and manage! the prop_vec index lookup in global_det_data.

class(ParticleSelector_t), private, allocatable :: particle_selector
type(shared_array_int64_t), private :: all_info_table
type(shared_array_int64_t), private, allocatable :: info_tables(:)
class(AlsoGUGA_PropertyIndexer_t), private, allocatable :: indexer
procedure(get_doubles_weight_t), private, pointer, nopass :: get_weight => null()

Type-Bound Procedures

procedure(DoublesPickOrbitals_t), public, deferred :: pickOrbitals

  • subroutine DoublesPickOrbitals_t(this, nI, ilut, csf_i, excitInfo, pgen) Prototype

    Arguments

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

procedure, public :: init => init_PropVec_PCHB_Doubles_t

procedure, public :: finalize => finalize_GugaAliasSampler_t

procedure, public :: gen_all_distinct

  • private pure function gen_all_distinct(this, csf_i, sort_fused_key) result(res)

    This function returns all possible excitations for the orbital picker

    Read more…

    Arguments

    Type IntentOptional Attributes Name
    class(PropVec_PCHB_Doubles_t), intent(in) :: this
    type(CSF_Info_t), intent(in) :: csf_i
    logical, intent(in), optional :: sort_fused_key

    The fused index of the excitations should be sorted.

    Return Value type(DistinctDouble_t), allocatable, (:)

procedure, private :: new_info_table

  • private subroutine new_info_table(this, nEntries, entrySize)

    Arguments

    Type IntentOptional Attributes Name
    class(PropVec_PCHB_Doubles_t) :: this
    integer(kind=int64), intent(in) :: nEntries
    integer(kind=int64), intent(in) :: entrySize

procedure, private :: set_info_entry

  • private subroutine set_info_entry(this, ij, ab, info)

    Arguments

    Type IntentOptional Attributes Name
    class(PropVec_PCHB_Doubles_t) :: this
    integer, intent(in) :: ij
    integer, intent(in) :: ab
    integer(kind=int64), intent(in) :: info

procedure, private :: get_info_entry

  • private function get_info_entry(this, iEntry, tgt) result(info)

    Arguments

    Type IntentOptional Attributes Name
    class(PropVec_PCHB_Doubles_t) :: this
    integer, intent(in) :: iEntry
    integer, intent(in) :: tgt

    Return Value integer(kind=int64)

procedure, public :: calc_pgen => calc_pgen_Base

  • private function calc_pgen_Base(this, nI, ilutI, csf_i, excitInfo) result(pgen)

    Arguments

    Type IntentOptional Attributes Name
    class(PropVec_PCHB_Doubles_t), intent(in) :: this
    integer, intent(in) :: nI(nel)
    integer(kind=n_int), intent(in) :: ilutI(0:GugaBits%len_tot)
    type(CSF_Info_t), intent(in) :: csf_i
    type(ExcitationInformation_t), intent(in) :: excitInfo

    Return Value real(kind=dp)

procedure, public :: calc_orbital_pgen_contr => calc_orbital_pgen_contr_Base

  • private subroutine calc_orbital_pgen_contr_Base(this, nI, ilut, csf_i, occ_orbs, above_cpt, below_cpt)

    Arguments

    Type IntentOptional Attributes Name
    class(PropVec_PCHB_Doubles_t), intent(in) :: this
    integer, intent(in) :: nI(nEl)
    integer(kind=n_int), intent(in) :: ilut(0:GugaBits%len_tot)
    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

procedure, public :: calc_orbital_pgen_contr_start => calc_orbital_pgen_contr_start_Base

  • private subroutine calc_orbital_pgen_contr_start_Base(this, nI, ilut, csf_i, occ_orbs, orb_a, orb_pgen)

    Arguments

    Type IntentOptional Attributes Name
    class(PropVec_PCHB_Doubles_t), intent(in) :: this
    integer, intent(in) :: nI(nEl)
    integer(kind=n_int), intent(in) :: ilut(0:GugaBits%len_tot)
    type(CSF_Info_t), intent(in) :: csf_i
    integer, intent(in) :: occ_orbs(2)
    integer, intent(in) :: orb_a
    real(kind=dp), intent(out) :: orb_pgen

procedure, public :: calc_orbital_pgen_contr_end => calc_orbital_pgen_contr_end_Base

  • private subroutine calc_orbital_pgen_contr_end_Base(this, nI, ilut, csf_i, occ_orbs, orb_a, orb_pgen)

    Arguments

    Type IntentOptional Attributes Name
    class(PropVec_PCHB_Doubles_t), intent(in) :: this
    integer, intent(in) :: nI(nEl)
    integer(kind=n_int), intent(in) :: ilut(0:GugaBits%len_tot)
    type(CSF_Info_t), intent(in) :: csf_i
    integer, intent(in) :: occ_orbs(2)
    integer, intent(in) :: orb_a
    real(kind=dp), intent(out) :: orb_pgen

procedure(calc_hole_pgen_t), private, deferred :: calc_hole_pgen

  • function calc_hole_pgen_t(this, nI, ilutI, csf_i, ij, i_sg, a, b) result(pgen) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(PropVec_PCHB_Doubles_t), intent(in) :: this
    integer, intent(in) :: nI(nEl)
    integer(kind=n_int), intent(in) :: ilutI(0:GugaBits%len_tot)
    type(CSF_Info_t), intent(in) :: csf_i
    integer, intent(in) :: ij
    integer, intent(in) :: i_sg
    integer, intent(in) :: a
    integer, intent(in) :: b

    Return Value real(kind=dp)

procedure(calculate_pchb_sampler_t), private, deferred :: setup_pchb_sampler_conditional

  • subroutine calculate_pchb_sampler_t(this, rank_with_info, ij_weights) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(PropVec_PCHB_Doubles_t), intent(inout) :: this
    integer, intent(in) :: rank_with_info
    real(kind=dp), intent(out), allocatable :: ij_weights(:,:,:)

procedure(additional_finalize_t), private, deferred :: finalize_pchb_sampler

  • subroutine additional_finalize_t(this) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(PropVec_PCHB_Doubles_t), intent(inout) :: this

procedure(GetMemoryDemand_t), public, deferred :: get_memory_demand

  • elemental function GetMemoryDemand_t(this) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(PropVec_PCHB_Doubles_t), intent(in) :: this

    Return Value type(ByteSize_t)