10
1
mirror of https://github.com/pfloos/quack synced 2024-12-22 20:34:46 +01:00
This commit is contained in:
Abdallah Ammar 2024-09-10 16:27:52 +02:00
commit 4f24625c9d
8 changed files with 20 additions and 38 deletions

View File

@ -1,4 +1,4 @@
2 2
Li 0.0000 0.0000 0.0000 Li 0.0000 0.0000 0.0000
F 0.0000 0.0000 1.5732438 F 0.0000 0.0000 1.57688442817

View File

@ -145,9 +145,7 @@ subroutine RG0W0(dotest,doACFDT,exchange_kernel,doXBS,dophBSE,dophBSE2,TDA_W,TDA
if(plot_self) call RGW_plot_self_energy(nOrb,eta,nC,nO,nV,nR,nS,eHF,eHF,Om,rho) if(plot_self) call RGW_plot_self_energy(nOrb,eta,nC,nO,nV,nR,nS,eHF,eHF,Om,rho)
!--------------------! ! Cumulant expansion
! Cumulant expansion !
!--------------------!
! call RGWC(dotest,eta,nOrb,nC,nO,nV,nR,nS,Om,rho,eHF,eHF,eGW,Z) ! call RGWC(dotest,eta,nOrb,nC,nO,nV,nR,nS,Om,rho,eHF,eHF,eGW,Z)
@ -164,7 +162,9 @@ subroutine RG0W0(dotest,doACFDT,exchange_kernel,doXBS,dophBSE,dophBSE2,TDA_W,TDA
call print_RG0W0(nOrb,nO,eHF,ENuc,ERHF,SigC,Z,eGW,EcRPA,EcGM) call print_RG0W0(nOrb,nO,eHF,ENuc,ERHF,SigC,Z,eGW,EcRPA,EcGM)
! Perform BSE calculation !---------------------------!
! Perform phBSE calculation !
!---------------------------!
if(dophBSE) then if(dophBSE) then
@ -180,15 +180,10 @@ subroutine RG0W0(dotest,doACFDT,exchange_kernel,doXBS,dophBSE,dophBSE2,TDA_W,TDA
write(*,*)'-------------------------------------------------------------------------------' write(*,*)'-------------------------------------------------------------------------------'
write(*,*) write(*,*)
! Compute the BSE correlation energy via the adiabatic connection ! Compute the BSE correlation energy via the adiabatic connection fluctuation dissipation theorem
if(doACFDT) then if(doACFDT) then
write(*,*) '-------------------------------------------------------------'
write(*,*) ' Adiabatic connection version of BSE@G0W0 correlation energy '
write(*,*) '-------------------------------------------------------------'
write(*,*)
call RGW_phACFDT(exchange_kernel,doXBS,TDA_W,TDA,singlet,triplet,eta,nOrb,nC,nO,nV,nR,nS,ERI,eHF,eGW,EcBSE) call RGW_phACFDT(exchange_kernel,doXBS,TDA_W,TDA,singlet,triplet,eta,nOrb,nC,nO,nV,nR,nS,ERI,eHF,eGW,EcBSE)
write(*,*) write(*,*)
@ -204,6 +199,10 @@ subroutine RG0W0(dotest,doACFDT,exchange_kernel,doXBS,dophBSE,dophBSE2,TDA_W,TDA
end if end if
!---------------------------!
! Perform ppBSE calculation !
!---------------------------!
if(doppBSE) then if(doppBSE) then
call RGW_ppBSE(TDA_W,TDA,dBSE,dTDA,singlet,triplet,eta,nOrb,nC,nO,nV,nR,nS,ERI,dipole_int,eHF,eGW,EcBSE) call RGW_ppBSE(TDA_W,TDA,dBSE,dTDA,singlet,triplet,eta,nOrb,nC,nO,nV,nR,nS,ERI,dipole_int,eHF,eGW,EcBSE)

View File

@ -60,6 +60,13 @@ subroutine RGW_phACFDT(exchange_kernel,doXBS,TDA_W,TDA,singlet,triplet,eta,nBas,
allocate(Aph(nS,nS),Bph(nS,nS),KA(nS,nS),KB(nS,nS),OmRPA(nS),XpY_RPA(nS,nS),XmY_RPA(nS,nS), & allocate(Aph(nS,nS),Bph(nS,nS),KA(nS,nS),KB(nS,nS),OmRPA(nS),XpY_RPA(nS,nS),XmY_RPA(nS,nS), &
rho_RPA(nBas,nBas,nS),Om(nS),XpY(nS,nS),XmY(nS,nS)) rho_RPA(nBas,nBas,nS),Om(nS),XpY(nS,nS),XmY(nS,nS))
! Hello World
write(*,*) '-------------------------------------------------------------'
write(*,*) ' Adiabatic connection version of BSE@G0W0 correlation energy '
write(*,*) '-------------------------------------------------------------'
write(*,*)
! eXtended BSE ! eXtended BSE
if(doXBS) then if(doXBS) then

View File

@ -46,8 +46,7 @@ subroutine RGW_phBSE_static_kernel_A(eta,nBas,nC,nO,nV,nR,nS,lambda,ERI,Om,rho,K
chi = chi + rho(i,j,kc)*rho(a,b,kc)*Om(kc)/eps chi = chi + rho(i,j,kc)*rho(a,b,kc)*Om(kc)/eps
end do end do
! KA(ia,jb) = 4d0*chi KA(ia,jb) = 4d0*lambda**2*chi
KA(ia,jb) = 4d0*lambda*chi
end do end do
end do end do

View File

@ -46,8 +46,7 @@ subroutine RGW_phBSE_static_kernel_B(eta,nBas,nC,nO,nV,nR,nS,lambda,ERI,Om,rho,K
chi = chi + rho(i,b,kc)*rho(a,j,kc)*Om(kc)/eps chi = chi + rho(i,b,kc)*rho(a,j,kc)*Om(kc)/eps
end do end do
! KB(ia,jb) = 4d0*chi KB(ia,jb) = 4d0*lambda**2*chi
KB(ia,jb) = 4d0*lambda*chi
end do end do
end do end do

View File

@ -121,7 +121,7 @@ subroutine SRG_qsRGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS
! TDA for W ! TDA for W
if(TDA_W) then if(TDA_W) then
write(*,*) 'Tamm-Dancoff approximation for dynamic screening!' write(*,*) 'Tamm-Dancoff approximation for dynamical screening!'
write(*,*) write(*,*)
end if end if
@ -360,18 +360,6 @@ subroutine SRG_qsRGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS
if(doACFDT) then if(doACFDT) then
write(*,*) '------------------------------------------------------'
write(*,*) 'Adiabatic connection version of BSE correlation energy'
write(*,*) '------------------------------------------------------'
write(*,*)
if(doXBS) then
write(*,*) '*** scaled screening version (XBS) ***'
write(*,*)
end if
call RGW_phACFDT(exchange_kernel,doXBS,TDA_W,TDA,singlet,triplet,eta,nOrb,nC,nO,nV,nR,nS,ERI_MO,eGW,eGW,EcBSE) call RGW_phACFDT(exchange_kernel,doXBS,TDA_W,TDA,singlet,triplet,eta,nOrb,nC,nO,nV,nR,nS,ERI_MO,eGW,eGW,EcBSE)
write(*,*) write(*,*)

View File

@ -231,11 +231,6 @@ subroutine evRGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dop
if(doACFDT) then if(doACFDT) then
write(*,*) '-----------------------------------------------------------'
write(*,*) 'Adiabatic connection version of BSE@evGW correlation energy'
write(*,*) '-----------------------------------------------------------'
write(*,*)
call RGW_phACFDT(exchange_kernel,doXBS,TDA_W,TDA,singlet,triplet,eta,nOrb,nC,nO,nV,nR,nS,ERI,eGW,eGW,EcBSE) call RGW_phACFDT(exchange_kernel,doXBS,TDA_W,TDA,singlet,triplet,eta,nOrb,nC,nO,nV,nR,nS,ERI,eGW,eGW,EcBSE)
write(*,*) write(*,*)

View File

@ -323,11 +323,6 @@ subroutine qsRGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dop
if(doACFDT) then if(doACFDT) then
write(*,*) '-----------------------------------------------------------'
write(*,*) 'Adiabatic connection version of BSE@qsGW correlation energy'
write(*,*) '-----------------------------------------------------------'
write(*,*)
call RGW_phACFDT(exchange_kernel,doXBS,TDA_W,TDA,singlet,triplet,eta,nOrb,nC,nO,nV,nR,nS,ERI_MO,eGW,eGW,EcBSE) call RGW_phACFDT(exchange_kernel,doXBS,TDA_W,TDA,singlet,triplet,eta,nOrb,nC,nO,nV,nR,nS,ERI_MO,eGW,eGW,EcBSE)
write(*,*) write(*,*)