fix bug in sc eh T-matrix modules

This commit is contained in:
Pierre-Francois Loos 2023-08-23 16:04:00 +02:00
parent f631f1711b
commit b96f11ad2d
7 changed files with 44 additions and 13 deletions

View File

@ -11,7 +11,7 @@
# GW: maxSCF thresh DIIS n_diis lin eta TDA_W reg
256 0.00001 T 5 F 0.0 F F
# GT: maxSCF thresh DIIS n_diis lin eta TDA_T reg
256 0.00001 T 5 F 0.0 F T
256 0.00001 T 5 F 0.1 F F
# ACFDT: AC Kx XBS
F F T
# BSE: phBSE phBSE2 ppBSE dBSE dTDA

View File

@ -42,7 +42,6 @@ subroutine G0T0eh(doACFDT,exchange_kernel,doXBS,dophBSE,dophBSE2,TDA_T,TDA,dBSE,
logical :: print_T = .true.
logical :: dRPA = .false.
logical :: dRPA_W = .true.
integer :: ispin
integer :: isp_W
double precision :: EcRPA
@ -74,7 +73,7 @@ subroutine G0T0eh(doACFDT,exchange_kernel,doXBS,dophBSE,dophBSE2,TDA_T,TDA,dBSE,
write(*,*)
write(*,*)'************************************************'
write(*,*)'| One-shot eh G0T0 calculation |'
write(*,*)'| One-shot G0T0eh calculation |'
write(*,*)'************************************************'
write(*,*)

View File

@ -66,10 +66,25 @@ subroutine G0T0pp(doACFDT,exchange_kernel,doXBS,dophBSE,TDA_T,TDA,dBSE,dTDA,dopp
write(*,*)
write(*,*)'************************************************'
write(*,*)'| One-shot G0T0 calculation |'
write(*,*)'| One-shot G0T0pp calculation |'
write(*,*)'************************************************'
write(*,*)
! TDA for T
if(TDA_T) then
write(*,*) 'Tamm-Dancoff approximation for pp T-matrix!'
write(*,*)
end if
! TDA
if(TDA) then
write(*,*) 'Tamm-Dancoff approximation activated!'
write(*,*)
end if
! Dimensions of the pp-RPA linear reponse matrices
! nOOs = nO*(nO + 1)/2

View File

@ -41,7 +41,8 @@ subroutine evGTeh(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dophBSE,d
! Local variables
logical :: dRPA = .true.
logical :: print_T = .true.
logical :: dRPA = .false.
logical :: linear_mixing
integer :: ispin
integer :: nSCF
@ -124,6 +125,8 @@ subroutine evGTeh(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dophBSE,d
call phLR(TDA_T,nS,Aph,Bph,EcRPA,Om,XpY,XmY)
if(print_T) call print_excitation_energies('phRPA@GTeh',ispin,nS,Om)
! Compute spectral weights
call GTeh_excitation_density(nBas,nC,nO,nR,nS,ERI,XpY,XmY,rhoL,rhoR)

View File

@ -75,10 +75,24 @@ subroutine evGTpp(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE,TDA_T
write(*,*)
write(*,*)'************************************************'
write(*,*)'| Self-consistent evGT calculation |'
write(*,*)'| Self-consistent evGTpp calculation |'
write(*,*)'************************************************'
write(*,*)
! TDA for T
if(TDA_T) then
write(*,*) 'Tamm-Dancoff approximation for pp T-matrix!'
write(*,*)
end if
! TDA
if(TDA) then
write(*,*) 'Tamm-Dancoff approximation activated!'
write(*,*)
end if
! Dimensions of the pp-RPA linear reponse matrices
nOOs = nO*nO

View File

@ -1,4 +1,4 @@
subroutine qsGTeh(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE,BSE2,TDA_T,TDA, &
subroutine qsGTeh(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dophBSE,dophBSE2,TDA_T,TDA, &
dBSE,dTDA,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)
@ -15,8 +15,8 @@ subroutine qsGTeh(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE,BSE2,
logical,intent(in) :: doACFDT
logical,intent(in) :: exchange_kernel
logical,intent(in) :: doXBS
logical,intent(in) :: BSE
logical,intent(in) :: BSE2
logical,intent(in) :: dophBSE
logical,intent(in) :: dophBSE2
logical,intent(in) :: TDA_T
logical,intent(in) :: TDA
logical,intent(in) :: dBSE
@ -53,7 +53,7 @@ subroutine qsGTeh(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE,BSE2,
! Local variables
logical :: dRPA = .true.
logical :: dRPA = .false.
integer :: nSCF
integer :: nBasSq
integer :: ispin
@ -117,7 +117,7 @@ subroutine qsGTeh(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE,BSE2,
! TDA for T
if(TDA_T) then
write(*,*) 'Tamm-Dancoff approximation for dynamic screening!'
write(*,*) 'Tamm-Dancoff approximation for eh T-matrix!'
write(*,*)
end if

View File

@ -100,7 +100,7 @@ subroutine qsGTpp(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dophBSE,T
write(*,*)
write(*,*)'************************************************'
write(*,*)'| Self-consistent qsGT calculation |'
write(*,*)'| Self-consistent qsGTpp calculation |'
write(*,*)'************************************************'
write(*,*)
@ -124,7 +124,7 @@ subroutine qsGTpp(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dophBSE,T
! TDA for T
if(TDA_T) then
write(*,*) 'Tamm-Dancoff approximation for T-matrix!'
write(*,*) 'Tamm-Dancoff approximation for pp T-matrix!'
write(*,*)
end if