From 75b35bf3dd4be0021626e6d8a4cb3b93f861e850 Mon Sep 17 00:00:00 2001 From: Pierre-Francois Loos Date: Mon, 18 Oct 2021 15:05:01 +0200 Subject: [PATCH] adding Z in ufGW --- input/methods | 2 +- input/options | 2 +- src/MBPT/ufGW.f90 | 36 +++++++++++++++++++++++++++++++----- 3 files changed, 33 insertions(+), 7 deletions(-) diff --git a/input/methods b/input/methods index 52c4b14..6bac133 100644 --- a/input/methods +++ b/input/methods @@ -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 diff --git a/input/options b/input/options index 6de1fec..cc36019 100644 --- a/input/options +++ b/input/options @@ -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 diff --git a/src/MBPT/ufGW.f90 b/src/MBPT/ufGW.f90 index 6403193..2281644 100644 --- a/src/MBPT/ufGW.f90 +++ b/src/MBPT/ufGW.f90 @@ -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