mirror of
https://github.com/pfloos/quack
synced 2024-08-26 14:11:47 +02:00
cleaning ppRPA
This commit is contained in:
parent
cfc910fb26
commit
b5e4ded668
40
input/basis
40
input/basis
@ -1,9 +1,35 @@
|
||||
1 3
|
||||
S 3
|
||||
1 38.3600000 0.0238090
|
||||
2 5.7700000 0.1548910
|
||||
3 1.2400000 0.4699870
|
||||
1 9
|
||||
S 8
|
||||
1 2940.0000000 0.0006800
|
||||
2 441.2000000 0.0052360
|
||||
3 100.5000000 0.0266060
|
||||
4 28.4300000 0.0999930
|
||||
5 9.1690000 0.2697020
|
||||
6 3.1960000 0.4514690
|
||||
7 1.1590000 0.2950740
|
||||
8 0.1811000 0.0125870
|
||||
S 8
|
||||
1 2940.0000000 -0.0001230
|
||||
2 441.2000000 -0.0009660
|
||||
3 100.5000000 -0.0048310
|
||||
4 28.4300000 -0.0193140
|
||||
5 9.1690000 -0.0532800
|
||||
6 3.1960000 -0.1207230
|
||||
7 1.1590000 -0.1334350
|
||||
8 0.1811000 0.5307670
|
||||
S 1
|
||||
1 0.2976000 1.0000000
|
||||
1 0.0589000 1.0000000
|
||||
S 1
|
||||
1 0.0187700 1.0000000
|
||||
P 3
|
||||
1 3.6190000 0.0291110
|
||||
2 0.7110000 0.1693650
|
||||
3 0.1951000 0.5134580
|
||||
P 1
|
||||
1 1.2750000 1.0000000
|
||||
1 0.0601800 1.0000000
|
||||
P 1
|
||||
1 0.0085000 1.0000000
|
||||
D 1
|
||||
1 0.2380000 1.0000000
|
||||
D 1
|
||||
1 0.0740000 1.0000000
|
||||
|
@ -7,12 +7,12 @@
|
||||
# drCCD rCCD lCCD pCCD
|
||||
F F F F
|
||||
# CIS RPA RPAx ppRPA ADC
|
||||
F F F F F
|
||||
F F F T F
|
||||
# G0F2 evGF2 G0F3 evGF3
|
||||
F F F F
|
||||
# G0W0 evGW qsGW
|
||||
F F F
|
||||
# G0T0 evGT qsGT
|
||||
T F F
|
||||
F F F
|
||||
# MCMP2
|
||||
F
|
||||
|
@ -1,4 +1,4 @@
|
||||
# nAt nEla nElb nCore nRyd
|
||||
1 1 1 0 0
|
||||
1 2 2 0 0
|
||||
# Znuc x y z
|
||||
He 0.0 0.0 0.0
|
||||
Be 0.0 0.0 0.0
|
||||
|
@ -1,3 +1,3 @@
|
||||
1
|
||||
|
||||
He 0.0000000000 0.0000000000 0.0000000000
|
||||
Be 0.0000000000 0.0000000000 0.0000000000
|
||||
|
40
input/weight
40
input/weight
@ -1,9 +1,35 @@
|
||||
1 3
|
||||
S 3
|
||||
1 38.3600000 0.0238090
|
||||
2 5.7700000 0.1548910
|
||||
3 1.2400000 0.4699870
|
||||
1 9
|
||||
S 8
|
||||
1 2940.0000000 0.0006800
|
||||
2 441.2000000 0.0052360
|
||||
3 100.5000000 0.0266060
|
||||
4 28.4300000 0.0999930
|
||||
5 9.1690000 0.2697020
|
||||
6 3.1960000 0.4514690
|
||||
7 1.1590000 0.2950740
|
||||
8 0.1811000 0.0125870
|
||||
S 8
|
||||
1 2940.0000000 -0.0001230
|
||||
2 441.2000000 -0.0009660
|
||||
3 100.5000000 -0.0048310
|
||||
4 28.4300000 -0.0193140
|
||||
5 9.1690000 -0.0532800
|
||||
6 3.1960000 -0.1207230
|
||||
7 1.1590000 -0.1334350
|
||||
8 0.1811000 0.5307670
|
||||
S 1
|
||||
1 0.2976000 1.0000000
|
||||
1 0.0589000 1.0000000
|
||||
S 1
|
||||
1 0.0187700 1.0000000
|
||||
P 3
|
||||
1 3.6190000 0.0291110
|
||||
2 0.7110000 0.1693650
|
||||
3 0.1951000 0.5134580
|
||||
P 1
|
||||
1 1.2750000 1.0000000
|
||||
1 0.0601800 1.0000000
|
||||
P 1
|
||||
1 0.0085000 1.0000000
|
||||
D 1
|
||||
1 0.2380000 1.0000000
|
||||
D 1
|
||||
1 0.0740000 1.0000000
|
||||
|
@ -117,18 +117,10 @@ subroutine linear_response_pp(ispin,ortho_eigvec,BSE,nBas,nC,nO,nV,nR,nOO,nVV, &
|
||||
|
||||
end if
|
||||
|
||||
! print*, 'pp-RPA matrix'
|
||||
! call matout(nOO+nVV,nOO+nVV,M(:,:))
|
||||
! write(*,*)
|
||||
|
||||
! Diagonalize the p-h matrix
|
||||
|
||||
if(nOO+nVV > 0) call diagonalize_general_matrix(nOO+nVV,M,Omega,Z)
|
||||
|
||||
! write(*,*) 'pp-RPA excitation energies'
|
||||
! call matout(nOO+nVV,1,Omega(:))
|
||||
! write(*,*)
|
||||
|
||||
! Split the various quantities in p-p and h-h parts
|
||||
|
||||
call sort_ppRPA(ortho_eigvec,nOO,nVV,Omega(:),Z(:,:),Omega1(:),X1(:,:),Y1(:,:),Omega2(:),X2(:,:),Y2(:,:))
|
||||
@ -141,13 +133,4 @@ subroutine linear_response_pp(ispin,ortho_eigvec,BSE,nBas,nC,nO,nV,nR,nOO,nVV, &
|
||||
if(abs(EcRPA - EcRPA1) > 1d-6 .or. abs(EcRPA - EcRPA2) > 1d-6) &
|
||||
print*,'!!! Issue in pp-RPA linear reponse calculation RPA1 != RPA2 !!!'
|
||||
|
||||
! write(*,*)'X1'
|
||||
! call matout(nVV,nVV,X1)
|
||||
! write(*,*)'Y1'
|
||||
! call matout(nVV,nOO,Y1)
|
||||
! write(*,*)'X2'
|
||||
! call matout(nOO,nVV,X2)
|
||||
! write(*,*)'Y2'
|
||||
! call matout(nOO,nOO,Y2)
|
||||
|
||||
end subroutine linear_response_pp
|
||||
|
@ -115,14 +115,6 @@ subroutine sort_ppRPA(ortho_eigvec,nOO,nVV,Omega,Z,Omega1,X1,Y1,Omega2,X2,Y2)
|
||||
|
||||
end if
|
||||
|
||||
! write(*,*) 'pp-RPA positive excitation energies'
|
||||
! call matout(nVV,1,Omega1(:))
|
||||
! write(*,*)
|
||||
|
||||
! write(*,*) 'pp-RPA negative excitation energies'
|
||||
! call matout(nOO,1,Omega2(:))
|
||||
! write(*,*)
|
||||
|
||||
! Orthogonalize eigenvectors
|
||||
|
||||
if(ortho_eigvec) then
|
||||
@ -142,8 +134,6 @@ subroutine sort_ppRPA(ortho_eigvec,nOO,nVV,Omega,Z,Omega1,X1,Y1,Omega2,X2,Y2)
|
||||
|
||||
ab_end = ab
|
||||
|
||||
! print*,'deg = ',deg1,ab_start,ab_end
|
||||
|
||||
allocate(S1(deg1,deg1),O1(deg1,deg1))
|
||||
|
||||
S1 = matmul(transpose(Z1(:,ab_start:ab_end)),matmul(M,Z1(:,ab_start:ab_end)))
|
||||
@ -158,8 +148,6 @@ subroutine sort_ppRPA(ortho_eigvec,nOO,nVV,Omega,Z,Omega1,X1,Y1,Omega2,X2,Y2)
|
||||
|
||||
ab_end = ab - 1
|
||||
|
||||
! print*,'deg = ',deg1,ab_start,ab_end
|
||||
|
||||
allocate(S1(deg1,deg1),O1(deg1,deg1))
|
||||
|
||||
S1 = matmul(transpose(Z1(:,ab_start:ab_end)),matmul(M,Z1(:,ab_start:ab_end)))
|
||||
@ -187,8 +175,6 @@ subroutine sort_ppRPA(ortho_eigvec,nOO,nVV,Omega,Z,Omega1,X1,Y1,Omega2,X2,Y2)
|
||||
|
||||
ij_end = ij
|
||||
|
||||
! print*,'deg = ',deg2,ij_start,ij_end
|
||||
|
||||
allocate(S2(deg2,deg2),O2(deg2,deg2))
|
||||
|
||||
S2 = - matmul(transpose(Z2(:,ij_start:ij_end)),matmul(M,Z2(:,ij_start:ij_end)))
|
||||
@ -203,8 +189,6 @@ subroutine sort_ppRPA(ortho_eigvec,nOO,nVV,Omega,Z,Omega1,X1,Y1,Omega2,X2,Y2)
|
||||
|
||||
ij_end = ij - 1
|
||||
|
||||
! print*,'deg = ',deg2,ij_start,ij_end
|
||||
|
||||
allocate(S2(deg2,deg2),O2(deg2,deg2))
|
||||
|
||||
S2 = - matmul(transpose(Z2(:,ij_start:ij_end)),matmul(M,Z2(:,ij_start:ij_end)))
|
||||
@ -239,17 +223,4 @@ subroutine sort_ppRPA(ortho_eigvec,nOO,nVV,Omega,Z,Omega1,X1,Y1,Omega2,X2,Y2)
|
||||
X2(1:nVV,1:nOO) = + Z2( 1: nVV,1:nOO)
|
||||
Y2(1:nOO,1:nOO) = - Z2(nVV+1:nOO+nVV,1:nOO)
|
||||
|
||||
! write(*,*) 'Z1t.M.Z1'
|
||||
! call matout(nVV,nVV,matmul(matmul(transpose(Z1),M),Z1))
|
||||
! write(*,*) 'Z2t.M.Z2'
|
||||
! call matout(nOO,nOO,matmul(matmul(transpose(Z2),M),Z2))
|
||||
|
||||
! write(*,*) 'X1t.X1 - Y1t.Y1'
|
||||
! call matout(nVV,nVV,matmul(transpose(X1),X1) - matmul(transpose(Y1),Y1))
|
||||
! write(*,*) 'X2t.X2 - Y2t.Y2'
|
||||
! call matout(nOO,nOO,matmul(transpose(X2),X2) - matmul(transpose(Y2),Y2))
|
||||
! write(*,*) 'X1t.X2 - Y1t.Y2'
|
||||
! call matout(nVV,nOO,matmul(transpose(X1),X2) - matmul(transpose(Y1),Y2))
|
||||
|
||||
|
||||
end subroutine sort_ppRPA
|
||||
|
Loading…
Reference in New Issue
Block a user