10
1
mirror of https://github.com/pfloos/quack synced 2024-11-03 20:53:53 +01:00

ok with ufGW et al

This commit is contained in:
Pierre-Francois Loos 2023-11-27 11:06:33 +01:00
parent f7373f571b
commit 39b8b8d6f1
2 changed files with 16 additions and 6 deletions

View File

@ -80,14 +80,14 @@ subroutine ufG0W0(dotest,TDA_W,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI,eHF)
eF = 0.5d0*(eHF(nO+1) + eHF(nO)) eF = 0.5d0*(eHF(nO+1) + eHF(nO))
H(:,:) = 0d0
!-------------------------! !-------------------------!
! Main loop over orbitals ! ! Main loop over orbitals !
!-------------------------! !-------------------------!
do p=nO,nO do p=nO,nO
H(:,:) = 0d0
if (TDA_W) then if (TDA_W) then
! TDA for W ! TDA for W
@ -335,7 +335,6 @@ subroutine ufG0W0(dotest,TDA_W,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI,eHF)
call wall_time(start_timing) call wall_time(start_timing)
H(:,:) = H(:,:)
call diagonalize_matrix(nH,H,eGW) call diagonalize_matrix(nH,H,eGW)
call wall_time(end_timing) call wall_time(end_timing)

View File

@ -48,6 +48,8 @@ subroutine ufGW(dotest,TDA_W,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI,eHF)
logical :: verbose = .true. logical :: verbose = .true.
double precision,parameter :: cutoff1 = 0.01d0 double precision,parameter :: cutoff1 = 0.01d0
double precision,parameter :: cutoff2 = 0.01d0 double precision,parameter :: cutoff2 = 0.01d0
double precision :: eF
double precision,parameter :: window = 2d0
double precision :: start_timing,end_timing,timing double precision :: start_timing,end_timing,timing
@ -73,6 +75,11 @@ subroutine ufGW(dotest,TDA_W,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI,eHF)
! Initialization ! Initialization
dRPA = .true.
EcRPA = 0d0
eF = 0.5d0*(eHF(nO+1) + eHF(nO))
H(:,:) = 0d0 H(:,:) = 0d0
if (TDA_W) then if (TDA_W) then
@ -374,8 +381,11 @@ subroutine ufGW(dotest,TDA_W,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI,eHF)
write(*,*)'---------------------------------------------' write(*,*)'---------------------------------------------'
do s=1,nH do s=1,nH
write(*,'(1X,A1,1X,I5,1X,A1,1X,F15.6,1X,A1,1X,F15.6,1X,A1,1X)') & if(eGW(s) < eF .and. eGW(s) > eF - window) then
'|',s,'|',eGW(s)*HaToeV,'|',Z(s),'|' ! if(Z(s) > cutoff1) then
write(*,'(1X,A1,1X,I5,1X,A1,1X,F15.6,1X,A1,1X,F15.6,1X,A1,1X)') &
'|',s,'|',eGW(s)*HaToeV,'|',Z(s),'|'
end if
enddo enddo
write(*,*)'---------------------------------------------' write(*,*)'---------------------------------------------'
@ -385,7 +395,8 @@ subroutine ufGW(dotest,TDA_W,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI,eHF)
do s=1,nH do s=1,nH
if(Z(s) > cutoff1) then if(eGW(s) < eF .and. eGW(s) > eF - window) then
! if(Z(s) > cutoff1) then
write(*,*)'-------------------------------------------------------------' write(*,*)'-------------------------------------------------------------'
write(*,'(1X,A7,1X,I3,A6,I3,A1,1X,A7,F12.6,A13,F6.4,1X)') & write(*,'(1X,A7,1X,I3,A6,I3,A1,1X,A7,F12.6,A13,F6.4,1X)') &