10
1
mirror of https://github.com/pfloos/quack synced 2025-05-06 07:05:33 +02:00

fix SRG GF2 self energies for diagonal part

This commit is contained in:
Pierre-Francois Loos 2025-05-04 14:40:01 +02:00
parent 9b513122b3
commit d58b5a8068
3 changed files with 9 additions and 10 deletions

View File

@ -30,7 +30,7 @@ double precision function RGF2_SRG_SigC(p,w,flow,nBas,nC,nO,nV,nR,eHF,ERI)
eps = w + eHF(a) - eHF(i) - eHF(j)
kappa = 1d0 - exp(-2d0*eps**2*s)
RGF2_SRG_SigC = RGF2_SRG_SigC + kappa*(2d0*ERI(p,a,i,j) - ERI(p,a,j,i))*ERI(p,a,i,j)*eps/(eps**2)
RGF2_SRG_SigC = RGF2_SRG_SigC + kappa*(2d0*ERI(p,a,i,j) - ERI(p,a,j,i))*ERI(p,a,i,j)/eps
end do
end do
@ -44,7 +44,7 @@ double precision function RGF2_SRG_SigC(p,w,flow,nBas,nC,nO,nV,nR,eHF,ERI)
eps = w + eHF(i) - eHF(a) - eHF(b)
kappa = 1d0 - exp(-2d0*eps**2*s)
RGF2_SRG_SigC = RGF2_SRG_SigC + kappa*(2d0*ERI(p,i,a,b) - ERI(p,i,b,a))*ERI(p,i,a,b)*eps/(eps**2)
RGF2_SRG_SigC = RGF2_SRG_SigC + kappa*(2d0*ERI(p,i,a,b) - ERI(p,i,b,a))*ERI(p,i,a,b)/eps
end do
end do

View File

@ -32,8 +32,7 @@ double precision function RGF2_SRG_dSigC(p,w,flow,nBas,nC,nO,nV,nR,eHF,ERI)
eps = w + eHF(a) - eHF(i) - eHF(j)
kappa = 1d0 - exp(-2d0*eps**2*s)
RGF2_SRG_dSigC = RGF2_SRG_dSigC - kappa*(2d0*ERI(p,a,i,j) - ERI(p,a,j,i))*ERI(p,a,i,j)&
*(eps**2)/(eps**2)**2
RGF2_SRG_dSigC = RGF2_SRG_dSigC - kappa*(2d0*ERI(p,a,i,j) - ERI(p,a,j,i))*ERI(p,a,i,j)/eps**2
end do
end do
@ -47,8 +46,7 @@ double precision function RGF2_SRG_dSigC(p,w,flow,nBas,nC,nO,nV,nR,eHF,ERI)
eps = w + eHF(i) - eHF(a) - eHF(b)
kappa = 1d0 - exp(-2d0*eps**2*s)
RGF2_SRG_dSigC = RGF2_SRG_dSigC - kappa*(2d0*ERI(p,i,a,b) - ERI(p,i,b,a))*ERI(p,i,a,b)&
*(eps**2)/(eps**2)**2
RGF2_SRG_dSigC = RGF2_SRG_dSigC - kappa*(2d0*ERI(p,i,a,b) - ERI(p,i,b,a))*ERI(p,i,a,b)/eps**2
end do
end do

View File

@ -55,8 +55,8 @@ subroutine RGF2_SRG_self_energy_diag(flow,nBas,nC,nO,nV,nR,e,ERI,SigC,Z)
kappa = 1d0 - exp(-2d0*eps**2*s)
num = kappa*(2d0*ERI(p,a,i,j) - ERI(p,a,j,i))*ERI(p,a,i,j)
SigC(p) = SigC(p) + num*eps/(eps**2)
Z(p) = Z(p) - num*(eps**2)/(eps**2)**2
SigC(p) = SigC(p) + num/eps
Z(p) = Z(p) - num/eps**2
end do
end do
@ -72,8 +72,8 @@ subroutine RGF2_SRG_self_energy_diag(flow,nBas,nC,nO,nV,nR,e,ERI,SigC,Z)
kappa = 1d0 - exp(-2d0*eps**2*s)
num = kappa*(2d0*ERI(p,i,a,b) - ERI(p,i,b,a))*ERI(p,i,a,b)
SigC(p) = SigC(p) + num*eps/(eps**2)
Z(p) = Z(p) - num*(eps**2)/(eps**2)**2
SigC(p) = SigC(p) + num/eps
Z(p) = Z(p) - num/eps**2
end do
end do
@ -81,4 +81,5 @@ subroutine RGF2_SRG_self_energy_diag(flow,nBas,nC,nO,nV,nR,e,ERI,SigC,Z)
end do
Z(:) = 1d0/(1d0 - Z(:))
end subroutine