gasci_on_the_fly_heat_bath Module



Contents


Interfaces

public interface GAS_heat_bath_ExcGenerator_t


Derived Types

The heath bath GAS on-the-fly excitation generator

Components

Type Visibility Attributes Name Initial
class(GASSpec_t), private, allocatable :: GAS_spec

Constructor

private pure function construct_GAS_singles_heat_bath_ExcGen_t (GAS_spec)

Type-Bound Procedures

procedure , public :: finalize => GAS_singles_do_nothing Subroutine
procedure , public :: get_possible_holes => GAS_singles_possible_holes Function

Get the GAS allowed holes for a given determinant and a chosen particle.

procedure , public :: gen_exc => GAS_singles_gen_exc Subroutine
procedure , public :: get_pgen => GAS_singles_get_pgen Function
procedure , public :: gen_all_excits => GAS_singles_gen_all_excits Subroutine

The heath bath GAS on-the-fly excitation generator

Components

Type Visibility Attributes Name Initial
class(GASSpec_t), private, allocatable :: GAS_spec

Constructor

private pure function construct_GAS_doubles_heat_bath_ExcGen_t (GAS_spec)

Type-Bound Procedures

procedure , public :: finalize => GAS_doubles_do_nothing Subroutine
procedure , public :: get_possible_holes => GAS_doubles_possible_holes Function

Get the GAS allowed holes for a given determinant and a chosen particle.

procedure , public :: gen_exc => GAS_doubles_gen_exc Subroutine
procedure , public :: get_pgen => GAS_doubles_get_pgen Function
procedure , public :: gen_all_excits => GAS_doubles_gen_all_excits Subroutine

Components

Type Visibility Attributes Name Initial
type(GAS_singles_heat_bath_ExcGen_t), private :: singles_generator
type(GAS_doubles_heat_bath_ExcGenerator_t), private :: doubles_generator

Constructor

private pure function construct_GAS_heat_bath_ExcGenerator_t (GAS_spec)

Type-Bound Procedures

procedure , public :: finalize => GAS_heat_bath_finalize Subroutine
procedure , public :: gen_exc => GAS_heat_bath_gen_exc Subroutine
procedure , public :: get_pgen => GAS_heat_bath_get_pgen Function
procedure , public :: gen_all_excits => GAS_heat_bath_gen_all_excits Subroutine

Functions

private pure function construct_GAS_heat_bath_ExcGenerator_t(GAS_spec) result(res)

Arguments

Type IntentOptional Attributes Name
class(GASSpec_t), intent(in) :: GAS_spec

Return Value type(GAS_heat_bath_ExcGenerator_t)

private pure function construct_GAS_singles_heat_bath_ExcGen_t(GAS_spec) result(res)

Arguments

Type IntentOptional Attributes Name
class(GASSpec_t), intent(in) :: GAS_spec

Return Value type(GAS_singles_heat_bath_ExcGen_t)

private pure function construct_GAS_doubles_heat_bath_ExcGen_t(GAS_spec) result(res)

Arguments

Type IntentOptional Attributes Name
class(GASSpec_t), intent(in) :: GAS_spec

Return Value type(GAS_doubles_heat_bath_ExcGenerator_t)

private pure function GAS_singles_possible_holes(this, nI, src) result(unoccupied)

Arguments

Type IntentOptional Attributes Name
class(GAS_singles_heat_bath_ExcGen_t), intent(in) :: this
integer, intent(in) :: nI(:)
integer, intent(in) :: src

Return Value integer, allocatable, (:)

private function GAS_singles_get_pgen(this, nI, ilutI, ex, ic, ClassCount2, ClassCountUnocc2) result(pgen)

Arguments

Type IntentOptional Attributes Name
class(GAS_singles_heat_bath_ExcGen_t), intent(inout) :: this
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)

Return Value real(kind=dp)

private pure function GAS_doubles_possible_holes(this, nI, src, tgt) result(unoccupied)

Arguments

Type IntentOptional Attributes Name
class(GAS_doubles_heat_bath_ExcGenerator_t), intent(in) :: this
integer, intent(in) :: nI(:)
integer, intent(in) :: src(2)
integer, intent(in), optional :: tgt

