mirror of
https://github.com/pfloos/quack
synced 2024-12-23 12:56:38 +01:00
clean up qsGW print
This commit is contained in:
parent
d01e7c248c
commit
ed2992bc85
@ -11,9 +11,9 @@
|
|||||||
# RPA* RPAx* ppRPA
|
# RPA* RPAx* ppRPA
|
||||||
F F F
|
F F F
|
||||||
# G0F2* evGF2* qsGF2* G0F3 evGF3
|
# G0F2* evGF2* qsGF2* G0F3 evGF3
|
||||||
F F T F F
|
F F F F F
|
||||||
# G0W0* evGW* qsGW*
|
# G0W0* evGW* qsGW*
|
||||||
F F F
|
F F T
|
||||||
# G0T0 evGT qsGT
|
# G0T0 evGT qsGT
|
||||||
F F F
|
F F F
|
||||||
# MCMP2
|
# MCMP2
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# HF: maxSCF thresh DIIS n_diis guess_type ortho_type mix_guess stability
|
# HF: maxSCF thresh DIIS n_diis guess_type ortho_type mix_guess stability
|
||||||
128 0.0000001 T 5 1 1 F F
|
128 0.0000001 T 5 1 1 T F
|
||||||
# MP:
|
# MP:
|
||||||
|
|
||||||
# CC: maxSCF thresh DIIS n_diis
|
# CC: maxSCF thresh DIIS n_diis
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
2
|
2
|
||||||
|
|
||||||
H 0.0 0.0 0.0
|
H 0.0 0.0 0.0
|
||||||
H 0.0 0.0 0.741
|
H 0.0 0.0 2.0
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
subroutine print_qsGW(nBas,nO,nSCF,Conv,thresh,eHF,eGW,c,ENuc,P,T,V,J,K,F,SigC,Z,EcGM,EcRPA,EqsGW,dipole)
|
subroutine print_qsGW(nBas,nO,nSCF,Conv,thresh,eHF,eGW,c,P,T,V,J,K,F,SigC,Z, &
|
||||||
|
ENuc,ET,EV,EJ,Ex,EcGM,EcRPA,EqsGW,dipole)
|
||||||
|
|
||||||
! Print one-electron energies and other stuff for qsGW
|
! Print one-electron energies and other stuff for qsGW
|
||||||
|
|
||||||
@ -11,6 +12,10 @@ subroutine print_qsGW(nBas,nO,nSCF,Conv,thresh,eHF,eGW,c,ENuc,P,T,V,J,K,F,SigC,Z
|
|||||||
integer,intent(in) :: nO
|
integer,intent(in) :: nO
|
||||||
integer,intent(in) :: nSCF
|
integer,intent(in) :: nSCF
|
||||||
double precision,intent(in) :: ENuc
|
double precision,intent(in) :: ENuc
|
||||||
|
double precision,intent(in) :: ET
|
||||||
|
double precision,intent(in) :: EV
|
||||||
|
double precision,intent(in) :: EJ
|
||||||
|
double precision,intent(in) :: Ex
|
||||||
double precision,intent(in) :: EcGM
|
double precision,intent(in) :: EcGM
|
||||||
double precision,intent(in) :: EcRPA
|
double precision,intent(in) :: EcRPA
|
||||||
double precision,intent(in) :: Conv
|
double precision,intent(in) :: Conv
|
||||||
@ -27,7 +32,7 @@ subroutine print_qsGW(nBas,nO,nSCF,Conv,thresh,eHF,eGW,c,ENuc,P,T,V,J,K,F,SigC,Z
|
|||||||
! Local variables
|
! Local variables
|
||||||
|
|
||||||
integer :: x,ixyz,HOMO,LUMO
|
integer :: x,ixyz,HOMO,LUMO
|
||||||
double precision :: Gap,ET,EV,EJ,Ex
|
double precision :: Gap
|
||||||
double precision,external :: trace_matrix
|
double precision,external :: trace_matrix
|
||||||
|
|
||||||
! Output variables
|
! Output variables
|
||||||
@ -42,12 +47,6 @@ subroutine print_qsGW(nBas,nO,nSCF,Conv,thresh,eHF,eGW,c,ENuc,P,T,V,J,K,F,SigC,Z
|
|||||||
|
|
||||||
! Compute energies
|
! Compute energies
|
||||||
|
|
||||||
ET = trace_matrix(nBas,matmul(P,T))
|
|
||||||
EV = trace_matrix(nBas,matmul(P,V))
|
|
||||||
EJ = 0.5d0*trace_matrix(nBas,matmul(P,J))
|
|
||||||
Ex = 0.25d0*trace_matrix(nBas,matmul(P,K))
|
|
||||||
EqsGW = ET + EV + EJ + Ex
|
|
||||||
|
|
||||||
! Dump results
|
! Dump results
|
||||||
|
|
||||||
write(*,*)'-------------------------------------------------------------------------------'
|
write(*,*)'-------------------------------------------------------------------------------'
|
||||||
|
@ -55,6 +55,10 @@ subroutine qsGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,SOSE
|
|||||||
integer :: nBasSq
|
integer :: nBasSq
|
||||||
integer :: ispin
|
integer :: ispin
|
||||||
integer :: n_diis
|
integer :: n_diis
|
||||||
|
double precision :: ET
|
||||||
|
double precision :: EV
|
||||||
|
double precision :: EJ
|
||||||
|
double precision :: Ex
|
||||||
double precision :: EqsGW
|
double precision :: EqsGW
|
||||||
double precision :: EcRPA
|
double precision :: EcRPA
|
||||||
double precision :: EcBSE(nspin)
|
double precision :: EcBSE(nspin)
|
||||||
@ -234,10 +238,34 @@ subroutine qsGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,SOSE
|
|||||||
|
|
||||||
P(:,:) = 2d0*matmul(c(:,1:nO),transpose(c(:,1:nO)))
|
P(:,:) = 2d0*matmul(c(:,1:nO),transpose(c(:,1:nO)))
|
||||||
|
|
||||||
|
!------------------------------------------------------------------------
|
||||||
|
! Compute total energy
|
||||||
|
!------------------------------------------------------------------------
|
||||||
|
|
||||||
|
! Kinetic energy
|
||||||
|
|
||||||
|
ET = trace_matrix(nBas,matmul(P,T))
|
||||||
|
|
||||||
|
! Potential energy
|
||||||
|
|
||||||
|
EV = trace_matrix(nBas,matmul(P,V))
|
||||||
|
|
||||||
|
! Coulomb energy
|
||||||
|
|
||||||
|
EJ = 0.5d0*trace_matrix(nBas,matmul(P,J))
|
||||||
|
|
||||||
|
! Exchange energy
|
||||||
|
|
||||||
|
Ex = 0.25d0*trace_matrix(nBas,matmul(P,K))
|
||||||
|
|
||||||
|
! Total energy
|
||||||
|
|
||||||
|
EqsGW = ET + EV + EJ + Ex
|
||||||
|
|
||||||
! Print results
|
! Print results
|
||||||
|
|
||||||
call dipole_moment(nBas,P,nNuc,ZNuc,rNuc,dipole_int_AO,dipole)
|
call dipole_moment(nBas,P,nNuc,ZNuc,rNuc,dipole_int_AO,dipole)
|
||||||
call print_qsGW(nBas,nO,nSCF,Conv,thresh,eHF,eGW,c,ENuc,P,T,V,J,K,F,SigCp,Z,EcGM,EcRPA,EqsGW,dipole)
|
call print_qsGW(nBas,nO,nSCF,Conv,thresh,eHF,eGW,c,P,T,V,J,K,F,SigCp,Z,ENuc,ET,EV,EJ,Ex,EcGM,EcRPA,EqsGW,dipole)
|
||||||
|
|
||||||
enddo
|
enddo
|
||||||
!------------------------------------------------------------------------
|
!------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user