9
1
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-12-22 03:23:29 +01: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*8 :: diffDOMO
integer :: ndiffSOMO integer :: ndiffSOMO
integer :: ndiffDOMO 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 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 *,"-I--i=",i,diffSOMO,diffDOMO!Isomo,Jsomo,ndiffSOMO,ndiffDOMO
!print *,POPCNT(IEOR(diffSOMO,diffDOMO)), ndiffDOMO !print *,POPCNT(IEOR(diffSOMO,diffDOMO)), ndiffDOMO
if(POPCNT(IEOR(diffSOMO,diffDOMO)) .LE. 1 .AND. ndiffDOMO .LT. 3) then if(POPCNT(IEOR(diffSOMO,diffDOMO)) .LE. 1 .AND. ndiffDOMO .LT. 3) then
nconnectedI += 1
connectedI(:,:,nconnectedI) = psi_configuration(:,:,i)
select case(ndiffDOMO) select case(ndiffDOMO)
case (0) case (0)
! SOMO -> VMO ! SOMO -> VMO
!print *,"obt SOMO -> VMO" !print *,"obt SOMO -> VMO"
excitationTypes(nconnectedI) = 3 extyp = 3
IJsomo = IEOR(Isomo, Jsomo) IJsomo = IEOR(Isomo, Jsomo)
p = TRAILZ(AND(Isomo,IJsomo)) + 1 p = TRAILZ(AND(Isomo,IJsomo)) + 1
IJsomo = IBCLR(IJsomo,p-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 if(nsomoJ .GT. nsomoalpha) then
! DOMO -> VMO ! DOMO -> VMO
!print *,"obt DOMO -> VMO" !print *,"obt DOMO -> VMO"
excitationTypes(nconnectedI) = 2 extyp = 2
p = TRAILZ(IEOR(Idomo,Jdomo)) + 1 p = TRAILZ(IEOR(Idomo,Jdomo)) + 1
Isomo = IEOR(Isomo, Jsomo) Isomo = IEOR(Isomo, Jsomo)
Isomo = IBCLR(Isomo,p-1) Isomo = IBCLR(Isomo,p-1)
@ -313,7 +311,7 @@ subroutine obtain_connected_I_foralpha(idxI, Ialpha, connectedI, idxs_connectedI
else else
! SOMO -> SOMO ! SOMO -> SOMO
!print *,"obt SOMO -> SOMO" !print *,"obt SOMO -> SOMO"
excitationTypes(nconnectedI) = 1 extyp = 1
q = TRAILZ(IEOR(Idomo,Jdomo)) + 1 q = TRAILZ(IEOR(Idomo,Jdomo)) + 1
Isomo = IEOR(Isomo, Jsomo) Isomo = IEOR(Isomo, Jsomo)
Isomo = IBCLR(Isomo,q-1) Isomo = IBCLR(Isomo,q-1)
@ -322,7 +320,7 @@ subroutine obtain_connected_I_foralpha(idxI, Ialpha, connectedI, idxs_connectedI
case (2) case (2)
! DOMO -> SOMO ! DOMO -> SOMO
!print *,"obt DOMO -> SOMO" !print *,"obt DOMO -> SOMO"
excitationTypes(nconnectedI) = 4 extyp = 4
IJsomo = IEOR(Isomo, Jsomo) IJsomo = IEOR(Isomo, Jsomo)
p = TRAILZ(AND(Jsomo,IJsomo)) + 1 p = TRAILZ(AND(Jsomo,IJsomo)) + 1
IJsomo = IBCLR(IJsomo,p-1) IJsomo = IBCLR(IJsomo,p-1)
@ -330,10 +328,17 @@ subroutine obtain_connected_I_foralpha(idxI, Ialpha, connectedI, idxs_connectedI
case default case default
print *,"something went wront in get connectedI" print *,"something went wront in get connectedI"
end select end select
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(1,nconnectedI)=p
excitationIds(2,nconnectedI)=q excitationIds(2,nconnectedI)=q
idxs_connectedI(nconnectedI)=i excitationTypes(nconnectedI) = extyp
!print *,"------ > output p,q in obt=",p,q ! enddo
print *,"------ > output p,q in obt=",p,q
endif endif
end do end do

View File

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