mirror of
https://github.com/pfloos/quack
synced 2025-01-03 18:16:18 +01:00
T matrix *might* be working
This commit is contained in:
parent
6e3abd8927
commit
6ca20e2ea3
@ -1,5 +1,5 @@
|
|||||||
# nAt nEl nCore nRyd
|
# nAt nEl nCore nRyd
|
||||||
2 18 4 0
|
2 9 9 0 0
|
||||||
# Znuc x y z
|
# Znuc x y z
|
||||||
9. 0. 0. 0.000
|
F 0. 0. 0.000
|
||||||
9. 0. 0. 2.668
|
F 0. 0. 2.668
|
||||||
|
43
input/basis
43
input/basis
@ -1,16 +1,37 @@
|
|||||||
1 6
|
1 10
|
||||||
S 4 1.00
|
S 8 1.00
|
||||||
234.0000000 0.0025870
|
24350.0000000 0.0005020
|
||||||
35.1600000 0.0195330
|
3650.0000000 0.0038810
|
||||||
7.9890000 0.0909980
|
829.6000000 0.0199970
|
||||||
2.2120000 0.2720500
|
234.0000000 0.0784180
|
||||||
|
75.6100000 0.2296760
|
||||||
|
26.7300000 0.4327220
|
||||||
|
9.9270000 0.3506420
|
||||||
|
1.1020000 -0.0076450
|
||||||
|
S 8 1.00
|
||||||
|
24350.0000000 -0.0001180
|
||||||
|
3650.0000000 -0.0009150
|
||||||
|
829.6000000 -0.0047370
|
||||||
|
234.0000000 -0.0192330
|
||||||
|
75.6100000 -0.0603690
|
||||||
|
26.7300000 -0.1425080
|
||||||
|
9.9270000 -0.1777100
|
||||||
|
1.1020000 0.6058360
|
||||||
S 1 1.00
|
S 1 1.00
|
||||||
0.6669000 1.0000000
|
2.8360000 1.0000000
|
||||||
S 1 1.00
|
S 1 1.00
|
||||||
0.2089000 1.0000000
|
0.3782000 1.0000000
|
||||||
|
P 3 1.00
|
||||||
|
54.7000000 0.0171510
|
||||||
|
12.4300000 0.1076560
|
||||||
|
3.6790000 0.3216810
|
||||||
P 1 1.00
|
P 1 1.00
|
||||||
3.0440000 1.0000000
|
1.1430000 1.0000000
|
||||||
P 1 1.00
|
P 1 1.00
|
||||||
0.7580000 1.0000000
|
0.3300000 1.0000000
|
||||||
D 1 1.00
|
D 1 1.00
|
||||||
1.9650000 1.0000000
|
4.0140000 1.0000000
|
||||||
|
D 1 1.00
|
||||||
|
1.0960000 1.0000000
|
||||||
|
F 1 1.00
|
||||||
|
2.5440000 1.0000000
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
# CIS TDHF ppRPA ADC
|
# CIS TDHF ppRPA ADC
|
||||||
F F F F
|
F F F F
|
||||||
# GF2 GF3
|
# GF2 GF3
|
||||||
F F
|
T F
|
||||||
# G0W0 evGW qsGW
|
# G0W0 evGW qsGW
|
||||||
F F F
|
F F F
|
||||||
# G0T0 evGT qsGT
|
# G0T0 evGT qsGT
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# nAt nEla nElb nCore nRyd
|
# nAt nEla nElb nCore nRyd
|
||||||
1 1 1 0 0
|
1 5 5 0 0
|
||||||
# Znuc x y z
|
# Znuc x y z
|
||||||
He 0.0 0.0 0.0
|
Ne 0.0 0.0 0.0
|
||||||
|
43
input/weight
43
input/weight
@ -1,16 +1,37 @@
|
|||||||
1 6
|
1 10
|
||||||
S 4 1.00
|
S 8 1.00
|
||||||
234.0000000 0.0025870
|
24350.0000000 0.0005020
|
||||||
35.1600000 0.0195330
|
3650.0000000 0.0038810
|
||||||
7.9890000 0.0909980
|
829.6000000 0.0199970
|
||||||
2.2120000 0.2720500
|
234.0000000 0.0784180
|
||||||
|
75.6100000 0.2296760
|
||||||
|
26.7300000 0.4327220
|
||||||
|
9.9270000 0.3506420
|
||||||
|
1.1020000 -0.0076450
|
||||||
|
S 8 1.00
|
||||||
|
24350.0000000 -0.0001180
|
||||||
|
3650.0000000 -0.0009150
|
||||||
|
829.6000000 -0.0047370
|
||||||
|
234.0000000 -0.0192330
|
||||||
|
75.6100000 -0.0603690
|
||||||
|
26.7300000 -0.1425080
|
||||||
|
9.9270000 -0.1777100
|
||||||
|
1.1020000 0.6058360
|
||||||
S 1 1.00
|
S 1 1.00
|
||||||
0.6669000 1.0000000
|
2.8360000 1.0000000
|
||||||
S 1 1.00
|
S 1 1.00
|
||||||
0.2089000 1.0000000
|
0.3782000 1.0000000
|
||||||
|
P 3 1.00
|
||||||
|
54.7000000 0.0171510
|
||||||
|
12.4300000 0.1076560
|
||||||
|
3.6790000 0.3216810
|
||||||
P 1 1.00
|
P 1 1.00
|
||||||
3.0440000 1.0000000
|
1.1430000 1.0000000
|
||||||
P 1 1.00
|
P 1 1.00
|
||||||
0.7580000 1.0000000
|
0.3300000 1.0000000
|
||||||
D 1 1.00
|
D 1 1.00
|
||||||
1.9650000 1.0000000
|
4.0140000 1.0000000
|
||||||
|
D 1 1.00
|
||||||
|
1.0960000 1.0000000
|
||||||
|
F 1 1.00
|
||||||
|
2.5440000 1.0000000
|
||||||
|
@ -19,6 +19,7 @@ subroutine excitation_density_Tmatrix(nBas,nC,nO,nR,nOO,nVV,ERI,X1,Y1,rho1,X2,Y2
|
|||||||
integer :: a,b,c,d
|
integer :: a,b,c,d
|
||||||
integer :: p
|
integer :: p
|
||||||
integer :: ab,cd,ij,kl
|
integer :: ab,cd,ij,kl
|
||||||
|
double precision,external :: Kronecker_delta
|
||||||
|
|
||||||
! Output variables
|
! Output variables
|
||||||
|
|
||||||
@ -29,22 +30,25 @@ subroutine excitation_density_Tmatrix(nBas,nC,nO,nR,nOO,nVV,ERI,X1,Y1,rho1,X2,Y2
|
|||||||
rho2(:,:,:) = 0d0
|
rho2(:,:,:) = 0d0
|
||||||
|
|
||||||
do p=nC+1,nBas-nR
|
do p=nC+1,nBas-nR
|
||||||
|
|
||||||
do i=nC+1,nO
|
do i=nC+1,nO
|
||||||
do ab=1,nVV
|
do ab=1,nVV
|
||||||
|
|
||||||
cd = 0
|
cd = 0
|
||||||
do c=nO+1,nBas-nR
|
do c=nO+1,nBas-nR
|
||||||
do d=c+1,nBas-nR
|
do d=nO+1,c
|
||||||
cd = cd + 1
|
cd = cd + 1
|
||||||
rho1(p,i,ab) = rho1(p,i,ab) + (ERI(p,i,c,d) - ERI(p,i,d,c))*X1(cd,ab)
|
rho1(p,i,ab) = rho1(p,i,ab) &
|
||||||
|
+ (ERI(p,i,c,d) - 0.5d0*ERI(p,i,d,c))*X1(cd,ab)!/sqrt((1d0 + Kronecker_delta(p,i))*(1d0 + Kronecker_delta(c,d)))
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
kl = 0
|
kl = 0
|
||||||
do k=nC+1,nO
|
do k=nC+1,nO
|
||||||
do l=k+1,nO
|
do l=nC+1,k
|
||||||
kl = kl + 1
|
kl = kl + 1
|
||||||
rho1(p,i,ab) = rho1(p,i,ab) + (ERI(p,i,k,l) - ERI(p,i,l,k))*Y1(kl,ab)
|
rho1(p,i,ab) = rho1(p,i,ab) &
|
||||||
|
+ (ERI(p,i,k,l) - 0.5d0*ERI(p,i,l,k))*Y1(kl,ab)!/sqrt((1d0 + Kronecker_delta(p,i))*(1d0 + Kronecker_delta(k,l)))
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
@ -56,17 +60,19 @@ subroutine excitation_density_Tmatrix(nBas,nC,nO,nR,nOO,nVV,ERI,X1,Y1,rho1,X2,Y2
|
|||||||
|
|
||||||
cd = 0
|
cd = 0
|
||||||
do c=nO+1,nBas-nR
|
do c=nO+1,nBas-nR
|
||||||
do d=c+1,nBas-nR
|
do d=nO+1,c
|
||||||
cd = cd + 1
|
cd = cd + 1
|
||||||
rho2(p,a,ij) = rho2(p,a,ij) + (ERI(p,a,c,d) - ERI(p,a,d,c))*X2(cd,ij)
|
rho2(p,a,ij) = rho2(p,a,ij) &
|
||||||
|
+ (ERI(p,a,c,d) - 0.5d0*ERI(p,a,d,c))*X2(cd,ij)!/sqrt((1d0 + Kronecker_delta(p,a))*(1d0 + Kronecker_delta(c,d)))
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
kl = 0
|
kl = 0
|
||||||
do k=nC+1,nO
|
do k=nC+1,nO
|
||||||
do l=k+1,nO
|
do l=nC+1,k
|
||||||
kl = kl + 1
|
kl = kl + 1
|
||||||
rho1(p,a,ij) = rho1(p,a,ij) + (ERI(p,a,k,l) - ERI(p,a,l,k))*Y2(kl,ij)
|
rho2(p,a,ij) = rho2(p,a,ij) &
|
||||||
|
+ (ERI(p,a,k,l) - 0.5d0*ERI(p,a,l,k))*Y2(kl,ij)!/sqrt((1d0 + Kronecker_delta(p,a))*(1d0 + Kronecker_delta(k,l)))
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
@ -74,4 +80,5 @@ subroutine excitation_density_Tmatrix(nBas,nC,nO,nR,nOO,nVV,ERI,X1,Y1,rho1,X2,Y2
|
|||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
|
||||||
end subroutine excitation_density_Tmatrix
|
end subroutine excitation_density_Tmatrix
|
||||||
|
@ -14,7 +14,6 @@ subroutine linear_response_B_pp(ispin,nBas,nC,nO,nV,nR,nOO,nVV,e,ERI,B_pp)
|
|||||||
! Local variables
|
! Local variables
|
||||||
|
|
||||||
double precision,external :: Kronecker_delta
|
double precision,external :: Kronecker_delta
|
||||||
|
|
||||||
integer :: a,b,i,j,ab,ij
|
integer :: a,b,i,j,ab,ij
|
||||||
|
|
||||||
! Output variables
|
! Output variables
|
||||||
|
@ -70,7 +70,6 @@ subroutine linear_response_pp(ispin,BSE,nBas,nC,nO,nV,nR,nOO,nVV,e,ERI,Omega1,X1
|
|||||||
|
|
||||||
Z(:,:) = M(:,:)
|
Z(:,:) = M(:,:)
|
||||||
call diagonalize_general_matrix(nOO+nVV,M(:,:),Omega(:),Z(:,:))
|
call diagonalize_general_matrix(nOO+nVV,M(:,:),Omega(:),Z(:,:))
|
||||||
! call diagonalize_matrix(nOO+nVV,Z(:,:),Omega(:))
|
|
||||||
|
|
||||||
! write(*,*) 'pp-RPA excitation energies'
|
! write(*,*) 'pp-RPA excitation energies'
|
||||||
! call matout(nOO+nVV,1,Omega(:))
|
! call matout(nOO+nVV,1,Omega(:))
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
subroutine print_G0T0(nBas,nO,e,ENuc,EHF,SigmaC,Z,eGW,EcRPA)
|
subroutine print_G0T0(nBas,nO,e,ENuc,EHF,SigT,Z,eGW,EcRPA)
|
||||||
|
|
||||||
! Print one-electron energies and other stuff for G0T0
|
! Print one-electron energies and other stuff for G0T0
|
||||||
|
|
||||||
@ -9,7 +9,7 @@ subroutine print_G0T0(nBas,nO,e,ENuc,EHF,SigmaC,Z,eGW,EcRPA)
|
|||||||
double precision,intent(in) :: ENuc
|
double precision,intent(in) :: ENuc
|
||||||
double precision,intent(in) :: EHF
|
double precision,intent(in) :: EHF
|
||||||
double precision,intent(in) :: EcRPA
|
double precision,intent(in) :: EcRPA
|
||||||
double precision,intent(in) :: e(nBas),SigmaC(nBas),Z(nBas),eGW(nBas)
|
double precision,intent(in) :: e(nBas),SigT(nBas),Z(nBas),eGW(nBas)
|
||||||
|
|
||||||
integer :: x,HOMO,LUMO
|
integer :: x,HOMO,LUMO
|
||||||
double precision :: Gap
|
double precision :: Gap
|
||||||
@ -26,12 +26,12 @@ subroutine print_G0T0(nBas,nO,e,ENuc,EHF,SigmaC,Z,eGW,EcRPA)
|
|||||||
write(*,*)' One-shot G0T0 calculation (T-matrix self-energy) '
|
write(*,*)' One-shot G0T0 calculation (T-matrix self-energy) '
|
||||||
write(*,*)'-------------------------------------------------------------------------------'
|
write(*,*)'-------------------------------------------------------------------------------'
|
||||||
write(*,'(1X,A1,1X,A3,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X)') &
|
write(*,'(1X,A1,1X,A3,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X)') &
|
||||||
'|','#','|','e_HF (eV)','|','Sigma_c (eV)','|','Z','|','e_QP (eV)','|'
|
'|','#','|','e_HF (eV)','|','Sigma_T (eV)','|','Z','|','e_QP (eV)','|'
|
||||||
write(*,*)'-------------------------------------------------------------------------------'
|
write(*,*)'-------------------------------------------------------------------------------'
|
||||||
|
|
||||||
do x=1,nBas
|
do x=1,nBas
|
||||||
write(*,'(1X,A1,1X,I3,1X,A1,1X,F15.6,1X,A1,1X,F15.6,1X,A1,1X,F15.6,1X,A1,1X,F15.6,1X,A1,1X)') &
|
write(*,'(1X,A1,1X,I3,1X,A1,1X,F15.6,1X,A1,1X,F15.6,1X,A1,1X,F15.6,1X,A1,1X,F15.6,1X,A1,1X)') &
|
||||||
'|',x,'|',e(x)*HaToeV,'|',SigmaC(x)*HaToeV,'|',Z(x),'|',eGW(x)*HaToeV,'|'
|
'|',x,'|',e(x)*HaToeV,'|',SigT(x)*HaToeV,'|',Z(x),'|',eGW(x)*HaToeV,'|'
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
write(*,*)'-------------------------------------------------------------------------------'
|
write(*,*)'-------------------------------------------------------------------------------'
|
||||||
|
@ -34,10 +34,10 @@ subroutine renormalization_factor_Tmatrix(eta,nBas,nC,nO,nV,nR,nOO,nVV,e,Omega1,
|
|||||||
do i=nC+1,nO
|
do i=nC+1,nO
|
||||||
cd = 0
|
cd = 0
|
||||||
do c=nO+1,nBas-nR
|
do c=nO+1,nBas-nR
|
||||||
do d=c+1,nBas-nR
|
do d=nO+1,c
|
||||||
cd = cd + 1
|
cd = cd + 1
|
||||||
eps = e(p) + e(i) - Omega1(cd)
|
eps = e(p) + e(i) - Omega1(cd)
|
||||||
Z(p) = Z(p) - 2d0*rho1(p,i,cd)**2*eps/(eps**2 + eta**2)
|
Z(p) = Z(p) - 2d0*rho1(p,i,cd)**2/eps**2
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
@ -49,10 +49,10 @@ subroutine renormalization_factor_Tmatrix(eta,nBas,nC,nO,nV,nR,nOO,nVV,e,Omega1,
|
|||||||
do a=nO+1,nBas-nR
|
do a=nO+1,nBas-nR
|
||||||
kl = 0
|
kl = 0
|
||||||
do k=nC+1,nO
|
do k=nC+1,nO
|
||||||
do l=k+1,nO
|
do l=nC+1,k
|
||||||
kl = kl + 1
|
kl = kl + 1
|
||||||
eps = e(p) + e(a) - Omega2(kl)
|
eps = e(p) + e(a) - Omega2(kl)
|
||||||
Z(p) = Z(p) - 2d0*rho2(p,a,kl)**2*(eps/(eps**2 + eta**2))**2
|
Z(p) = Z(p) - 2d0*rho2(p,a,kl)**2/eps**2
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
@ -32,7 +32,7 @@ subroutine self_energy_Tmatrix_diag(eta,nBas,nC,nO,nV,nR,nOO,nVV,e,Omega1,rho1,O
|
|||||||
|
|
||||||
! Initialize
|
! Initialize
|
||||||
|
|
||||||
SigT = 0d0
|
SigT(:) = 0d0
|
||||||
|
|
||||||
! Occupied part of the T-matrix self-energy
|
! Occupied part of the T-matrix self-energy
|
||||||
|
|
||||||
@ -40,10 +40,10 @@ subroutine self_energy_Tmatrix_diag(eta,nBas,nC,nO,nV,nR,nOO,nVV,e,Omega1,rho1,O
|
|||||||
do i=nC+1,nO
|
do i=nC+1,nO
|
||||||
cd = 0
|
cd = 0
|
||||||
do c=nO+1,nBas-nR
|
do c=nO+1,nBas-nR
|
||||||
do d=c+1,nBas-nR
|
do d=nO+1,c
|
||||||
cd = cd + 1
|
cd = cd + 1
|
||||||
eps = e(p) + e(i) - Omega1(cd)
|
eps = e(p) + e(i) - Omega1(cd)
|
||||||
SigT(p) = SigT(p) + 2d0*rho1(p,i,cd)**2*eps/(eps**2 + eta**2)
|
SigT(p) = SigT(p) + 2d0*rho1(p,i,cd)**2/eps
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
@ -55,10 +55,10 @@ subroutine self_energy_Tmatrix_diag(eta,nBas,nC,nO,nV,nR,nOO,nVV,e,Omega1,rho1,O
|
|||||||
do a=nO+1,nBas-nR
|
do a=nO+1,nBas-nR
|
||||||
kl = 0
|
kl = 0
|
||||||
do k=nC+1,nO
|
do k=nC+1,nO
|
||||||
do l=k+1,nO
|
do l=nC+1,k
|
||||||
kl = kl + 1
|
kl = kl + 1
|
||||||
eps = e(p) + e(a) - Omega2(kl)
|
eps = e(p) + e(a) - Omega2(kl)
|
||||||
SigT(p) = SigT(p) + 2d0*rho2(p,a,kl)**2*eps/(eps**2 + eta**2)
|
SigT(p) = SigT(p) + 2d0*rho2(p,a,kl)**2/eps
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
Loading…
Reference in New Issue
Block a user