| 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 prop_vec index |
||
| integer, | intent(in) | :: | i_sg |
The determinant in nI-format and the prop_vec index |
||
| integer, | intent(in) | :: | I |
The particles. |
||
| integer, | intent(in) | :: | J |
The particles. |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ParticleSelector_t), | intent(in) | :: | this |
| 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 prop_vec 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 prop_vec 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 |
| 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 |
| procedure(Draw_t), public, deferred :: draw | |
| procedure(GetPgen_t), public, deferred :: get_pgen | |
| procedure(Finalize_t), public, deferred :: finalize | |
| procedure(GetMemoryDemand_t), public, deferred :: get_memory_demand |
| procedure, public :: draw => draw_UniformParticles_t | |
| procedure, public :: get_pgen => get_pgen_UniformParticles_t | |
| procedure, public :: finalize => finalize_UniformParticles_t | |
| procedure, public :: get_memory_demand => get_memory_demand_UniformParticles_t |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(AliasSampler_1D_t), | private | :: | I_sampler |
The shape is (n_prop_vec) -> number_of_spin_orbs |
|||
| type(AliasSampler_2D_t), | private | :: | J_sampler |
The shape is (number_of_spin_orbs, n_prop_vec) -> number_of_spin_orbs |
|||
| class(PropertyIndexer_t), | private, | allocatable | :: | indexer | |||
| 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. |
| procedure(Draw_t), public, deferred :: draw | |
| procedure(GetPgen_t), public, deferred :: get_pgen | |
| procedure, public :: init => init_PC_WeightedParticles_t | |
| procedure, public :: finalize => finalize_PC_WeightedParticles_t | |
| procedure, public :: get_memory_demand => get_memory_demand_PC_Particles_t |
| 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. |
| procedure, public :: init => init_PC_WeightedParticles_t | |
| procedure, public :: finalize => finalize_PC_WeightedParticles_t | |
| procedure, public :: get_memory_demand => get_memory_demand_PC_Particles_t | |
| procedure, public :: draw => draw_PC_FullyWeightedParticles_t | |
| procedure, public :: get_pgen => get_pgen_PC_FullyWeightedParticles_t |
| 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. |
| procedure, public :: init => init_PC_WeightedParticles_t | |
| procedure, public :: finalize => finalize_PC_WeightedParticles_t | |
| procedure, public :: get_memory_demand => get_memory_demand_PC_Particles_t | |
| procedure, public :: draw => draw_PC_WeightedParticles_t | |
| procedure, public :: get_pgen => get_pgen_PC_WeightedParticles_t |
| 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. |
| procedure, public :: init => init_PC_WeightedParticles_t | |
| procedure, public :: finalize => finalize_PC_WeightedParticles_t | |
| procedure, public :: get_memory_demand => get_memory_demand_PC_Particles_t | |
| procedure, public :: draw => draw_PC_FastWeightedParticles_t | |
| procedure, public :: get_pgen => get_pgen_PC_FastWeightedParticles_t |
| 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 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(UniformParticles_t), | intent(in) | :: | this |
Calculates
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(UniformParticles_t), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | nI(nEl) |
The determinant in nI-format and the prop_vec index |
||
| integer, | intent(in) | :: | i_sg |
The determinant in nI-format and the prop_vec index |
||
| integer, | intent(in) | :: | I |
The particles. |
||
| integer, | intent(in) | :: | J |
The particles. |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(PC_Particles_t), | intent(in) | :: | this |
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 prop_vec index |
||
| integer, | intent(in) | :: | i_sg |
The determinant in nI-format and the prop_vec 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 prop_vec index |
||
| integer, | intent(in) | :: | i_sg |
The determinant in nI-format and the prop_vec 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 prop_vec index |
||
| integer, | intent(in) | :: | i_sg |
The determinant in nI-format and the prop_vec 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(PropertyIndexer_t), | intent(in) | :: | indexer | |||
| 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 prop_vec 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 prop_vec 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(PropertyIndexer_t), | intent(in) | :: | indexer | |||
| 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 prop_vec 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 prop_vec 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 prop_vec 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 prop_vec 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 prop_vec 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 prop_vec 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 |