4
1
mirror of https://github.com/pfloos/quack synced 2024-06-18 11:15:30 +02:00

adding Z in ufGW

This commit is contained in:
Pierre-Francois Loos 2021-10-18 15:05:01 +02:00
parent 58044a8a89
commit 75b35bf3dd
3 changed files with 33 additions and 7 deletions

View File

@ -13,7 +13,7 @@
# G0F2* evGF2* qsGF2* G0F3 evGF3
F F F F F
# G0W0* evGW* qsGW*
F F F
T F F
# G0T0 evGT qsGT
F F F
# MCMP2

View File

@ -1,5 +1,5 @@
# HF: maxSCF thresh DIIS n_diis guess_type ortho_type mix_guess stability
1024 0.0000001 F 5 1 1 F F
1024 0.0000001 T 5 1 1 F F
# MP:
# CC: maxSCF thresh DIIS n_diis

View File

@ -22,6 +22,7 @@ subroutine ufGW(eta,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI,eHF)
! Local variables
integer :: p
integer :: s
integer :: i,j,k,l
integer :: a,b,c,d
integer :: klc,kcd,ija,iab
@ -30,6 +31,7 @@ subroutine ufGW(eta,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI,eHF)
double precision,external :: Kronecker_delta
double precision,allocatable :: H(:,:)
double precision,allocatable :: eGW(:)
double precision,allocatable :: Z(:)
! Output variables
@ -54,7 +56,7 @@ subroutine ufGW(eta,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI,eHF)
! Memory allocation
allocate(H(nH,nH),eGW(nH))
allocate(H(nH,nH),eGW(nH),Z(nH))
! Initialization
@ -184,15 +186,39 @@ subroutine ufGW(eta,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI,eHF)
call diagonalize_matrix(nH,H,eGW)
!-----------------!
! Compute weights !
!-----------------!
Z(:) = 0d0
do s=1,nH
do p=nC+1,nBas-nR
Z(s) = Z(s) + H(p,s)**2
end do
end do
!--------------!
! Dump results !
!--------------!
write(*,*) '---------------------------------------'
write(*,*) ' GW supermatrix quasiparticle energies '
write(*,*) '---------------------------------------'
write(*,*) '--------------------------------------------'
write(*,*) ' GW supermatrix quasiparticle energies (eV) '
write(*,*) '--------------------------------------------'
write(*,*)
call matout(nH,1,eGW)
call matout(nH,1,HaToeV*eGW(:))
write(*,*)
write(*,*) '-----------------------'
write(*,*) ' Quasiparticle weights '
write(*,*) '-----------------------'
write(*,*)
call matout(nH,1,Z(:))
! write(*,*)
! write(*,*) '-------------------------'
! write(*,*) ' GW supermatrix orbitals '
! write(*,*) '-------------------------'
! write(*,*)
! call matout(nH,nH,H)
! write(*,*)
end subroutine ufGW