Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(PCHB_ParticleSelection_vals_t), | private, | parameter | :: | PCHB_particle_selection_vals | = | PCHB_ParticleSelection_vals_t() |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ParticleSelector_t), | intent(in) | :: | this | |||
integer, | intent(in) | :: | nI(nEl) |
The determinant in nI-format and the supergroup index |
||
integer, | intent(in) | :: | i_sg |
The determinant in nI-format and the supergroup index |
||
integer, | intent(in) | :: | I |
The particles. |
||
integer, | intent(in) | :: | J |
The particles. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ParticleSelector_t), | intent(inout) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ParticleSelector_t), | intent(in) | :: | this | |||
integer, | intent(in) | :: | nI(nEl) |
The determinant in nI-format and the supergroup index |
||
integer(kind=n_int), | intent(in) | :: | ilutI(0:nIfD) |
The determinant in bitmask format |
||
integer, | intent(in) | :: | i_sg |
The determinant in nI-format and the supergroup index |
||
integer, | intent(out) | :: | elecs(2) |
The chosen particles and their index in |
||
integer, | intent(out) | :: | srcs(2) |
The chosen particles and their index in |
||
real(kind=dp), | intent(out) | :: | p |
The probability of drawing . This is the probability of drawing two particles from a given determinant regardless of order. |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | val | ||||
character(len=9), | private | :: | str |
generic, public :: operator(==) => eq_EnumBase_t | |
generic, public :: operator(/=) => neq_EnumBase_t | |
procedure , public , :: to_str Function |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(PCHB_ParticleSelection_t), | public | :: | UNIF_UNIF | = | PCHB_ParticleSelection_t(1, 'UNIF-UNIF') |
Both particles are drawn uniformly. We draw from and then and both probabilites come from the PCHB weighting scheme. We guarantee that and are occupied. We draw uniformly and then The second distribution comes from the PCHB weighting scheme. We guarantee that and are occupied. We draw uniformly and then . The second distribution comes from the PCHB weighting scheme. We guarantee that is occupied. |
|
type(PCHB_ParticleSelection_t), | public | :: | FULL_FULL | = | PCHB_ParticleSelection_t(2, 'FULL-FULL') |
Both particles are drawn uniformly. We draw from and then and both probabilites come from the PCHB weighting scheme. We guarantee that and are occupied. We draw uniformly and then The second distribution comes from the PCHB weighting scheme. We guarantee that and are occupied. We draw uniformly and then . The second distribution comes from the PCHB weighting scheme. We guarantee that is occupied. |
|
type(PCHB_ParticleSelection_t), | public | :: | UNIF_FULL | = | PCHB_ParticleSelection_t(3, 'UNIF-FULL') |
Both particles are drawn uniformly. We draw from and then and both probabilites come from the PCHB weighting scheme. We guarantee that and are occupied. We draw uniformly and then The second distribution comes from the PCHB weighting scheme. We guarantee that and are occupied. We draw uniformly and then . The second distribution comes from the PCHB weighting scheme. We guarantee that is occupied. |
|
type(PCHB_ParticleSelection_t), | public | :: | UNIF_FAST | = | PCHB_ParticleSelection_t(4, 'UNIF-FAST') |
Both particles are drawn uniformly. We draw from and then and both probabilites come from the PCHB weighting scheme. We guarantee that and are occupied. We draw uniformly and then The second distribution comes from the PCHB weighting scheme. We guarantee that and are occupied. We draw uniformly and then . The second distribution comes from the PCHB weighting scheme. We guarantee that is occupied. |
procedure , public , nopass :: from_str => from_keyword Function |
procedure , public :: draw => draw_UniformParticles_t Subroutine | |
procedure , public :: get_pgen => get_pgen_UniformParticles_t Function | |
procedure , public :: finalize => finalize_UniformParticles_t Subroutine |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(AliasSampler_1D_t), | private | :: | I_sampler |
The shape is (n_supergroup) -> number_of_spin_orbs |
|||
type(AliasSampler_2D_t), | private | :: | J_sampler |
The shape is (number_of_spin_orbs, n_supergroup) -> number_of_spin_orbs |
|||
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 (Draw_t) , public :: draw | |
procedure (GetPgen_t) , public :: get_pgen | |
procedure , public :: init => init_PC_WeightedParticles_t Subroutine | |
procedure , public :: finalize => finalize_PC_WeightedParticles_t Subroutine |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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 => init_PC_WeightedParticles_t Subroutine | |
procedure , public :: finalize => finalize_PC_WeightedParticles_t Subroutine | |
procedure , public :: draw => draw_PC_FullyWeightedParticles_t Subroutine | |
procedure , public :: get_pgen => get_pgen_PC_FullyWeightedParticles_t Function |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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 => init_PC_WeightedParticles_t Subroutine | |
procedure , public :: finalize => finalize_PC_WeightedParticles_t Subroutine | |
procedure , public :: draw => draw_PC_WeightedParticles_t Subroutine | |
procedure , public :: get_pgen => get_pgen_PC_WeightedParticles_t Function |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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 => init_PC_WeightedParticles_t Subroutine | |
procedure , public :: finalize => finalize_PC_WeightedParticles_t Subroutine | |
procedure , public :: draw => draw_PC_FastWeightedParticles_t Subroutine | |
procedure , public :: get_pgen => get_pgen_PC_FastWeightedParticles_t Function |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PCHB_ParticleSelection_t), | intent(in) | :: | options |
Parse a given keyword into the possible particle selection schemes
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | w |
Calculates
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(UniformParticles_t), | intent(in) | :: | this | |||
integer, | intent(in) | :: | nI(nEl) |
The determinant in nI-format and the supergroup index |
||
integer, | intent(in) | :: | i_sg |
The determinant in nI-format and the supergroup index |
||
integer, | intent(in) | :: | I |
The particles. |
||
integer, | intent(in) | :: | J |
The particles. |
Calculates
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PC_FullyWeightedParticles_t), | intent(in) | :: | this | |||
integer, | intent(in) | :: | nI(nEl) |
The determinant in nI-format and the supergroup index |
||
integer, | intent(in) | :: | i_sg |
The determinant in nI-format and the supergroup index |
||
integer, | intent(in) | :: | I |
The particles. |
||
integer, | intent(in) | :: | J |
The particles. |
Calculates
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PC_WeightedParticles_t), | intent(in) | :: | this | |||
integer, | intent(in) | :: | nI(nEl) |
The determinant in nI-format and the supergroup index |
||
integer, | intent(in) | :: | i_sg |
The determinant in nI-format and the supergroup index |
||
integer, | intent(in) | :: | I |
The particles. |
||
integer, | intent(in) | :: | J |
The particles. |
Calculates
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PC_FastWeightedParticles_t), | intent(in) | :: | this | |||
integer, | intent(in) | :: | nI(nEl) |
The determinant in nI-format and the supergroup index |
||
integer, | intent(in) | :: | i_sg |
The determinant in nI-format and the supergroup index |
||
integer, | intent(in) | :: | I |
The particles. |
||
integer, | intent(in) | :: | J |
The particles. |
If there are three-body excitations,
the double excitations actually become determinant-dependent.
This function returns a fake determinant independent value in all
cases, but evaluating exc
for the reference determinant.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(Excite_2_t), | intent(in) | :: | exc |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(PCHB_ParticleSelection_t), | intent(in) | :: | PCHB_particle_selection | |||
class(GASSpec_t), | intent(in) | :: | GAS_spec | |||
real(kind=dp), | intent(in) | :: | IJ_weights(:,:,:) | |||
integer, | intent(in) | :: | rank_with_info |
The intra-node rank that contains the weights to be used all other arr of all other ranks are ignored (and can be allocated with size 0). |
||
logical, | intent(in) | :: | use_lookup | |||
class(ParticleSelector_t), | intent(inout), | allocatable | :: | particle_selector |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(UniformParticles_t), | intent(in) | :: | this | |||
integer, | intent(in) | :: | nI(nEl) |
The determinant in nI-format and the supergroup index |
||
integer(kind=n_int), | intent(in) | :: | ilutI(0:nIfD) |
The determinant in bitmask format |
||
integer, | intent(in) | :: | i_sg |
The determinant in nI-format and the supergroup index |
||
integer, | intent(out) | :: | elecs(2) |
The chosen particles and their index in |
||
integer, | intent(out) | :: | srcs(2) |
The chosen particles and their index in |
||
real(kind=dp), | intent(out) | :: | p |
The probability of drawing . This is the probability of drawing two particles from a given determinant regardless of order. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(UniformParticles_t), | intent(inout) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PC_Particles_t), | intent(inout) | :: | this | |||
class(GASSpec_t), | intent(in) | :: | GAS_spec | |||
real(kind=dp), | intent(in) | :: | weights(:,:,:) |
|
||
integer, | intent(in) | :: | rank_with_info |
The intra-node rank that contains the weights to be used all other arr of all other ranks are ignored (and can be allocated with size 0). |
||
logical, | intent(in) | :: | use_lookup | |||
logical, | intent(in) | :: | create_lookup |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PC_FullyWeightedParticles_t), | intent(in) | :: | this | |||
integer, | intent(in) | :: | nI(nEl) |
The determinant in nI-format and the supergroup index |
||
integer(kind=n_int), | intent(in) | :: | ilutI(0:nIfD) |
The determinant in bitmask format |
||
integer, | intent(in) | :: | i_sg |
The determinant in nI-format and the supergroup index |
||
integer, | intent(out) | :: | elecs(2) |
The chosen particles and their index in |
||
integer, | intent(out) | :: | srcs(2) |
The chosen particles and their index in |
||
real(kind=dp), | intent(out) | :: | p |
The probability of drawing . This is the probability of drawing two particles from a given determinant regardless of order. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PC_WeightedParticles_t), | intent(in) | :: | this | |||
integer, | intent(in) | :: | nI(nEl) |
The determinant in nI-format and the supergroup index |
||
integer(kind=n_int), | intent(in) | :: | ilutI(0:nIfD) |
The determinant in bitmask format |
||
integer, | intent(in) | :: | i_sg |
The determinant in nI-format and the supergroup index |
||
integer, | intent(out) | :: | elecs(2) |
The chosen particles and their index in |
||
integer, | intent(out) | :: | srcs(2) |
The chosen particles and their index in |
||
real(kind=dp), | intent(out) | :: | p |
The probability of drawing . This is the probability of drawing two particles from a given determinant regardless of order. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PC_FastWeightedParticles_t), | intent(in) | :: | this | |||
integer, | intent(in) | :: | nI(nEl) |
The determinant in nI-format and the supergroup index |
||
integer(kind=n_int), | intent(in) | :: | ilutI(0:nIfD) |
The determinant in bitmask format |
||
integer, | intent(in) | :: | i_sg |
The determinant in nI-format and the supergroup index |
||
integer, | intent(out) | :: | elecs(2) |
The chosen particles and their index in |
||
integer, | intent(out) | :: | srcs(2) |
The chosen particles and their index in |
||
real(kind=dp), | intent(out) | :: | p |
The probability of drawing . This is the probability of drawing two particles from a given determinant regardless of order. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PC_Particles_t), | intent(inout) | :: | this |