Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(SuperGroupIndexer_t), | public, | pointer | :: | lookup_supergroup_indexer | => | null() |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(GASSpec_t), | intent(in) | :: | GAS_spec | |||
integer, | intent(in) | :: | N |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
class(GASSpec_t), | private, | allocatable | :: | GAS_spec | |||
integer(kind=int64), | private, | allocatable | :: | allowed_composition_indices(:) | |||
integer, | private | :: | N |
The particle number. |
private pure function construct_SuperGroupIndexer_t (GAS_spec, N) |
procedure , public :: nEl => get_nEl Function | |
procedure , public :: idx_supergroup => get_supergroup_idx Function | |
procedure , public :: idx_nI => get_supergroup_idx_det Function | |
procedure , public :: lookup_supergroup_idx Function | |
procedure , public :: n_supergroups => get_n_supergroups Function | |
procedure , public :: get_supergroups => indexer_get_supergroups Function |
Return the number of compositions for k
summands and a sum of n
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | k | |||
integer, | intent(in) | :: | n |
Return the next composition.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | previous(:) |
Get the ordered compositions of n into k summands.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | k | |||
integer, | intent(in) | :: | n |
Return the composition index for a given composition.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | composition(:) |
Return the composition for a given composition index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | k |
|
||
integer, | intent(in) | :: | N |
|
||
integer(kind=int64), | intent(in) | :: | idx |
The composition index. |
Get the ordered compositions of n into k summands constrained by cumulative minima and maxima.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(GASSpec_t), | intent(in) | :: | GAS_spec | |||
integer, | intent(in) | :: | N |
Return the first supergroup
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(GASSpec_t), | intent(in) | :: | GAS_spec |
GAS constraints |
||
integer, | intent(in) | :: | N |
Particle number |
Return the last supergroup
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(GASSpec_t), | intent(in) | :: | GAS_spec |
GAS constraints |
||
integer, | intent(in) | :: | N |
Particle number |
Return the next supergoup
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(GASSpec_t), | intent(in) | :: | GAS_spec | |||
integer(kind=int64), | intent(in) | :: | comp_idx_last |
The composition index of the last supergroup that can be generated. “Last” as defined by lexicographically decreasing order. |
||
integer, | intent(in) | :: | previous(:) |
The previous supergroup. |
Move particles from src -> tgt
and as many particles
as possible from the right of tgt
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(LocalGASSpec_t), | intent(in) | :: | GAS_spec | |||
integer, | intent(in) | :: | previous(:) |
The previous supergroup |
||
integer, | intent(in) | :: | src |
Source and target GAS space |
||
integer, | intent(in) | :: | tgt |
Source and target GAS space |
Move particles from src -> tgt
and as many particles
as possible from the right of tgt
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(CumulGASSpec_t), | intent(in) | :: | GAS_spec | |||
integer, | intent(in) | :: | previous(:) |
The previous supergroup |
||
integer, | intent(in) | :: | src |
Source and target GAS space |
||
integer, | intent(in) | :: | tgt |
Source and target GAS space |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(GASSpec_t), | intent(in) | :: | GAS_spec | |||
integer, | intent(in) | :: | N |
Get the number of possible supergroups.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(SuperGroupIndexer_t), | intent(in) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(SuperGroupIndexer_t), | intent(in) | :: | this |
Get the ordered compositions of n into k summands constrained by cumulative minima and maxima.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(SuperGroupIndexer_t), | intent(in) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(SuperGroupIndexer_t), | intent(in) | :: | this | |||
integer, | intent(in) | :: | supergroup(:) |
Calculate the supergroup index for a determinant nI
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(SuperGroupIndexer_t), | intent(in) | :: | this | |||
integer, | intent(in) | :: | nI(:) |
The determinant for which the supergroup index should be calculated. |
Use a precomputed supergroup index from global_det_data.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(SuperGroupIndexer_t), | intent(in) | :: | this | |||
integer, | intent(in) | :: | idet |
The index of nI in the FciMCData::CurrentDets array. |
||
integer, | intent(in) | :: | nI(:) |
The determinant for which the supergroup index should be calculated. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(GASSpec_t), | intent(in) | :: | GAS_spec | |||
integer, | intent(in) | :: | N |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(GASSpec_t), | intent(in) | :: | GAS_spec | |||
integer, | intent(in) | :: | N |
Find source and target to transfer particle
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(LocalGASSpec_t), | intent(in) | :: | GAS_spec | |||
integer, | intent(in) | :: | sg(:) |
A given supergroup |
||
integer, | intent(out) | :: | src |
Source and target GAS space.
If no possible movement with |
||
integer, | intent(out) | :: | tgt |
Source and target GAS space.
If no possible movement with |
Find source and target to transfer particle
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(CumulGASSpec_t), | intent(in) | :: | GAS_spec | |||
integer, | intent(in) | :: | sg(:) |
A given supergroup |
||
integer, | intent(out) | :: | src |
Source and target GAS space.
If no possible movement with |
||
integer, | intent(out) | :: | tgt |
Source and target GAS space.
If no possible movement with |