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 I,J and their index in |
||
integer, | intent(out) | :: | srcs(2) |
The chosen particles I,J and their index in |
||
real(kind=dp), | intent(out) | :: | p |
The probability of drawing p({I,J})|Di. This is the probability of drawing two particles from a given determinant Di 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 p(I)|Di and then p(J|I)J∈Di and both probabilites come from the PCHB weighting scheme. We guarantee that I and J are occupied. We draw ˜p(I)|Di uniformly and then p(J|I)J∈Di The second distribution comes from the PCHB weighting scheme. We guarantee that I and J are occupied. We draw ˜p(I)|Di uniformly and then p(J|I)J. The second distribution comes from the PCHB weighting scheme. We guarantee that I is occupied. |
|
type(PCHB_ParticleSelection_t), | public | :: | FULL_FULL | = | PCHB_ParticleSelection_t(2, 'FULL-FULL') |
Both particles are drawn uniformly. We draw from p(I)|Di and then p(J|I)J∈Di and both probabilites come from the PCHB weighting scheme. We guarantee that I and J are occupied. We draw ˜p(I)|Di uniformly and then p(J|I)J∈Di The second distribution comes from the PCHB weighting scheme. We guarantee that I and J are occupied. We draw ˜p(I)|Di uniformly and then p(J|I)J. The second distribution comes from the PCHB weighting scheme. We guarantee that I is occupied. |
|
type(PCHB_ParticleSelection_t), | public | :: | UNIF_FULL | = | PCHB_ParticleSelection_t(3, 'UNIF-FULL') |
Both particles are drawn uniformly. We draw from p(I)|Di and then p(J|I)J∈Di and both probabilites come from the PCHB weighting scheme. We guarantee that I and J are occupied. We draw ˜p(I)|Di uniformly and then p(J|I)J∈Di The second distribution comes from the PCHB weighting scheme. We guarantee that I and J are occupied. We draw ˜p(I)|Di uniformly and then p(J|I)J. The second distribution comes from the PCHB weighting scheme. We guarantee that I is occupied. |
|
type(PCHB_ParticleSelection_t), | public | :: | UNIF_FAST | = | PCHB_ParticleSelection_t(4, 'UNIF-FAST') |
Both particles are drawn uniformly. We draw from p(I)|Di and then p(J|I)J∈Di and both probabilites come from the PCHB weighting scheme. We guarantee that I and J are occupied. We draw ˜p(I)|Di uniformly and then p(J|I)J∈Di The second distribution comes from the PCHB weighting scheme. We guarantee that I and J are occupied. We draw ˜p(I)|Di uniformly and then p(J|I)J. The second distribution comes from the PCHB weighting scheme. We guarantee that I 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 p({I,J})|Di
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 p({I,J})|Di
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 p({I,J})|Di
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 p({I,J})|Di
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 I,J and their index in |
||
integer, | intent(out) | :: | srcs(2) |
The chosen particles I,J and their index in |
||
real(kind=dp), | intent(out) | :: | p |
The probability of drawing p({I,J})|Di. This is the probability of drawing two particles from a given determinant Di 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 I,J and their index in |
||
integer, | intent(out) | :: | srcs(2) |
The chosen particles I,J and their index in |
||
real(kind=dp), | intent(out) | :: | p |
The probability of drawing p({I,J})|Di. This is the probability of drawing two particles from a given determinant Di 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 I,J and their index in |
||
integer, | intent(out) | :: | srcs(2) |
The chosen particles I,J and their index in |
||
real(kind=dp), | intent(out) | :: | p |
The probability of drawing p({I,J})|Di. This is the probability of drawing two particles from a given determinant Di 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 I,J and their index in |
||
integer, | intent(out) | :: | srcs(2) |
The chosen particles I,J and their index in |
||
real(kind=dp), | intent(out) | :: | p |
The probability of drawing p({I,J})|Di. This is the probability of drawing two particles from a given determinant Di regardless of order. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PC_Particles_t), | intent(inout) | :: | this |