mirror of
https://github.com/pfloos/quack
synced 2024-12-22 12:23:50 +01:00
renaming in GT
This commit is contained in:
parent
85393db27f
commit
4ca7fff02f
@ -119,7 +119,7 @@ subroutine RG0T0eh(dotest,doACFDT,exchange_kernel,doXBS,dophBSE,dophBSE2,TDA_T,T
|
|||||||
! Compute spectral weights !
|
! Compute spectral weights !
|
||||||
!--------------------------!
|
!--------------------------!
|
||||||
|
|
||||||
call GTeh_excitation_density(nBas,nC,nO,nR,nS,ERI,XpY,XmY,rhoL,rhoR)
|
call RGTeh_excitation_density(nBas,nC,nO,nR,nS,ERI,XpY,XmY,rhoL,rhoR)
|
||||||
|
|
||||||
!------------------------!
|
!------------------------!
|
||||||
! Compute GW self-energy !
|
! Compute GW self-energy !
|
||||||
@ -127,7 +127,7 @@ subroutine RG0T0eh(dotest,doACFDT,exchange_kernel,doXBS,dophBSE,dophBSE2,TDA_T,T
|
|||||||
|
|
||||||
if(regularize) call GTeh_regularization(nBas,nC,nO,nV,nR,nS,eHF,Om,rhoL,rhoR)
|
if(regularize) call GTeh_regularization(nBas,nC,nO,nV,nR,nS,eHF,Om,rhoL,rhoR)
|
||||||
|
|
||||||
call GTeh_self_energy_diag(eta,nBas,nC,nO,nV,nR,nS,eHF,Om,rhoL,rhoR,EcGM,Sig,Z)
|
call RGTeh_self_energy_diag(eta,nBas,nC,nO,nV,nR,nS,eHF,Om,rhoL,rhoR,EcGM,Sig,Z)
|
||||||
|
|
||||||
!-----------------------------------!
|
!-----------------------------------!
|
||||||
! Solve the quasi-particle equation !
|
! Solve the quasi-particle equation !
|
||||||
@ -149,11 +149,11 @@ subroutine RG0T0eh(dotest,doACFDT,exchange_kernel,doXBS,dophBSE,dophBSE2,TDA_T,T
|
|||||||
write(*,*) ' *** Quasiparticle energies obtained by root search *** '
|
write(*,*) ' *** Quasiparticle energies obtained by root search *** '
|
||||||
write(*,*)
|
write(*,*)
|
||||||
|
|
||||||
call GTeh_QP_graph(eta,nBas,nC,nO,nV,nR,nS,eHF,Om,rhoL,rhoR,eGTlin,eHF,eGT,Z)
|
call RGTeh_QP_graph(eta,nBas,nC,nO,nV,nR,nS,eHF,Om,rhoL,rhoR,eGTlin,eHF,eGT,Z)
|
||||||
|
|
||||||
end if
|
end if
|
||||||
|
|
||||||
! call GTeh_plot_self_energy(nBas,nC,nO,nV,nR,nS,eHF,eHF,Om,rhoL,rhoR)
|
! call RGTeh_plot_self_energy(nBas,nC,nO,nV,nR,nS,eHF,eHF,Om,rhoL,rhoR)
|
||||||
|
|
||||||
! Compute the RPA correlation energy based on the G0T0eh quasiparticle energies
|
! Compute the RPA correlation energy based on the G0T0eh quasiparticle energies
|
||||||
|
|
||||||
|
@ -164,12 +164,12 @@ subroutine RG0T0pp(dotest,doACFDT,exchange_kernel,doXBS,dophBSE,TDA_T,TDA,dBSE,d
|
|||||||
! iblock = 1
|
! iblock = 1
|
||||||
iblock = 3
|
iblock = 3
|
||||||
|
|
||||||
call GTpp_excitation_density(iblock,nBas,nC,nO,nV,nR,nOOs,nVVs,ERI,X1s,Y1s,rho1s,X2s,Y2s,rho2s)
|
call RGTpp_excitation_density(iblock,nBas,nC,nO,nV,nR,nOOs,nVVs,ERI,X1s,Y1s,rho1s,X2s,Y2s,rho2s)
|
||||||
|
|
||||||
! iblock = 2
|
! iblock = 2
|
||||||
iblock = 4
|
iblock = 4
|
||||||
|
|
||||||
call GTpp_excitation_density(iblock,nBas,nC,nO,nV,nR,nOOt,nVVt,ERI,X1t,Y1t,rho1t,X2t,Y2t,rho2t)
|
call RGTpp_excitation_density(iblock,nBas,nC,nO,nV,nR,nOOt,nVVt,ERI,X1t,Y1t,rho1t,X2t,Y2t,rho2t)
|
||||||
|
|
||||||
!----------------------------------------------
|
!----------------------------------------------
|
||||||
! Compute T-matrix version of the self-energy
|
! Compute T-matrix version of the self-energy
|
||||||
@ -180,7 +180,7 @@ subroutine RG0T0pp(dotest,doACFDT,exchange_kernel,doXBS,dophBSE,TDA_T,TDA,dBSE,d
|
|||||||
call GTpp_regularization(nBas,nC,nO,nV,nR,nOOt,nVVt,eHF,Om1t,rho1t,Om2t,rho2t)
|
call GTpp_regularization(nBas,nC,nO,nV,nR,nOOt,nVVt,eHF,Om1t,rho1t,Om2t,rho2t)
|
||||||
end if
|
end if
|
||||||
|
|
||||||
call GTpp_self_energy_diag(eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eHF,Om1s,rho1s,Om2s,rho2s, &
|
call RGTpp_self_energy_diag(eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eHF,Om1s,rho1s,Om2s,rho2s, &
|
||||||
Om1t,rho1t,Om2t,rho2t,EcGM,Sig,Z)
|
Om1t,rho1t,Om2t,rho2t,EcGM,Sig,Z)
|
||||||
|
|
||||||
!----------------------------------------------
|
!----------------------------------------------
|
||||||
@ -201,12 +201,12 @@ subroutine RG0T0pp(dotest,doACFDT,exchange_kernel,doXBS,dophBSE,TDA_T,TDA,dBSE,d
|
|||||||
write(*,*) ' *** Quasiparticle energies obtained by root search *** '
|
write(*,*) ' *** Quasiparticle energies obtained by root search *** '
|
||||||
write(*,*)
|
write(*,*)
|
||||||
|
|
||||||
call GTpp_QP_graph(eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eHF,Om1s,rho1s,Om2s,rho2s, &
|
call RGTpp_QP_graph(eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eHF,Om1s,rho1s,Om2s,rho2s, &
|
||||||
Om1t,rho1t,Om2t,rho2t,eGTlin,eHF,eGT,Z)
|
Om1t,rho1t,Om2t,rho2t,eGTlin,eHF,eGT,Z)
|
||||||
|
|
||||||
end if
|
end if
|
||||||
|
|
||||||
! call GTpp_plot_self_energy(nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eHF,eGT,Om1s,rho1s,Om2s,rho2s, &
|
! call RGTpp_plot_self_energy(nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eHF,eGT,Om1s,rho1s,Om2s,rho2s, &
|
||||||
! Om1t,rho1t,Om2t,rho2t)
|
! Om1t,rho1t,Om2t,rho2t)
|
||||||
|
|
||||||
!----------------------------------------------
|
!----------------------------------------------
|
||||||
@ -252,7 +252,7 @@ subroutine RG0T0pp(dotest,doACFDT,exchange_kernel,doXBS,dophBSE,TDA_T,TDA,dBSE,d
|
|||||||
|
|
||||||
if(dophBSE) then
|
if(dophBSE) then
|
||||||
|
|
||||||
call GTpp_phBSE(TDA_T,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,nS,nOOs,nVVs,nOOt,nVVt, &
|
call RGTpp_phBSE(TDA_T,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,nS,nOOs,nVVs,nOOt,nVVt, &
|
||||||
Om1s,X1s,Y1s,Om2s,X2s,Y2s,rho1s,rho2s,Om1t,X1t,Y1t,Om2t,X2t,Y2t,rho1t,rho2t, &
|
Om1s,X1s,Y1s,Om2s,X2s,Y2s,rho1s,rho2s,Om1t,X1t,Y1t,Om2t,X2t,Y2t,rho1t,rho2t, &
|
||||||
ERI,dipole_int,eHF,eGT,EcBSE)
|
ERI,dipole_int,eHF,eGT,EcBSE)
|
||||||
|
|
||||||
@ -288,7 +288,7 @@ subroutine RG0T0pp(dotest,doACFDT,exchange_kernel,doXBS,dophBSE,TDA_T,TDA,dBSE,d
|
|||||||
|
|
||||||
end if
|
end if
|
||||||
|
|
||||||
call GTpp_phACFDT(exchange_kernel,doXBS,.false.,TDA_T,TDA,dophBSE,singlet,triplet,eta,nBas,nC,nO,nV,nR,nS, &
|
call RGTpp_phACFDT(exchange_kernel,doXBS,.false.,TDA_T,TDA,dophBSE,singlet,triplet,eta,nBas,nC,nO,nV,nR,nS, &
|
||||||
nOOs,nVVs,nOOt,nVVt,Om1s,X1s,Y1s,Om2s,X2s,Y2s,rho1s,rho2s,Om1t,X1t,Y1t, &
|
nOOs,nVVs,nOOt,nVVt,Om1s,X1s,Y1s,Om2s,X2s,Y2s,rho1s,rho2s,Om1t,X1t,Y1t, &
|
||||||
Om2t,X2t,Y2t,rho1t,rho2t,ERI,eHF,eGT,EcBSE)
|
Om2t,X2t,Y2t,rho1t,rho2t,ERI,eHF,eGT,EcBSE)
|
||||||
|
|
||||||
@ -314,7 +314,7 @@ subroutine RG0T0pp(dotest,doACFDT,exchange_kernel,doXBS,dophBSE,TDA_T,TDA,dBSE,d
|
|||||||
|
|
||||||
if(doppBSE) then
|
if(doppBSE) then
|
||||||
|
|
||||||
call GTpp_ppBSE(TDA_T,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt, &
|
call RGTpp_ppBSE(TDA_T,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt, &
|
||||||
Om1s,X1s,Y1s,Om2s,X2s,Y2s,rho1s,rho2s,Om1t,X1t,Y1t,Om2t,X2t,Y2t,rho1t,rho2t, &
|
Om1s,X1s,Y1s,Om2s,X2s,Y2s,rho1s,rho2s,Om1t,X1t,Y1t,Om2t,X2t,Y2t,rho1t,rho2t, &
|
||||||
ERI,dipole_int,eHF,eGT,EcBSE)
|
ERI,dipole_int,eHF,eGT,EcBSE)
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ subroutine RGT(dotest, doG0T0pp, doevGTpp, doqsGTpp, doufG0T0pp, doG0T0eh, doevG
|
|||||||
if(doufG0T0pp) then
|
if(doufG0T0pp) then
|
||||||
|
|
||||||
call wall_time(start_GT)
|
call wall_time(start_GT)
|
||||||
call ufG0T0pp(dotest,TDA_T,nOrb,nC,nO,nV,nR,nS,ENuc,ERHF,ERI_MO,eHF)
|
call ufRG0T0pp(dotest,TDA_T,nOrb,nC,nO,nV,nR,nS,ENuc,ERHF,ERI_MO,eHF)
|
||||||
call wall_time(end_GT)
|
call wall_time(end_GT)
|
||||||
|
|
||||||
t_GT = end_GT - start_GT
|
t_GT = end_GT - start_GT
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTeh_QP_graph(eta,nBas,nC,nO,nV,nR,nS,eHF,Om,rhoL,rhoR,eGTlin,eOld,eGT,Z)
|
subroutine RGTeh_QP_graph(eta,nBas,nC,nO,nV,nR,nS,eHF,Om,rhoL,rhoR,eGTlin,eOld,eGT,Z)
|
||||||
|
|
||||||
! Compute the graphical solution of the QP equation
|
! Compute the graphical solution of the QP equation
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ subroutine GTeh_QP_graph(eta,nBas,nC,nO,nV,nR,nS,eHF,Om,rhoL,rhoR,eGTlin,eOld,eG
|
|||||||
integer :: nIt
|
integer :: nIt
|
||||||
integer,parameter :: maxIt = 64
|
integer,parameter :: maxIt = 64
|
||||||
double precision,parameter :: thresh = 1d-6
|
double precision,parameter :: thresh = 1d-6
|
||||||
double precision,external :: GTeh_SigC,GTeh_dSigC
|
double precision,external :: RGTeh_SigC,RGTeh_dSigC
|
||||||
double precision :: SigC,dSigC
|
double precision :: SigC,dSigC
|
||||||
double precision :: f,df
|
double precision :: f,df
|
||||||
double precision :: w
|
double precision :: w
|
||||||
@ -55,8 +55,8 @@ subroutine GTeh_QP_graph(eta,nBas,nC,nO,nV,nR,nS,eHF,Om,rhoL,rhoR,eGTlin,eOld,eG
|
|||||||
|
|
||||||
nIt = nIt + 1
|
nIt = nIt + 1
|
||||||
|
|
||||||
SigC = GTeh_SigC(p,w,eta,nBas,nC,nO,nV,nR,nS,eOld,Om,rhoL,rhoR)
|
SigC = RGTeh_SigC(p,w,eta,nBas,nC,nO,nV,nR,nS,eOld,Om,rhoL,rhoR)
|
||||||
dSigC = GTeh_dSigC(p,w,eta,nBas,nC,nO,nV,nR,nS,eOld,Om,rhoL,rhoR)
|
dSigC = RGTeh_dSigC(p,w,eta,nBas,nC,nO,nV,nR,nS,eOld,Om,rhoL,rhoR)
|
||||||
f = w - eHF(p) - SigC
|
f = w - eHF(p) - SigC
|
||||||
df = 1d0/(1d0 - dSigC)
|
df = 1d0/(1d0 - dSigC)
|
||||||
w = w - df*f
|
w = w - df*f
|
@ -1,4 +1,4 @@
|
|||||||
double precision function GTeh_SigC(p,w,eta,nBas,nC,nO,nV,nR,nS,e,Om,rhoL,rhoR)
|
double precision function RGTeh_SigC(p,w,eta,nBas,nC,nO,nV,nR,nS,e,Om,rhoL,rhoR)
|
||||||
|
|
||||||
! Compute diagonal of the correlation part of the self-energy
|
! Compute diagonal of the correlation part of the self-energy
|
||||||
|
|
||||||
@ -28,7 +28,7 @@ double precision function GTeh_SigC(p,w,eta,nBas,nC,nO,nV,nR,nS,e,Om,rhoL,rhoR)
|
|||||||
|
|
||||||
! Initialize
|
! Initialize
|
||||||
|
|
||||||
GTeh_SigC = 0d0
|
RGTeh_SigC = 0d0
|
||||||
|
|
||||||
! Occupied part of the correlation self-energy
|
! Occupied part of the correlation self-energy
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ double precision function GTeh_SigC(p,w,eta,nBas,nC,nO,nV,nR,nS,e,Om,rhoL,rhoR)
|
|||||||
do m=1,nS
|
do m=1,nS
|
||||||
eps = w - e(i) + Om(m)
|
eps = w - e(i) + Om(m)
|
||||||
num = rhoL(i,p,m)*rhoR(i,p,m)
|
num = rhoL(i,p,m)*rhoR(i,p,m)
|
||||||
GTeh_SigC = GTeh_SigC + num*eps/(eps**2 + eta**2)
|
RGTeh_SigC = RGTeh_SigC + num*eps/(eps**2 + eta**2)
|
||||||
end do
|
end do
|
||||||
end do
|
end do
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ double precision function GTeh_SigC(p,w,eta,nBas,nC,nO,nV,nR,nS,e,Om,rhoL,rhoR)
|
|||||||
do m=1,nS
|
do m=1,nS
|
||||||
eps = w - e(a) - Om(m)
|
eps = w - e(a) - Om(m)
|
||||||
num = rhoL(p,a,m)*rhoR(p,a,m)
|
num = rhoL(p,a,m)*rhoR(p,a,m)
|
||||||
GTeh_SigC = GTeh_SigC + num*eps/(eps**2 + eta**2)
|
RGTeh_SigC = RGTeh_SigC + num*eps/(eps**2 + eta**2)
|
||||||
end do
|
end do
|
||||||
end do
|
end do
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
double precision function GTeh_dSigC(p,w,eta,nBas,nC,nO,nV,nR,nS,e,Om,rhoL,rhoR)
|
double precision function RGTeh_dSigC(p,w,eta,nBas,nC,nO,nV,nR,nS,e,Om,rhoL,rhoR)
|
||||||
|
|
||||||
! Compute the derivative of the correlation part of the self-energy
|
! Compute the derivative of the correlation part of the self-energy
|
||||||
|
|
||||||
@ -28,7 +28,7 @@ double precision function GTeh_dSigC(p,w,eta,nBas,nC,nO,nV,nR,nS,e,Om,rhoL,rhoR)
|
|||||||
|
|
||||||
! Initialize
|
! Initialize
|
||||||
|
|
||||||
GTeh_dSigC = 0d0
|
RGTeh_dSigC = 0d0
|
||||||
|
|
||||||
! Occupied part of the correlation self-energy
|
! Occupied part of the correlation self-energy
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ double precision function GTeh_dSigC(p,w,eta,nBas,nC,nO,nV,nR,nS,e,Om,rhoL,rhoR)
|
|||||||
do m=1,nS
|
do m=1,nS
|
||||||
eps = w - e(i) + Om(m)
|
eps = w - e(i) + Om(m)
|
||||||
num = rhoL(i,p,m)*rhoR(i,p,m)
|
num = rhoL(i,p,m)*rhoR(i,p,m)
|
||||||
GTeh_dSigC = GTeh_dSigC - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2
|
RGTeh_dSigC = RGTeh_dSigC - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2
|
||||||
end do
|
end do
|
||||||
end do
|
end do
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ double precision function GTeh_dSigC(p,w,eta,nBas,nC,nO,nV,nR,nS,e,Om,rhoL,rhoR)
|
|||||||
do m=1,nS
|
do m=1,nS
|
||||||
eps = w - e(a) - Om(m)
|
eps = w - e(a) - Om(m)
|
||||||
num = rhoL(p,a,m)*rhoR(p,a,m)
|
num = rhoL(p,a,m)*rhoR(p,a,m)
|
||||||
GTeh_dSigC = GTeh_dSigC - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2
|
RGTeh_dSigC = RGTeh_dSigC - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2
|
||||||
end do
|
end do
|
||||||
end do
|
end do
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTeh_excitation_density(nBas,nC,nO,nR,nS,ERI,XpY,XmY,rhoL,rhoR)
|
subroutine RGTeh_excitation_density(nBas,nC,nO,nR,nS,ERI,XpY,XmY,rhoL,rhoR)
|
||||||
|
|
||||||
! Compute excitation densities
|
! Compute excitation densities
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTeh_plot_self_energy(nBas,nC,nO,nV,nR,nS,eHF,eGT,Om,rhoL,rhoR)
|
subroutine RGTeh_plot_self_energy(nBas,nC,nO,nV,nR,nS,eHF,eGT,Om,rhoL,rhoR)
|
||||||
|
|
||||||
! Dump several GTeh quantities for external plotting
|
! Dump several GTeh quantities for external plotting
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ subroutine GTeh_plot_self_energy(nBas,nC,nO,nV,nR,nS,eHF,eGT,Om,rhoL,rhoR)
|
|||||||
integer :: p,g
|
integer :: p,g
|
||||||
integer :: nGrid
|
integer :: nGrid
|
||||||
double precision :: wmin,wmax,dw
|
double precision :: wmin,wmax,dw
|
||||||
double precision,external :: GTeh_SigC,GTeh_dSigC
|
double precision,external :: RGTeh_SigC,RGTeh_dSigC
|
||||||
double precision,allocatable :: w(:)
|
double precision,allocatable :: w(:)
|
||||||
double precision,allocatable :: SigC(:,:)
|
double precision,allocatable :: SigC(:,:)
|
||||||
double precision,allocatable :: Z(:,:)
|
double precision,allocatable :: Z(:,:)
|
||||||
@ -60,8 +60,8 @@ subroutine GTeh_plot_self_energy(nBas,nC,nO,nV,nR,nS,eHF,eGT,Om,rhoL,rhoR)
|
|||||||
do g=1,nGrid
|
do g=1,nGrid
|
||||||
do p=nC+1,nBas-nR
|
do p=nC+1,nBas-nR
|
||||||
|
|
||||||
SigC(p,g) = GTeh_SigC(p,w(g),eta,nBas,nC,nO,nV,nR,nS,eGT,Om,rhoL,rhoR)
|
SigC(p,g) = RGTeh_SigC(p,w(g),eta,nBas,nC,nO,nV,nR,nS,eGT,Om,rhoL,rhoR)
|
||||||
Z(p,g) = GTeh_dSigC(p,w(g),eta,nBas,nC,nO,nV,nR,nS,eGT,Om,rhoL,rhoR)
|
Z(p,g) = RGTeh_dSigC(p,w(g),eta,nBas,nC,nO,nV,nR,nS,eGT,Om,rhoL,rhoR)
|
||||||
|
|
||||||
end do
|
end do
|
||||||
end do
|
end do
|
||||||
@ -80,10 +80,10 @@ subroutine GTeh_plot_self_energy(nBas,nC,nO,nV,nR,nS,eHF,eGT,Om,rhoL,rhoR)
|
|||||||
|
|
||||||
! Dump quantities in files as a function of w
|
! Dump quantities in files as a function of w
|
||||||
|
|
||||||
open(unit=8 ,file='GTeh_SigC.dat')
|
open(unit=8 ,file='RGTeh_SigC.dat')
|
||||||
open(unit=9 ,file='GTeh_freq.dat')
|
open(unit=9 ,file='RGTeh_freq.dat')
|
||||||
open(unit=10 ,file='GTeh_Z.dat')
|
open(unit=10 ,file='RGTeh_Z.dat')
|
||||||
open(unit=11 ,file='GTeh_A.dat')
|
open(unit=11 ,file='RGTeh_A.dat')
|
||||||
|
|
||||||
do g=1,nGrid
|
do g=1,nGrid
|
||||||
write(8 ,*) w(g)*HaToeV,(SigC(p,g)*HaToeV,p=nC+1,nBas-nR)
|
write(8 ,*) w(g)*HaToeV,(SigC(p,g)*HaToeV,p=nC+1,nBas-nR)
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTeh_self_energy(eta,nBas,nC,nO,nV,nR,nS,e,Om,rhoL,rhoR,EcGM,Sig,Z)
|
subroutine RGTeh_self_energy(eta,nBas,nC,nO,nV,nR,nS,e,Om,rhoL,rhoR,EcGM,Sig,Z)
|
||||||
|
|
||||||
! Compute correlation part of the self-energy for GTeh and the renormalization factor
|
! Compute correlation part of the self-energy for GTeh and the renormalization factor
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTeh_self_energy_diag(eta,nBas,nC,nO,nV,nR,nS,e,Om,rhoL,rhoR,EcGM,Sig,Z)
|
subroutine RGTeh_self_energy_diag(eta,nBas,nC,nO,nV,nR,nS,e,Om,rhoL,rhoR,EcGM,Sig,Z)
|
||||||
|
|
||||||
! Compute diagonal of the correlation part of the self-energy and the renormalization factor
|
! Compute diagonal of the correlation part of the self-energy and the renormalization factor
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTpp_QP_graph(eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eHF,Om1s,rho1s,Om2s,rho2s, &
|
subroutine RGTpp_QP_graph(eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eHF,Om1s,rho1s,Om2s,rho2s, &
|
||||||
Om1t,rho1t,Om2t,rho2t,eGTlin,eOld,eGT,Z)
|
Om1t,rho1t,Om2t,rho2t,eGTlin,eOld,eGT,Z)
|
||||||
|
|
||||||
! Compute the graphical solution of the QP equation
|
! Compute the graphical solution of the QP equation
|
||||||
@ -32,7 +32,7 @@ subroutine GTpp_QP_graph(eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eHF,Om1s,rho1s
|
|||||||
integer :: nIt
|
integer :: nIt
|
||||||
integer,parameter :: maxIt = 64
|
integer,parameter :: maxIt = 64
|
||||||
double precision,parameter :: thresh = 1d-6
|
double precision,parameter :: thresh = 1d-6
|
||||||
double precision,external :: GTpp_SigC,GTpp_dSigC
|
double precision,external :: RGTpp_SigC,RGTpp_dSigC
|
||||||
double precision :: SigC,dSigC
|
double precision :: SigC,dSigC
|
||||||
double precision :: f,df
|
double precision :: f,df
|
||||||
double precision :: w
|
double precision :: w
|
||||||
@ -58,8 +58,8 @@ subroutine GTpp_QP_graph(eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eHF,Om1s,rho1s
|
|||||||
|
|
||||||
nIt = nIt + 1
|
nIt = nIt + 1
|
||||||
|
|
||||||
SigC = GTpp_SigC(p,w,eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eOld,Om1s,rho1s,Om2s,rho2s,Om1t,rho1t,Om2t,rho2t)
|
SigC = RGTpp_SigC(p,w,eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eOld,Om1s,rho1s,Om2s,rho2s,Om1t,rho1t,Om2t,rho2t)
|
||||||
dSigC = GTpp_dSigC(p,w,eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eOld,Om1s,rho1s,Om2s,rho2s,Om1t,rho1t,Om2t,rho2t)
|
dSigC = RGTpp_dSigC(p,w,eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eOld,Om1s,rho1s,Om2s,rho2s,Om1t,rho1t,Om2t,rho2t)
|
||||||
f = w - eHF(p) - SigC
|
f = w - eHF(p) - SigC
|
||||||
df = 1d0/(1d0 - dSigC)
|
df = 1d0/(1d0 - dSigC)
|
||||||
w = w - df*f
|
w = w - df*f
|
@ -1,4 +1,4 @@
|
|||||||
double precision function GTpp_SigC(p,w,eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,e,Om1s,rho1s,Om2s,rho2s, &
|
double precision function RGTpp_SigC(p,w,eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,e,Om1s,rho1s,Om2s,rho2s, &
|
||||||
Om1t,rho1t,Om2t,rho2t)
|
Om1t,rho1t,Om2t,rho2t)
|
||||||
|
|
||||||
! Compute diagonal of the correlation part of the self-energy
|
! Compute diagonal of the correlation part of the self-energy
|
||||||
@ -32,7 +32,7 @@ double precision function GTpp_SigC(p,w,eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt
|
|||||||
|
|
||||||
! Initialize
|
! Initialize
|
||||||
|
|
||||||
GTpp_SigC = 0d0
|
RGTpp_SigC = 0d0
|
||||||
|
|
||||||
!----------------------------------------------
|
!----------------------------------------------
|
||||||
! Occupied part of the T-matrix self-energy
|
! Occupied part of the T-matrix self-energy
|
||||||
@ -42,12 +42,12 @@ double precision function GTpp_SigC(p,w,eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt
|
|||||||
|
|
||||||
do cd=1,nVVs
|
do cd=1,nVVs
|
||||||
eps = w + e(i) - Om1s(cd)
|
eps = w + e(i) - Om1s(cd)
|
||||||
GTpp_SigC = GTpp_SigC + rho1s(p,i,cd)**2*eps/(eps**2 + eta**2)
|
RGTpp_SigC = RGTpp_SigC + rho1s(p,i,cd)**2*eps/(eps**2 + eta**2)
|
||||||
end do
|
end do
|
||||||
|
|
||||||
do cd=1,nVVt
|
do cd=1,nVVt
|
||||||
eps = w + e(i) - Om1t(cd)
|
eps = w + e(i) - Om1t(cd)
|
||||||
GTpp_SigC = GTpp_SigC + rho1t(p,i,cd)**2*eps/(eps**2 + eta**2)
|
RGTpp_SigC = RGTpp_SigC + rho1t(p,i,cd)**2*eps/(eps**2 + eta**2)
|
||||||
end do
|
end do
|
||||||
|
|
||||||
end do
|
end do
|
||||||
@ -60,12 +60,12 @@ double precision function GTpp_SigC(p,w,eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt
|
|||||||
|
|
||||||
do kl=1,nOOs
|
do kl=1,nOOs
|
||||||
eps = w + e(a) - Om2s(kl)
|
eps = w + e(a) - Om2s(kl)
|
||||||
GTpp_SigC = GTpp_SigC + rho2s(p,a,kl)**2*eps/(eps**2 + eta**2)
|
RGTpp_SigC = RGTpp_SigC + rho2s(p,a,kl)**2*eps/(eps**2 + eta**2)
|
||||||
end do
|
end do
|
||||||
|
|
||||||
do kl=1,nOOt
|
do kl=1,nOOt
|
||||||
eps = w + e(a) - Om2t(kl)
|
eps = w + e(a) - Om2t(kl)
|
||||||
GTpp_SigC = GTpp_SigC + rho2t(p,a,kl)**2*eps/(eps**2 + eta**2)
|
RGTpp_SigC = RGTpp_SigC + rho2t(p,a,kl)**2*eps/(eps**2 + eta**2)
|
||||||
end do
|
end do
|
||||||
|
|
||||||
end do
|
end do
|
@ -1,4 +1,4 @@
|
|||||||
double precision function GTpp_dSigC(p,w,eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,e,Om1s,rho1s,Om2s,rho2s, &
|
double precision function RGTpp_dSigC(p,w,eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,e,Om1s,rho1s,Om2s,rho2s, &
|
||||||
Om1t,rho1t,Om2t,rho2t)
|
Om1t,rho1t,Om2t,rho2t)
|
||||||
|
|
||||||
! Compute diagonal of the correlation part of the self-energy
|
! Compute diagonal of the correlation part of the self-energy
|
||||||
@ -32,7 +32,7 @@ double precision function GTpp_dSigC(p,w,eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVV
|
|||||||
|
|
||||||
! Initialize
|
! Initialize
|
||||||
|
|
||||||
GTpp_dSigC = 0d0
|
RGTpp_dSigC = 0d0
|
||||||
|
|
||||||
!----------------------------------------------
|
!----------------------------------------------
|
||||||
! Occupied part of the T-matrix self-energy
|
! Occupied part of the T-matrix self-energy
|
||||||
@ -42,12 +42,12 @@ double precision function GTpp_dSigC(p,w,eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVV
|
|||||||
|
|
||||||
do cd=1,nVVs
|
do cd=1,nVVs
|
||||||
eps = w + e(i) - Om1s(cd)
|
eps = w + e(i) - Om1s(cd)
|
||||||
GTpp_dSigC = GTpp_dSigC - rho1s(p,i,cd)**2*(eps**2 - eta**2)/(eps**2 + eta**2)**2
|
RGTpp_dSigC = RGTpp_dSigC - rho1s(p,i,cd)**2*(eps**2 - eta**2)/(eps**2 + eta**2)**2
|
||||||
end do
|
end do
|
||||||
|
|
||||||
do cd=1,nVVt
|
do cd=1,nVVt
|
||||||
eps = w + e(i) - Om1t(cd)
|
eps = w + e(i) - Om1t(cd)
|
||||||
GTpp_dSigC = GTpp_dSigC - rho1t(p,i,cd)**2*(eps**2 - eta**2)/(eps**2 + eta**2)**2
|
RGTpp_dSigC = RGTpp_dSigC - rho1t(p,i,cd)**2*(eps**2 - eta**2)/(eps**2 + eta**2)**2
|
||||||
end do
|
end do
|
||||||
|
|
||||||
end do
|
end do
|
||||||
@ -61,12 +61,12 @@ double precision function GTpp_dSigC(p,w,eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVV
|
|||||||
|
|
||||||
do kl=1,nOOs
|
do kl=1,nOOs
|
||||||
eps = w + e(a) - Om2s(kl)
|
eps = w + e(a) - Om2s(kl)
|
||||||
GTpp_dSigC = GTpp_dSigC - rho2s(p,a,kl)**2*(eps**2 - eta**2)/(eps**2 + eta**2)**2
|
RGTpp_dSigC = RGTpp_dSigC - rho2s(p,a,kl)**2*(eps**2 - eta**2)/(eps**2 + eta**2)**2
|
||||||
end do
|
end do
|
||||||
|
|
||||||
do kl=1,nOOt
|
do kl=1,nOOt
|
||||||
eps = w + e(a) - Om2t(kl)
|
eps = w + e(a) - Om2t(kl)
|
||||||
GTpp_dSigC = GTpp_dSigC - rho2t(p,a,kl)**2*(eps**2 - eta**2)/(eps**2 + eta**2)**2
|
RGTpp_dSigC = RGTpp_dSigC - rho2t(p,a,kl)**2*(eps**2 - eta**2)/(eps**2 + eta**2)**2
|
||||||
end do
|
end do
|
||||||
|
|
||||||
end do
|
end do
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTpp_excitation_density(ispin,nBas,nC,nO,nV,nR,nOO,nVV,ERI,X1,Y1,rho1,X2,Y2,rho2)
|
subroutine RGTpp_excitation_density(ispin,nBas,nC,nO,nV,nR,nOO,nVV,ERI,X1,Y1,rho1,X2,Y2,rho2)
|
||||||
|
|
||||||
! Compute excitation densities for T-matrix self-energy
|
! Compute excitation densities for T-matrix self-energy
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTpp_phACFDT(exchange_kernel,doXBS,dRPA,TDA_T,TDA,BSE,singlet,triplet,eta,nBas,nC,nO,nV,nR,nS, &
|
subroutine RGTpp_phACFDT(exchange_kernel,doXBS,dRPA,TDA_T,TDA,BSE,singlet,triplet,eta,nBas,nC,nO,nV,nR,nS, &
|
||||||
nOOs,nVVs,nOOt,nVVt,Om1s,X1s,Y1s,Om2s,X2s,Y2s,rho1s,rho2s,Om1t,X1t,Y1t, &
|
nOOs,nVVs,nOOt,nVVt,Om1s,X1s,Y1s,Om2s,X2s,Y2s,rho1s,rho2s,Om1t,X1t,Y1t, &
|
||||||
Om2t,X2t,Y2t,rho1t,rho2t,ERI,eT,eGT,EcAC)
|
Om2t,X2t,Y2t,rho1t,rho2t,ERI,eT,eGT,EcAC)
|
||||||
|
|
||||||
@ -132,10 +132,10 @@ subroutine GTpp_phACFDT(exchange_kernel,doXBS,dRPA,TDA_T,TDA,BSE,singlet,triplet
|
|||||||
|
|
||||||
deallocate(Bpp,Cpp,Dpp)
|
deallocate(Bpp,Cpp,Dpp)
|
||||||
|
|
||||||
call GTpp_excitation_density(iblock,nBas,nC,nO,nV,nR,nOOs,nVVs,ERI,X1s,Y1s,rho1s,X2s,Y2s,rho2s)
|
call RGTpp_excitation_density(iblock,nBas,nC,nO,nV,nR,nOOs,nVVs,ERI,X1s,Y1s,rho1s,X2s,Y2s,rho2s)
|
||||||
|
|
||||||
call GTpp_phBSE_static_kernel_A(eta,nBas,nC,nO,nV,nR,nS,nOOs,nVVs,lambda,Om1s,rho1s,Om2s,rho2s,TAs)
|
call RGTpp_phBSE_static_kernel_A(eta,nBas,nC,nO,nV,nR,nS,nOOs,nVVs,lambda,Om1s,rho1s,Om2s,rho2s,TAs)
|
||||||
if(.not.TDA) call GTpp_phBSE_static_kernel_B(eta,nBas,nC,nO,nV,nR,nS,nOOs,nVVs,lambda,Om1s,rho1s,Om2s,rho2s,TBs)
|
if(.not.TDA) call RGTpp_phBSE_static_kernel_B(eta,nBas,nC,nO,nV,nR,nS,nOOs,nVVs,lambda,Om1s,rho1s,Om2s,rho2s,TBs)
|
||||||
|
|
||||||
isp_T = 2
|
isp_T = 2
|
||||||
iblock = 4
|
iblock = 4
|
||||||
@ -150,10 +150,10 @@ subroutine GTpp_phACFDT(exchange_kernel,doXBS,dRPA,TDA_T,TDA,BSE,singlet,triplet
|
|||||||
|
|
||||||
deallocate(Bpp,Cpp,Dpp)
|
deallocate(Bpp,Cpp,Dpp)
|
||||||
|
|
||||||
call GTpp_excitation_density(iblock,nBas,nC,nO,nV,nR,nOOt,nVVt,ERI,X1t,Y1t,rho1t,X2t,Y2t,rho2t)
|
call RGTpp_excitation_density(iblock,nBas,nC,nO,nV,nR,nOOt,nVVt,ERI,X1t,Y1t,rho1t,X2t,Y2t,rho2t)
|
||||||
|
|
||||||
call GTpp_phBSE_static_kernel_A(eta,nBas,nC,nO,nV,nR,nS,nOOt,nVVt,lambda,Om1t,rho1t,Om2t,rho2t,TAt)
|
call RGTpp_phBSE_static_kernel_A(eta,nBas,nC,nO,nV,nR,nS,nOOt,nVVt,lambda,Om1t,rho1t,Om2t,rho2t,TAt)
|
||||||
if(.not.TDA) call Gtpp_phBSE_static_kernel_B(eta,nBas,nC,nO,nV,nR,nS,nOOt,nVVt,lambda,Om1t,rho1t,Om2t,rho2t,TBt)
|
if(.not.TDA) call RGtpp_phBSE_static_kernel_B(eta,nBas,nC,nO,nV,nR,nS,nOOt,nVVt,lambda,Om1t,rho1t,Om2t,rho2t,TBt)
|
||||||
|
|
||||||
end if
|
end if
|
||||||
|
|
||||||
@ -216,10 +216,10 @@ subroutine GTpp_phACFDT(exchange_kernel,doXBS,dRPA,TDA_T,TDA,BSE,singlet,triplet
|
|||||||
|
|
||||||
deallocate(Bpp,Cpp,Dpp)
|
deallocate(Bpp,Cpp,Dpp)
|
||||||
|
|
||||||
call GTpp_excitation_density(iblock,nBas,nC,nO,nV,nR,nOOs,nVVs,ERI,X1s,Y1s,rho1s,X2s,Y2s,rho2s)
|
call RGTpp_excitation_density(iblock,nBas,nC,nO,nV,nR,nOOs,nVVs,ERI,X1s,Y1s,rho1s,X2s,Y2s,rho2s)
|
||||||
|
|
||||||
call GTpp_phBSE_static_kernel_A(eta,nBas,nC,nO,nV,nR,nS,nOOs,nVVs,lambda,Om1s,rho1s,Om2s,rho2s,TAs)
|
call RGTpp_phBSE_static_kernel_A(eta,nBas,nC,nO,nV,nR,nS,nOOs,nVVs,lambda,Om1s,rho1s,Om2s,rho2s,TAs)
|
||||||
if(.not.TDA) call GTpp_phBSE_static_kernel_B(eta,nBas,nC,nO,nV,nR,nS,nOOs,nVVs,lambda,Om1s,rho1s,Om2s,rho2s,TBs)
|
if(.not.TDA) call RGTpp_phBSE_static_kernel_B(eta,nBas,nC,nO,nV,nR,nS,nOOs,nVVs,lambda,Om1s,rho1s,Om2s,rho2s,TBs)
|
||||||
|
|
||||||
isp_T = 2
|
isp_T = 2
|
||||||
iblock = 4
|
iblock = 4
|
||||||
@ -234,10 +234,10 @@ subroutine GTpp_phACFDT(exchange_kernel,doXBS,dRPA,TDA_T,TDA,BSE,singlet,triplet
|
|||||||
|
|
||||||
deallocate(Bpp,Cpp,Dpp)
|
deallocate(Bpp,Cpp,Dpp)
|
||||||
|
|
||||||
call GTpp_excitation_density(iblock,nBas,nC,nO,nV,nR,nOOt,nVVt,ERI,X1t,Y1t,rho1t,X2t,Y2t,rho2t)
|
call RGTpp_excitation_density(iblock,nBas,nC,nO,nV,nR,nOOt,nVVt,ERI,X1t,Y1t,rho1t,X2t,Y2t,rho2t)
|
||||||
|
|
||||||
call GTpp_phBSE_static_kernel_A(eta,nBas,nC,nO,nV,nR,nS,nOOt,nVVt,lambda,Om1t,rho1t,Om2t,rho2t,TAt)
|
call RGTpp_phBSE_static_kernel_A(eta,nBas,nC,nO,nV,nR,nS,nOOt,nVVt,lambda,Om1t,rho1t,Om2t,rho2t,TAt)
|
||||||
if(.not.TDA) call GTpp_phBSE_static_kernel_B(eta,nBas,nC,nO,nV,nR,nS,nOOt,nVVt,lambda,Om1t,rho1t,Om2t,rho2t,TBt)
|
if(.not.TDA) call RGTpp_phBSE_static_kernel_B(eta,nBas,nC,nO,nV,nR,nS,nOOt,nVVt,lambda,Om1t,rho1t,Om2t,rho2t,TBt)
|
||||||
|
|
||||||
end if
|
end if
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTpp_phBSE(TDA_T,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,nS,nOOab,nVVab,nOOaa,nVVaa, &
|
subroutine RGTpp_phBSE(TDA_T,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,nS,nOOab,nVVab,nOOaa,nVVaa, &
|
||||||
Om1ab,X1ab,Y1ab,Om2ab,X2ab,Y2ab,rho1ab,rho2ab,Om1aa,X1aa,Y1aa,Om2aa,X2aa,Y2aa,rho1aa,rho2aa, &
|
Om1ab,X1ab,Y1ab,Om2ab,X2ab,Y2ab,rho1ab,rho2ab,Om1aa,X1aa,Y1aa,Om2aa,X2aa,Y2aa,rho1aa,rho2aa, &
|
||||||
ERI,dipole_int,eT,eGT,EcBSE)
|
ERI,dipole_int,eT,eGT,EcBSE)
|
||||||
|
|
||||||
@ -98,8 +98,8 @@ subroutine GTpp_phBSE(TDA_T,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,n
|
|||||||
|
|
||||||
deallocate(Bpp,Cpp,Dpp)
|
deallocate(Bpp,Cpp,Dpp)
|
||||||
|
|
||||||
call GTpp_phBSE_static_kernel_A(eta,nBas,nC,nO,nV,nR,nS,nOOab,nVVab,1d0,Om1ab,rho1ab,Om2ab,rho2ab,TAab)
|
call RGTpp_phBSE_static_kernel_A(eta,nBas,nC,nO,nV,nR,nS,nOOab,nVVab,1d0,Om1ab,rho1ab,Om2ab,rho2ab,TAab)
|
||||||
if(.not.TDA) call GTpp_phBSE_static_kernel_B(eta,nBas,nC,nO,nV,nR,nS,nOOab,nVVab,1d0,Om1ab,rho1ab,Om2ab,rho2ab,TBab)
|
if(.not.TDA) call RGTpp_phBSE_static_kernel_B(eta,nBas,nC,nO,nV,nR,nS,nOOab,nVVab,1d0,Om1ab,rho1ab,Om2ab,rho2ab,TBab)
|
||||||
|
|
||||||
!----------------------------------------!
|
!----------------------------------------!
|
||||||
! Compute T-matrix for alpha-alpha block !
|
! Compute T-matrix for alpha-alpha block !
|
||||||
@ -118,8 +118,8 @@ subroutine GTpp_phBSE(TDA_T,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,n
|
|||||||
|
|
||||||
deallocate(Bpp,Cpp,Dpp)
|
deallocate(Bpp,Cpp,Dpp)
|
||||||
|
|
||||||
call GTpp_phBSE_static_kernel_A(eta,nBas,nC,nO,nV,nR,nS,nOOaa,nVVaa,1d0,Om1aa,rho1aa,Om2aa,rho2aa,TAaa)
|
call RGTpp_phBSE_static_kernel_A(eta,nBas,nC,nO,nV,nR,nS,nOOaa,nVVaa,1d0,Om1aa,rho1aa,Om2aa,rho2aa,TAaa)
|
||||||
if(.not.TDA) call GTpp_phBSE_static_kernel_B(eta,nBas,nC,nO,nV,nR,nS,nOOaa,nVVaa,1d0,Om1aa,rho1aa,Om2aa,rho2aa,TBaa)
|
if(.not.TDA) call RGTpp_phBSE_static_kernel_B(eta,nBas,nC,nO,nV,nR,nS,nOOaa,nVVaa,1d0,Om1aa,rho1aa,Om2aa,rho2aa,TBaa)
|
||||||
|
|
||||||
!------------------!
|
!------------------!
|
||||||
! Singlet manifold !
|
! Singlet manifold !
|
||||||
@ -145,7 +145,7 @@ subroutine GTpp_phBSE(TDA_T,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,n
|
|||||||
! Compute dynamic correction for BSE via renormalized perturbation theory
|
! Compute dynamic correction for BSE via renormalized perturbation theory
|
||||||
|
|
||||||
if(dBSE) &
|
if(dBSE) &
|
||||||
call GTpp_phBSE_dynamic_perturbation(ispin,dTDA,eta,nBas,nC,nO,nV,nR,nS,nOOab,nVVab,nOOaa,nVVaa, &
|
call RGTpp_phBSE_dynamic_perturbation(ispin,dTDA,eta,nBas,nC,nO,nV,nR,nS,nOOab,nVVab,nOOaa,nVVaa, &
|
||||||
Om1ab,Om2ab,Om1aa,Om2aa,rho1ab,rho2ab,rho1aa,rho2aa,eT,eGT, &
|
Om1ab,Om2ab,Om1aa,Om2aa,rho1ab,rho2ab,rho1aa,rho2aa,eT,eGT, &
|
||||||
dipole_int,OmBSE,XpY_BSE,XmY_BSE,TAab,TAaa)
|
dipole_int,OmBSE,XpY_BSE,XmY_BSE,TAab,TAaa)
|
||||||
|
|
||||||
@ -175,7 +175,7 @@ subroutine GTpp_phBSE(TDA_T,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,n
|
|||||||
! Compute dynamic correction for BSE via renormalized perturbation theory
|
! Compute dynamic correction for BSE via renormalized perturbation theory
|
||||||
|
|
||||||
if(dBSE) &
|
if(dBSE) &
|
||||||
call GTpp_phBSE_dynamic_perturbation(ispin,dTDA,eta,nBas,nC,nO,nV,nR,nS,nOOab,nVVab,nOOaa,nVVaa, &
|
call RGTpp_phBSE_dynamic_perturbation(ispin,dTDA,eta,nBas,nC,nO,nV,nR,nS,nOOab,nVVab,nOOaa,nVVaa, &
|
||||||
Om1ab,Om2ab,Om1aa,Om2aa,rho1ab,rho2ab,rho1aa,rho2aa,eT,eGT, &
|
Om1ab,Om2ab,Om1aa,Om2aa,rho1ab,rho2ab,rho1aa,rho2aa,eT,eGT, &
|
||||||
dipole_int,OmBSE,XpY_BSE,XmY_BSE,TAab,TAaa)
|
dipole_int,OmBSE,XpY_BSE,XmY_BSE,TAab,TAaa)
|
||||||
end if
|
end if
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTpp_phBSE_dynamic_kernel_A(eta,nBas,nC,nO,nV,nR,nS,nOO,nVV,lambda,eGT,Om1,Om2,rho1,rho2,OmBSE,TA,ZA)
|
subroutine RGTpp_phBSE_dynamic_kernel_A(eta,nBas,nC,nO,nV,nR,nS,nOO,nVV,lambda,eGT,Om1,Om2,rho1,rho2,OmBSE,TA,ZA)
|
||||||
|
|
||||||
! Compute the dynamic part of the Bethe-Salpeter equation matrices for GT
|
! Compute the dynamic part of the Bethe-Salpeter equation matrices for GT
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTpp_phBSE_dynamic_kernel_B(eta,nBas,nC,nO,nV,nR,nS,nOO,nVV,lambda,eGT,Omega1,Omega2,rho1,rho2,OmBSE,TB,ZB)
|
subroutine RGTpp_phBSE_dynamic_kernel_B(eta,nBas,nC,nO,nV,nR,nS,nOO,nVV,lambda,eGT,Omega1,Omega2,rho1,rho2,OmBSE,TB,ZB)
|
||||||
|
|
||||||
! Compute the off-diagonal dynamic part of the Bethe-Salpeter equation matrices for GT
|
! Compute the off-diagonal dynamic part of the Bethe-Salpeter equation matrices for GT
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTpp_phBSE_dynamic_perturbation(ispin,dTDA,eta,nBas,nC,nO,nV,nR,nS,nOOab,nVVab,nOOaa,nVVaa,Om1ab,Om2ab,Om1aa,Om2aa, &
|
subroutine RGTpp_phBSE_dynamic_perturbation(ispin,dTDA,eta,nBas,nC,nO,nV,nR,nS,nOOab,nVVab,nOOaa,nVVaa,Om1ab,Om2ab,Om1aa,Om2aa, &
|
||||||
rho1ab,rho2ab,rho1aa,rho2aa,eT,eGT,dipole_int,OmBSE,XpY,XmY,TAab,TAaa)
|
rho1ab,rho2ab,rho1aa,rho2aa,eT,eGT,dipole_int,OmBSE,XpY,XmY,TAab,TAaa)
|
||||||
|
|
||||||
! Compute dynamical effects via perturbation theory for BSE@GT
|
! Compute dynamical effects via perturbation theory for BSE@GT
|
||||||
@ -81,11 +81,11 @@ subroutine GTpp_phBSE_dynamic_perturbation(ispin,dTDA,eta,nBas,nC,nO,nV,nR,nS,nO
|
|||||||
|
|
||||||
! Compute dynamical T-matrix for alpha-beta block
|
! Compute dynamical T-matrix for alpha-beta block
|
||||||
|
|
||||||
call GTpp_phBSE_dynamic_kernel_A(eta,nBas,nC,nO,nV,nR,nS,nOOab,nVVab,1d0,eGT,Om1ab,Om2ab,rho1ab,rho2ab,OmBSE(ia),dTAab,ZAab)
|
call RGTpp_phBSE_dynamic_kernel_A(eta,nBas,nC,nO,nV,nR,nS,nOOab,nVVab,1d0,eGT,Om1ab,Om2ab,rho1ab,rho2ab,OmBSE(ia),dTAab,ZAab)
|
||||||
|
|
||||||
! Compute dynamical T-matrix for alpha-beta block
|
! Compute dynamical T-matrix for alpha-beta block
|
||||||
|
|
||||||
call GTpp_phBSE_dynamic_kernel_A(eta,nBas,nC,nO,nV,nR,nS,nOOaa,nVVaa,1d0,eGT,Om1aa,Om2aa,rho1aa,rho2aa,OmBSE(ia),dTAaa,ZAaa)
|
call RGTpp_phBSE_dynamic_kernel_A(eta,nBas,nC,nO,nV,nR,nS,nOOaa,nVVaa,1d0,eGT,Om1aa,Om2aa,rho1aa,rho2aa,OmBSE(ia),dTAaa,ZAaa)
|
||||||
|
|
||||||
X(:) = 0.5d0*(XpY(ia,:) + XmY(ia,:))
|
X(:) = 0.5d0*(XpY(ia,:) + XmY(ia,:))
|
||||||
Y(:) = 0.5d0*(XpY(ia,:) - XmY(ia,:))
|
Y(:) = 0.5d0*(XpY(ia,:) - XmY(ia,:))
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTpp_phBSE_static_kernel_A(eta,nBas,nC,nO,nV,nR,nS,nOO,nVV,lambda,Omega1,rho1,Omega2,rho2,KA)
|
subroutine RGTpp_phBSE_static_kernel_A(eta,nBas,nC,nO,nV,nR,nS,nOO,nVV,lambda,Omega1,rho1,Omega2,rho2,KA)
|
||||||
|
|
||||||
! Compute the OOVV block of the static T-matrix
|
! Compute the OOVV block of the static T-matrix
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTpp_phBSE_static_kernel_B(eta,nBas,nC,nO,nV,nR,nS,nOO,nVV,lambda,Omega1,rho1,Omega2,rho2,KB)
|
subroutine RGTpp_phBSE_static_kernel_B(eta,nBas,nC,nO,nV,nR,nS,nOO,nVV,lambda,Omega1,rho1,Omega2,rho2,KB)
|
||||||
|
|
||||||
! Compute the OVVO block of the static T-matrix
|
! Compute the OVVO block of the static T-matrix
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTpp_plot_self_energy(nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eHF,eGT,Om1s,rho1s,Om2s,rho2s, &
|
subroutine RGTpp_plot_self_energy(nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eHF,eGT,Om1s,rho1s,Om2s,rho2s, &
|
||||||
Om1t,rho1t,Om2t,rho2t)
|
Om1t,rho1t,Om2t,rho2t)
|
||||||
|
|
||||||
! Dump several GTpp quantities for external plotting
|
! Dump several GTpp quantities for external plotting
|
||||||
@ -29,7 +29,7 @@ subroutine GTpp_plot_self_energy(nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eHF,eGT,Om
|
|||||||
integer :: p,g
|
integer :: p,g
|
||||||
integer :: nGrid
|
integer :: nGrid
|
||||||
double precision :: wmin,wmax,dw
|
double precision :: wmin,wmax,dw
|
||||||
double precision,external :: GTpp_SigC,GTpp_dSigC
|
double precision,external :: RGTpp_SigC,RGTpp_dSigC
|
||||||
double precision,allocatable :: w(:)
|
double precision,allocatable :: w(:)
|
||||||
double precision,allocatable :: SigC(:,:)
|
double precision,allocatable :: SigC(:,:)
|
||||||
double precision,allocatable :: Z(:,:)
|
double precision,allocatable :: Z(:,:)
|
||||||
@ -64,8 +64,8 @@ subroutine GTpp_plot_self_energy(nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eHF,eGT,Om
|
|||||||
do g=1,nGrid
|
do g=1,nGrid
|
||||||
do p=nC+1,nBas-nR
|
do p=nC+1,nBas-nR
|
||||||
|
|
||||||
SigC(p,g) = GTpp_SigC(p,w(g),eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eGT,Om1s,rho1s,Om2s,rho2s,Om1t,rho1t,Om2t,rho2t)
|
SigC(p,g) = RGTpp_SigC(p,w(g),eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eGT,Om1s,rho1s,Om2s,rho2s,Om1t,rho1t,Om2t,rho2t)
|
||||||
Z(p,g) = GTpp_dSigC(p,w(g),eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eGT,Om1s,rho1s,Om2s,rho2s,Om1t,rho1t,Om2t,rho2t)
|
Z(p,g) = RGTpp_dSigC(p,w(g),eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eGT,Om1s,rho1s,Om2s,rho2s,Om1t,rho1t,Om2t,rho2t)
|
||||||
|
|
||||||
end do
|
end do
|
||||||
end do
|
end do
|
||||||
@ -84,10 +84,10 @@ subroutine GTpp_plot_self_energy(nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eHF,eGT,Om
|
|||||||
|
|
||||||
! Dump quantities in files as a function of w
|
! Dump quantities in files as a function of w
|
||||||
|
|
||||||
open(unit=8 ,file='GTpp_SigC.dat')
|
open(unit=8 ,file='RGTpp_SigC.dat')
|
||||||
open(unit=9 ,file='GTpp_freq.dat')
|
open(unit=9 ,file='RGTpp_freq.dat')
|
||||||
open(unit=10 ,file='GTpp_Z.dat')
|
open(unit=10 ,file='RGTpp_Z.dat')
|
||||||
open(unit=11 ,file='GTpp_A.dat')
|
open(unit=11 ,file='RGTpp_A.dat')
|
||||||
|
|
||||||
do g=1,nGrid
|
do g=1,nGrid
|
||||||
write(8 ,*) w(g)*HaToeV,(SigC(p,g)*HaToeV,p=nC+1,nBas-nR)
|
write(8 ,*) w(g)*HaToeV,(SigC(p,g)*HaToeV,p=nC+1,nBas-nR)
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTpp_ppBSE(TDA_T,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,nOOab,nVVab,nOOaa,nVVaa, &
|
subroutine RGTpp_ppBSE(TDA_T,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,nOOab,nVVab,nOOaa,nVVaa, &
|
||||||
Om1ab,X1ab,Y1ab,Om2ab,X2ab,Y2ab,rho1ab,rho2ab,Om1aa,X1aa,Y1aa,Om2aa,X2aa,Y2aa,rho1aa,rho2aa, &
|
Om1ab,X1ab,Y1ab,Om2ab,X2ab,Y2ab,rho1ab,rho2ab,Om1aa,X1aa,Y1aa,Om2aa,X2aa,Y2aa,rho1aa,rho2aa, &
|
||||||
ERI,dipole_int,eT,eGT,EcBSE)
|
ERI,dipole_int,eT,eGT,EcBSE)
|
||||||
|
|
||||||
@ -105,11 +105,11 @@ subroutine GTpp_ppBSE(TDA_T,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,n
|
|||||||
deallocate(Bpp,Cpp,Dpp)
|
deallocate(Bpp,Cpp,Dpp)
|
||||||
allocate(TBab(nVVs,nOOs),TCab(nVVs,nVVs),TDab(nOOs,nOOs))
|
allocate(TBab(nVVs,nOOs),TCab(nVVs,nVVs),TDab(nOOs,nOOs))
|
||||||
|
|
||||||
if(.not.TDA_T) call GTpp_ppBSE_static_kernel_B(ispin,eta,nBas,nC,nO,nV,nR,nOOab,nVVab,nOOs,nVVs,1d0, &
|
if(.not.TDA_T) call RGTpp_ppBSE_static_kernel_B(ispin,eta,nBas,nC,nO,nV,nR,nOOab,nVVab,nOOs,nVVs,1d0, &
|
||||||
Om1ab,rho1ab,Om2ab,rho2ab,TBab)
|
Om1ab,rho1ab,Om2ab,rho2ab,TBab)
|
||||||
call GTpp_ppBSE_static_kernel_C(ispin,eta,nBas,nC,nO,nV,nR,nOOab,nVVab,nOOs,nVVs,1d0, &
|
call RGTpp_ppBSE_static_kernel_C(ispin,eta,nBas,nC,nO,nV,nR,nOOab,nVVab,nOOs,nVVs,1d0, &
|
||||||
Om1ab,rho1ab,Om2ab,rho2ab,TCab)
|
Om1ab,rho1ab,Om2ab,rho2ab,TCab)
|
||||||
call GTpp_ppBSE_static_kernel_D(ispin,eta,nBas,nC,nO,nV,nR,nOOab,nVVab,nOOs,nVVs,1d0, &
|
call RGTpp_ppBSE_static_kernel_D(ispin,eta,nBas,nC,nO,nV,nR,nOOab,nVVab,nOOs,nVVs,1d0, &
|
||||||
Om1ab,rho1ab,Om2ab,rho2ab,TDab)
|
Om1ab,rho1ab,Om2ab,rho2ab,TDab)
|
||||||
|
|
||||||
!----------------------------------------!
|
!----------------------------------------!
|
||||||
@ -129,11 +129,11 @@ subroutine GTpp_ppBSE(TDA_T,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,n
|
|||||||
deallocate(Bpp,Cpp,Dpp)
|
deallocate(Bpp,Cpp,Dpp)
|
||||||
allocate(TBaa(nVVs,nOOs),TCaa(nVVs,nVVs),TDaa(nOOs,nOOs))
|
allocate(TBaa(nVVs,nOOs),TCaa(nVVs,nVVs),TDaa(nOOs,nOOs))
|
||||||
|
|
||||||
if(.not.TDA_T) call GTpp_ppBSE_static_kernel_B(ispin,eta,nBas,nC,nO,nV,nR,nOOaa,nVVaa,nOOs,nVVs,1d0, &
|
if(.not.TDA_T) call RGTpp_ppBSE_static_kernel_B(ispin,eta,nBas,nC,nO,nV,nR,nOOaa,nVVaa,nOOs,nVVs,1d0, &
|
||||||
Om1aa,rho1aa,Om2aa,rho2aa,TBaa)
|
Om1aa,rho1aa,Om2aa,rho2aa,TBaa)
|
||||||
call GTpp_ppBSE_static_kernel_C(ispin,eta,nBas,nC,nO,nV,nR,nOOaa,nVVaa,nOOs,nVVs,1d0, &
|
call RGTpp_ppBSE_static_kernel_C(ispin,eta,nBas,nC,nO,nV,nR,nOOaa,nVVaa,nOOs,nVVs,1d0, &
|
||||||
Om1aa,rho1aa,Om2aa,rho2aa,TCaa)
|
Om1aa,rho1aa,Om2aa,rho2aa,TCaa)
|
||||||
call GTpp_ppBSE_static_kernel_D(ispin,eta,nBas,nC,nO,nV,nR,nOOaa,nVVaa,nOOs,nVVs,1d0, &
|
call RGTpp_ppBSE_static_kernel_D(ispin,eta,nBas,nC,nO,nV,nR,nOOaa,nVVaa,nOOs,nVVs,1d0, &
|
||||||
Om1aa,rho1aa,Om2aa,rho2aa,TDaa)
|
Om1aa,rho1aa,Om2aa,rho2aa,TDaa)
|
||||||
|
|
||||||
!----------------------------------!
|
!----------------------------------!
|
||||||
@ -189,11 +189,11 @@ subroutine GTpp_ppBSE(TDA_T,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,n
|
|||||||
deallocate(Bpp,Cpp,Dpp)
|
deallocate(Bpp,Cpp,Dpp)
|
||||||
allocate(TBab(nVVt,nOOt),TCab(nVVt,nVVt),TDab(nOOt,nOOt))
|
allocate(TBab(nVVt,nOOt),TCab(nVVt,nVVt),TDab(nOOt,nOOt))
|
||||||
|
|
||||||
if(.not.TDA_T) call GTpp_ppBSE_static_kernel_B(ispin,eta,nBas,nC,nO,nV,nR,nOOab,nVVab,nOOt,nVVt,1d0, &
|
if(.not.TDA_T) call RGTpp_ppBSE_static_kernel_B(ispin,eta,nBas,nC,nO,nV,nR,nOOab,nVVab,nOOt,nVVt,1d0, &
|
||||||
Om1ab,rho1ab,Om2ab,rho2ab,TBab)
|
Om1ab,rho1ab,Om2ab,rho2ab,TBab)
|
||||||
call GTpp_ppBSE_static_kernel_C(ispin,eta,nBas,nC,nO,nV,nR,nOOab,nVVab,nOOt,nVVt,1d0, &
|
call RGTpp_ppBSE_static_kernel_C(ispin,eta,nBas,nC,nO,nV,nR,nOOab,nVVab,nOOt,nVVt,1d0, &
|
||||||
Om1ab,rho1ab,Om2ab,rho2ab,TCab)
|
Om1ab,rho1ab,Om2ab,rho2ab,TCab)
|
||||||
call GTpp_ppBSE_static_kernel_D(ispin,eta,nBas,nC,nO,nV,nR,nOOab,nVVab,nOOt,nVVt,1d0, &
|
call RGTpp_ppBSE_static_kernel_D(ispin,eta,nBas,nC,nO,nV,nR,nOOab,nVVab,nOOt,nVVt,1d0, &
|
||||||
Om1ab,rho1ab,Om2ab,rho2ab,TDab)
|
Om1ab,rho1ab,Om2ab,rho2ab,TDab)
|
||||||
|
|
||||||
!----------------------------------------!
|
!----------------------------------------!
|
||||||
@ -213,11 +213,11 @@ subroutine GTpp_ppBSE(TDA_T,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,n
|
|||||||
deallocate(Bpp,Cpp,Dpp)
|
deallocate(Bpp,Cpp,Dpp)
|
||||||
allocate(TBaa(nVVt,nOOt),TCaa(nVVt,nVVt),TDaa(nOOt,nOOt))
|
allocate(TBaa(nVVt,nOOt),TCaa(nVVt,nVVt),TDaa(nOOt,nOOt))
|
||||||
|
|
||||||
if(.not.TDA_T) call GTpp_ppBSE_static_kernel_B(ispin,eta,nBas,nC,nO,nV,nR,nOOaa,nVVaa,nOOt,nVVt,1d0, &
|
if(.not.TDA_T) call RGTpp_ppBSE_static_kernel_B(ispin,eta,nBas,nC,nO,nV,nR,nOOaa,nVVaa,nOOt,nVVt,1d0, &
|
||||||
Om1aa,rho1aa,Om2aa,rho2aa,TBaa)
|
Om1aa,rho1aa,Om2aa,rho2aa,TBaa)
|
||||||
call GTpp_ppBSE_static_kernel_C(ispin,eta,nBas,nC,nO,nV,nR,nOOaa,nVVaa,nOOt,nVVt,1d0, &
|
call RGTpp_ppBSE_static_kernel_C(ispin,eta,nBas,nC,nO,nV,nR,nOOaa,nVVaa,nOOt,nVVt,1d0, &
|
||||||
Om1aa,rho1aa,Om2aa,rho2aa,TCaa)
|
Om1aa,rho1aa,Om2aa,rho2aa,TCaa)
|
||||||
call GTpp_ppBSE_static_kernel_D(ispin,eta,nBas,nC,nO,nV,nR,nOOaa,nVVaa,nOOt,nVVt,1d0, &
|
call RGTpp_ppBSE_static_kernel_D(ispin,eta,nBas,nC,nO,nV,nR,nOOaa,nVVaa,nOOt,nVVt,1d0, &
|
||||||
Om1aa,rho1aa,Om2aa,rho2aa,TDaa)
|
Om1aa,rho1aa,Om2aa,rho2aa,TDaa)
|
||||||
|
|
||||||
!----------------------------------!
|
!----------------------------------!
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTpp_ppBSE_static_kernel_B(ispin,eta,nBas,nC,nO,nV,nR,nOO,nVV,nOOx,nVVx,lambda,Om1,rho1,Om2,rho2,TB)
|
subroutine RGTpp_ppBSE_static_kernel_B(ispin,eta,nBas,nC,nO,nV,nR,nOO,nVV,nOOx,nVVx,lambda,Om1,rho1,Om2,rho2,TB)
|
||||||
|
|
||||||
! Compute the VVOO block of the static T-matrix
|
! Compute the VVOO block of the static T-matrix
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTpp_ppBSE_static_kernel_C(ispin,eta,nBas,nC,nO,nV,nR,nOO,nVV,nOOx,nVVx,lambda,Om1,rho1,Om2,rho2,TC)
|
subroutine RGTpp_ppBSE_static_kernel_C(ispin,eta,nBas,nC,nO,nV,nR,nOO,nVV,nOOx,nVVx,lambda,Om1,rho1,Om2,rho2,TC)
|
||||||
|
|
||||||
! Compute the VVVV block of the static T-matrix
|
! Compute the VVVV block of the static T-matrix
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTpp_ppBSE_static_kernel_D(ispin,eta,nBas,nC,nO,nV,nR,nOO,nVV,nOOx,nVVx,lambda,Om1,rho1,Om2,rho2,TD)
|
subroutine RGTpp_ppBSE_static_kernel_D(ispin,eta,nBas,nC,nO,nV,nR,nOO,nVV,nOOx,nVVx,lambda,Om1,rho1,Om2,rho2,TD)
|
||||||
|
|
||||||
! Compute the OOOO block of the static T-matrix
|
! Compute the OOOO block of the static T-matrix
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTpp_self_energy(eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,e,Om1s,rho1s,Om2s,rho2s,Om1t,rho1t,Om2t,rho2t,EcGM,Sig,Z)
|
subroutine RGTpp_self_energy(eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,e,Om1s,rho1s,Om2s,rho2s,Om1t,rho1t,Om2t,rho2t,EcGM,Sig,Z)
|
||||||
|
|
||||||
! Compute the correlation part of the T-matrix self-energy and the renormalization factor
|
! Compute the correlation part of the T-matrix self-energy and the renormalization factor
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
subroutine GTpp_self_energy_diag(eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,e,Om1s,rho1s,Om2s,rho2s,Om1t,rho1t,Om2t,rho2t, &
|
subroutine RGTpp_self_energy_diag(eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,e,Om1s,rho1s,Om2s,rho2s,Om1t,rho1t,Om2t,rho2t, &
|
||||||
EcGM,Sig,Z)
|
EcGM,Sig,Z)
|
||||||
|
|
||||||
! Compute diagonal of the correlation part of the T-matrix self-energy
|
! Compute diagonal of the correlation part of the T-matrix self-energy
|
@ -131,13 +131,13 @@ subroutine evRGTeh(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,d
|
|||||||
|
|
||||||
! Compute spectral weights
|
! Compute spectral weights
|
||||||
|
|
||||||
call GTeh_excitation_density(nBas,nC,nO,nR,nS,ERI,XpY,XmY,rhoL,rhoR)
|
call RGTeh_excitation_density(nBas,nC,nO,nR,nS,ERI,XpY,XmY,rhoL,rhoR)
|
||||||
|
|
||||||
! Compute correlation part of the self-energy
|
! Compute correlation part of the self-energy
|
||||||
|
|
||||||
if(regularize) call GTeh_regularization(nBas,nC,nO,nV,nR,nS,eGT,Om,rhoL,rhoR)
|
if(regularize) call GTeh_regularization(nBas,nC,nO,nV,nR,nS,eGT,Om,rhoL,rhoR)
|
||||||
|
|
||||||
call GTeh_self_energy_diag(eta,nBas,nC,nO,nV,nR,nS,eGT,Om,rhoL,rhoR,EcGM,Sig,Z)
|
call RGTeh_self_energy_diag(eta,nBas,nC,nO,nV,nR,nS,eGT,Om,rhoL,rhoR,EcGM,Sig,Z)
|
||||||
|
|
||||||
! Solve the quasi-particle equation
|
! Solve the quasi-particle equation
|
||||||
|
|
||||||
@ -155,7 +155,7 @@ subroutine evRGTeh(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,d
|
|||||||
write(*,*) ' *** Quasiparticle energies obtained by root search *** '
|
write(*,*) ' *** Quasiparticle energies obtained by root search *** '
|
||||||
write(*,*)
|
write(*,*)
|
||||||
|
|
||||||
call GTeh_QP_graph(eta,nBas,nC,nO,nV,nR,nS,eHF,Om,rhoL,rhoR,eOld,eOld,eGT,Z)
|
call RGTeh_QP_graph(eta,nBas,nC,nO,nV,nR,nS,eHF,Om,rhoL,rhoR,eOld,eOld,eGT,Z)
|
||||||
|
|
||||||
end if
|
end if
|
||||||
|
|
||||||
|
@ -178,10 +178,10 @@ subroutine evRGTpp(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,B
|
|||||||
!----------------------------------------------
|
!----------------------------------------------
|
||||||
|
|
||||||
iblock = 3
|
iblock = 3
|
||||||
call GTpp_excitation_density(iblock,nBas,nC,nO,nV,nR,nOOs,nVVs,ERI,X1s,Y1s,rho1s,X2s,Y2s,rho2s)
|
call RGTpp_excitation_density(iblock,nBas,nC,nO,nV,nR,nOOs,nVVs,ERI,X1s,Y1s,rho1s,X2s,Y2s,rho2s)
|
||||||
|
|
||||||
iblock = 4
|
iblock = 4
|
||||||
call GTpp_excitation_density(iblock,nBas,nC,nO,nV,nR,nOOt,nVVt,ERI,X1t,Y1t,rho1t,X2t,Y2t,rho2t)
|
call RGTpp_excitation_density(iblock,nBas,nC,nO,nV,nR,nOOt,nVVt,ERI,X1t,Y1t,rho1t,X2t,Y2t,rho2t)
|
||||||
|
|
||||||
!----------------------------------------------
|
!----------------------------------------------
|
||||||
! Compute T-matrix version of the self-energy
|
! Compute T-matrix version of the self-energy
|
||||||
@ -192,7 +192,7 @@ subroutine evRGTpp(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,B
|
|||||||
call GTpp_regularization(eta,nBas,nC,nO,nV,nR,nOOt,nVVt,eGT,Om1t,rho1t,Om2t,rho2t)
|
call GTpp_regularization(eta,nBas,nC,nO,nV,nR,nOOt,nVVt,eGT,Om1t,rho1t,Om2t,rho2t)
|
||||||
end if
|
end if
|
||||||
|
|
||||||
call GTpp_self_energy_diag(eta,nBas,nC,nO,nV,nR,nooS,nVVt,nOOt,nVVt,eGT,Om1s,rho1s,Om2s,rho2s, &
|
call RGTpp_self_energy_diag(eta,nBas,nC,nO,nV,nR,nooS,nVVt,nOOt,nVVt,eGT,Om1s,rho1s,Om2s,rho2s, &
|
||||||
Om1t,rho1t,Om2t,rho2t,EcGM,Sig,Z)
|
Om1t,rho1t,Om2t,rho2t,EcGM,Sig,Z)
|
||||||
|
|
||||||
!----------------------------------------------
|
!----------------------------------------------
|
||||||
@ -211,7 +211,7 @@ subroutine evRGTpp(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,B
|
|||||||
write(*,*) ' *** Quasiparticle energies obtained by root search *** '
|
write(*,*) ' *** Quasiparticle energies obtained by root search *** '
|
||||||
write(*,*)
|
write(*,*)
|
||||||
|
|
||||||
call GTpp_QP_graph(eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eHF,Om1s,rho1s,Om2s,rho2s, &
|
call RGTpp_QP_graph(eta,nBas,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eHF,Om1s,rho1s,Om2s,rho2s, &
|
||||||
Om1t,rho1t,Om2t,rho2t,eOld,eOld,eGT,Z)
|
Om1t,rho1t,Om2t,rho2t,eOld,eOld,eGT,Z)
|
||||||
|
|
||||||
end if
|
end if
|
||||||
@ -252,7 +252,7 @@ subroutine evRGTpp(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,B
|
|||||||
|
|
||||||
if(BSE) then
|
if(BSE) then
|
||||||
|
|
||||||
call GTpp_phBSE(TDA_T,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,nS,nOOs,nVVs,nOOt,nVVt, &
|
call RGTpp_phBSE(TDA_T,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,nS,nOOs,nVVs,nOOt,nVVt, &
|
||||||
Om1s,X1s,Y1s,Om2s,X2s,Y2s,rho1s,rho2s,Om1t,X1t,Y1t,Om2t,X2t,Y2t,rho1t,rho2t, &
|
Om1s,X1s,Y1s,Om2s,X2s,Y2s,rho1s,rho2s,Om1t,X1t,Y1t,Om2t,X2t,Y2t,rho1t,rho2t, &
|
||||||
ERI,dipole_int,eGT,eGT,EcBSE)
|
ERI,dipole_int,eGT,eGT,EcBSE)
|
||||||
|
|
||||||
@ -288,7 +288,7 @@ subroutine evRGTpp(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,B
|
|||||||
|
|
||||||
end if
|
end if
|
||||||
|
|
||||||
call GTpp_phACFDT(exchange_kernel,doXBS,.false.,TDA_T,TDA,BSE,singlet,triplet,eta,nBas,nC,nO,nV,nR,nS, &
|
call RGTpp_phACFDT(exchange_kernel,doXBS,.false.,TDA_T,TDA,BSE,singlet,triplet,eta,nBas,nC,nO,nV,nR,nS, &
|
||||||
nOOs,nVVs,nOOt,nVVt,Om1s,X1s,Y1s,Om2s,X2s,Y2s,rho1s,rho2s,Om1t,X1t,Y1t, &
|
nOOs,nVVs,nOOt,nVVt,Om1s,X1s,Y1s,Om2s,X2s,Y2s,rho1s,rho2s,Om1t,X1t,Y1t, &
|
||||||
Om2t,X2t,Y2t,rho1t,rho2t,ERI,eGT,eGT,EcBSE)
|
Om2t,X2t,Y2t,rho1t,rho2t,ERI,eGT,eGT,EcBSE)
|
||||||
|
|
||||||
|
@ -206,11 +206,11 @@ subroutine qsRGTeh(dotest, maxSCF, thresh, max_diis, doACFDT, exchange_kernel, d
|
|||||||
|
|
||||||
! Compute correlation part of the self-energy
|
! Compute correlation part of the self-energy
|
||||||
|
|
||||||
call GTeh_excitation_density(nOrb,nC,nO,nR,nS,ERI_MO,XpY,XmY,rhoL,rhoR)
|
call RGTeh_excitation_density(nOrb,nC,nO,nR,nS,ERI_MO,XpY,XmY,rhoL,rhoR)
|
||||||
|
|
||||||
if(regularize) call GTeh_regularization(nOrb,nC,nO,nV,nR,nS,eGT,Om,rhoL,rhoR)
|
if(regularize) call GTeh_regularization(nOrb,nC,nO,nV,nR,nS,eGT,Om,rhoL,rhoR)
|
||||||
|
|
||||||
call GTeh_self_energy(eta,nOrb,nC,nO,nV,nR,nS,eGT,Om,rhoL,rhoR,EcGM,Sig,Z)
|
call RGTeh_self_energy(eta,nOrb,nC,nO,nV,nR,nS,eGT,Om,rhoL,rhoR,EcGM,Sig,Z)
|
||||||
|
|
||||||
! Make correlation self-energy Hermitian and transform it back to AO basis
|
! Make correlation self-energy Hermitian and transform it back to AO basis
|
||||||
|
|
||||||
|
@ -236,17 +236,17 @@ subroutine qsRGTpp(dotest, maxSCF, thresh, max_diis, doACFDT, exchange_kernel, d
|
|||||||
! Compute correlation part of the self-energy
|
! Compute correlation part of the self-energy
|
||||||
|
|
||||||
iblock = 3
|
iblock = 3
|
||||||
call GTpp_excitation_density(iblock,nOrb,nC,nO,nV,nR,nOOs,nVVs,ERI_MO,X1s,Y1s,rho1s,X2s,Y2s,rho2s)
|
call RGTpp_excitation_density(iblock,nOrb,nC,nO,nV,nR,nOOs,nVVs,ERI_MO,X1s,Y1s,rho1s,X2s,Y2s,rho2s)
|
||||||
|
|
||||||
iblock = 4
|
iblock = 4
|
||||||
call GTpp_excitation_density(iblock,nOrb,nC,nO,nV,nR,nOOt,nVVt,ERI_MO,X1t,Y1t,rho1t,X2t,Y2t,rho2t)
|
call RGTpp_excitation_density(iblock,nOrb,nC,nO,nV,nR,nOOt,nVVt,ERI_MO,X1t,Y1t,rho1t,X2t,Y2t,rho2t)
|
||||||
|
|
||||||
if(regularize) then
|
if(regularize) then
|
||||||
call GTpp_regularization(eta,nOrb,nC,nO,nV,nR,nOOs,nVVs,eGT,Om1s,rho1s,Om2s,rho2s)
|
call GTpp_regularization(eta,nOrb,nC,nO,nV,nR,nOOs,nVVs,eGT,Om1s,rho1s,Om2s,rho2s)
|
||||||
call GTpp_regularization(eta,nOrb,nC,nO,nV,nR,nOOt,nVVt,eGT,Om1t,rho1t,Om2t,rho2t)
|
call GTpp_regularization(eta,nOrb,nC,nO,nV,nR,nOOt,nVVt,eGT,Om1t,rho1t,Om2t,rho2t)
|
||||||
end if
|
end if
|
||||||
|
|
||||||
call GTpp_self_energy(eta,nOrb,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eGT,Om1s,rho1s,Om2s,rho2s, &
|
call RGTpp_self_energy(eta,nOrb,nC,nO,nV,nR,nOOs,nVVs,nOOt,nVVt,eGT,Om1s,rho1s,Om2s,rho2s, &
|
||||||
Om1t,rho1t,Om2t,rho2t,EcGM,Sig,Z)
|
Om1t,rho1t,Om2t,rho2t,EcGM,Sig,Z)
|
||||||
|
|
||||||
! Make correlation self-energy Hermitian and transform it back to AO basis
|
! Make correlation self-energy Hermitian and transform it back to AO basis
|
||||||
@ -362,7 +362,7 @@ subroutine qsRGTpp(dotest, maxSCF, thresh, max_diis, doACFDT, exchange_kernel, d
|
|||||||
|
|
||||||
if(dophBSE) then
|
if(dophBSE) then
|
||||||
|
|
||||||
call GTpp_phBSE(TDA_T,TDA,dBSE,dTDA,singlet,triplet,eta,nOrb,nC,nO,nV,nR,nS,nOOs,nVVs,nOOt,nVVt, &
|
call RGTpp_phBSE(TDA_T,TDA,dBSE,dTDA,singlet,triplet,eta,nOrb,nC,nO,nV,nR,nS,nOOs,nVVs,nOOt,nVVt, &
|
||||||
Om1s,X1s,Y1s,Om2s,X2s,Y2s,rho1s,rho2s,Om1t,X1t,Y1t,Om2t,X2t,Y2t,rho1t,rho2t, &
|
Om1s,X1s,Y1s,Om2s,X2s,Y2s,rho1s,rho2s,Om1t,X1t,Y1t,Om2t,X2t,Y2t,rho1t,rho2t, &
|
||||||
ERI_MO,dipole_int_MO,eGT,eGT,EcBSE)
|
ERI_MO,dipole_int_MO,eGT,eGT,EcBSE)
|
||||||
|
|
||||||
@ -398,7 +398,7 @@ subroutine qsRGTpp(dotest, maxSCF, thresh, max_diis, doACFDT, exchange_kernel, d
|
|||||||
|
|
||||||
end if
|
end if
|
||||||
|
|
||||||
call GTpp_phACFDT(exchange_kernel,doXBS,.false.,TDA_T,TDA,dophBSE,singlet,triplet,eta,nOrb,nC,nO,nV,nR,nS, &
|
call RGTpp_phACFDT(exchange_kernel,doXBS,.false.,TDA_T,TDA,dophBSE,singlet,triplet,eta,nOrb,nC,nO,nV,nR,nS, &
|
||||||
nOOs,nVVs,nOOt,nVVt,Om1s,X1s,Y1s,Om2s,X2s,Y2s,rho1s,rho2s,Om1t,X1t,Y1t, &
|
nOOs,nVVs,nOOt,nVVt,Om1s,X1s,Y1s,Om2s,X2s,Y2s,rho1s,rho2s,Om1t,X1t,Y1t, &
|
||||||
Om2t,X2t,Y2t,rho1t,rho2t,ERI_MO,eGT,eGT,EcBSE)
|
Om2t,X2t,Y2t,rho1t,rho2t,ERI_MO,eGT,eGT,EcBSE)
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
subroutine ufG0T0pp(dotest,TDA_T,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI,eHF)
|
subroutine ufRG0T0pp(dotest,TDA_T,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI,eHF)
|
||||||
|
|
||||||
! Upfolded G0T0pp equations
|
! Upfolded G0T0pp equations
|
||||||
|
|
||||||
@ -135,7 +135,7 @@ subroutine ufG0T0pp(dotest,TDA_T,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI,eHF)
|
|||||||
|
|
||||||
! Compute excitation densities
|
! Compute excitation densities
|
||||||
|
|
||||||
call GTpp_excitation_density(iblock,nBas,nC,nO,nV,nR,nOOs,nVVs,ERI,X1s,Y1s,rho1s,X2s,Y2s,rho2s)
|
call RGTpp_excitation_density(iblock,nBas,nC,nO,nV,nR,nOOs,nVVs,ERI,X1s,Y1s,rho1s,X2s,Y2s,rho2s)
|
||||||
|
|
||||||
deallocate(Bpp,Cpp,Dpp,X1s,Y1s,X2s,Y2s)
|
deallocate(Bpp,Cpp,Dpp,X1s,Y1s,X2s,Y2s)
|
||||||
|
|
||||||
@ -160,7 +160,7 @@ subroutine ufG0T0pp(dotest,TDA_T,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI,eHF)
|
|||||||
|
|
||||||
! Compute excitation densities
|
! Compute excitation densities
|
||||||
|
|
||||||
call GTpp_excitation_density(iblock,nBas,nC,nO,nV,nR,nOOt,nVVt,ERI,X1t,Y1t,rho1t,X2t,Y2t,rho2t)
|
call RGTpp_excitation_density(iblock,nBas,nC,nO,nV,nR,nOOt,nVVt,ERI,X1t,Y1t,rho1t,X2t,Y2t,rho2t)
|
||||||
|
|
||||||
deallocate(Bpp,Cpp,Dpp,X1t,Y1t,X2t,Y2t)
|
deallocate(Bpp,Cpp,Dpp,X1t,Y1t,X2t,Y2t)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user