mirror of
https://github.com/pfloos/quack
synced 2024-12-23 04:43:42 +01:00
getting rid of G0W and GW0
This commit is contained in:
parent
733e2794ec
commit
61b9b9472c
@ -1,4 +1,4 @@
|
|||||||
subroutine evGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,BSE2,TDA_W,TDA,G0W,GW0,dBSE,dTDA,evDyn,ppBSE, &
|
subroutine evGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,BSE2,TDA_W,TDA,dBSE,dTDA,evDyn,ppBSE, &
|
||||||
singlet,triplet,eta,regularize,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI_AO,ERI_MO,dipole_int,PHF,cHF,eHF,Vxc,eG0W0)
|
singlet,triplet,eta,regularize,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI_AO,ERI_MO,dipole_int,PHF,cHF,eHF,Vxc,eG0W0)
|
||||||
|
|
||||||
! Perform self-consistent eigenvalue-only GW calculation
|
! Perform self-consistent eigenvalue-only GW calculation
|
||||||
@ -25,8 +25,6 @@ subroutine evGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,
|
|||||||
logical,intent(in) :: dTDA
|
logical,intent(in) :: dTDA
|
||||||
logical,intent(in) :: evDyn
|
logical,intent(in) :: evDyn
|
||||||
logical,intent(in) :: ppBSE
|
logical,intent(in) :: ppBSE
|
||||||
logical,intent(in) :: G0W
|
|
||||||
logical,intent(in) :: GW0
|
|
||||||
logical,intent(in) :: singlet
|
logical,intent(in) :: singlet
|
||||||
logical,intent(in) :: triplet
|
logical,intent(in) :: triplet
|
||||||
double precision,intent(in) :: eta
|
double precision,intent(in) :: eta
|
||||||
@ -111,20 +109,6 @@ subroutine evGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,
|
|||||||
write(*,*)
|
write(*,*)
|
||||||
end if
|
end if
|
||||||
|
|
||||||
! GW0
|
|
||||||
|
|
||||||
if(GW0) then
|
|
||||||
write(*,*) 'GW0 scheme activated!'
|
|
||||||
write(*,*)
|
|
||||||
end if
|
|
||||||
|
|
||||||
! G0W
|
|
||||||
|
|
||||||
if(G0W) then
|
|
||||||
write(*,*) 'G0W scheme activated!'
|
|
||||||
write(*,*)
|
|
||||||
end if
|
|
||||||
|
|
||||||
! Linear mixing
|
! Linear mixing
|
||||||
|
|
||||||
linear_mixing = .false.
|
linear_mixing = .false.
|
||||||
@ -160,46 +144,24 @@ subroutine evGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,
|
|||||||
|
|
||||||
! Compute screening
|
! Compute screening
|
||||||
|
|
||||||
if(.not. GW0 .or. nSCF == 0) then
|
call linear_response(ispin,.true.,TDA_W,eta,nBas,nC,nO,nV,nR,nS,1d0,eGW,ERI_MO, &
|
||||||
|
EcRPA,OmRPA,XpY_RPA,XmY_RPA)
|
||||||
|
|
||||||
call linear_response(ispin,.true.,TDA_W,eta,nBas,nC,nO,nV,nR,nS,1d0,eGW,ERI_MO, &
|
! Compute spectral weights
|
||||||
EcRPA,OmRPA,XpY_RPA,XmY_RPA)
|
|
||||||
|
|
||||||
end if
|
|
||||||
|
|
||||||
! Compute spectral weights
|
|
||||||
|
|
||||||
call excitation_density(nBas,nC,nO,nR,nS,ERI_MO,XpY_RPA,rho_RPA)
|
call excitation_density(nBas,nC,nO,nR,nS,ERI_MO,XpY_RPA,rho_RPA)
|
||||||
|
|
||||||
! Compute correlation part of the self-energy
|
! Compute correlation part of the self-energy
|
||||||
|
|
||||||
if(G0W) then
|
if(regularize) then
|
||||||
|
|
||||||
if(regularize) then
|
call regularized_self_energy_correlation_diag(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eGW,OmRPA,rho_RPA,EcGM,SigC)
|
||||||
|
call regularized_renormalization_factor(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eGW,OmRPA,rho_RPA,Z)
|
||||||
|
|
||||||
call regularized_self_energy_correlation_diag(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eHF,OmRPA,rho_RPA,EcGM,SigC)
|
else
|
||||||
call regularized_renormalization_factor(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eHF,OmRPA,rho_RPA,Z)
|
|
||||||
|
|
||||||
else
|
call self_energy_correlation_diag(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eGW,OmRPA,rho_RPA,EcGM,SigC)
|
||||||
|
call renormalization_factor(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eGW,OmRPA,rho_RPA,Z)
|
||||||
call self_energy_correlation_diag(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eHF,OmRPA,rho_RPA,EcGM,SigC)
|
|
||||||
call renormalization_factor(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eHF,OmRPA,rho_RPA,Z)
|
|
||||||
|
|
||||||
end if
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
if(regularize) then
|
|
||||||
|
|
||||||
call regularized_self_energy_correlation_diag(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eGW,OmRPA,rho_RPA,EcGM,SigC)
|
|
||||||
call regularized_renormalization_factor(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eGW,OmRPA,rho_RPA,Z)
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
call self_energy_correlation_diag(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eGW,OmRPA,rho_RPA,EcGM,SigC)
|
|
||||||
call renormalization_factor(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eGW,OmRPA,rho_RPA,Z)
|
|
||||||
|
|
||||||
end if
|
|
||||||
|
|
||||||
end if
|
end if
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
subroutine evUGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,TDA_W,TDA, &
|
subroutine evUGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,TDA_W,TDA, &
|
||||||
G0W,GW0,dBSE,dTDA,evDyn,spin_conserved,spin_flip,eta,regularize,nBas,nC,nO,nV,nR,nS,ENuc, &
|
dBSE,dTDA,evDyn,spin_conserved,spin_flip,eta,regularize,nBas,nC,nO,nV,nR,nS,ENuc, &
|
||||||
EUHF,S,ERI_AO,ERI_aaaa,ERI_aabb,ERI_bbbb,dipole_int_aa,dipole_int_bb,PHF,cHF,eHF,Vxc,eG0W0)
|
EUHF,S,ERI_AO,ERI_aaaa,ERI_aabb,ERI_bbbb,dipole_int_aa,dipole_int_bb,PHF,cHF,eHF,Vxc,eG0W0)
|
||||||
|
|
||||||
! Perform self-consistent eigenvalue-only GW calculation
|
! Perform self-consistent eigenvalue-only GW calculation
|
||||||
@ -24,8 +24,6 @@ subroutine evUGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE
|
|||||||
logical,intent(in) :: dBSE
|
logical,intent(in) :: dBSE
|
||||||
logical,intent(in) :: dTDA
|
logical,intent(in) :: dTDA
|
||||||
logical,intent(in) :: evDyn
|
logical,intent(in) :: evDyn
|
||||||
logical,intent(in) :: G0W
|
|
||||||
logical,intent(in) :: GW0
|
|
||||||
logical,intent(in) :: spin_conserved
|
logical,intent(in) :: spin_conserved
|
||||||
logical,intent(in) :: spin_flip
|
logical,intent(in) :: spin_flip
|
||||||
double precision,intent(in) :: eta
|
double precision,intent(in) :: eta
|
||||||
@ -107,20 +105,6 @@ subroutine evUGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE
|
|||||||
write(*,*)
|
write(*,*)
|
||||||
end if
|
end if
|
||||||
|
|
||||||
! GW0
|
|
||||||
|
|
||||||
if(GW0) then
|
|
||||||
write(*,*) 'GW0 scheme activated!'
|
|
||||||
write(*,*)
|
|
||||||
end if
|
|
||||||
|
|
||||||
! G0W
|
|
||||||
|
|
||||||
if(G0W) then
|
|
||||||
write(*,*) 'G0W scheme activated!'
|
|
||||||
write(*,*)
|
|
||||||
end if
|
|
||||||
|
|
||||||
! Linear mixing
|
! Linear mixing
|
||||||
|
|
||||||
linear_mixing = .false.
|
linear_mixing = .false.
|
||||||
@ -163,11 +147,8 @@ subroutine evUGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE
|
|||||||
|
|
||||||
! Compute screening
|
! Compute screening
|
||||||
|
|
||||||
if(.not. GW0 .or. nSCF == 0) then
|
call unrestricted_linear_response(ispin,.true.,TDA_W,.false.,eta,nBas,nC,nO,nV,nR,nS_aa,nS_bb,nS_sc,nS_sc,1d0, &
|
||||||
|
eGW,ERI_aaaa,ERI_aabb,ERI_bbbb,OmRPA,rho_RPA,EcRPA,OmRPA,XpY_RPA,XmY_RPA)
|
||||||
call unrestricted_linear_response(ispin,.true.,TDA_W,.false.,eta,nBas,nC,nO,nV,nR,nS_aa,nS_bb,nS_sc,nS_sc,1d0, &
|
|
||||||
eGW,ERI_aaaa,ERI_aabb,ERI_bbbb,OmRPA,rho_RPA,EcRPA,OmRPA,XpY_RPA,XmY_RPA)
|
|
||||||
end if
|
|
||||||
|
|
||||||
!----------------------!
|
!----------------------!
|
||||||
! Excitation densities !
|
! Excitation densities !
|
||||||
@ -179,33 +160,15 @@ subroutine evUGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE
|
|||||||
! Compute self-energy and renormalization factor !
|
! Compute self-energy and renormalization factor !
|
||||||
!------------------------------------------------!
|
!------------------------------------------------!
|
||||||
|
|
||||||
if(G0W) then
|
if(regularize) then
|
||||||
|
|
||||||
if(regularize) then
|
call unrestricted_regularized_self_energy_correlation_diag(eta,nBas,nC,nO,nV,nR,nS_sc,eGW,OmRPA,rho_RPA,SigC,EcGM)
|
||||||
|
call unrestricted_regularized_renormalization_factor(eta,nBas,nC,nO,nV,nR,nS_sc,eGW,OmRPA,rho_RPA,Z)
|
||||||
|
|
||||||
call unrestricted_regularized_self_energy_correlation_diag(eta,nBas,nC,nO,nV,nR,nS_sc,eHF,OmRPA,rho_RPA,SigC,EcGM)
|
else
|
||||||
call unrestricted_regularized_renormalization_factor(eta,nBas,nC,nO,nV,nR,nS_sc,eHF,OmRPA,rho_RPA,Z)
|
|
||||||
|
|
||||||
else
|
call unrestricted_self_energy_correlation_diag(eta,nBas,nC,nO,nV,nR,nS_sc,eGW,OmRPA,rho_RPA,SigC,EcGM)
|
||||||
|
call unrestricted_renormalization_factor(eta,nBas,nC,nO,nV,nR,nS_sc,eGW,OmRPA,rho_RPA,Z)
|
||||||
call unrestricted_self_energy_correlation_diag(eta,nBas,nC,nO,nV,nR,nS_sc,eHF,OmRPA,rho_RPA,SigC,EcGM)
|
|
||||||
call unrestricted_renormalization_factor(eta,nBas,nC,nO,nV,nR,nS_sc,eHF,OmRPA,rho_RPA,Z)
|
|
||||||
|
|
||||||
end if
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
if(regularize) then
|
|
||||||
|
|
||||||
call unrestricted_regularized_self_energy_correlation_diag(eta,nBas,nC,nO,nV,nR,nS_sc,eGW,OmRPA,rho_RPA,SigC,EcGM)
|
|
||||||
call unrestricted_regularized_renormalization_factor(eta,nBas,nC,nO,nV,nR,nS_sc,eGW,OmRPA,rho_RPA,Z)
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
call unrestricted_self_energy_correlation_diag(eta,nBas,nC,nO,nV,nR,nS_sc,eGW,OmRPA,rho_RPA,SigC,EcGM)
|
|
||||||
call unrestricted_renormalization_factor(eta,nBas,nC,nO,nV,nR,nS_sc,eGW,OmRPA,rho_RPA,Z)
|
|
||||||
|
|
||||||
end if
|
|
||||||
|
|
||||||
end if
|
end if
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
subroutine qsGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,BSE2,TDA_W,TDA, &
|
subroutine qsGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,BSE2,TDA_W,TDA, &
|
||||||
G0W,GW0,dBSE,dTDA,evDyn,singlet,triplet,eta,regularize,nNuc,ZNuc,rNuc,ENuc,nBas,nC,nO,nV,nR,nS,ERHF, &
|
dBSE,dTDA,evDyn,singlet,triplet,eta,regularize,nNuc,ZNuc,rNuc,ENuc,nBas,nC,nO,nV,nR,nS,ERHF, &
|
||||||
S,X,T,V,Hc,ERI_AO,ERI_MO,dipole_int_AO,dipole_int_MO,PHF,cHF,eHF)
|
S,X,T,V,Hc,ERI_AO,ERI_MO,dipole_int_AO,dipole_int_MO,PHF,cHF,eHF)
|
||||||
|
|
||||||
! Perform a quasiparticle self-consistent GW calculation
|
! Perform a quasiparticle self-consistent GW calculation
|
||||||
@ -23,8 +23,6 @@ subroutine qsGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,
|
|||||||
logical,intent(in) :: dBSE
|
logical,intent(in) :: dBSE
|
||||||
logical,intent(in) :: dTDA
|
logical,intent(in) :: dTDA
|
||||||
logical,intent(in) :: evDyn
|
logical,intent(in) :: evDyn
|
||||||
logical,intent(in) :: G0W
|
|
||||||
logical,intent(in) :: GW0
|
|
||||||
logical,intent(in) :: singlet
|
logical,intent(in) :: singlet
|
||||||
logical,intent(in) :: triplet
|
logical,intent(in) :: triplet
|
||||||
double precision,intent(in) :: eta
|
double precision,intent(in) :: eta
|
||||||
@ -180,45 +178,23 @@ subroutine qsGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,
|
|||||||
|
|
||||||
! Compute linear response
|
! Compute linear response
|
||||||
|
|
||||||
if(.not. GW0 .or. nSCF == 0) then
|
call linear_response(ispin,.true.,TDA_W,eta,nBas,nC,nO,nV,nR,nS,1d0,eGW,ERI_MO, &
|
||||||
|
EcRPA,OmRPA,XpY_RPA,XmY_RPA)
|
||||||
call linear_response(ispin,.true.,TDA_W,eta,nBas,nC,nO,nV,nR,nS,1d0,eGW,ERI_MO, &
|
if(print_W) call print_excitation('RPA@qsGW ',ispin,nS,OmRPA)
|
||||||
EcRPA,OmRPA,XpY_RPA,XmY_RPA)
|
|
||||||
if(print_W) call print_excitation('RPA@qsGW ',ispin,nS,OmRPA)
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
! Compute correlation part of the self-energy
|
! Compute correlation part of the self-energy
|
||||||
|
|
||||||
call excitation_density(nBas,nC,nO,nR,nS,ERI_MO,XpY_RPA,rho_RPA)
|
call excitation_density(nBas,nC,nO,nR,nS,ERI_MO,XpY_RPA,rho_RPA)
|
||||||
|
|
||||||
if(G0W) then
|
if(regularize) then
|
||||||
|
|
||||||
if(regularize) then
|
call regularized_self_energy_correlation(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eGW,OmRPA,rho_RPA,EcGM,SigC)
|
||||||
|
call regularized_renormalization_factor(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eGW,OmRPA,rho_RPA,Z)
|
||||||
call regularized_self_energy_correlation(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eHF,OmRPA,rho_RPA,EcGM,SigC)
|
|
||||||
call regularized_renormalization_factor(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eHF,OmRPA,rho_RPA,Z)
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
call self_energy_correlation(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eHF,OmRPA,rho_RPA,EcGM,SigC)
|
|
||||||
call renormalization_factor(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eHF,OmRPA,rho_RPA,Z)
|
|
||||||
|
|
||||||
end if
|
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
if(regularize) then
|
call self_energy_correlation(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eGW,OmRPA,rho_RPA,EcGM,SigC)
|
||||||
|
call renormalization_factor(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eGW,OmRPA,rho_RPA,Z)
|
||||||
call regularized_self_energy_correlation(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eGW,OmRPA,rho_RPA,EcGM,SigC)
|
|
||||||
call regularized_renormalization_factor(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eGW,OmRPA,rho_RPA,Z)
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
call self_energy_correlation(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eGW,OmRPA,rho_RPA,EcGM,SigC)
|
|
||||||
call renormalization_factor(COHSEX,eta,nBas,nC,nO,nV,nR,nS,eGW,OmRPA,rho_RPA,Z)
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
subroutine qsUGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,TDA_W,TDA, &
|
subroutine qsUGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,TDA_W,TDA, &
|
||||||
G0W,GW0,dBSE,dTDA,evDyn,spin_conserved,spin_flip,eta,regularize,nNuc,ZNuc,rNuc,ENuc,nBas,nC,nO, &
|
dBSE,dTDA,evDyn,spin_conserved,spin_flip,eta,regularize,nNuc,ZNuc,rNuc,ENuc,nBas,nC,nO, &
|
||||||
nV,nR,nS,EUHF,S,X,T,V,Hc,ERI_AO,ERI_aaaa,ERI_aabb,ERI_bbbb,dipole_int_AO,dipole_int_aa, &
|
nV,nR,nS,EUHF,S,X,T,V,Hc,ERI_AO,ERI_aaaa,ERI_aabb,ERI_bbbb,dipole_int_AO,dipole_int_aa, &
|
||||||
dipole_int_bb,PHF,cHF,eHF)
|
dipole_int_bb,PHF,cHF,eHF)
|
||||||
|
|
||||||
@ -23,8 +23,6 @@ subroutine qsUGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE
|
|||||||
logical,intent(in) :: dBSE
|
logical,intent(in) :: dBSE
|
||||||
logical,intent(in) :: dTDA
|
logical,intent(in) :: dTDA
|
||||||
logical,intent(in) :: evDyn
|
logical,intent(in) :: evDyn
|
||||||
logical,intent(in) :: G0W
|
|
||||||
logical,intent(in) :: GW0
|
|
||||||
logical,intent(in) :: spin_conserved
|
logical,intent(in) :: spin_conserved
|
||||||
logical,intent(in) :: spin_flip
|
logical,intent(in) :: spin_flip
|
||||||
double precision,intent(in) :: eta
|
double precision,intent(in) :: eta
|
||||||
@ -208,12 +206,8 @@ subroutine qsUGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE
|
|||||||
|
|
||||||
! Compute linear response
|
! Compute linear response
|
||||||
|
|
||||||
if(.not. GW0 .or. nSCF == 0) then
|
call unrestricted_linear_response(ispin,.true.,TDA_W,.false.,eta,nBas,nC,nO,nV,nR,nS_aa,nS_bb,nS_sc,nS_sc,1d0, &
|
||||||
|
eGW,ERI_aaaa,ERI_aabb,ERI_bbbb,OmRPA,rho_RPA,EcRPA,OmRPA,XpY_RPA,XmY_RPA)
|
||||||
call unrestricted_linear_response(ispin,.true.,TDA_W,.false.,eta,nBas,nC,nO,nV,nR,nS_aa,nS_bb,nS_sc,nS_sc,1d0, &
|
|
||||||
eGW,ERI_aaaa,ERI_aabb,ERI_bbbb,OmRPA,rho_RPA,EcRPA,OmRPA,XpY_RPA,XmY_RPA)
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
!----------------------!
|
!----------------------!
|
||||||
! Excitation densities !
|
! Excitation densities !
|
||||||
@ -225,35 +219,17 @@ subroutine qsUGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE
|
|||||||
! Compute self-energy and renormalization factor !
|
! Compute self-energy and renormalization factor !
|
||||||
!------------------------------------------------!
|
!------------------------------------------------!
|
||||||
|
|
||||||
if(G0W) then
|
if(regularize) then
|
||||||
|
|
||||||
if(regularize) then
|
call unrestricted_regularized_self_energy_correlation(eta,nBas,nC,nO,nV,nR,nS_sc,eGW,OmRPA,rho_RPA,SigC,EcGM)
|
||||||
|
call unrestricted_regularized_renormalization_factor(eta,nBas,nC,nO,nV,nR,nS_sc,eGW,OmRPA,rho_RPA,Z)
|
||||||
|
|
||||||
call unrestricted_regularized_self_energy_correlation(eta,nBas,nC,nO,nV,nR,nS_sc,eHF,OmRPA,rho_RPA,SigC,EcGM)
|
else
|
||||||
call unrestricted_regularized_renormalization_factor(eta,nBas,nC,nO,nV,nR,nS_sc,eHF,OmRPA,rho_RPA,Z)
|
|
||||||
|
|
||||||
else
|
call unrestricted_self_energy_correlation(eta,nBas,nC,nO,nV,nR,nS_sc,eGW,OmRPA,rho_RPA,SigC,EcGM)
|
||||||
|
call unrestricted_renormalization_factor(eta,nBas,nC,nO,nV,nR,nS_sc,eGW,OmRPA,rho_RPA,Z)
|
||||||
|
|
||||||
call unrestricted_self_energy_correlation(eta,nBas,nC,nO,nV,nR,nS_sc,eHF,OmRPA,rho_RPA,SigC,EcGM)
|
end if
|
||||||
call unrestricted_renormalization_factor(eta,nBas,nC,nO,nV,nR,nS_sc,eHF,OmRPA,rho_RPA,Z)
|
|
||||||
|
|
||||||
end if
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
if(regularize) then
|
|
||||||
|
|
||||||
call unrestricted_regularized_self_energy_correlation(eta,nBas,nC,nO,nV,nR,nS_sc,eGW,OmRPA,rho_RPA,SigC,EcGM)
|
|
||||||
call unrestricted_regularized_renormalization_factor(eta,nBas,nC,nO,nV,nR,nS_sc,eGW,OmRPA,rho_RPA,Z)
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
call unrestricted_self_energy_correlation(eta,nBas,nC,nO,nV,nR,nS_sc,eGW,OmRPA,rho_RPA,SigC,EcGM)
|
|
||||||
call unrestricted_renormalization_factor(eta,nBas,nC,nO,nV,nR,nS_sc,eGW,OmRPA,rho_RPA,Z)
|
|
||||||
|
|
||||||
end if
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
! Make correlation self-energy Hermitian and transform it back to AO basis
|
! Make correlation self-energy Hermitian and transform it back to AO basis
|
||||||
|
|
||||||
|
@ -125,7 +125,7 @@ program QuAcK
|
|||||||
|
|
||||||
integer :: maxSCF_GW,n_diis_GW
|
integer :: maxSCF_GW,n_diis_GW
|
||||||
double precision :: thresh_GW
|
double precision :: thresh_GW
|
||||||
logical :: DIIS_GW,COHSEX,SOSEX,TDA_W,G0W,GW0,linGW,regGW
|
logical :: DIIS_GW,COHSEX,SOSEX,TDA_W,linGW,regGW
|
||||||
double precision :: eta_GW
|
double precision :: eta_GW
|
||||||
|
|
||||||
integer :: maxSCF_GT,n_diis_GT
|
integer :: maxSCF_GT,n_diis_GT
|
||||||
@ -178,7 +178,7 @@ program QuAcK
|
|||||||
TDA,singlet,triplet,spin_conserved,spin_flip, &
|
TDA,singlet,triplet,spin_conserved,spin_flip, &
|
||||||
maxSCF_GF,thresh_GF,DIIS_GF,n_diis_GF,linGF,eta_GF,renormGF,regGF, &
|
maxSCF_GF,thresh_GF,DIIS_GF,n_diis_GF,linGF,eta_GF,renormGF,regGF, &
|
||||||
maxSCF_GW,thresh_GW,DIIS_GW,n_diis_GW,linGW,eta_GW,regGW, &
|
maxSCF_GW,thresh_GW,DIIS_GW,n_diis_GW,linGW,eta_GW,regGW, &
|
||||||
COHSEX,SOSEX,TDA_W,G0W,GW0, &
|
COHSEX,SOSEX,TDA_W, &
|
||||||
maxSCF_GT,thresh_GT,DIIS_GT,n_diis_GT,linGT,eta_GT,regGT,TDA_T, &
|
maxSCF_GT,thresh_GT,DIIS_GT,n_diis_GT,linGT,eta_GT,regGT,TDA_T, &
|
||||||
doACFDT,exchange_kernel,doXBS, &
|
doACFDT,exchange_kernel,doXBS, &
|
||||||
BSE,dBSE,dTDA,evDyn,ppBSE,BSE2)
|
BSE,dBSE,dTDA,evDyn,ppBSE,BSE2)
|
||||||
@ -1031,14 +1031,14 @@ program QuAcK
|
|||||||
if(unrestricted) then
|
if(unrestricted) then
|
||||||
|
|
||||||
call evUGW(maxSCF_GW,thresh_GW,n_diis_GW,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,TDA_W,TDA, &
|
call evUGW(maxSCF_GW,thresh_GW,n_diis_GW,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,TDA_W,TDA, &
|
||||||
G0W,GW0,dBSE,dTDA,evDyn,spin_conserved,spin_flip,eta_GW,regGW,nBas,nC,nO,nV,nR,nS,ENuc, &
|
dBSE,dTDA,evDyn,spin_conserved,spin_flip,eta_GW,regGW,nBas,nC,nO,nV,nR,nS,ENuc, &
|
||||||
EUHF,S,ERI_AO,ERI_MO_aaaa,ERI_MO_aabb,ERI_MO_bbbb,dipole_int_aa,dipole_int_bb, &
|
EUHF,S,ERI_AO,ERI_MO_aaaa,ERI_MO_aabb,ERI_MO_bbbb,dipole_int_aa,dipole_int_bb, &
|
||||||
PHF,cHF,eHF,Vxc,eG0W0)
|
PHF,cHF,eHF,Vxc,eG0W0)
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
call evGW(maxSCF_GW,thresh_GW,n_diis_GW,doACFDT,exchange_kernel,doXBS,COHSEX, &
|
call evGW(maxSCF_GW,thresh_GW,n_diis_GW,doACFDT,exchange_kernel,doXBS,COHSEX, &
|
||||||
BSE,BSE2,TDA_W,TDA,G0W,GW0,dBSE,dTDA,evDyn,ppBSE,singlet,triplet,eta_GW,regGW, &
|
BSE,BSE2,TDA_W,TDA,dBSE,dTDA,evDyn,ppBSE,singlet,triplet,eta_GW,regGW, &
|
||||||
nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI_AO,ERI_MO,dipole_int_MO,PHF,cHF,eHF,Vxc,eG0W0)
|
nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI_AO,ERI_MO,dipole_int_MO,PHF,cHF,eHF,Vxc,eG0W0)
|
||||||
end if
|
end if
|
||||||
call cpu_time(end_evGW)
|
call cpu_time(end_evGW)
|
||||||
@ -1060,14 +1060,14 @@ program QuAcK
|
|||||||
if(unrestricted) then
|
if(unrestricted) then
|
||||||
|
|
||||||
call qsUGW(maxSCF_GW,thresh_GW,n_diis_GW,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,TDA_W,TDA, &
|
call qsUGW(maxSCF_GW,thresh_GW,n_diis_GW,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,TDA_W,TDA, &
|
||||||
G0W,GW0,dBSE,dTDA,evDyn,spin_conserved,spin_flip,eta_GW,regGW,nNuc,ZNuc,rNuc,ENuc,nBas,nC,nO, &
|
dBSE,dTDA,evDyn,spin_conserved,spin_flip,eta_GW,regGW,nNuc,ZNuc,rNuc,ENuc,nBas,nC,nO, &
|
||||||
nV,nR,nS,EUHF,S,X,T,V,Hc,ERI_AO,ERI_MO_aaaa,ERI_MO_aabb,ERI_MO_bbbb,dipole_int_AO, &
|
nV,nR,nS,EUHF,S,X,T,V,Hc,ERI_AO,ERI_MO_aaaa,ERI_MO_aabb,ERI_MO_bbbb,dipole_int_AO, &
|
||||||
dipole_int_aa,dipole_int_bb,PHF,cHF,eHF)
|
dipole_int_aa,dipole_int_bb,PHF,cHF,eHF)
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
call qsGW(maxSCF_GW,thresh_GW,n_diis_GW,doACFDT,exchange_kernel,doXBS,COHSEX, &
|
call qsGW(maxSCF_GW,thresh_GW,n_diis_GW,doACFDT,exchange_kernel,doXBS,COHSEX, &
|
||||||
BSE,BSE2,TDA_W,TDA,G0W,GW0,dBSE,dTDA,evDyn,singlet,triplet,eta_GW,regGW,nNuc,ZNuc,rNuc,ENuc, &
|
BSE,BSE2,TDA_W,TDA,dBSE,dTDA,evDyn,singlet,triplet,eta_GW,regGW,nNuc,ZNuc,rNuc,ENuc, &
|
||||||
nBas,nC,nO,nV,nR,nS,ERHF,S,X,T,V,Hc,ERI_AO,ERI_MO,dipole_int_AO,dipole_int_MO,PHF,cHF,eHF)
|
nBas,nC,nO,nV,nR,nS,ERHF,S,X,T,V,Hc,ERI_AO,ERI_MO,dipole_int_AO,dipole_int_MO,PHF,cHF,eHF)
|
||||||
|
|
||||||
end if
|
end if
|
||||||
|
@ -3,7 +3,7 @@ subroutine read_options(maxSCF_HF,thresh_HF,DIIS_HF,n_diis_HF,guess_type,ortho_t
|
|||||||
TDA,singlet,triplet,spin_conserved,spin_flip, &
|
TDA,singlet,triplet,spin_conserved,spin_flip, &
|
||||||
maxSCF_GF,thresh_GF,DIIS_GF,n_diis_GF,linGF,eta_GF,renormGF,regGF, &
|
maxSCF_GF,thresh_GF,DIIS_GF,n_diis_GF,linGF,eta_GF,renormGF,regGF, &
|
||||||
maxSCF_GW,thresh_GW,DIIS_GW,n_diis_GW,linGW,eta_GW,regGW, &
|
maxSCF_GW,thresh_GW,DIIS_GW,n_diis_GW,linGW,eta_GW,regGW, &
|
||||||
COHSEX,SOSEX,TDA_W,G0W,GW0, &
|
COHSEX,SOSEX,TDA_W, &
|
||||||
maxSCF_GT,thresh_GT,DIIS_GT,n_diis_GT,linGT,eta_GT,regGT,TDA_T, &
|
maxSCF_GT,thresh_GT,DIIS_GT,n_diis_GT,linGT,eta_GT,regGT,TDA_T, &
|
||||||
doACFDT,exchange_kernel,doXBS, &
|
doACFDT,exchange_kernel,doXBS, &
|
||||||
BSE,dBSE,dTDA,evDyn,ppBSE,BSE2)
|
BSE,dBSE,dTDA,evDyn,ppBSE,BSE2)
|
||||||
@ -51,8 +51,6 @@ subroutine read_options(maxSCF_HF,thresh_HF,DIIS_HF,n_diis_HF,guess_type,ortho_t
|
|||||||
logical,intent(out) :: COHSEX
|
logical,intent(out) :: COHSEX
|
||||||
logical,intent(out) :: SOSEX
|
logical,intent(out) :: SOSEX
|
||||||
logical,intent(out) :: TDA_W
|
logical,intent(out) :: TDA_W
|
||||||
logical,intent(out) :: G0W
|
|
||||||
logical,intent(out) :: GW0
|
|
||||||
logical,intent(out) :: linGW
|
logical,intent(out) :: linGW
|
||||||
double precision,intent(out) :: eta_GW
|
double precision,intent(out) :: eta_GW
|
||||||
logical,intent(out) :: regGW
|
logical,intent(out) :: regGW
|
||||||
@ -173,21 +171,17 @@ subroutine read_options(maxSCF_HF,thresh_HF,DIIS_HF,n_diis_HF,guess_type,ortho_t
|
|||||||
COHSEX = .false.
|
COHSEX = .false.
|
||||||
SOSEX = .false.
|
SOSEX = .false.
|
||||||
TDA_W = .false.
|
TDA_W = .false.
|
||||||
G0W = .false.
|
|
||||||
GW0 = .false.
|
|
||||||
|
|
||||||
read(1,*)
|
read(1,*)
|
||||||
read(1,*) maxSCF_GW,thresh_GW,answer1,n_diis_GW,answer2,eta_GW, &
|
read(1,*) maxSCF_GW,thresh_GW,answer1,n_diis_GW,answer2,eta_GW, &
|
||||||
answer3,answer4,answer5,answer6,answer7,answer8
|
answer3,answer4,answer5,answer6
|
||||||
|
|
||||||
if(answer1 == 'T') DIIS_GW = .true.
|
if(answer1 == 'T') DIIS_GW = .true.
|
||||||
if(answer2 == 'T') linGW = .true.
|
if(answer2 == 'T') linGW = .true.
|
||||||
if(answer3 == 'T') COHSEX = .true.
|
if(answer3 == 'T') COHSEX = .true.
|
||||||
if(answer4 == 'T') SOSEX = .true.
|
if(answer4 == 'T') SOSEX = .true.
|
||||||
if(answer5 == 'T') TDA_W = .true.
|
if(answer5 == 'T') TDA_W = .true.
|
||||||
if(answer6 == 'T') G0W = .true.
|
if(answer6 == 'T') regGW = .true.
|
||||||
if(answer7 == 'T') GW0 = .true.
|
|
||||||
if(answer8 == 'T') regGW = .true.
|
|
||||||
if(.not.DIIS_GW) n_diis_GW = 1
|
if(.not.DIIS_GW) n_diis_GW = 1
|
||||||
|
|
||||||
! Read GT options
|
! Read GT options
|
||||||
|
Loading…
Reference in New Issue
Block a user