| 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 |