mirror of
https://github.com/pfloos/quack
synced 2024-08-24 21:21:46 +02:00
cleanup again in print
This commit is contained in:
parent
c46ab4558b
commit
337a950172
@ -170,8 +170,8 @@ subroutine GG0W0(dotest,doACFDT,exchange_kernel,doXBS,dophBSE,dophBSE2,TDA_W,TDA
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@G0W0 correlation energy =',EcBSE,' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@G0W0 total energy =',ENuc + ERHF + EcBSE,' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@G0W0@GHF correlation energy = ',EcBSE,' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@G0W0@GHF total energy = ',ENuc + ERHF + EcBSE,' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
|
@ -79,4 +79,7 @@ subroutine GGW_QP_graph(eta,nBas,nC,nO,nV,nR,nS,eHF,Om,rho,eGWlin,eOld,eGW,Z)
|
||||
|
||||
end do
|
||||
|
||||
write(*,*)'-----------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
end subroutine
|
||||
|
@ -109,7 +109,7 @@ subroutine GGW_phBSE(dophBSE2,TDA_W,TDA,dBSE,dTDA,eta,nBas,nC,nO,nV,nR,nS,ERI,di
|
||||
|
||||
call phLR(TDA,nS,Aph,Bph,EcBSE,OmBSE,XpY_BSE,XmY_BSE)
|
||||
|
||||
call print_excitation_energies('phBSE@GGW','spinorbital',nS,OmBSE)
|
||||
call print_excitation_energies('phBSE@GW@GHF','spinorbital',nS,OmBSE)
|
||||
call phLR_transition_vectors(.true.,nBas,nC,nO,nV,nR,nS,dipole_int,OmBSE,XpY_BSE,XmY_BSE)
|
||||
|
||||
!----------------------------------------------------!
|
||||
|
@ -78,5 +78,7 @@ subroutine GW_QP_graph(eta,nBas,nC,nO,nV,nR,nS,eHF,Om,rho,eGWlin,eOld,eGW,Z)
|
||||
end if
|
||||
|
||||
end do
|
||||
write(*,*)'-----------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
end subroutine
|
||||
|
@ -117,7 +117,7 @@ subroutine GW_phBSE(dophBSE2,TDA_W,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,
|
||||
|
||||
call phLR(TDA,nS,Aph,Bph,EcBSE(ispin),OmBSE,XpY_BSE,XmY_BSE)
|
||||
|
||||
call print_excitation_energies('phBSE@RGW','singlet',nS,OmBSE)
|
||||
call print_excitation_energies('phBSE@GW@RHF','singlet',nS,OmBSE)
|
||||
call phLR_transition_vectors(.true.,nBas,nC,nO,nV,nR,nS,dipole_int,OmBSE,XpY_BSE,XmY_BSE)
|
||||
|
||||
!----------------------------------------------------!
|
||||
@ -149,7 +149,7 @@ subroutine GW_phBSE(dophBSE2,TDA_W,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,
|
||||
|
||||
call phLR(TDA,nS,Aph,Bph,EcBSE(ispin),OmBSE,XpY_BSE,XmY_BSE)
|
||||
|
||||
call print_excitation_energies('phBSE@RGW','triplet',nS,OmBSE)
|
||||
call print_excitation_energies('phBSE@GW@RHF','triplet',nS,OmBSE)
|
||||
call phLR_transition_vectors(.false.,nBas,nC,nO,nV,nR,nS,dipole_int,OmBSE,XpY_BSE,XmY_BSE)
|
||||
|
||||
!-------------------------------------------------
|
||||
|
@ -180,10 +180,10 @@ subroutine RG0W0(dotest,doACFDT,exchange_kernel,doXBS,dophBSE,dophBSE2,TDA_W,TDA
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@G0W0 correlation energy (singlet) =',EcBSE(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@G0W0 correlation energy (triplet) =',EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@G0W0 correlation energy =',EcBSE(1) + EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@G0W0 total energy =',ENuc + ERHF + EcBSE(1) + EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@G0W0@RHF correlation energy (singlet) = ',EcBSE(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@G0W0@RHF correlation energy (triplet) = ',EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@G0W0@RHF correlation energy = ',sum(EcBSE),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@G0W0@RHF total energy = ',ENuc + ERHF + sum(EcBSE),' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
@ -207,10 +207,10 @@ subroutine RG0W0(dotest,doACFDT,exchange_kernel,doXBS,dophBSE,dophBSE2,TDA_W,TDA
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phBSE@G0W0 correlation energy (singlet) =',EcBSE(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phBSE@G0W0 correlation energy (triplet) =',EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phBSE@G0W0 correlation energy =',EcBSE(1) + EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phBSE@G0W0 total energy =',ENuc + ERHF + EcBSE(1) + EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phBSE@G0W0@RHF correlation energy (singlet) = ',EcBSE(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phBSE@G0W0@RHF correlation energy (triplet) = ',EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phBSE@G0W0@RHF correlation energy = ',sum(EcBSE),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phBSE@G0W0@RHF total energy = ',ENuc + ERHF + sum(EcBSE),' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
@ -222,12 +222,14 @@ subroutine RG0W0(dotest,doACFDT,exchange_kernel,doXBS,dophBSE,dophBSE2,TDA_W,TDA
|
||||
|
||||
call GW_ppBSE(TDA_W,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,nS,ERI,dipole_int,eHF,eGW,EcBSE)
|
||||
|
||||
EcBSE(2) = 3d0*EcBSE(2)
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@ppBSE@G0W0 correlation energy (singlet) =',EcBSE(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@ppBSE@G0W0 correlation energy (triplet) =',3d0*EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@ppBSE@G0W0 correlation energy =',EcBSE(1) + 3d0*EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@ppBSE@G0W0 total energy =',ENuc + ERHF + EcBSE(1) + 3d0*EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@ppBSE@G0W0@RHF correlation energy (singlet) = ',EcBSE(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@ppBSE@G0W0@RHF correlation energy (triplet) = ',EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@ppBSE@G0W0@RHF correlation energy = ',sum(EcBSE),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@ppBSE@G0W0@RHF total energy = ',ENuc + ERHF + sum(EcBSE),' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
|
@ -202,10 +202,10 @@ subroutine UG0W0(dotest,doACFDT,exchange_kernel,doXBS,dophBSE,TDA_W,TDA,dBSE,dTD
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@UG0W0 correlation energy (spin-conserved) =',EcBSE(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@UG0W0 correlation energy (spin-flip) =',EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@UG0W0 correlation energy =',sum(EcBSE),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@UG0W0 total energy =',ENuc + EUHF + sum(EcBSE),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@G0W0@UHF correlation energy (spin-conserved) = ',EcBSE(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@G0W0@UHF correlation energy (spin-flip) = ',EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@G0W0@UHF correlation energy = ',sum(EcBSE),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@G0W0@UHF total energy = ',ENuc + EUHF + sum(EcBSE),' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
@ -230,10 +230,10 @@ subroutine UG0W0(dotest,doACFDT,exchange_kernel,doXBS,dophBSE,TDA_W,TDA,dBSE,dTD
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@UG0W0 correlation energy (spin-conserved) =',EcBSE(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@UG0W0 correlation energy (spin-flip) =',EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@UG0W0 correlation energy =',sum(EcBSE),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@UG0W0 total energy =',ENuc + EUHF + sum(EcBSE),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@G0W0@UHF correlation energy (spin-conserved) = ',EcBSE(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@G0W0@UHF correlation energy (spin-flip) = ',EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@G0W0@UHF correlation energy = ',sum(EcBSE),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@G0W0@UHF total energy = ',ENuc + EUHF + sum(EcBSE),' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
|
@ -79,4 +79,7 @@ subroutine UGW_QP_graph(eta,nBas,nC,nO,nV,nR,nS,eHF,Om,rho,eGWlin,eOld,eGW,Z)
|
||||
|
||||
end do
|
||||
|
||||
write(*,*)'-----------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
end subroutine
|
||||
|
@ -1,6 +1,5 @@
|
||||
subroutine UGW_phBSE(TDA_W,TDA,dBSE,dTDA,spin_conserved,spin_flip,eta, &
|
||||
nBas,nC,nO,nV,nR,nS,S,ERI_aaaa,ERI_aabb,ERI_bbbb, &
|
||||
dipole_int_aa,dipole_int_bb,cW,eW,eGW,EcBSE)
|
||||
subroutine UGW_phBSE(TDA_W,TDA,dBSE,dTDA,spin_conserved,spin_flip,eta,nBas,nC,nO,nV,nR,nS, &
|
||||
S,ERI_aaaa,ERI_aabb,ERI_bbbb,dipole_int_aa,dipole_int_bb,cW,eW,eGW,EcBSE)
|
||||
|
||||
! Compute the Bethe-Salpeter excitation energies
|
||||
|
||||
@ -100,7 +99,7 @@ subroutine UGW_phBSE(TDA_W,TDA,dBSE,dTDA,spin_conserved,spin_flip,eta, &
|
||||
|
||||
call phULR(ispin,.true.,TDA,.true.,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,EcBSE(ispin),OmBSE_sc,XpY_BSE_sc,XmY_BSE_sc)
|
||||
call print_excitation_energies('phBSE@UGW','spin-conserved',nS_sc,OmBSE_sc)
|
||||
call print_excitation_energies('phBSE@GW@UHF','spin-conserved',nS_sc,OmBSE_sc)
|
||||
call phULR_transition_vectors(ispin,nBas,nC,nO,nV,nR,nS,nS_aa,nS_bb,nS_sc,dipole_int_aa,dipole_int_bb, &
|
||||
cW,S,OmBSE_sc,XpY_BSE_sc,XmY_BSE_sc)
|
||||
|
||||
@ -136,7 +135,7 @@ subroutine UGW_phBSE(TDA_W,TDA,dBSE,dTDA,spin_conserved,spin_flip,eta, &
|
||||
eGW,ERI_aaaa,ERI_aabb,ERI_bbbb,OmRPA,rho_RPA,EcBSE(ispin), &
|
||||
OmBSE_sf,XpY_BSE_sf,XmY_BSE_sf)
|
||||
|
||||
call print_excitation_energies('phBSE@UGW','spin-flip',nS_sf,OmBSE_sf)
|
||||
call print_excitation_energies('phBSE@GW@UHF','spin-flip',nS_sf,OmBSE_sf)
|
||||
call phULR_transition_vectors(ispin,nBas,nC,nO,nV,nR,nS,nS_ab,nS_ba,nS_sf,dipole_int_aa,dipole_int_bb, &
|
||||
cW,S,OmBSE_sf,XpY_BSE_sf,XmY_BSE_sf)
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
subroutine evGGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dophBSE,dophBSE2,TDA_W,TDA,dBSE,dTDA,doppBSE, &
|
||||
linearize,eta,regularize,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI,dipole_int,eHF)
|
||||
linearize,eta,regularize,nBas,nC,nO,nV,nR,nS,ENuc,EGHF,ERI,dipole_int,eHF)
|
||||
|
||||
! Perform self-consistent eigenvalue-only GW calculation
|
||||
|
||||
@ -14,7 +14,7 @@ subroutine evGGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dop
|
||||
integer,intent(in) :: max_diis
|
||||
double precision,intent(in) :: thresh
|
||||
double precision,intent(in) :: ENuc
|
||||
double precision,intent(in) :: ERHF
|
||||
double precision,intent(in) :: EGHF
|
||||
logical,intent(in) :: doACFDT
|
||||
logical,intent(in) :: exchange_kernel
|
||||
logical,intent(in) :: doXBS
|
||||
@ -157,7 +157,7 @@ subroutine evGGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dop
|
||||
|
||||
! Print results
|
||||
|
||||
call print_evGGW(nBas,nO,nSCF,Conv,eHF,ENuc,ERHF,SigC,Z,eGW,EcRPA,EcGM)
|
||||
call print_evGGW(nBas,nO,nSCF,Conv,eHF,ENuc,EGHF,SigC,Z,eGW,EcRPA,EcGM)
|
||||
|
||||
! Linear mixing or DIIS extrapolation
|
||||
|
||||
@ -215,8 +215,8 @@ subroutine evGGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dop
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@BSE@evGW correlation energy =',EcBSE
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@BSE@evGW total energy =',ENuc + ERHF + EcBSE
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@evGW@GHF correlation energy = ',EcBSE,' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@evGW@GHF total energy = ',ENuc + EGHF + EcBSE,' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
@ -243,7 +243,7 @@ subroutine evGGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dop
|
||||
! write(*,'(2X,A50,F20.10)') 'AC@BSE@evGW correlation energy (singlet) =',EcBSE(1)
|
||||
! write(*,'(2X,A50,F20.10)') 'AC@BSE@evGW correlation energy (triplet) =',EcBSE(2)
|
||||
! write(*,'(2X,A50,F20.10)') 'AC@BSE@evGW correlation energy =',EcBSE(1) + EcBSE(2)
|
||||
! write(*,'(2X,A50,F20.10)') 'AC@BSE@evGW total energy =',ENuc + ERHF + EcBSE(1) + EcBSE(2)
|
||||
! write(*,'(2X,A50,F20.10)') 'AC@BSE@evGW total energy =',ENuc + EGHF + EcBSE(1) + EcBSE(2)
|
||||
! write(*,*)'-------------------------------------------------------------------------------'
|
||||
! write(*,*)
|
||||
|
||||
@ -260,7 +260,7 @@ subroutine evGGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dop
|
||||
! write(*,'(2X,A50,F20.10)') 'Tr@ppBSE@evGW correlation energy (singlet) =',EcBSE(1)
|
||||
! write(*,'(2X,A50,F20.10)') 'Tr@ppBSE@evGW correlation energy (triplet) =',3d0*EcBSE(2)
|
||||
! write(*,'(2X,A50,F20.10)') 'Tr@ppBSE@evGW correlation energy =',EcBSE(1) + 3d0*EcBSE(2)
|
||||
! write(*,'(2X,A50,F20.10)') 'Tr@ppBSE@evGW total energy =',ENuc + ERHF + EcBSE(1) + 3d0*EcBSE(2)
|
||||
! write(*,'(2X,A50,F20.10)') 'Tr@ppBSE@evGW total energy =',ENuc + EGHF + EcBSE(1) + 3d0*EcBSE(2)
|
||||
! write(*,*)'-------------------------------------------------------------------------------'
|
||||
! write(*,*)
|
||||
|
||||
|
@ -224,10 +224,10 @@ subroutine evRGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dop
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@BSE@evGW correlation energy (singlet) =',EcBSE(1)
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@BSE@evGW correlation energy (triplet) =',EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@BSE@evGW correlation energy =',EcBSE(1) + EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@BSE@evGW total energy =',ENuc + ERHF + EcBSE(1) + EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@evGW@RHF correlation energy (singlet) = ',EcBSE(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@evGW@RHF correlation energy (triplet) = ',EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@evGW@RHF correlation energy = ',sum(EcBSE),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@evGW@RHF total energy = ',ENuc + ERHF + sum(EcBSE),' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
@ -251,10 +251,10 @@ subroutine evRGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dop
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10)') 'AC@BSE@evGW correlation energy (singlet) =',EcBSE(1)
|
||||
write(*,'(2X,A50,F20.10)') 'AC@BSE@evGW correlation energy (triplet) =',EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10)') 'AC@BSE@evGW correlation energy =',EcBSE(1) + EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10)') 'AC@BSE@evGW total energy =',ENuc + ERHF + EcBSE(1) + EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@evGW@RHF correlation energy (singlet) = ',EcBSE(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@evGW@RHF correlation energy (triplet) = ',EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@evGW@RHF correlation energy = ',sum(EcBSE),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@evGW@RHF total energy = ',ENuc + ERHF + sum(EcBSE),' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
@ -266,12 +266,14 @@ subroutine evRGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dop
|
||||
|
||||
call GW_ppBSE(TDA_W,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,nS,ERI,dipole_int,eHF,eGW,EcBSE)
|
||||
|
||||
EcBSE(2) = 3d0*EcBSE(2)
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@ppBSE@evGW correlation energy (singlet) =',EcBSE(1)
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@ppBSE@evGW correlation energy (triplet) =',3d0*EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@ppBSE@evGW correlation energy =',EcBSE(1) + 3d0*EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@ppBSE@evGW total energy =',ENuc + ERHF + EcBSE(1) + 3d0*EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@ppBSE@evGW@RHF correlation energy (singlet) = ',EcBSE(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@ppBSE@evGW@RHF correlation energy (triplet) = ',EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@ppBSE@evGW@RHF correlation energy = ',sum(EcBSE),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@ppBSE@evGW@RHF total energy = ',ENuc + ERHF + sum(EcBSE),' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
|
@ -56,10 +56,9 @@ subroutine evUGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE
|
||||
integer :: n_diis
|
||||
double precision :: rcond(nspin)
|
||||
double precision :: Conv
|
||||
double precision :: EcRPA
|
||||
double precision :: EcRPA(nspin)
|
||||
double precision :: EcGM(nspin)
|
||||
double precision :: EcBSE(nspin)
|
||||
double precision :: EcAC(nspin)
|
||||
double precision :: alpha
|
||||
double precision,allocatable :: error_diis(:,:,:)
|
||||
double precision,allocatable :: e_diis(:,:,:)
|
||||
@ -100,7 +99,7 @@ subroutine evUGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE
|
||||
|
||||
! Initialization
|
||||
|
||||
EcRPA = 0d0
|
||||
EcRPA(:) = 0d0
|
||||
dRPA = .true.
|
||||
|
||||
! Linear mixing
|
||||
@ -142,7 +141,7 @@ subroutine evUGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE
|
||||
call phULR_A(ispin,dRPA,nBas,nC,nO,nV,nR,nSa,nSb,nSt,1d0,eGW,ERI_aaaa,ERI_aabb,ERI_bbbb,Aph)
|
||||
if(.not.TDA) call phULR_B(ispin,dRPA,nBas,nC,nO,nV,nR,nSa,nSb,nSt,1d0,ERI_aaaa,ERI_aabb,ERI_bbbb,Bph)
|
||||
|
||||
call phULR(TDA_W,nSa,nSb,nSt,Aph,Bph,EcRPA,Om,XpY,XmY)
|
||||
call phULR(TDA_W,nSa,nSb,nSt,Aph,Bph,EcRPA(ispin),Om,XpY,XmY)
|
||||
|
||||
!----------------------!
|
||||
! Excitation densities !
|
||||
@ -196,7 +195,7 @@ subroutine evUGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE
|
||||
|
||||
! Print results
|
||||
|
||||
call print_evUGW(nBas,nO,nSCF,Conv,eHF,ENuc,EUHF,SigC,Z,eGW,EcRPA,EcGM)
|
||||
call print_evUGW(nBas,nO,nSCF,Conv,eHF,ENuc,EUHF,SigC,Z,eGW,EcRPA(ispin),EcGM)
|
||||
|
||||
! Linear mixing or DIIS extrapolation
|
||||
|
||||
@ -269,10 +268,10 @@ subroutine evUGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@BSE@evUGW correlation energy (spin-conserved) =',EcBSE(1)
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@BSE@evUGW correlation energy (spin-flip) =',EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@BSE@evUGW correlation energy =',EcBSE(1) + EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@BSE@evUGW total energy =',ENuc + EUHF + EcBSE(1) + EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@evGW@UHF correlation energy (spin-conserved) =',EcBSE(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@evGW@UHF correlation energy (spin-flip) =',EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@evGW@UHF correlation energy =',sum(EcBSE),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@evGW@UHF total energy =',ENuc + EUHF + sum(EcBSE),' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
@ -293,14 +292,14 @@ subroutine evUGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE
|
||||
end if
|
||||
|
||||
call UGW_phACFDT(exchange_kernel,doXBS,.true.,TDA_W,TDA,BSE,spin_conserved,spin_flip, &
|
||||
eta,nBas,nC,nO,nV,nR,nS,ERI_aaaa,ERI_aabb,ERI_bbbb,eGW,eGW,EcAC)
|
||||
eta,nBas,nC,nO,nV,nR,nS,ERI_aaaa,ERI_aabb,ERI_bbbb,eGW,eGW,EcRPA)
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10)') 'AC@BSE@evUGW correlation energy (spin-conserved) =',EcAC(1)
|
||||
write(*,'(2X,A50,F20.10)') 'AC@BSE@evUGW correlation energy (spin-flip) =',EcAC(2)
|
||||
write(*,'(2X,A50,F20.10)') 'AC@BSE@evUGW correlation energy =',EcAC(1) + EcAC(2)
|
||||
write(*,'(2X,A50,F20.10)') 'AC@BSE@evUGW total energy =',ENuc + EUHF + EcAC(1) + EcAC(2)
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@evGW@UHF correlation energy (spin-conserved) =',EcRPA(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@evGW@UHF correlation energy (spin-flip) =',EcRPA(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@evGW@UHF correlation energy =',sum(EcRPA),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@evGW@UHF total energy =',ENuc + EUHF + sum(EcRPA),' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
|
@ -27,7 +27,7 @@ subroutine print_GG0W0(nBas,nO,eHF,ENuc,ERHF,SigC,Z,eGW,EcRPA,EcGM)
|
||||
! Dump results
|
||||
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)' One-shot GG0W0 calculation'
|
||||
write(*,*)' G0W0@GHF calculation '
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(1X,A1,1X,A3,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X)') &
|
||||
'|','#','|','e_HF (eV)','|','Sig_GW (eV)','|','Z','|','e_GW (eV)','|'
|
||||
@ -39,14 +39,14 @@ subroutine print_GG0W0(nBas,nO,eHF,ENuc,ERHF,SigC,Z,eGW,EcRPA,EcGM)
|
||||
enddo
|
||||
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'GG0W0 HOMO energy =',eGW(HOMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'GG0W0 LUMO energy =',eGW(LUMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'GG0W0 HOMO-LUMO gap =',Gap*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'G0W0@GHF HOMO energy =',eGW(HOMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'G0W0@GHF LUMO energy =',eGW(LUMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'G0W0@GHF HOMO-LUMO gap =',Gap*HaToeV,' eV'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@GG0W0 total energy =',ENuc + ERHF + EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@GG0W0 correlation energy =',EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@GG0W0 total energy =',ENuc + ERHF + EcGM,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@GG0W0 correlation energy =',EcGM,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@G0W0@GHF total energy =',ENuc + ERHF + EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@G0W0@GHF correlation energy =',EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@G0W0@GHF total energy =',ENuc + ERHF + EcGM,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@G0W0@GHF correlation energy =',EcGM,' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
|
@ -27,7 +27,7 @@ subroutine print_RG0W0(nBas,nO,eHF,ENuc,ERHF,SigC,Z,eGW,EcRPA,EcGM)
|
||||
! Dump results
|
||||
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)' One-shot RG0W0 calculation'
|
||||
write(*,*)' G0W0@RHF calculation '
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(1X,A1,1X,A3,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X)') &
|
||||
'|','#','|','e_HF (eV)','|','Sig_GW (eV)','|','Z','|','e_GW (eV)','|'
|
||||
@ -39,14 +39,14 @@ subroutine print_RG0W0(nBas,nO,eHF,ENuc,ERHF,SigC,Z,eGW,EcRPA,EcGM)
|
||||
enddo
|
||||
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'RG0W0 HOMO energy =',eGW(HOMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'RG0W0 LUMO energy =',eGW(LUMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'RG0W0 HOMO-LUMO gap =',Gap*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'G0W0@RHF HOMO energy = ',eGW(HOMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'G0W0@RHF LUMO energy = ',eGW(LUMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'G0W0@RHF HOMO-LUMO gap = ',Gap*HaToeV,' eV'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@RG0W0 total energy =',ENuc + ERHF + EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@RG0W0 correlation energy =',EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@RG0W0 total energy =',ENuc + ERHF + EcGM,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@RG0W0 correlation energy =',EcGM,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@G0W0@RHF total energy = ',ENuc + ERHF + EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@G0W0@RHF correlation energy = ',EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@G0W0@RHF total energy = ',ENuc + ERHF + EcGM,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@G0W0@RHF correlation energy = ',EcGM,' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
|
@ -40,11 +40,11 @@ subroutine print_UG0W0(nBas,nO,eHF,ENuc,EUHF,SigC,Z,eGW,EcRPA,EcGM)
|
||||
|
||||
write(*,*)'----------------------------------------------------------------'// &
|
||||
'----------------------------------------------------------------'
|
||||
write(*,*)' One-shot UG0W0 calculation (eV)'
|
||||
write(*,*)' G0W0@UHF calculation '
|
||||
write(*,*)'----------------------------------------------------------------'// &
|
||||
'----------------------------------------------------------------'
|
||||
write(*,'(A1,A3,A1,A30,A1,A30,A1,A30,A1,A30,A1)') &
|
||||
'|',' ','|','e_HF ','|','Sig_GW ','|','Z ','|','e_GW ','|'
|
||||
'|',' ','|','e_HF (eV) ','|','Sig_GW (eV) ','|','Z ','|','e_GW (eV) ','|'
|
||||
write(*,'(A1,A3,A1,2A15,A1,2A15,A1,2A15,A1,2A15,A1)') &
|
||||
'|','#','|','up ','dw ','|','up ','dw ','|','up ','dw ','|','up ','dw ','|'
|
||||
write(*,*)'----------------------------------------------------------------'// &
|
||||
@ -58,15 +58,15 @@ subroutine print_UG0W0(nBas,nO,eHF,ENuc,EUHF,SigC,Z,eGW,EcRPA,EcGM)
|
||||
|
||||
write(*,*)'----------------------------------------------------------------'// &
|
||||
'----------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F15.6,A3)') 'UG0W0 HOMO energy = ',maxval(HOMO(:))*HaToeV,' eV'
|
||||
write(*,'(2X,A50,F15.6,A3)') 'UG0W0 LUMO energy = ',minval(LUMO(:))*HaToeV,' eV'
|
||||
write(*,'(2X,A50,F15.6,A3)') 'UG0W0 HOMO-LUMO gap = ',(minval(LUMO(:))-maxval(HOMO(:)))*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'G0W0@UHF HOMO energy = ',maxval(HOMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'G0W0@UHF LUMO energy = ',minval(LUMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'G0W0@UHF HOMO-LUMO gap = ',(minval(LUMO)-maxval(HOMO))*HaToeV,' eV'
|
||||
write(*,*)'----------------------------------------------------------------'// &
|
||||
'----------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F15.6,A3)') 'phRPA@UG0W0 total energy = ',ENuc + EUHF + EcRPA,' au'
|
||||
write(*,'(2X,A50,F15.6,A3)') 'phRPA@UG0W0 correlation energy = ',EcRPA,' au'
|
||||
write(*,'(2X,A50,F15.6,A3)') ' GM@UG0W0 total energy = ',ENuc + EUHF + sum(EcGM(:)),' au'
|
||||
write(*,'(2X,A50,F15.6,A3)') ' GM@UG0W0 correlation energy = ',sum(EcGM(:)),' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@G0W0@UHF total energy = ',ENuc + EUHF + EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@G0W0@UHF correlation energy = ',EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@G0W0@UHF total energy = ',ENuc + EUHF + sum(EcGM),' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@G0W0@UHF correlation energy = ',sum(EcGM),' au'
|
||||
write(*,*)'----------------------------------------------------------------'// &
|
||||
'----------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
@ -28,7 +28,13 @@ subroutine print_evGGW(nBas,nO,nSCF,Conv,eHF,ENuc,ERHF,SigC,Z,eGW,EcRPA,EcGM)
|
||||
! Dump results
|
||||
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(1X,A21,I3,A1,I3,A12)')' Self-consistent evGG',nSCF,'W',nSCF,' calculation'
|
||||
if(nSCF < 10) then
|
||||
write(*,'(1X,A20,I1,A1,I1,A16)')' Self-consistent evG',nSCF,'W',nSCF,'@GHF calculation'
|
||||
elseif(nSCF < 100) then
|
||||
write(*,'(1X,A20,I2,A1,I2,A16)')' Self-consistent evG',nSCF,'W',nSCF,'@GHF calculation'
|
||||
else
|
||||
write(*,'(1X,A20,I3,A1,I3,A16)')' Self-consistent evG',nSCF,'W',nSCF,'@GHF calculation'
|
||||
end if
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(1X,A1,1X,A3,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X)') &
|
||||
'|','#','|','e_HF (eV)','|','Sig_GW (eV)','|','Z','|','e_GW (eV)','|'
|
||||
@ -43,14 +49,14 @@ subroutine print_evGGW(nBas,nO,nSCF,Conv,eHF,ENuc,ERHF,SigC,Z,eGW,EcRPA,EcGM)
|
||||
write(*,'(2X,A10,I3)') 'Iteration ',nSCF
|
||||
write(*,'(2X,A14,F15.5)')'Convergence = ',Conv
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'evGGW HOMO energy =',eGW(HOMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'evGGW LUMO energy =',eGW(LUMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'evGGW HOMO-LUMO gap =',Gap*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'evGW@GHF HOMO energy = ',eGW(HOMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'evGW@GHF LUMO energy = ',eGW(LUMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'evGW@GHF HOMO-LUMO gap = ',Gap*HaToeV,' eV'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@evGGW total energy =',ENuc + ERHF + EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@evGGW correlation energy =',EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@evGGW total energy =',ENuc + ERHF + EcGM,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@evGGW correlation energy =',EcGM,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@evGW@GHF total energy = ',ENuc + ERHF + EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@evGW@GHF correlation energy = ',EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@evGW@GHF total energy = ',ENuc + ERHF + EcGM,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@evGW@GHF correlation energy = ',EcGM,' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
|
@ -29,11 +29,11 @@ subroutine print_evRGW(nBas,nO,nSCF,Conv,eHF,ENuc,ERHF,SigC,Z,eGW,EcRPA,EcGM)
|
||||
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
if(nSCF < 10) then
|
||||
write(*,'(1X,A21,I1,A1,I1,A12)')' Self-consistent evRG',nSCF,'W',nSCF,' calculation'
|
||||
write(*,'(1X,A20,I1,A1,I1,A16)')' Self-consistent evG',nSCF,'W',nSCF,'@RHF calculation'
|
||||
elseif(nSCF < 100) then
|
||||
write(*,'(1X,A21,I2,A1,I2,A12)')' Self-consistent evRG',nSCF,'W',nSCF,' calculation'
|
||||
write(*,'(1X,A20,I2,A1,I2,A16)')' Self-consistent evG',nSCF,'W',nSCF,'@RHF calculation'
|
||||
else
|
||||
write(*,'(1X,A21,I3,A1,I3,A12)')' Self-consistent evRG',nSCF,'W',nSCF,' calculation'
|
||||
write(*,'(1X,A20,I3,A1,I3,A16)')' Self-consistent evG',nSCF,'W',nSCF,'@RHF calculation'
|
||||
end if
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(1X,A1,1X,A3,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X)') &
|
||||
@ -49,14 +49,14 @@ subroutine print_evRGW(nBas,nO,nSCF,Conv,eHF,ENuc,ERHF,SigC,Z,eGW,EcRPA,EcGM)
|
||||
write(*,'(2X,A10,I3)') 'Iteration ',nSCF
|
||||
write(*,'(2X,A14,F15.5)')'Convergence = ',Conv
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'evRGW HOMO energy = ',eGW(HOMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'evRGW LUMO energy = ',eGW(LUMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'evRGW HOMO-LUMO gap = ',Gap*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'evGW@RHF HOMO energy = ',eGW(HOMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'evGW@RHF LUMO energy = ',eGW(LUMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'evGW@RHF HOMO-LUMO gap = ',Gap*HaToeV,' eV'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@evRGW total energy = ',ENuc + ERHF + EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@evRGW correlation energy = ',EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@evRGW total energy = ',ENuc + ERHF + EcGM,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@evRGW correlation energy = ',EcGM,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@evGW@RHF total energy = ',ENuc + ERHF + EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@evGW@RHF correlation energy = ',EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@evGW@RHF total energy = ',ENuc + ERHF + EcGM,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@evGW@RHF correlation energy = ',EcGM,' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
|
@ -43,16 +43,16 @@ subroutine print_evUGW(nBas,nO,nSCF,Conv,eHF,ENuc,EUHF,SigC,Z,eGW,EcRPA,EcGM)
|
||||
write(*,*)'----------------------------------------------------------------'// &
|
||||
'----------------------------------------------------------------'
|
||||
if(nSCF < 10) then
|
||||
write(*,'(1X,A22,I1,A1,I1,A12)')' Self-consistent evUG',nSCF,'W',nSCF,' calculation'
|
||||
write(*,'(1X,A20,I1,A1,I1,A16)')' Self-consistent evG',nSCF,'W',nSCF,'@UHF calculation'
|
||||
elseif(nSCF < 100) then
|
||||
write(*,'(1X,A22,I2,A1,I2,A12)')' Self-consistent evUG',nSCF,'W',nSCF,' calculation'
|
||||
write(*,'(1X,A20,I2,A1,I2,A16)')' Self-consistent evG',nSCF,'W',nSCF,'@UHF calculation'
|
||||
else
|
||||
write(*,'(1X,A22,I3,A1,I3,A12)')' Self-consistent evUG',nSCF,'W',nSCF,' calculation'
|
||||
write(*,'(1X,A20,I3,A1,I3,A16)')' Self-consistent evG',nSCF,'W',nSCF,'@UHF calculation'
|
||||
end if
|
||||
write(*,*)'----------------------------------------------------------------'// &
|
||||
'----------------------------------------------------------------'
|
||||
write(*,'(A1,A3,A1,A30,A1,A30,A1,A30,A1,A30,A1)') &
|
||||
'|',' ','|','e_HF ','|','Sig_GW ','|','Z ','|','e_GW ','|'
|
||||
'|',' ','|','e_HF (eV) ','|','Sig_GW (eV) ','|','Z ','|','e_GW (eV) ','|'
|
||||
write(*,'(A1,A3,A1,2A15,A1,2A15,A1,2A15,A1,2A15,A1)') &
|
||||
'|','#','|','up ','dw ','|','up ','dw ','|','up ','dw ','|','up ','dw ','|'
|
||||
write(*,*)'----------------------------------------------------------------'// &
|
||||
@ -70,15 +70,15 @@ subroutine print_evUGW(nBas,nO,nSCF,Conv,eHF,ENuc,EUHF,SigC,Z,eGW,EcRPA,EcGM)
|
||||
write(*,'(2X,A14,F15.5)')'Convergence = ',Conv
|
||||
write(*,*)'----------------------------------------------------------------'// &
|
||||
'----------------------------------------------------------------'
|
||||
write(*,'(2X,A30,F15.6,A3)') 'evUGW HOMO energy = ',maxval(HOMO(:))*HaToeV,' eV'
|
||||
write(*,'(2X,A30,F15.6,A3)') 'evUGW LUMO energy = ',minval(LUMO(:))*HaToeV,' eV'
|
||||
write(*,'(2X,A30,F15.6,A3)') 'evUGW HOMO-LUMO gap = ',(minval(LUMO(:))-maxval(HOMO(:)))*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'evGW@UHF HOMO energy = ',maxval(HOMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'evGW@UHF LUMO energy = ',minval(LUMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'evGW@UHF HOMO-LUMO gap = ',(minval(LUMO)-maxval(HOMO))*HaToeV,' eV'
|
||||
write(*,*)'----------------------------------------------------------------'// &
|
||||
'----------------------------------------------------------------'
|
||||
write(*,'(2X,A30,F15.6,A3)') 'RPA@evUGW total energy = ',ENuc + EUHF + EcRPA,' au'
|
||||
write(*,'(2X,A30,F15.6,A3)') 'RPA@evUGW correlation energy = ',EcRPA,' au'
|
||||
write(*,'(2X,A30,F15.6,A3)') ' GM@evUGW total energy = ',ENuc + EUHF + sum(EcGM(:)),' au'
|
||||
write(*,'(2X,A30,F15.6,A3)') ' GM@evUGW correlation energy = ',sum(EcGM(:)),' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'RPA@evG@UHFW total energy = ',ENuc + EUHF + EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'RPA@evG@UHFW correlation energy = ',EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@evG@UHFW total energy = ',ENuc + EUHF + sum(EcGM),' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@evG@UHFW correlation energy = ',sum(EcGM),' au'
|
||||
write(*,*)'----------------------------------------------------------------'// &
|
||||
'----------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
@ -114,11 +114,11 @@ subroutine print_qsGGW(nBas,nBas2,nO,nSCF,Conv,thresh,eHF,eGW,c,S,SigC,Z,ENuc,ET
|
||||
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
if(nSCF < 10) then
|
||||
write(*,'(1X,A22,I1,A1,I1,A12)')' Self-consistent qsRG',nSCF,'W',nSCF,' calculation'
|
||||
write(*,'(1X,A20,I1,A1,I1,A16)')' Self-consistent qsG',nSCF,'W',nSCF,'@GHF calculation'
|
||||
elseif(nSCF < 100) then
|
||||
write(*,'(1X,A22,I2,A1,I2,A12)')' Self-consistent qsRG',nSCF,'W',nSCF,' calculation'
|
||||
write(*,'(1X,A20,I2,A1,I2,A16)')' Self-consistent qsG',nSCF,'W',nSCF,'@GHF calculation'
|
||||
else
|
||||
write(*,'(1X,A22,I3,A1,I3,A12)')' Self-consistent qsRG',nSCF,'W',nSCF,' calculation'
|
||||
write(*,'(1X,A20,I3,A1,I3,A16)')' Self-consistent qsG',nSCF,'W',nSCF,'@GHF calculation'
|
||||
end if
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(1X,A1,1X,A3,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X)') &
|
||||
@ -134,14 +134,14 @@ subroutine print_qsGGW(nBas,nBas2,nO,nSCF,Conv,thresh,eHF,eGW,c,S,SigC,Z,ENuc,ET
|
||||
write(*,'(2X,A10,I3)') 'Iteration ',nSCF
|
||||
write(*,'(2X,A14,F15.5)')'Convergence = ',Conv
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'qsGGW HOMO energy = ',eGW(HOMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'qsGGW LUMO energy = ',eGW(LUMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'qsGGW HOMO-LUMO gap = ',Gap*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'qsGW@GHF HOMO energy = ',eGW(HOMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'qsGW@GHF LUMO energy = ',eGW(LUMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'qsGW@GHF HOMO-LUMO gap = ',Gap*HaToeV,' eV'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' qsGGW total energy = ',ENuc + EqsGW,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' qsGGW exchange energy = ',Ex,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@qsGGW correlation energy = ',EcGM,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@qsGGW correlation energy = ',EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' qsGW@GHF total energy = ',ENuc + EqsGW,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' qsGW@GHF exchange energy = ',Ex,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@qsGW@GHF correlation energy = ',EcGM,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@qsGW@GHF correlation energy = ',EcRPA,' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
|
@ -48,11 +48,11 @@ subroutine print_qsRGW(nBas,nO,nSCF,Conv,thresh,eHF,eGW,c,SigC,Z,ENuc,ET,EV,EJ,E
|
||||
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
if(nSCF < 10) then
|
||||
write(*,'(1X,A22,I1,A1,I1,A12)')' Self-consistent qsRG',nSCF,'W',nSCF,' calculation'
|
||||
write(*,'(1X,A20,I1,A1,I1,A16)')' Self-consistent qsG',nSCF,'W',nSCF,'@RHF calculation'
|
||||
elseif(nSCF < 100) then
|
||||
write(*,'(1X,A22,I2,A1,I2,A12)')' Self-consistent qsRG',nSCF,'W',nSCF,' calculation'
|
||||
write(*,'(1X,A20,I2,A1,I2,A16)')' Self-consistent qsG',nSCF,'W',nSCF,'@RHF calculation'
|
||||
else
|
||||
write(*,'(1X,A22,I3,A1,I3,A12)')' Self-consistent qsRG',nSCF,'W',nSCF,' calculation'
|
||||
write(*,'(1X,A20,I3,A1,I3,A16)')' Self-consistent qsG',nSCF,'W',nSCF,'@RHF calculation'
|
||||
end if
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(1X,A1,1X,A3,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X,A15,1X,A1,1X)') &
|
||||
@ -68,14 +68,14 @@ subroutine print_qsRGW(nBas,nO,nSCF,Conv,thresh,eHF,eGW,c,SigC,Z,ENuc,ET,EV,EJ,E
|
||||
write(*,'(2X,A10,I3)') 'Iteration ',nSCF
|
||||
write(*,'(2X,A14,F15.5)')'Convergence = ',Conv
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'qsRGW HOMO energy = ',eGW(HOMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'qsRGW LUMO energy = ',eGW(LUMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'qsRGW HOMO-LUMO gap = ',Gap*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'qsGW@RHF HOMO energy = ',eGW(HOMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'qsGW@RHF LUMO energy = ',eGW(LUMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'qsGW@RHF HOMO-LUMO gap = ',Gap*HaToeV,' eV'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' qsRGW total energy = ',ENuc + EqsGW,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' qsRGW exchange energy = ',EK,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@qsRGW correlation energy = ',EcGM,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@qsRGW correlation energy = ',EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' qsGW@RHF total energy = ',ENuc + EqsGW,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' qsGW@RHF exchange energy = ',EK,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@qsGW@RHF correlation energy = ',EcGM,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'phRPA@qsGW@RHF correlation energy = ',EcRPA,' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
|
@ -64,16 +64,16 @@ subroutine print_qsUGW(nBas,nO,nSCF,Conv,thresh,eHF,eGW,c,Ov,ENuc,ET,EV,EJ,Ex,Ec
|
||||
write(*,*)'----------------------------------------------------------------'// &
|
||||
'----------------------------------------------------------------'
|
||||
if(nSCF < 10) then
|
||||
write(*,'(1X,A22,I1,A1,I1,A12)')' Self-consistent qsUG',nSCF,'W',nSCF,' calculation'
|
||||
write(*,'(1X,A20,I1,A1,I1,A16)')' Self-consistent qsG',nSCF,'W',nSCF,'@UHF calculation'
|
||||
elseif(nSCF < 100) then
|
||||
write(*,'(1X,A22,I2,A1,I2,A12)')' Self-consistent qsUG',nSCF,'W',nSCF,' calculation'
|
||||
write(*,'(1X,A20,I2,A1,I2,A16)')' Self-consistent qsG',nSCF,'W',nSCF,'@UHF calculation'
|
||||
else
|
||||
write(*,'(1X,A22,I3,A1,I3,A12)')' Self-consistent qsUG',nSCF,'W',nSCF,' calculation'
|
||||
write(*,'(1X,A20,I3,A1,I3,A16)')' Self-consistent qsG',nSCF,'W',nSCF,'@UHF calculation'
|
||||
end if
|
||||
write(*,*)'----------------------------------------------------------------'// &
|
||||
'----------------------------------------------------------------'
|
||||
write(*,'(A1,A3,A1,A30,A1,A30,A1,A30,A1,A30,A1)') &
|
||||
'|',' ','|','e_HF ','|','Sig_GW ','|','Z ','|','e_GW ','|'
|
||||
'|',' ','|','e_HF (eV) ','|','Sig_GW (eV) ','|','Z ','|','e_GW (eV) ','|'
|
||||
write(*,'(A1,A3,A1,2A15,A1,2A15,A1,2A15,A1,2A15,A1)') &
|
||||
'|','#','|','up ','dw ','|','up ','dw ','|','up ','dw ','|','up ','dw ','|'
|
||||
write(*,*)'----------------------------------------------------------------'// &
|
||||
@ -91,15 +91,15 @@ subroutine print_qsUGW(nBas,nO,nSCF,Conv,thresh,eHF,eGW,c,Ov,ENuc,ET,EV,EJ,Ex,Ec
|
||||
write(*,'(2X,A14,F15.5)')'Convergence = ',Conv
|
||||
write(*,*)'----------------------------------------------------------------'// &
|
||||
'----------------------------------------------------------------'
|
||||
write(*,'(2X,A30,F15.6,A3)') 'qsUGW HOMO energy = ',maxval(HOMO(:))*HaToeV,' eV'
|
||||
write(*,'(2X,A30,F15.6,A3)') 'qsUGW LUMO energy = ',minval(LUMO(:))*HaToeV,' eV'
|
||||
write(*,'(2X,A30,F15.6,A3)') 'qsUGW HOMO-LUMO gap = ',(minval(LUMO(:))-maxval(HOMO(:)))*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'qsGW@UHF HOMO energy = ',maxval(HOMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'qsGW@UHF LUMO energy = ',minval(LUMO)*HaToeV,' eV'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'qsGW@UHF HOMO-LUMO gap = ',(minval(LUMO)-maxval(HOMO))*HaToeV,' eV'
|
||||
write(*,*)'----------------------------------------------------------------'// &
|
||||
'----------------------------------------------------------------'
|
||||
write(*,'(2X,A30,F15.6,A3)') ' qsUGW total energy = ',ENuc + EqsGW,' au'
|
||||
write(*,'(2X,A30,F15.6,A3)') ' qsUGW exchange energy = ',sum(Ex(:)),' au'
|
||||
write(*,'(2X,A30,F15.6,A3)') ' GM@qsUGW correlation energy = ',sum(EcGM(:)),' au'
|
||||
write(*,'(2X,A30,F15.6,A3)') 'RPA@qsUGW correlation energy = ',EcRPA,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' qsGW@UHF total energy = ',ENuc + EqsGW,' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' qsGW@UHF exchange energy = ',sum(Ex),' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') ' GM@qsGW@UHF correlation energy = ',sum(EcGM),' au'
|
||||
write(*,'(2X,A60,F15.6,A3)') 'RPA@qsGW@UHF correlation energy = ',EcRPA,' au'
|
||||
write(*,*)'----------------------------------------------------------------'// &
|
||||
'----------------------------------------------------------------'
|
||||
write(*,*)
|
||||
@ -112,33 +112,33 @@ subroutine print_qsUGW(nBas,nO,nSCF,Conv,thresh,eHF,eGW,c,Ov,ENuc,ET,EV,EJ,Ex,Ec
|
||||
write(*,'(A60)') '-------------------------------------------------'
|
||||
write(*,'(A40)') ' Summary '
|
||||
write(*,'(A60)') '-------------------------------------------------'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' One-electron energy = ',sum(ET(:)) + sum(EV(:)),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' One-electron energy = ',sum(ET) + sum(EV),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' One-electron a energy = ',ET(1) + EV(1),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' One-electron b energy = ',ET(2) + EV(2),' au'
|
||||
write(*,*)
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Kinetic energy = ',sum(ET(:)),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Kinetic energy = ',sum(ET),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Kinetic a energy = ',ET(1),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Kinetic b energy = ',ET(2),' au'
|
||||
write(*,*)
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Potential energy = ',sum(EV(:)),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Potential energy = ',sum(EV),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Potential a energy = ',EV(1),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Potential b energy = ',EV(2),' au'
|
||||
write(*,'(A60)') '-------------------------------------------------'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Two-electron energy = ',sum(EJ(:)) + sum(Ex(:)),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Two-electron energy = ',sum(EJ) + sum(Ex),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Two-electron aa energy = ',EJ(1) + Ex(1),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Two-electron ab energy = ',EJ(2),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Two-electron bb energy = ',EJ(3) + Ex(2),' au'
|
||||
write(*,*)
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Hartree energy = ',sum(EJ(:)),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Hartree energy = ',sum(EJ),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Hartree aa energy = ',EJ(1),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Hartree ab energy = ',EJ(2),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Hartree bb energy = ',EJ(3),' au'
|
||||
write(*,*)
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Exchange energy = ',sum(Ex(:)),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Exchange energy = ',sum(Ex),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Exchange a energy = ',Ex(1),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Exchange b energy = ',Ex(2),' au'
|
||||
write(*,*)
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Correlation energy = ',sum(EcGM(:)),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Correlation energy = ',sum(EcGM),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Correlation aa energy = ',EcGM(1),' au'
|
||||
write(*,'(A40,1X,F16.10,A3)') ' Correlation bb energy = ',EcGM(2),' au'
|
||||
write(*,'(A60)') '-------------------------------------------------'
|
||||
|
@ -257,7 +257,7 @@ subroutine qsGGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dop
|
||||
if(.not.TDA_W) call phLR_B(ispin,dRPA,nBas2,nC,nO,nV,nR,nS,1d0,ERI_MO,Bph)
|
||||
|
||||
call phLR(TDA_W,nS,Aph,Bph,EcRPA,Om,XpY,XmY)
|
||||
if(print_W) call print_excitation_energies('phRPA@GGW','spinorbital',nS,Om)
|
||||
if(print_W) call print_excitation_energies('phRPA@GW@GHF','spinorbital',nS,Om)
|
||||
|
||||
! Compute correlation part of the self-energy
|
||||
|
||||
@ -388,8 +388,8 @@ subroutine qsGGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dop
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@qsGW correlation energy =',EcBSE,' au'
|
||||
write(*,'(2X,A50,F20.10,A4)') 'Tr@BSE@qsGW total energy =',ENuc + EqsGW + EcBSE,' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@qsGW@GHF correlation energy = ',EcBSE,' au'
|
||||
write(*,'(2X,A50,F20.10,A4)') 'Tr@BSE@qsGW@GHF total energy = ',ENuc + EqsGW + EcBSE,' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
|
@ -177,7 +177,7 @@ subroutine qsRGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dop
|
||||
if(.not.TDA_W) call phLR_B(ispin,dRPA,nBas,nC,nO,nV,nR,nS,1d0,ERI_MO,Bph)
|
||||
|
||||
call phLR(TDA_W,nS,Aph,Bph,EcRPA,Om,XpY,XmY)
|
||||
if(print_W) call print_excitation_energies('phRPA@RGW','singlet',nS,Om)
|
||||
if(print_W) call print_excitation_energies('phRPA@GW@RHF','singlet',nS,Om)
|
||||
|
||||
! Compute correlation part of the self-energy
|
||||
|
||||
@ -287,10 +287,10 @@ subroutine qsRGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dop
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@BSE@qsGW correlation energy (singlet) =',EcBSE(1)
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@BSE@qsGW correlation energy (triplet) =',EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@BSE@qsGW correlation energy =',EcBSE(1) + EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@BSE@qsGW total energy =',ENuc + EqsGW + EcBSE(1) + EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@qsGW@RHF correlation energy (singlet) = ',EcBSE(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@qsGW@RHF correlation energy (triplet) = ',EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@qsGW@RHF correlation energy = ',sum(EcBSE),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@qsGW@RHF total energy = ',ENuc + EqsGW + sum(EcBSE),' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
@ -314,10 +314,10 @@ subroutine qsRGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dop
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10)') 'AC@BSE@qsGW correlation energy (singlet) =',EcBSE(1)
|
||||
write(*,'(2X,A50,F20.10)') 'AC@BSE@qsGW correlation energy (triplet) =',EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10)') 'AC@BSE@qsGW correlation energy =',EcBSE(1) + EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10)') 'AC@BSE@qsGW total energy =',ENuc + EqsGW + EcBSE(1) + EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@qsGW@RHF correlation energy (singlet) = ',EcBSE(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@qsGW@RHF correlation energy (triplet) = ',EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@qsGW@RHF correlation energy = ',sum(EcBSE),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@qsGW@RHF total energy = ',ENuc + EqsGW + sum(EcBSE),' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
@ -329,12 +329,14 @@ subroutine qsRGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,dop
|
||||
|
||||
call GW_ppBSE(TDA_W,TDA,dBSE,dTDA,singlet,triplet,eta,nBas,nC,nO,nV,nR,nS,ERI_MO,dipole_int_MO,eHF,eGW,EcBSE)
|
||||
|
||||
EcBSE(2) = 3d0*EcBSE(2)
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@ppBSE@qsGW correlation energy (singlet) =',EcBSE(1)
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@ppBSE@qsGW correlation energy (triplet) =',3d0*EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@ppBSE@qsGW correlation energy =',EcBSE(1) + 3d0*EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@ppBSE@qsGW total energy =',ENuc + ERHF + EcBSE(1) + 3d0*EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@ppBSE@qsGW@RHF correlation energy (singlet) = ',EcBSE(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@ppBSE@qsGW@RHF correlation energy (triplet) = ',EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@ppBSE@qsGW@RHF correlation energy = ',sum(EcBSE),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@ppBSE@qsGW@RHF total energy = ',ENuc + ERHF + sum(EcBSE),' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
|
@ -72,11 +72,10 @@ subroutine qsUGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE
|
||||
double precision :: EV(nspin)
|
||||
double precision :: EJ(nsp)
|
||||
double precision :: EK(nspin)
|
||||
double precision :: EcRPA
|
||||
double precision :: EcRPA(nspin)
|
||||
double precision :: EcGM(nspin)
|
||||
double precision :: EqsGW
|
||||
double precision :: EcBSE(nspin)
|
||||
double precision :: EcAC(nspin)
|
||||
double precision :: Conv
|
||||
double precision :: rcond(nspin)
|
||||
double precision,external :: trace_matrix
|
||||
@ -206,7 +205,7 @@ subroutine qsUGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE
|
||||
call phULR_A(ispin,dRPA,nBas,nC,nO,nV,nR,nSa,nSb,nSt,1d0,eGW,ERI_aaaa,ERI_aabb,ERI_bbbb,Aph)
|
||||
if(.not.TDA) call phULR_B(ispin,dRPA,nBas,nC,nO,nV,nR,nSa,nSb,nSt,1d0,ERI_aaaa,ERI_aabb,ERI_bbbb,Bph)
|
||||
|
||||
call phULR(TDA_W,nSa,nSb,nSt,Aph,Bph,EcRPA,Om,XpY,XmY)
|
||||
call phULR(TDA_W,nSa,nSb,nSt,Aph,Bph,EcRPA(ispin),Om,XpY,XmY)
|
||||
|
||||
!----------------------!
|
||||
! Excitation densities !
|
||||
@ -331,7 +330,7 @@ subroutine qsUGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE
|
||||
!------------------------------------------------------------------------
|
||||
|
||||
call dipole_moment(nBas,P(:,:,1)+P(:,:,2),nNuc,ZNuc,rNuc,dipole_int_AO,dipole)
|
||||
call print_qsUGW(nBas,nO,nSCF,Conv,thresh,eHF,eGW,c,S,ENuc,ET,EV,EJ,EK,EcGM,EcRPA,EqsGW,SigCp,Z,dipole)
|
||||
call print_qsUGW(nBas,nO,nSCF,Conv,thresh,eHF,eGW,c,S,ENuc,ET,EV,EJ,EK,EcGM,EcRPA(ispin),EqsGW,SigCp,Z,dipole)
|
||||
|
||||
enddo
|
||||
!------------------------------------------------------------------------
|
||||
@ -376,10 +375,10 @@ subroutine qsUGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@BSE@qsUGW correlation energy (spin-conserved) =',EcBSE(1)
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@BSE@qsUGW correlation energy (spin-flip) =',EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@BSE@qsUGW correlation energy =',EcBSE(1) + EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10)') 'Tr@BSE@qsUGW total energy =',ENuc + EqsGW + EcBSE(1) + EcBSE(2)
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@qsGW@UHF correlation energy (spin-conserved) = ',EcBSE(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@qsGW@UHF correlation energy (spin-flip) = ',EcBSE(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@qsGW@UHF correlation energy = ',sum(EcBSE),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@BSE@qsGW@UHF total energy = ',ENuc + EqsGW + sum(EcBSE),' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
@ -400,14 +399,14 @@ subroutine qsUGW(dotest,maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE
|
||||
end if
|
||||
|
||||
call UGW_phACFDT(exchange_kernel,doXBS,.true.,TDA_W,TDA,BSE,spin_conserved,spin_flip, &
|
||||
eta,nBas,nC,nO,nV,nR,nS,ERI_aaaa,ERI_aabb,ERI_bbbb,eGW,eGW,EcAC)
|
||||
eta,nBas,nC,nO,nV,nR,nS,ERI_aaaa,ERI_aabb,ERI_bbbb,eGW,eGW,EcRPA)
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10)') 'AC@BSE@qsUGW correlation energy (spin-conserved) =',EcAC(1)
|
||||
write(*,'(2X,A50,F20.10)') 'AC@BSE@qsUGW correlation energy (spin-flip) =',EcAC(2)
|
||||
write(*,'(2X,A50,F20.10)') 'AC@BSE@qsUGW correlation energy =',EcAC(1) + EcAC(2)
|
||||
write(*,'(2X,A50,F20.10)') 'AC@BSE@qsUGW total energy =',ENuc + EqsGW + EcAC(1) + EcAC(2)
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@qsGW@UHF correlation energy (spin-conserved) = ',EcRPA(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@qsGW@UHF correlation energy (spin-flip) = ',EcRPA(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@qsGW@UHF correlation energy = ',sum(EcRPA),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@BSE@qsGW@UHF total energy = ',ENuc + EqsGW + sum(EcRPA),' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
|
@ -104,10 +104,10 @@ subroutine phRRPA(dotest,TDA,doACFDT,exchange_kernel,singlet,triplet,nBas,nC,nO,
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@phRRPA correlation energy (singlet) = ',EcRPA(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@phRRPA correlation energy (triplet) = ',EcRPA(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@phRRPA correlation energy = ',sum(EcRPA),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@phRRPA total energy = ',ENuc + ERHF + sum(EcRPA),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@phRPA@RHF correlation energy (singlet) = ',EcRPA(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@phRPA@RHF correlation energy (triplet) = ',EcRPA(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@phRPA@RHF correlation energy = ',sum(EcRPA),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@phRPA@RHF total energy = ',ENuc + ERHF + sum(EcRPA),' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
@ -126,10 +126,10 @@ subroutine phRRPA(dotest,TDA,doACFDT,exchange_kernel,singlet,triplet,nBas,nC,nO,
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phRRPA correlation energy (singlet) = ',EcRPA(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phRRPA correlation energy (triplet) = ',EcRPA(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phRRPA correlation energy = ',sum(EcRPA),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phRRPA total energy = ',ENuc + ERHF + sum(EcRPA),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phRPA@RHF correlation energy (singlet) = ',EcRPA(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phRPA@RHF correlation energy (triplet) = ',EcRPA(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phRPA@RHF correlation energy = ',sum(EcRPA),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phRPA@RHF total energy = ',ENuc + ERHF + sum(EcRPA),' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
|
@ -103,10 +103,10 @@ subroutine phRRPAx(dotest,TDA,doACFDT,exchange_kernel,singlet,triplet,nBas,nC,nO
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@phRRPAx correlation energy (singlet) = ',EcRPA(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@phRRPAx correlation energy (triplet) = ',EcRPA(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@phRRPAx correlation energy = ',sum(EcRPA),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@phRRPAx total energy = ',ENuc + EHF + sum(EcRPA),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@phRPAx@RHF correlation energy (singlet) = ',EcRPA(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@phRPAx@RHF correlation energy (triplet) = ',EcRPA(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@phRPAx@RHF correlation energy = ',sum(EcRPA),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'Tr@phRPAx@RHF total energy = ',ENuc + EHF + sum(EcRPA),' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
@ -127,10 +127,10 @@ subroutine phRRPAx(dotest,TDA,doACFDT,exchange_kernel,singlet,triplet,nBas,nC,nO
|
||||
|
||||
write(*,*)
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phRRPAx correlation energy (singlet) = ',EcRPA(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phRRPAx correlation energy (triplet) = ',EcRPA(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phRRPAx correlation energy = ',sum(EcRPA),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phRRPAx total energy = ',ENuc + EHF + sum(EcRPA),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phRPAx@RHF correlation energy (singlet) = ',EcRPA(1),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phRPAx@RHF correlation energy (triplet) = ',EcRPA(2),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phRPAx@RHF correlation energy = ',sum(EcRPA),' au'
|
||||
write(*,'(2X,A50,F20.10,A3)') 'AC@phRPAx@RHF total energy = ',ENuc + EHF + sum(EcRPA),' au'
|
||||
write(*,*)'-------------------------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user