| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(ExcitationType_t), | 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 PropVec. |
type :: ExcitationInformation_t type(ExcitationType_t) :: 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 PropVec. end type ExcitationInformation_t