Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|

integer, | public | :: | typ |
= | excit_type%invalid | ||

integer, | public | :: | i |
= | -1 | ||

integer, | public | :: | j |
= | -1 | ||

integer, | public | :: | k |
= | -1 | ||

integer, | public | :: | l |
= | -1 | ||

integer, | public | :: | fullStart |
= | -1 | ||

integer, | public | :: | fullEnd |
= | -1 | ||

integer, | public | :: | secondStart |
= | -1 | ||

integer, | public | :: | firstEnd |
= | -1 | ||

integer, | public | :: | weight |
= | -1 | ||

integer, | public | :: | overlap |
= | -1 | ||

integer, | public | :: | gen1 |
= | -2 | ||

integer, | public | :: | gen2 |
= | -2 | ||

integer, | public | :: | firstGen |
= | -2 | ||

integer, | public | :: | lastGen |
= | -2 | ||

integer, | public | :: | currentGen |
= | -2 | ||

integer, | public | :: | excitLvl |
= | -1 | ||

real(kind=dp), | public | :: | order |
= | 0.0_dp | ||

real(kind=dp), | public | :: | order1 |
= | 0.0_dp | ||

logical, | public | :: | valid |
= | .false. | ||

logical, | public | :: | spin_change |
= | .false. | ||

integer, | public | :: | i_sg_start |
= | -1 |
The supergroup from which the excitation starts. Only relevant for GAS. |

```
type :: ExcitationInformation_t
integer :: typ = excit_type%invalid
! need the involved indices of the excitation: list of integers
! for now the convention is, that they are given in an ordered form
! and is not related to the involved generators E_{ij} (E_{kl})
! directly, for single excitations ofc. only two entries of this
! vector needed.
! update:
! new convention store, original indiced and the ordered ones in
! the fullStart, etc. indices.
integer :: i = -1
integer :: j = -1
integer :: k = -1
integer :: l = -1
integer :: fullStart = -1
integer :: fullEnd = -1
integer :: secondStart = -1
integer :: firstEnd = -1
integer :: weight = -1 ! can get rid of this in future!
! misuse secondstart firstend -> as weight as it is not used in the typ
! of excitations where weights is needed
! update:
! dont need overlaprange, and nonoverlaprange anywhere, just need to
! indicate if its a non-overlap, single overlap or proper double!
integer :: overlap = -1 ! in rework get rid of this too!
! not needed, %typ could be used to get same results
! since eg. calcRemainingSwitches is only needed in cases, where there
! is atleast one overlap site or in single excitations!
! where there is no overlap at all!
! 0 ... no overlap or single
! 1 ... single overlap
! >1 ... proper double overlap
! generator flags: necessary information on involved generators.
! could store it as flags (0,1) but that would mask the meaning and
! also ruin some matrix accessing functionality: so for now store
! lowering: -1
! raising : +1
! weight: 0
! maybe need firstGen, lastGen, (even secondGen) maybe?
integer :: gen1 = -2
integer :: gen2 = -2
integer :: firstGen = -2
integer :: lastGen = -2
integer :: currentGen = -2
! also store excitation level(number of occupation number differences)
! in this type, to have everything at one place
integer :: excitLvl = -1 ! definetly get rid of that! never used
! at all! -> UPDATE! with changing of relative probabilities of
! those excitations, i definetly need this type of information!
! misuse it in such a way, that i store 5 different types of double
! excitations!:
! 0.. (ii,jj) RR/LL
! 1.. (ii,jj) RL
! 2.. (ii,jk) RR/LL
! 3.. (ii,jk) RL
! 4.. (ij,kl) x
! additional flags:
! for a 4 index double excitation, there is an additional flag
! necessary to distiguish between certain kind of equally possible
! excitations:
! logical :: fourFlag
! the order of generators is some excitations has an influence on the
! relative sign of the x_1 semi-stop matrix elements
! use a real here: 1.0 or -1.0 and just multiply x1 element
real(dp) :: order = 0.0_dp
real(dp) :: order1 = 0.0_dp
! maybe can get rid of order parameters.. since i could in general
! always choose such generators that the order parameter is +1
! but that did not work beforhand... ? hm
!
!TODO maybe more necessary info needed.
! add a flag to indicate if the excitation is even possible or other
! wise cancel the excitation
logical :: valid = .false.
! for the exact calculation, to avoid calculating non-overlap
! contributions to matrix elements which are not possible, due to
! spin-coupling changes in the overlap range use a flag to
! indicate if a spin_change happened
logical :: spin_change = .false.
integer :: i_sg_start = -1
!! The supergroup from which the excitation starts.
!! Only relevant for GAS.
end type ExcitationInformation_t
```