10
0
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-06-26 15:12:19 +02:00

Added psi_config_data for recording csf idxs. #143.

This commit is contained in:
v1j4y 2021-02-09 00:35:14 +01:00
parent 30eae477cc
commit 30f099b1d7
2 changed files with 32 additions and 22 deletions

View File

@ -261,7 +261,7 @@ subroutine obtain_connected_I_foralpha(idxI, Ialpha, connectedI, idxs_connectedI
integer*8 :: diffDOMO
integer :: ndiffSOMO
integer :: ndiffDOMO
integer :: i,j,k,l,p,q,nsomoJ,nsomoalpha
integer :: i,j,k,l,p,q,nsomoJ,nsomoalpha,starti,endi,extyp
nconnectedI = 0
@ -285,13 +285,11 @@ subroutine obtain_connected_I_foralpha(idxI, Ialpha, connectedI, idxs_connectedI
!print *,"-I--i=",i,diffSOMO,diffDOMO!Isomo,Jsomo,ndiffSOMO,ndiffDOMO
!print *,POPCNT(IEOR(diffSOMO,diffDOMO)), ndiffDOMO
if(POPCNT(IEOR(diffSOMO,diffDOMO)) .LE. 1 .AND. ndiffDOMO .LT. 3) then
nconnectedI += 1
connectedI(:,:,nconnectedI) = psi_configuration(:,:,i)
select case(ndiffDOMO)
case (0)
! SOMO -> VMO
!print *,"obt SOMO -> VMO"
excitationTypes(nconnectedI) = 3
extyp = 3
IJsomo = IEOR(Isomo, Jsomo)
p = TRAILZ(AND(Isomo,IJsomo)) + 1
IJsomo = IBCLR(IJsomo,p-1)
@ -305,7 +303,7 @@ subroutine obtain_connected_I_foralpha(idxI, Ialpha, connectedI, idxs_connectedI
if(nsomoJ .GT. nsomoalpha) then
! DOMO -> VMO
!print *,"obt DOMO -> VMO"
excitationTypes(nconnectedI) = 2
extyp = 2
p = TRAILZ(IEOR(Idomo,Jdomo)) + 1
Isomo = IEOR(Isomo, Jsomo)
Isomo = IBCLR(Isomo,p-1)
@ -313,7 +311,7 @@ subroutine obtain_connected_I_foralpha(idxI, Ialpha, connectedI, idxs_connectedI
else
! SOMO -> SOMO
!print *,"obt SOMO -> SOMO"
excitationTypes(nconnectedI) = 1
extyp = 1
q = TRAILZ(IEOR(Idomo,Jdomo)) + 1
Isomo = IEOR(Isomo, Jsomo)
Isomo = IBCLR(Isomo,q-1)
@ -322,7 +320,7 @@ subroutine obtain_connected_I_foralpha(idxI, Ialpha, connectedI, idxs_connectedI
case (2)
! DOMO -> SOMO
!print *,"obt DOMO -> SOMO"
excitationTypes(nconnectedI) = 4
extyp = 4
IJsomo = IEOR(Isomo, Jsomo)
p = TRAILZ(AND(Jsomo,IJsomo)) + 1
IJsomo = IBCLR(IJsomo,p-1)
@ -330,10 +328,17 @@ subroutine obtain_connected_I_foralpha(idxI, Ialpha, connectedI, idxs_connectedI
case default
print *,"something went wront in get connectedI"
end select
excitationIds(1,nconnectedI)=p
excitationIds(2,nconnectedI)=q
idxs_connectedI(nconnectedI)=i
!print *,"------ > output p,q in obt=",p,q
starti = psi_config_data(i,1)
endi = psi_config_data(i,2)
! do k=starti,endi
nconnectedI += 1
connectedI(:,:,nconnectedI) = psi_configuration(:,:,i)
idxs_connectedI(nconnectedI)=starti
excitationIds(1,nconnectedI)=p
excitationIds(2,nconnectedI)=q
excitationTypes(nconnectedI) = extyp
! enddo
print *,"------ > output p,q in obt=",p,q
endif
end do

View File

@ -286,7 +286,7 @@ subroutine obtain_connected_I_foralpha(idxI, Ialpha, connectedI, idxs_connectedI
integer*8 :: diffDOMO
integer :: ndiffSOMO
integer :: ndiffDOMO
integer :: i,j,k,l,p,q,nsomoJ,nsomoalpha
integer :: i,j,k,l,p,q,nsomoJ,nsomoalpha,starti,endi,extyp
nconnectedI = 0
@ -310,13 +310,11 @@ subroutine obtain_connected_I_foralpha(idxI, Ialpha, connectedI, idxs_connectedI
!print *,"-I--i=",i,diffSOMO,diffDOMO!Isomo,Jsomo,ndiffSOMO,ndiffDOMO
!print *,POPCNT(IEOR(diffSOMO,diffDOMO)), ndiffDOMO
if(POPCNT(IEOR(diffSOMO,diffDOMO)) .LE. 1 .AND. ndiffDOMO .LT. 3) then
nconnectedI += 1
connectedI(:,:,nconnectedI) = psi_configuration(:,:,i)
select case(ndiffDOMO)
case (0)
! SOMO -> VMO
!print *,"obt SOMO -> VMO"
excitationTypes(nconnectedI) = 3
extyp = 3
IJsomo = IEOR(Isomo, Jsomo)
p = TRAILZ(AND(Isomo,IJsomo)) + 1
IJsomo = IBCLR(IJsomo,p-1)
@ -330,7 +328,7 @@ subroutine obtain_connected_I_foralpha(idxI, Ialpha, connectedI, idxs_connectedI
if(nsomoJ .GT. nsomoalpha) then
! DOMO -> VMO
!print *,"obt DOMO -> VMO"
excitationTypes(nconnectedI) = 2
extyp = 2
p = TRAILZ(IEOR(Idomo,Jdomo)) + 1
Isomo = IEOR(Isomo, Jsomo)
Isomo = IBCLR(Isomo,p-1)
@ -338,7 +336,7 @@ subroutine obtain_connected_I_foralpha(idxI, Ialpha, connectedI, idxs_connectedI
else
! SOMO -> SOMO
!print *,"obt SOMO -> SOMO"
excitationTypes(nconnectedI) = 1
extyp = 1
q = TRAILZ(IEOR(Idomo,Jdomo)) + 1
Isomo = IEOR(Isomo, Jsomo)
Isomo = IBCLR(Isomo,q-1)
@ -347,7 +345,7 @@ subroutine obtain_connected_I_foralpha(idxI, Ialpha, connectedI, idxs_connectedI
case (2)
! DOMO -> SOMO
!print *,"obt DOMO -> SOMO"
excitationTypes(nconnectedI) = 4
extyp = 4
IJsomo = IEOR(Isomo, Jsomo)
p = TRAILZ(AND(Jsomo,IJsomo)) + 1
IJsomo = IBCLR(IJsomo,p-1)
@ -355,10 +353,17 @@ subroutine obtain_connected_I_foralpha(idxI, Ialpha, connectedI, idxs_connectedI
case default
print *,"something went wront in get connectedI"
end select
excitationIds(1,nconnectedI)=p
excitationIds(2,nconnectedI)=q
idxs_connectedI(nconnectedI)=i
!print *,"------ > output p,q in obt=",p,q
starti = psi_config_data(i,1)
endi = psi_config_data(i,2)
! do k=starti,endi
nconnectedI += 1
connectedI(:,:,nconnectedI) = psi_configuration(:,:,i)
idxs_connectedI(nconnectedI)=starti
excitationIds(1,nconnectedI)=p
excitationIds(2,nconnectedI)=q
excitationTypes(nconnectedI) = extyp
! enddo
print *,"------ > output p,q in obt=",p,q
endif
end do