Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(PC_singles_drawing_vals_t), | private, | parameter | :: | PC_singles_drawing_vals | = | PC_singles_drawing_vals_t() |
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(PC_singles_drawing_t), | public | :: | UNDEFINED | = | PC_singles_drawing_t(-1, 'UNDEFINED') |
We draw from and then
and both probabilites come from the weighting scheme given in
|
|
type(PC_singles_drawing_t), | public | :: | FULL_FULL | = | PC_singles_drawing_t(1, 'FULL:FULL') |
We draw from and then
and both probabilites come from the weighting scheme given in
|
|
type(PC_singles_drawing_t), | public | :: | UNIF_FULL | = | PC_singles_drawing_t(2, 'UNIF:FULL') |
We draw from and then
and both probabilites come from the weighting scheme given in
|
|
type(PC_singles_drawing_t), | public | :: | UNIF_FAST | = | PC_singles_drawing_t(3, 'UNIF:FAST') |
We draw from and then
and both probabilites come from the weighting scheme given in
|
procedure , public , nopass :: from_str => drawing_from_keyword Function |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(PC_singles_drawing_t), | public | :: | drawing |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(PC_singles_drawing_vals_t), | public | :: | drawing | = | PC_singles_drawing_vals_t() |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(AliasSampler_1D_t), | public | :: | I_sampler |
p(I | i_sg)
The probability of picking particle |
|||
type(AliasSampler_2D_t), | public | :: | A_sampler |
p(A | I, i_sg) The probability of picking the hole A after having picked particle I in the supergroup i_sg. |
|||
real(kind=dp), | public, | allocatable | :: | weights(:,:,:) |
The weights w_{A, I, i_sg} for the excitation of I -> A. They are made independent of the determinant by various approximations: For example setting where runs over all orbitals instead of only the occupied. |
||
class(GASSpec_t), | public, | allocatable | :: | GAS_spec |
The GAS specification |
||
type(SuperGroupIndexer_t), | public, | pointer | :: | indexer | => | null() |
The Supergroup indexer. This is only a pointer because components cannot be targets otherwise. :-( |
logical, | public | :: | use_lookup | = | .false. |
Use a lookup for the supergroup index in global_det_data. |
|
logical, | public | :: | create_lookup | = | .false. | ||
integer(kind=n_int), | private | :: | last_possible_occupied |
The last element of the ilut array has some elements which are not used, if the number of spinorbitals is not a multiple of bitsize_n_int. To correctly zero them this bitmask is 1 wherever a determinant could be occupied in the last element, and 0 otherwise. |
procedure (BoundGenExc_t) , public :: gen_exc | |
procedure (BoundGetPgen_t) , public :: get_pgen | |
procedure , public :: init Subroutine | |
procedure , public :: finalize Subroutine | |
procedure , public :: gen_all_excits => gen_all_excits_PC_Weighted_t Subroutine | |
procedure , private , :: get_unoccupied Subroutine |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(AliasSampler_1D_t), | public | :: | I_sampler |
p(I | i_sg)
The probability of picking particle |
|||
type(AliasSampler_2D_t), | public | :: | A_sampler |
p(A | I, i_sg) The probability of picking the hole A after having picked particle I in the supergroup i_sg. |
|||
real(kind=dp), | public, | allocatable | :: | weights(:,:,:) |
The weights w_{A, I, i_sg} for the excitation of I -> A. They are made independent of the determinant by various approximations: For example setting where runs over all orbitals instead of only the occupied. |
||
class(GASSpec_t), | public, | allocatable | :: | GAS_spec |
The GAS specification |
||
type(SuperGroupIndexer_t), | public, | pointer | :: | indexer | => | null() |
The Supergroup indexer. This is only a pointer because components cannot be targets otherwise. :-( |
logical, | public | :: | use_lookup | = | .false. |
Use a lookup for the supergroup index in global_det_data. |
|
logical, | public | :: | create_lookup | = | .false. |
procedure , public :: init Subroutine | |
procedure , public :: finalize Subroutine | |
procedure , public :: gen_all_excits => gen_all_excits_PC_Weighted_t Subroutine | |
procedure , public :: gen_exc => PC_SinglesFullyWeighted_gen_exc Subroutine | |
procedure , public :: get_pgen => PC_SinglesFullyWeighted_get_pgen Function |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(AliasSampler_1D_t), | public | :: | I_sampler |
p(I | i_sg)
The probability of picking particle |
|||
type(AliasSampler_2D_t), | public | :: | A_sampler |
p(A | I, i_sg) The probability of picking the hole A after having picked particle I in the supergroup i_sg. |
|||
real(kind=dp), | public, | allocatable | :: | weights(:,:,:) |
The weights w_{A, I, i_sg} for the excitation of I -> A. They are made independent of the determinant by various approximations: For example setting where runs over all orbitals instead of only the occupied. |
||
class(GASSpec_t), | public, | allocatable | :: | GAS_spec |
The GAS specification |
||
type(SuperGroupIndexer_t), | public, | pointer | :: | indexer | => | null() |
The Supergroup indexer. This is only a pointer because components cannot be targets otherwise. :-( |
logical, | public | :: | use_lookup | = | .false. |
Use a lookup for the supergroup index in global_det_data. |
|
logical, | public | :: | create_lookup | = | .false. |
procedure , public :: init Subroutine | |
procedure , public :: finalize Subroutine | |
procedure , public :: gen_all_excits => gen_all_excits_PC_Weighted_t Subroutine | |
procedure , public :: gen_exc => PC_SinglesWeighted_gen_exc Subroutine | |
procedure , public :: get_pgen => PC_SinglesWeighted_get_pgen Function |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(AliasSampler_1D_t), | public | :: | I_sampler |
p(I | i_sg)
The probability of picking particle |
|||
type(AliasSampler_2D_t), | public | :: | A_sampler |
p(A | I, i_sg) The probability of picking the hole A after having picked particle I in the supergroup i_sg. |
|||
real(kind=dp), | public, | allocatable | :: | weights(:,:,:) |
The weights w_{A, I, i_sg} for the excitation of I -> A. They are made independent of the determinant by various approximations: For example setting where runs over all orbitals instead of only the occupied. |
||
class(GASSpec_t), | public, | allocatable | :: | GAS_spec |
The GAS specification |
||
type(SuperGroupIndexer_t), | public, | pointer | :: | indexer | => | null() |
The Supergroup indexer. This is only a pointer because components cannot be targets otherwise. :-( |
logical, | public | :: | use_lookup | = | .false. |
Use a lookup for the supergroup index in global_det_data. |
|
logical, | public | :: | create_lookup | = | .false. |
procedure , public :: init Subroutine | |
procedure , public :: finalize Subroutine | |
procedure , public :: gen_all_excits => gen_all_excits_PC_Weighted_t Subroutine | |
procedure , public :: gen_exc => PC_SinglesFastWeighted_gen_exc Subroutine | |
procedure , public :: get_pgen => PC_SinglesFastWeighted_get_pgen Function |
Parse a given keyword into the possible drawing schemes.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | w |
Parse a given keyword into the possible drawing schemes.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PC_singles_drawing_t), | intent(in) | :: | options |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PC_SinglesFullyWeighted_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(PC_SinglesWeighted_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(PC_SinglesFastWeighted_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 | ||
---|---|---|---|---|---|---|
type(Excite_1_t), | intent(in) | :: | exc |
Return the 1el integral
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | I | |||
integer, | intent(in) | :: | A |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | I |
Return the 2el integral |
||
integer, | intent(in) | :: | A |
Return the 2el integral |
||
integer, | intent(in) | :: | J |
Return the 2el integral |
||
integer, | intent(in) | :: | B |
Return the 2el integral |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(SingleExcitationGenerator_t), | intent(inout), | allocatable | :: | generator | ||
type(PC_singles_drawing_t), | intent(in) | :: | PC_singles_drawing |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(PC_singles_drawing_t), | intent(in) | :: | drawing | |||
integer, | intent(in) | :: | iunit |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(PC_WeightedSinglesOptions_t), | intent(in) | :: | options | |||
integer, | intent(in) | :: | iunit |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PC_Weighted_t), | intent(inout) | :: | this | |||
class(GASSpec_t), | intent(in) | :: | GAS_spec | |||
logical, | intent(in) | :: | use_lookup | |||
logical, | intent(in) | :: | create_lookup |
Return a bitmask and enumeration of the unoccupied spin orbitals.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PC_Weighted_t), | intent(in) | :: | this | |||
integer(kind=n_int), | intent(in) | :: | ilutI(0:nIfD) | |||
integer(kind=n_int), | intent(out) | :: | ilut_unoccupied(0:nIfD) | |||
integer, | intent(out) | :: | unoccupied(nBasis-nEl) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PC_SinglesFullyWeighted_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(PC_SinglesWeighted_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(PC_SinglesFastWeighted_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(PC_Weighted_t), | intent(inout) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PC_Weighted_t), | intent(in) | :: | this | |||
integer, | intent(in) | :: | nI(nEl) | |||
integer, | intent(out) | :: | n_excits | |||
integer(kind=n_int), | intent(out), | allocatable | :: | det_list(:,:) |