mirror of
https://github.com/pfloos/quack
synced 2024-12-23 04:43:42 +01:00
COHSEX done and debugged
This commit is contained in:
parent
8c2b2f5e86
commit
fb4251e419
57
input/basis
57
input/basis
@ -1,52 +1,9 @@
|
|||||||
1 9
|
1 3
|
||||||
S 9 1.00
|
S 3 1.00
|
||||||
1.469000D+03 7.660000D-04
|
38.3600000 0.0238090
|
||||||
2.205000D+02 5.892000D-03
|
5.7700000 0.1548910
|
||||||
5.026000D+01 2.967100D-02
|
1.2400000 0.4699870
|
||||||
1.424000D+01 1.091800D-01
|
|
||||||
4.581000D+00 2.827890D-01
|
|
||||||
1.580000D+00 4.531230D-01
|
|
||||||
5.640000D-01 2.747740D-01
|
|
||||||
7.345000D-02 9.751000D-03
|
|
||||||
2.805000D-02 -3.180000D-03
|
|
||||||
S 9 1.00
|
|
||||||
1.469000D+03 -1.200000D-04
|
|
||||||
2.205000D+02 -9.230000D-04
|
|
||||||
5.026000D+01 -4.689000D-03
|
|
||||||
1.424000D+01 -1.768200D-02
|
|
||||||
4.581000D+00 -4.890200D-02
|
|
||||||
1.580000D+00 -9.600900D-02
|
|
||||||
5.640000D-01 -1.363800D-01
|
|
||||||
7.345000D-02 5.751020D-01
|
|
||||||
2.805000D-02 5.176610D-01
|
|
||||||
S 1 1.00
|
S 1 1.00
|
||||||
2.805000D-02 1.000000D+00
|
0.2976000 1.0000000
|
||||||
S 1 1.00
|
|
||||||
8.600000D-03 1.000000D+00
|
|
||||||
P 4 1.00
|
|
||||||
1.534000D+00 2.278400D-02
|
|
||||||
2.749000D-01 1.391070D-01
|
|
||||||
7.362000D-02 5.003750D-01
|
|
||||||
2.403000D-02 5.084740D-01
|
|
||||||
P 1 1.00
|
P 1 1.00
|
||||||
2.403000D-02 1.000000D+00
|
1.2750000 1.0000000
|
||||||
P 1 1.00
|
|
||||||
5.800000D-03 1.000000D+00
|
|
||||||
D 1 1.00
|
|
||||||
1.144000D-01 1.0000000
|
|
||||||
D 1 1.00
|
|
||||||
7.330000D-02 1.000000D+00
|
|
||||||
2 5
|
|
||||||
S 4 1.00
|
|
||||||
1.301000D+01 1.968500D-02
|
|
||||||
1.962000D+00 1.379770D-01
|
|
||||||
4.446000D-01 4.781480D-01
|
|
||||||
1.220000D-01 5.012400D-01
|
|
||||||
S 1 1.00
|
|
||||||
1.220000D-01 1.000000D+00
|
|
||||||
S 1 1.00
|
|
||||||
0.0297400 1.0000000
|
|
||||||
P 1 1.00
|
|
||||||
7.270000D-01 1.0000000
|
|
||||||
P 1 1.00
|
|
||||||
0.1410000 1.0000000
|
|
||||||
|
@ -5,12 +5,12 @@
|
|||||||
# CCD CCSD CCSD(T)
|
# CCD CCSD CCSD(T)
|
||||||
F F F
|
F F F
|
||||||
# CIS TDHF ppRPA ADC
|
# CIS TDHF ppRPA ADC
|
||||||
F F T F
|
F F F F
|
||||||
# GF2 GF3
|
# GF2 GF3
|
||||||
F F
|
F F
|
||||||
# G0W0 evGW qsGW
|
# G0W0 evGW qsGW
|
||||||
F F F
|
|
||||||
# G0T0 evGT qsGT
|
|
||||||
T F F
|
T F F
|
||||||
|
# G0T0 evGT qsGT
|
||||||
|
F F F
|
||||||
# MCMP2
|
# MCMP2
|
||||||
F
|
F
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
# nAt nEla nElb nCore nRyd
|
# nAt nEla nElb nCore nRyd
|
||||||
2 2 2 0 0
|
1 1 1 0 0
|
||||||
# Znuc x y z
|
# Znuc x y z
|
||||||
Li 0. 0. 0.
|
He 0.0 0.0 0.0
|
||||||
H 0. 0. 3.09839495
|
|
||||||
|
@ -9,6 +9,6 @@
|
|||||||
# GF: maxSCF thresh DIIS n_diis renormalization
|
# GF: maxSCF thresh DIIS n_diis renormalization
|
||||||
64 0.00001 T 10 3
|
64 0.00001 T 10 3
|
||||||
# GW: maxSCF thresh DIIS n_diis COHSEX SOSEX BSE TDA G0W GW0 linearize eta
|
# GW: maxSCF thresh DIIS n_diis COHSEX SOSEX BSE TDA G0W GW0 linearize eta
|
||||||
256 0.0000001 T 5 F F T F F F T 0.000
|
256 0.0000001 T 5 T F F F F F F 0.000
|
||||||
# MCMP2: nMC nEq nWalk dt nPrint iSeed doDrift
|
# MCMP2: nMC nEq nWalk dt nPrint iSeed doDrift
|
||||||
1000000 100000 10 0.3 10000 1234 T
|
1000000 100000 10 0.3 10000 1234 T
|
||||||
|
57
input/weight
57
input/weight
@ -1,52 +1,9 @@
|
|||||||
1 9
|
1 3
|
||||||
S 9 1.00
|
S 3 1.00
|
||||||
1.469000D+03 7.660000D-04
|
38.3600000 0.0238090
|
||||||
2.205000D+02 5.892000D-03
|
5.7700000 0.1548910
|
||||||
5.026000D+01 2.967100D-02
|
1.2400000 0.4699870
|
||||||
1.424000D+01 1.091800D-01
|
|
||||||
4.581000D+00 2.827890D-01
|
|
||||||
1.580000D+00 4.531230D-01
|
|
||||||
5.640000D-01 2.747740D-01
|
|
||||||
7.345000D-02 9.751000D-03
|
|
||||||
2.805000D-02 -3.180000D-03
|
|
||||||
S 9 1.00
|
|
||||||
1.469000D+03 -1.200000D-04
|
|
||||||
2.205000D+02 -9.230000D-04
|
|
||||||
5.026000D+01 -4.689000D-03
|
|
||||||
1.424000D+01 -1.768200D-02
|
|
||||||
4.581000D+00 -4.890200D-02
|
|
||||||
1.580000D+00 -9.600900D-02
|
|
||||||
5.640000D-01 -1.363800D-01
|
|
||||||
7.345000D-02 5.751020D-01
|
|
||||||
2.805000D-02 5.176610D-01
|
|
||||||
S 1 1.00
|
S 1 1.00
|
||||||
2.805000D-02 1.000000D+00
|
0.2976000 1.0000000
|
||||||
S 1 1.00
|
|
||||||
8.600000D-03 1.000000D+00
|
|
||||||
P 4 1.00
|
|
||||||
1.534000D+00 2.278400D-02
|
|
||||||
2.749000D-01 1.391070D-01
|
|
||||||
7.362000D-02 5.003750D-01
|
|
||||||
2.403000D-02 5.084740D-01
|
|
||||||
P 1 1.00
|
P 1 1.00
|
||||||
2.403000D-02 1.000000D+00
|
1.2750000 1.0000000
|
||||||
P 1 1.00
|
|
||||||
5.800000D-03 1.000000D+00
|
|
||||||
D 1 1.00
|
|
||||||
1.144000D-01 1.0000000
|
|
||||||
D 1 1.00
|
|
||||||
7.330000D-02 1.000000D+00
|
|
||||||
2 5
|
|
||||||
S 4 1.00
|
|
||||||
1.301000D+01 1.968500D-02
|
|
||||||
1.962000D+00 1.379770D-01
|
|
||||||
4.446000D-01 4.781480D-01
|
|
||||||
1.220000D-01 5.012400D-01
|
|
||||||
S 1 1.00
|
|
||||||
1.220000D-01 1.000000D+00
|
|
||||||
S 1 1.00
|
|
||||||
0.0297400 1.0000000
|
|
||||||
P 1 1.00
|
|
||||||
7.270000D-01 1.0000000
|
|
||||||
P 1 1.00
|
|
||||||
0.1410000 1.0000000
|
|
||||||
|
@ -89,18 +89,10 @@ subroutine G0W0(COHSEX,SOSEX,BSE,TDA,singlet_manifold,triplet_manifold,eta, &
|
|||||||
call self_energy_correlation_diag(COHSEX,SOSEX,eta,nBas,nC,nO,nV,nR,nS,eHF, &
|
call self_energy_correlation_diag(COHSEX,SOSEX,eta,nBas,nC,nO,nV,nR,nS,eHF, &
|
||||||
Omega(:,ispin),rho(:,:,:,ispin),rhox(:,:,:,ispin),EcGM,SigC)
|
Omega(:,ispin),rho(:,:,:,ispin),rhox(:,:,:,ispin),EcGM,SigC)
|
||||||
|
|
||||||
! COHSEX static approximation
|
! Compute renormalization factor
|
||||||
|
|
||||||
if(COHSEX) then
|
call renormalization_factor(COHSEX,SOSEX,eta,nBas,nC,nO,nV,nR,nS,eHF, &
|
||||||
|
Omega(:,ispin),rho(:,:,:,ispin),rhox(:,:,:,ispin),Z(:))
|
||||||
Z(:) = 1d0
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
call renormalization_factor(SOSEX,eta,nBas,nC,nO,nV,nR,nS,eHF, &
|
|
||||||
Omega(:,ispin),rho(:,:,:,ispin),rhox(:,:,:,ispin),Z(:))
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
! Solve the quasi-particle equation
|
! Solve the quasi-particle equation
|
||||||
|
|
||||||
|
@ -128,13 +128,15 @@ subroutine evGW(maxSCF,thresh,max_diis,COHSEX,SOSEX,BSE,TDA,G0W,GW0,singlet_mani
|
|||||||
|
|
||||||
call self_energy_correlation_diag(COHSEX,SOSEX,eta,nBas,nC,nO,nV,nR,nS,eHF, &
|
call self_energy_correlation_diag(COHSEX,SOSEX,eta,nBas,nC,nO,nV,nR,nS,eHF, &
|
||||||
Omega(:,ispin),rho(:,:,:,ispin),rhox(:,:,:,ispin),EcGM,SigC)
|
Omega(:,ispin),rho(:,:,:,ispin),rhox(:,:,:,ispin),EcGM,SigC)
|
||||||
call renormalization_factor(SOSEX,eta,nBas,nC,nO,nV,nR,nS,eHF,Omega(:,ispin),rho(:,:,:,ispin),rhox(:,:,:,ispin),Z(:))
|
call renormalization_factor(COHSEX,SOSEX,eta,nBas,nC,nO,nV,nR,nS,eHF, &
|
||||||
|
Omega(:,ispin),rho(:,:,:,ispin),rhox(:,:,:,ispin),Z(:))
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
call self_energy_correlation_diag(COHSEX,SOSEX,eta,nBas,nC,nO,nV,nR,nS,eGW, &
|
call self_energy_correlation_diag(COHSEX,SOSEX,eta,nBas,nC,nO,nV,nR,nS,eGW, &
|
||||||
Omega(:,ispin),rho(:,:,:,ispin),rhox(:,:,:,ispin),EcGM,SigC)
|
Omega(:,ispin),rho(:,:,:,ispin),rhox(:,:,:,ispin),EcGM,SigC)
|
||||||
call renormalization_factor(SOSEX,eta,nBas,nC,nO,nV,nR,nS,eGW,Omega(:,ispin),rho(:,:,:,ispin),rhox(:,:,:,ispin),Z(:))
|
call renormalization_factor(COHSEX,SOSEX,eta,nBas,nC,nO,nV,nR,nS,eGW, &
|
||||||
|
Omega(:,ispin),rho(:,:,:,ispin),rhox(:,:,:,ispin),Z(:))
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -90,6 +90,6 @@ subroutine linear_response(ispin,dRPA,TDA,BSE,nBas,nC,nO,nV,nR,nS,e,ERI,rho,EcRP
|
|||||||
|
|
||||||
EcRPA = 0.5d0*(sum(Omega) - trace_matrix(nS,A))
|
EcRPA = 0.5d0*(sum(Omega) - trace_matrix(nS,A))
|
||||||
|
|
||||||
print*,'EcRPA = ',EcRPA
|
! print*,'EcRPA = ',EcRPA
|
||||||
|
|
||||||
end subroutine linear_response
|
end subroutine linear_response
|
||||||
|
@ -60,8 +60,8 @@ subroutine linear_response_pp(ispin,BSE,nBas,nC,nO,nV,nR,nOO,nVV,e,ERI,Omega1,X1
|
|||||||
|
|
||||||
! Off-diagonal blocks
|
! Off-diagonal blocks
|
||||||
|
|
||||||
M( 1:nVV ,nVV+1:nOO+nVV) = + B(1:nVV,1:nOO)
|
M( 1:nVV ,nVV+1:nOO+nVV) = - B(1:nVV,1:nOO)
|
||||||
M(nVV+1:nOO+nVV, 1:nVV) = - transpose(B(1:nVV,1:nOO))
|
M(nVV+1:nOO+nVV, 1:nVV) = + transpose(B(1:nVV,1:nOO))
|
||||||
|
|
||||||
! print*, 'pp-RPA matrix'
|
! print*, 'pp-RPA matrix'
|
||||||
! call matout(nOO+nVV,nOO+nVV,M(:,:))
|
! call matout(nOO+nVV,nOO+nVV,M(:,:))
|
||||||
|
@ -151,13 +151,15 @@ subroutine qsGW(maxSCF,thresh,max_diis,COHSEX,SOSEX,BSE,TDA,G0W,GW0,singlet_mani
|
|||||||
|
|
||||||
call self_energy_correlation(COHSEX,SOSEX,eta,nBas,nC,nO,nV,nR,nS,eHF, &
|
call self_energy_correlation(COHSEX,SOSEX,eta,nBas,nC,nO,nV,nR,nS,eHF, &
|
||||||
Omega(:,ispin),rho(:,:,:,ispin),rhox(:,:,:,ispin),EcGM,SigC)
|
Omega(:,ispin),rho(:,:,:,ispin),rhox(:,:,:,ispin),EcGM,SigC)
|
||||||
call renormalization_factor(SOSEX,eta,nBas,nC,nO,nV,nR,nS,eHF,Omega(:,ispin),rho(:,:,:,ispin),rhox(:,:,:,ispin),Z)
|
call renormalization_factor(COHSEX,SOSEX,eta,nBas,nC,nO,nV,nR,nS,eHF, &
|
||||||
|
Omega(:,ispin),rho(:,:,:,ispin),rhox(:,:,:,ispin),Z)
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
call self_energy_correlation(COHSEX,SOSEX,eta,nBas,nC,nO,nV,nR,nS,e, &
|
call self_energy_correlation(COHSEX,SOSEX,eta,nBas,nC,nO,nV,nR,nS,e, &
|
||||||
Omega(:,ispin),rho(:,:,:,ispin),rhox(:,:,:,ispin),EcGM,SigC)
|
Omega(:,ispin),rho(:,:,:,ispin),rhox(:,:,:,ispin),EcGM,SigC)
|
||||||
call renormalization_factor(SOSEX,eta,nBas,nC,nO,nV,nR,nS,e,Omega(:,ispin),rho(:,:,:,ispin),rhox(:,:,:,ispin),Z)
|
call renormalization_factor(COHSEX,SOSEX,eta,nBas,nC,nO,nV,nR,nS,e, &
|
||||||
|
Omega(:,ispin),rho(:,:,:,ispin),rhox(:,:,:,ispin),Z)
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
subroutine renormalization_factor(SOSEX,eta,nBas,nC,nO,nV,nR,nS,e,Omega,rho,rhox,Z)
|
subroutine renormalization_factor(COHSEX,SOSEX,eta,nBas,nC,nO,nV,nR,nS,e,Omega,rho,rhox,Z)
|
||||||
|
|
||||||
! Compute renormalization factor for GW
|
! Compute renormalization factor for GW
|
||||||
|
|
||||||
@ -7,6 +7,7 @@ subroutine renormalization_factor(SOSEX,eta,nBas,nC,nO,nV,nR,nS,e,Omega,rho,rhox
|
|||||||
|
|
||||||
! Input variables
|
! Input variables
|
||||||
|
|
||||||
|
logical,intent(in) :: COHSEX
|
||||||
logical,intent(in) :: SOSEX
|
logical,intent(in) :: SOSEX
|
||||||
double precision,intent(in) :: eta
|
double precision,intent(in) :: eta
|
||||||
integer,intent(in) :: nBas,nC,nO,nV,nR,nS
|
integer,intent(in) :: nBas,nC,nO,nV,nR,nS
|
||||||
@ -28,6 +29,15 @@ subroutine renormalization_factor(SOSEX,eta,nBas,nC,nO,nV,nR,nS,e,Omega,rho,rhox
|
|||||||
|
|
||||||
Z(:) = 0d0
|
Z(:) = 0d0
|
||||||
|
|
||||||
|
! static COHSEX approximation
|
||||||
|
|
||||||
|
if(COHSEX) then
|
||||||
|
|
||||||
|
Z(:) = 1d0
|
||||||
|
return
|
||||||
|
|
||||||
|
end if
|
||||||
|
|
||||||
! Occupied part of the correlation self-energy
|
! Occupied part of the correlation self-energy
|
||||||
|
|
||||||
do x=nC+1,nBas-nR
|
do x=nC+1,nBas-nR
|
||||||
@ -38,10 +48,10 @@ subroutine renormalization_factor(SOSEX,eta,nBas,nC,nO,nV,nR,nS,e,Omega,rho,rhox
|
|||||||
jb = jb + 1
|
jb = jb + 1
|
||||||
eps = e(x) - e(i) + Omega(jb)
|
eps = e(x) - e(i) + Omega(jb)
|
||||||
Z(x) = Z(x) - 2d0*rho(x,i,jb)**2*(eps/(eps**2 + eta**2))**2
|
Z(x) = Z(x) - 2d0*rho(x,i,jb)**2*(eps/(eps**2 + eta**2))**2
|
||||||
enddo
|
end do
|
||||||
enddo
|
end do
|
||||||
enddo
|
end do
|
||||||
enddo
|
end do
|
||||||
|
|
||||||
! Virtual part of the correlation self-energy
|
! Virtual part of the correlation self-energy
|
||||||
|
|
||||||
@ -53,10 +63,10 @@ subroutine renormalization_factor(SOSEX,eta,nBas,nC,nO,nV,nR,nS,e,Omega,rho,rhox
|
|||||||
jb = jb + 1
|
jb = jb + 1
|
||||||
eps = e(x) - e(a) - Omega(jb)
|
eps = e(x) - e(a) - Omega(jb)
|
||||||
Z(x) = Z(x) - 2d0*rho(x,a,jb)**2*(eps/(eps**2 + eta**2))**2
|
Z(x) = Z(x) - 2d0*rho(x,a,jb)**2*(eps/(eps**2 + eta**2))**2
|
||||||
enddo
|
end do
|
||||||
enddo
|
end do
|
||||||
enddo
|
end do
|
||||||
enddo
|
end do
|
||||||
|
|
||||||
! SOSEX correction
|
! SOSEX correction
|
||||||
|
|
||||||
@ -72,10 +82,10 @@ subroutine renormalization_factor(SOSEX,eta,nBas,nC,nO,nV,nR,nS,e,Omega,rho,rhox
|
|||||||
jb = jb + 1
|
jb = jb + 1
|
||||||
eps = e(x) - e(i) + Omega(jb)
|
eps = e(x) - e(i) + Omega(jb)
|
||||||
Z(x) = Z(x) - (rho(x,i,jb)/eps)*(rhox(x,i,jb)/eps)
|
Z(x) = Z(x) - (rho(x,i,jb)/eps)*(rhox(x,i,jb)/eps)
|
||||||
enddo
|
end do
|
||||||
enddo
|
end do
|
||||||
enddo
|
end do
|
||||||
enddo
|
end do
|
||||||
|
|
||||||
! Virtual part of the correlation self-energy
|
! Virtual part of the correlation self-energy
|
||||||
|
|
||||||
@ -87,10 +97,10 @@ subroutine renormalization_factor(SOSEX,eta,nBas,nC,nO,nV,nR,nS,e,Omega,rho,rhox
|
|||||||
jb = jb + 1
|
jb = jb + 1
|
||||||
eps = e(x) - e(a) - Omega(jb)
|
eps = e(x) - e(a) - Omega(jb)
|
||||||
Z(x) = Z(x) - (rho(x,a,jb)/eps)*(rhox(x,a,jb)/eps)
|
Z(x) = Z(x) - (rho(x,a,jb)/eps)*(rhox(x,a,jb)/eps)
|
||||||
enddo
|
end do
|
||||||
enddo
|
end do
|
||||||
enddo
|
end do
|
||||||
enddo
|
end do
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user