Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(GAS_PCHB_SinglesAlgorithm_vals_t), | private, | parameter | :: | GAS_used_singles_vals | = | GAS_PCHB_SinglesAlgorithm_vals_t() | |
type(GAS_PCHB_SinglesOptions_vals_t), | public, | parameter | :: | GAS_PCHB_singles_options_vals | = | GAS_PCHB_SinglesOptions_vals_t() |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | val |
generic, public :: operator(==) => eq_EnumBase_t | |
generic, public :: operator(/=) => neq_EnumBase_t |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(GAS_PCHB_SinglesAlgorithm_t), | public | :: | ON_FLY_HEAT_BATH | = | GAS_PCHB_SinglesAlgorithm_t(1) | ||
type(GAS_PCHB_SinglesAlgorithm_t), | public | :: | BITMASK_UNIFORM | = | GAS_PCHB_SinglesAlgorithm_t(2) | ||
type(GAS_PCHB_SinglesAlgorithm_t), | public | :: | PC_WEIGHTED | = | GAS_PCHB_SinglesAlgorithm_t(3) |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(GAS_PCHB_SinglesAlgorithm_vals_t), | public | :: | algorithm | = | GAS_PCHB_SinglesAlgorithm_vals_t() | ||
type(PC_WeightedSinglesOptions_vals_t), | public | :: | PC_weighted | = | PC_WeightedSinglesOptions_vals_t() |
procedure , public , nopass :: from_str => singles_from_keyword Function |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(GAS_PCHB_SinglesAlgorithm_t), | public | :: | algorithm | ||||
type(PC_WeightedSinglesOptions_t), | public | :: | PC_weighted | = | PC_WeightedSinglesOptions_t(GAS_PCHB_singles_options_vals%PC_weighted%drawing%UNDEFINED) |
procedure , public , :: to_str Function |
The precomputed GAS uniform excitation generator
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=n_int), | private, | allocatable | :: | allowed_holes(:,:,:) | |||
class(GASSpec_t), | private, | allocatable | :: | GAS_spec | |||
type(SuperGroupIndexer_t), | private, | pointer | :: | indexer | => | null() | |
logical, | public | :: | use_lookup | = | .false. |
Use a lookup for the supergroup index in global_det_data. |
|
logical, | public | :: | create_lookup | = | .false. |
Create and manage! the supergroup index lookup in global_det_data. |
procedure , public :: init => GAS_singles_uniform_init Subroutine | |
procedure , public :: finalize => GAS_singles_uniform_finalize Subroutine | |
procedure , public :: get_possible_holes => GAS_singles_uniform_possible_holes Function | Get the GAS allowed holes for a given determinant and a chosen particle. |
procedure , public :: gen_exc => GAS_singles_uniform_gen_exc Subroutine | |
procedure , public :: get_pgen => GAS_singles_uniform_get_pgen Function | |
procedure , public :: gen_all_excits => GAS_singles_uniform_gen_all_excits Subroutine |
Parse a given keyword into the possible weighting schemes
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | w |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(GAS_PCHB_SinglesOptions_t), | intent(in) | :: | options |
@brief For a determinant nI and a spin orbital src return the GAS allowed orbitals with the same spin as src which are not occupied in nI.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(GAS_singles_PC_uniform_ExcGenerator_t), | intent(in) | :: | this | |||
integer, | intent(in) | :: | nI(nel) | |||
integer(kind=n_int), | intent(in) | :: | ilutI(0:nIfD) | |||
integer, | intent(in) | :: | src | |||
logical, | intent(in) | :: | use_lookup | |||
type(excit_gen_store_type), | intent(in), | optional | :: | store |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(GAS_singles_PC_uniform_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) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(GASSpec_t), | intent(in) | :: | GAS_spec | |||
type(GAS_PCHB_SinglesOptions_t), | intent(in) | :: | options | |||
logical, | intent(in) | :: | use_lookup |
Use the supergroup lookup |
||
class(SingleExcitationGenerator_t), | intent(inout), | allocatable | :: | generator |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(GAS_singles_PC_uniform_ExcGenerator_t), | intent(inout) | :: | this | |||
class(GASSpec_t), | intent(in) | :: | GAS_spec | |||
logical, | intent(in) | :: | use_lookup | |||
logical, | intent(in) | :: | create_lookup |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(GAS_singles_PC_uniform_ExcGenerator_t), | intent(inout) | :: | this |
@brief This is the uniform singles excitation generator which uses precomputed indices to generate only GAS allowed excitations.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(GAS_singles_PC_uniform_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 |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(GAS_singles_PC_uniform_ExcGenerator_t), | intent(in) | :: | this | |||
integer, | intent(in) | :: | nI(nEl) | |||
integer, | intent(out) | :: | n_excits | |||
integer(kind=n_int), | intent(out), | allocatable | :: | det_list(:,:) |