Return Value integer, allocatable, (:)

private function GAS_doubles_get_pgen(this, nI, ilutI, ex, ic, ClassCount2, ClassCountUnocc2) result(pgen)

Arguments

Type IntentOptional Attributes Name
class(GAS_doubles_heat_bath_ExcGenerator_t), intent(inout) :: this
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)

Return Value real(kind=dp)

private function GAS_heat_bath_get_pgen(this, nI, ilutI, ex, ic, ClassCount2, ClassCountUnocc2)

Arguments

Type IntentOptional Attributes Name
class(GAS_heat_bath_ExcGenerator_t), intent(inout) :: this
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)

Return Value real(kind=dp)


Subroutines

private subroutine GAS_singles_do_nothing(this)

Arguments

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

private subroutine GAS_singles_gen_exc(this, nI, ilutI, nJ, ilutJ, exFlag, ic, ex, tParity, pGen, hel, store, part_type)

@brief Generate a single excitation under GAS constraints.

Arguments

Type IntentOptional Attributes Name
class(GAS_singles_heat_bath_ExcGen_t), intent(inout) :: this
integer, intent(in) :: nI(nEl)
integer(kind=n_int), intent(in) :: ilutI(0:NIfTot)
integer, intent(out) :: nJ(nEl)
integer(kind=n_int), intent(out) :: ilutJ(0:NifTot)
integer, intent(in) :: exFlag
integer, intent(out) :: ic
integer, intent(out) :: ex(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

private subroutine GAS_singles_gen_all_excits(this, nI, n_excits, det_list)

Arguments

Type IntentOptional Attributes Name
class(GAS_singles_heat_bath_ExcGen_t), intent(in) :: this
integer, intent(in) :: nI(nEl)
integer, intent(out) :: n_excits
integer(kind=n_int), intent(out), allocatable :: det_list(:,:)

private subroutine GAS_doubles_do_nothing(this)

Arguments

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

private subroutine GAS_doubles_gen_exc(this, nI, ilutI, nJ, ilutJ, exFlag, ic, ex, tParity, pGen, hel, store, part_type)

@brief Generate a single excitation under GAS constraints.

Arguments

Type IntentOptional Attributes Name
class(GAS_doubles_heat_bath_ExcGenerator_t), intent(inout) :: this
integer, intent(in) :: nI(nEl)
integer(kind=n_int), intent(in) :: ilutI(0:NIfTot)
integer, intent(out) :: nJ(nEl)
integer(kind=n_int), intent(out) :: ilutJ(0:NifTot)
integer, intent(in) :: exFlag
integer, intent(out) :: ic
integer, intent(out) :: ex(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

private subroutine GAS_doubles_gen_all_excits(this, nI, n_excits, det_list)

Arguments

Type IntentOptional Attributes Name
class(GAS_doubles_heat_bath_ExcGenerator_t), intent(in) :: this
integer, intent(in) :: nI(nEl)
integer, intent(out) :: n_excits
integer(kind=n_int), intent(out), allocatable :: det_list(:,:)

private subroutine GAS_heat_bath_finalize(this)

Arguments

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

private subroutine GAS_heat_bath_gen_exc(this, nI, ilutI, nJ, ilutJ, exFlag, ic, ex, tParity, pGen, hel, store, part_type)

Arguments

Type IntentOptional Attributes Name
class(GAS_heat_bath_ExcGenerator_t), intent(inout) :: this
integer, intent(in) :: nI(nEl)
integer(kind=n_int), intent(in) :: ilutI(0:NIfTot)
integer, intent(out) :: nJ(nEl)
integer(kind=n_int), intent(out) :: ilutJ(0:NifTot)
integer, intent(in) :: exFlag
integer, intent(out) :: ic
integer, intent(out) :: ex(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

private subroutine GAS_heat_bath_gen_all_excits(this, nI, n_excits, det_list)

Arguments

Type IntentOptional Attributes Name
class(GAS_heat_bath_ExcGenerator_t), intent(in) :: this
integer, intent(in) :: nI(nEl)
integer, intent(out) :: n_excits
integer(kind=n_int), intent(out), allocatable :: det_list(:,:)