guga_base_class Module

This contains the base classes for the orbital picking.


Used by


Variables

Type Visibility Attributes Name Initial
type(GUGA_ExcGenerator_t), public, allocatable :: GUGA_selected_exc_generator
type(GUGA_ExcGenerator_vals_t), public, parameter :: GUGA_exc_generator_vals = GUGA_ExcGenerator_vals_t()
class(GUGABase_t), public, allocatable :: GUGA_exc_generator

Interfaces

interface


Abstract Interfaces

abstract interface

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

    This function returns all possible excitations for the orbital picker

    This means it considers only occupation, not spin recoupling.

    Arguments

    Type IntentOptional Attributes Name
    class(DoublesGUGABase_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, (:)

abstract interface

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

    Arguments

    Type IntentOptional Attributes Name
    class(GUGABase_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)

abstract interface

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

    Arguments

    Type IntentOptional Attributes Name
    class(SinglesGUGABase_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)

abstract interface

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

    Arguments

    Type IntentOptional Attributes Name
    class(DoublesGUGABase_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)

abstract interface

  • private subroutine PickOrbitals_t(this, nI, ilut, csf_i, excitInfo, pgen)

    Arguments

    Type IntentOptional Attributes Name
    class(GUGABase_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

abstract interface

  • private subroutine SinglesPickOrbitals_t(this, nI, ilut, csf_i, excitInfo, pgen)

    Arguments

    Type IntentOptional Attributes Name
    class(SinglesGUGABase_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

abstract interface

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

    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

abstract interface

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

    Arguments

    Type IntentOptional Attributes Name
    class(GUGABase_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

abstract interface

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

    Arguments

    Type IntentOptional Attributes Name
    class(GUGABase_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

abstract interface

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

    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
    integer, intent(in) :: occ_orbs(2)
    integer, intent(in) :: orb_a
    real(kind=dp), intent(out) :: orb_pgen

abstract interface

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

    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
    integer, intent(in) :: occ_orbs(2)
    real(kind=dp), intent(out) :: above_cpt
    real(kind=dp), intent(out) :: below_cpt

abstract interface

  • private subroutine BoundFinalize_t(this)

    Arguments

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

abstract interface

  • private pure function compare_entry_t(p1, p2)

    Arguments

    Type IntentOptional Attributes Name
    type(AnalyzedEntries_t), intent(in) :: p1
    type(AnalyzedEntries_t), intent(in) :: p2

    Return Value logical


Derived Types

type, public, extends(EnumBase_t) ::  GUGA_ExcGenerator_t

Components

Type Visibility Attributes Name Initial
integer, public :: val

Type-Bound Procedures

generic, public :: operator(==) => eq_EnumBase_t
generic, public :: operator(/=) => neq_EnumBase_t

type, public ::  GUGA_ExcGenerator_vals_t

Components

Type Visibility Attributes Name Initial
type(GUGA_ExcGenerator_t), public :: FCI_PCHB = GUGA_ExcGenerator_t(1)
type(GUGA_ExcGenerator_t), public :: PropVec_PCHB = GUGA_ExcGenerator_t(2)

type, private, abstract ::  Finalizable_t

Type-Bound Procedures

procedure(BoundFinalize_t), public, deferred :: finalize

type, public, abstract, extends(Finalizable_t) ::  GUGABase_t

Type-Bound Procedures

procedure(BoundFinalize_t), public, deferred :: finalize
procedure(PickOrbitals_t), public, deferred :: pickOrbitals_single
procedure(PickOrbitals_t), public, deferred :: pickOrbitals_double
procedure(CalcOrbitalPgenContr_t), public, deferred :: calc_orbital_pgen_contr_start
procedure(CalcOrbitalPgenContr_t), public, deferred :: calc_orbital_pgen_contr_end
procedure(calc_orbital_pgen_contr_t), public, deferred :: calc_orbital_pgen_contr
procedure(CalcPgen_t), public, deferred :: calc_pgen

type, public, abstract, extends(Finalizable_t) ::  SinglesGUGABase_t

Type-Bound Procedures

procedure(BoundFinalize_t), public, deferred :: finalize
procedure(SinglesPickOrbitals_t), public, deferred :: pickOrbitals
procedure(SinglesCalcPgen_t), public, deferred :: calc_pgen

type, public, abstract, extends(Finalizable_t) ::  DoublesGUGABase_t

Type-Bound Procedures

procedure(BoundFinalize_t), public, deferred :: finalize
procedure(DoublesPickOrbitals_t), public, deferred :: pickOrbitals
procedure(DoublesCalcPgen_t), public, deferred :: calc_pgen
procedure(DoublesCalcOrbitalPgenContr_t), public, deferred :: calc_orbital_pgen_contr_start
procedure(DoublesCalcOrbitalPgenContr_t), public, deferred :: calc_orbital_pgen_contr_end
procedure(Doublescalc_orbital_pgen_contr_t), public, deferred :: calc_orbital_pgen_contr
procedure(Doubles_gen_all_distinct_doubles_t), public, deferred :: gen_all_distinct

type, public, abstract, extends(GUGABase_t) ::  AbInitGUGABase_t

Components

Type Visibility Attributes Name Initial
class(SinglesGUGABase_t), public, allocatable :: singles_generator
class(DoublesGUGABase_t), public, allocatable :: doubles_generator

Type-Bound Procedures

procedure(BoundFinalize_t), public, deferred :: finalize
procedure, public :: pickOrbitals_single => AbInitGUGABase_t_pickOrbitals_single
procedure, public :: pickOrbitals_double => AbInitGUGABase_t_pickOrbitals_double
procedure, public :: calc_orbital_pgen_contr_start => AbInitGUGABase_t_calc_orbital_pgen_contr_start
procedure, public :: calc_orbital_pgen_contr_end => AbInitGUGABase_t_calc_orbital_pgen_contr_end
procedure, public :: calc_orbital_pgen_contr => AbInitGUGABase_t_calc_orbital_pgen_contr
procedure, public :: calc_pgen => AbInitGUGABase_t_calc_pgen

type, public ::  Entry_t

Components

Type Visibility Attributes Name Initial
integer(kind=int64), public :: key
type(DistinctDouble_t), public :: exc_operator
integer(kind=int64), public :: accum = 0_int64
real(kind=dp), public :: p_gen = -1._dp
type(ExcitationInformation_t), public :: exc_info = ExcitationInformation_t()

type, public ::  AnalyzedEntries_t

Components

Type Visibility Attributes Name Initial
integer(kind=int64), public :: key
type(DistinctDouble_t), public :: exc
real(kind=dp), public :: p_gen
real(kind=dp), public :: quality
integer(kind=int64), public :: accum

Functions

public function class_calc_pgen(nI, ilutI, csf_i, excitInfo) result(pgen)

Arguments

Type IntentOptional Attributes Name
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)

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

Arguments

Type IntentOptional Attributes Name
class(AbInitGUGABase_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)

public function analyze_entries(entries, n_iter, compare_entry) result(res)

Arguments

Type IntentOptional Attributes Name
type(Entry_t), intent(in) :: entries(:)
integer(kind=int64), intent(in) :: n_iter
procedure(compare_entry_t), optional :: compare_entry

Return Value type(AnalyzedEntries_t), (size(entries))


Subroutines

public subroutine finalize_guga_class()

Arguments

None

public subroutine class_pick_singles(nI, ilut, csf_i, excitInfo, pgen)

Arguments

Type IntentOptional Attributes Name
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

public subroutine class_pick_doubles(nI, ilut, csf_i, excitInfo, pgen)

Arguments

Type IntentOptional Attributes Name
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

public subroutine class_calc_orb_pgen_contr(nI, ilut, csf_i, occ_orbs, cpt_a, cpt_b)

Arguments

Type IntentOptional Attributes Name
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) :: cpt_a
real(kind=dp), intent(out) :: cpt_b

public subroutine class_calc_orb_pgen_contr_str(nI, ilut, csf_i, occ_orbs, a, orb_pgen)

Arguments

Type IntentOptional Attributes Name
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) :: a
real(kind=dp), intent(out) :: orb_pgen

public subroutine class_calc_orb_pgen_contr_end(nI, ilut, csf_i, occ_orbs, a, orb_pgen)

Arguments

Type IntentOptional Attributes Name
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) :: a
real(kind=dp), intent(out) :: orb_pgen

private subroutine AbInitGUGABase_t_pickOrbitals_single(this, nI, ilut, csf_i, excitInfo, pgen)

Arguments

Type IntentOptional Attributes Name
class(AbInitGUGABase_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

private subroutine AbInitGUGABase_t_pickOrbitals_double(this, nI, ilut, csf_i, excitInfo, pgen)

Arguments

Type IntentOptional Attributes Name
class(AbInitGUGABase_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

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

Arguments

Type IntentOptional Attributes Name
class(AbInitGUGABase_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

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

Arguments

Type IntentOptional Attributes Name
class(AbInitGUGABase_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

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

Arguments

Type IntentOptional Attributes Name
class(AbInitGUGABase_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

public subroutine test_pgen(doubles_generator, csf_i, n_iter, entries)

Arguments

Type IntentOptional Attributes Name
class(DoublesGUGABase_t), intent(in) :: doubles_generator
type(CSF_Info_t), intent(in) :: csf_i
integer(kind=int64), intent(in) :: n_iter
type(Entry_t), intent(out), allocatable :: entries(:)

public subroutine output(file_id, analyzed_entries)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: file_id
type(AnalyzedEntries_t), intent(in) :: analyzed_entries(:)