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