mirror of
https://github.com/pfloos/quack
synced 2024-12-22 12:23:42 +01:00
working toward ufG0F02
This commit is contained in:
parent
9076855abe
commit
836e244d69
@ -1,5 +1,5 @@
|
||||
# RHF UHF GHF ROHF
|
||||
F F F F
|
||||
F T F F
|
||||
# MP2 MP3
|
||||
F F
|
||||
# CCD pCCD DCD CCSD CCSD(T)
|
||||
@ -10,8 +10,8 @@
|
||||
F F F F F
|
||||
# phRPA phRPAx crRPA ppRPA
|
||||
F F F F
|
||||
# G0F2 evGF2 qsGF2 G0F3 evGF3
|
||||
F F F F F
|
||||
# G0F2 evGF2 qsGF2 ADC2 G0F3 evGF3
|
||||
F F F F F F
|
||||
# G0W0 evGW qsGW SRG-qsGW ufG0W0 ufGW
|
||||
F F F F F F
|
||||
# G0T0pp evGTpp qsGTpp G0T0eh evGTeh qsGTeh
|
||||
|
@ -1,6 +1,6 @@
|
||||
subroutine RGF(dotest,doG0F2,doevGF2,doqsGF2,doG0F3,doevGF3,renorm,maxSCF,thresh,max_diis, &
|
||||
dophBSE,doppBSE,TDA,dBSE,dTDA,singlet,triplet,linearize,eta,regularize, &
|
||||
nNuc,ZNuc,rNuc,ENuc,nBas,nC,nO,nV,nR,nS,EHF,S,X,T,V,Hc,ERI_AO,ERI, &
|
||||
subroutine RGF(dotest,doG0F2,doevGF2,doqsGF2,doufG0F02,doG0F3,doevGF3,renorm,maxSCF,thresh,max_diis, &
|
||||
dophBSE,doppBSE,TDA,dBSE,dTDA,singlet,triplet,linearize,eta,regularize, &
|
||||
nNuc,ZNuc,rNuc,ENuc,nBas,nC,nO,nV,nR,nS,EHF,S,X,T,V,Hc,ERI_AO,ERI, &
|
||||
dipole_int_AO,dipole_int,PHF,cHF,epsHF)
|
||||
|
||||
! Green's function module
|
||||
@ -15,6 +15,7 @@ subroutine RGF(dotest,doG0F2,doevGF2,doqsGF2,doG0F3,doevGF3,renorm,maxSCF,thresh
|
||||
logical,intent(in) :: doG0F2
|
||||
logical,intent(in) :: doevGF2
|
||||
logical,intent(in) :: doqsGF2
|
||||
logical,intent(in) :: doufG0F02
|
||||
logical,intent(in) :: doG0F3
|
||||
logical,intent(in) :: doevGF3
|
||||
|
||||
@ -113,6 +114,22 @@ subroutine RGF(dotest,doG0F2,doevGF2,doqsGF2,doG0F3,doevGF3,renorm,maxSCF,thresh
|
||||
write(*,'(A65,1X,F9.3,A8)') 'Total CPU time for qsGF2 = ',t_GF,' seconds'
|
||||
write(*,*)
|
||||
|
||||
end if
|
||||
|
||||
!------------------------------------------------------------------------
|
||||
! Perform ufG0F02 calculation
|
||||
!------------------------------------------------------------------------
|
||||
|
||||
if(doufG0F02) then
|
||||
|
||||
call wall_time(start_GF)
|
||||
call ufRG0F02(dotest,nBas,nC,nO,nV,nR,nS,ENuc,EHF,ERI,epsHF)
|
||||
call wall_time(end_GF)
|
||||
|
||||
t_GF = end_GF - start_GF
|
||||
write(*,'(A65,1X,F9.3,A8)') 'Total CPU time for ufG0F02 = ',t_GF,' seconds'
|
||||
write(*,*)
|
||||
|
||||
end if
|
||||
|
||||
!------------------------------------------------------------------------
|
||||
|
@ -1,4 +1,4 @@
|
||||
subroutine UGF(dotest,doG0F2,doevGF2,doqsGF2,doG0F3,doevGF3,renorm,maxSCF,thresh,max_diis, &
|
||||
subroutine UGF(dotest,doG0F2,doevGF2,doqsGF2,doufG0F02,doG0F3,doevGF3,renorm,maxSCF,thresh,max_diis, &
|
||||
dophBSE,doppBSE,TDA,dBSE,dTDA,spin_conserved,spin_flip,linearize,eta,regularize, &
|
||||
nNuc,ZNuc,rNuc,ENuc,nBas,nC,nO,nV,nR,nS,EHF,S,X,T,V,Hc,ERI_AO,ERI_aaaa,ERI_aabb,ERI_bbbb, &
|
||||
dipole_int_AO,dipole_int_aa,dipole_int_bb,PHF,cHF,epsHF)
|
||||
@ -15,6 +15,7 @@ subroutine UGF(dotest,doG0F2,doevGF2,doqsGF2,doG0F3,doevGF3,renorm,maxSCF,thresh
|
||||
logical,intent(in) :: doG0F2
|
||||
logical,intent(in) :: doevGF2
|
||||
logical,intent(in) :: doqsGF2
|
||||
logical,intent(in) :: doufG0F02
|
||||
logical,intent(in) :: doG0F3
|
||||
logical,intent(in) :: doevGF3
|
||||
|
||||
@ -118,6 +119,22 @@ subroutine UGF(dotest,doG0F2,doevGF2,doqsGF2,doG0F3,doevGF3,renorm,maxSCF,thresh
|
||||
write(*,'(A65,1X,F9.3,A8)') 'Total CPU time for qsGF2 = ',t_GF,' seconds'
|
||||
write(*,*)
|
||||
|
||||
end if
|
||||
|
||||
!------------------------------------------------------------------------
|
||||
! Perform ufG0F02 calculation
|
||||
!------------------------------------------------------------------------
|
||||
|
||||
if(doufG0F02) then
|
||||
|
||||
!call wall_time(start_GF)
|
||||
!call ufUG0F02()
|
||||
!call wall_time(end_GF)
|
||||
print*,'Unrestricted version of ufG0F02 not yet implemented! Sorry.'
|
||||
!t_GF = end_GF - start_GF
|
||||
!write(*,'(A65,1X,F9.3,A8)') 'Total CPU time for ufG0F02 = ',t_GF,' seconds'
|
||||
!write(*,*)
|
||||
|
||||
end if
|
||||
|
||||
!------------------------------------------------------------------------
|
||||
|
@ -491,14 +491,14 @@ subroutine ufG0W0(dotest,TDA_W,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI,eHF)
|
||||
write(*,*)'-------------------------------------------------------------'
|
||||
write(*,*)
|
||||
|
||||
end if
|
||||
end if ! If state s should be print
|
||||
|
||||
end do
|
||||
end do ! Loop on s
|
||||
|
||||
end if
|
||||
end if ! If TDA
|
||||
|
||||
end if
|
||||
end if ! If verbose
|
||||
|
||||
end do
|
||||
end do ! Loop on the orbital in the e block
|
||||
|
||||
end subroutine
|
||||
|
@ -11,7 +11,7 @@ program QuAcK
|
||||
logical :: dodrCCD,dorCCD,docrCCD,dolCCD
|
||||
logical :: doCIS,doCIS_D,doCID,doCISD,doFCI
|
||||
logical :: dophRPA,dophRPAx,docrRPA,doppRPA
|
||||
logical :: doG0F2,doevGF2,doqsGF2,doG0F3,doevGF3
|
||||
logical :: doG0F2,doevGF2,doqsGF2,doufG0F02,doG0F3,doevGF3
|
||||
logical :: doG0W0,doevGW,doqsGW,doufG0W0,doufGW,doSRGqsGW
|
||||
logical :: doG0T0pp,doevGTpp,doqsGTpp,doG0T0eh,doevGTeh,doqsGTeh
|
||||
|
||||
@ -98,7 +98,7 @@ program QuAcK
|
||||
dodrCCD,dorCCD,docrCCD,dolCCD, &
|
||||
doCIS,doCIS_D,doCID,doCISD,doFCI, &
|
||||
dophRPA,dophRPAx,docrRPA,doppRPA, &
|
||||
doG0F2,doevGF2,doqsGF2, &
|
||||
doG0F2,doevGF2,doqsGF2,doufG0F02, &
|
||||
doG0F3,doevGF3, &
|
||||
doG0W0,doevGW,doqsGW,doSRGqsGW, &
|
||||
doufG0W0,doufGW, &
|
||||
@ -198,7 +198,7 @@ program QuAcK
|
||||
if(doRQuAcK) &
|
||||
call RQuAcK(doRtest,doRHF,doROHF,dostab,dosearch,doMP2,doMP3,doCCD,dopCCD,doDCD,doCCSD,doCCSDT, &
|
||||
dodrCCD,dorCCD,docrCCD,dolCCD,doCIS,doCIS_D,doCID,doCISD,doFCI,dophRPA,dophRPAx,docrRPA,doppRPA, &
|
||||
doG0F2,doevGF2,doqsGF2,doG0F3,doevGF3,doG0W0,doevGW,doqsGW,doufG0W0,doufGW,doSRGqsGW, &
|
||||
doG0F2,doevGF2,doqsGF2,doufG0F02,doG0F3,doevGF3,doG0W0,doevGW,doqsGW,doufG0W0,doufGW,doSRGqsGW, &
|
||||
doG0T0pp,doevGTpp,doqsGTpp,doG0T0eh,doevGTeh,doqsGTeh,nNuc,nBas,nC,nO,nV,nR,ENuc,ZNuc,rNuc, &
|
||||
S,T,V,Hc,X,dipole_int_AO,ERI_AO,maxSCF_HF,max_diis_HF,thresh_HF,level_shift, &
|
||||
guess_type,mix,reg_MP,maxSCF_CC,max_diis_CC,thresh_CC,spin_conserved,spin_flip,TDA, &
|
||||
@ -213,7 +213,7 @@ program QuAcK
|
||||
if(doUQuAcK) &
|
||||
call UQuAcK(doUtest,doUHF,dostab,dosearch,doMP2,doMP3,doCCD,dopCCD,doDCD,doCCSD,doCCSDT, &
|
||||
dodrCCD,dorCCD,docrCCD,dolCCD,doCIS,doCIS_D,doCID,doCISD,doFCI,dophRPA,dophRPAx,docrRPA,doppRPA, &
|
||||
doG0F2,doevGF2,doqsGF2,doG0F3,doevGF3,doG0W0,doevGW,doqsGW,doufG0W0,doufGW,doSRGqsGW, &
|
||||
doG0F2,doevGF2,doqsGF2,doufG0F02,doG0F3,doevGF3,doG0W0,doevGW,doqsGW,doufG0W0,doufGW,doSRGqsGW, &
|
||||
doG0T0pp,doevGTpp,doqsGTpp,doG0T0eh,doevGTeh,doqsGTeh,nNuc,nBas,nC,nO,nV,nR,ENuc,ZNuc,rNuc, &
|
||||
S,T,V,Hc,X,dipole_int_AO,ERI_AO,maxSCF_HF,max_diis_HF,thresh_HF,level_shift, &
|
||||
guess_type,mix,reg_MP,maxSCF_CC,max_diis_CC,thresh_CC,spin_conserved,spin_flip,TDA, &
|
||||
|
@ -1,6 +1,6 @@
|
||||
subroutine RQuAcK(dotest,doRHF,doROHF,dostab,dosearch,doMP2,doMP3,doCCD,dopCCD,doDCD,doCCSD,doCCSDT, &
|
||||
dodrCCD,dorCCD,docrCCD,dolCCD,doCIS,doCIS_D,doCID,doCISD,doFCI,dophRPA,dophRPAx,docrRPA,doppRPA, &
|
||||
doG0F2,doevGF2,doqsGF2,doG0F3,doevGF3,doG0W0,doevGW,doqsGW,doufG0W0,doufGW,doSRGqsGW, &
|
||||
doG0F2,doevGF2,doqsGF2,doufG0F02,doG0F3,doevGF3,doG0W0,doevGW,doqsGW,doufG0W0,doufGW,doSRGqsGW, &
|
||||
doG0T0pp,doevGTpp,doqsGTpp,doG0T0eh,doevGTeh,doqsGTeh,nNuc,nBas,nC,nO,nV,nR,ENuc,ZNuc,rNuc, &
|
||||
S,T,V,Hc,X,dipole_int_AO,ERI_AO,maxSCF_HF,max_diis_HF,thresh_HF,level_shift, &
|
||||
guess_type,mix,reg_MP,maxSCF_CC,max_diis_CC,thresh_CC,singlet,triplet,TDA, &
|
||||
@ -23,7 +23,7 @@ subroutine RQuAcK(dotest,doRHF,doROHF,dostab,dosearch,doMP2,doMP3,doCCD,dopCCD,d
|
||||
logical,intent(in) :: dodrCCD,dorCCD,docrCCD,dolCCD
|
||||
logical,intent(in) :: doCIS,doCIS_D,doCID,doCISD,doFCI
|
||||
logical,intent(in) :: dophRPA,dophRPAx,docrRPA,doppRPA
|
||||
logical,intent(in) :: doG0F2,doevGF2,doqsGF2,doG0F3,doevGF3
|
||||
logical,intent(in) :: doG0F2,doevGF2,doqsGF2,doufG0F02,doG0F3,doevGF3
|
||||
logical,intent(in) :: doG0W0,doevGW,doqsGW,doufG0W0,doufGW,doSRGqsGW
|
||||
logical,intent(in) :: doG0T0pp,doevGTpp,doqsGTpp,doG0T0eh,doevGTeh,doqsGTeh
|
||||
|
||||
@ -277,14 +277,14 @@ subroutine RQuAcK(dotest,doRHF,doROHF,dostab,dosearch,doMP2,doMP3,doCCD,dopCCD,d
|
||||
! Green's function module !
|
||||
!-------------------------!
|
||||
|
||||
doGF = doG0F2 .or. doevGF2 .or. doqsGF2 .or. doG0F3 .or. doevGF3
|
||||
doGF = doG0F2 .or. doevGF2 .or. doqsGF2 .or. doufG0F02 .or. doG0F3 .or. doevGF3
|
||||
|
||||
if(doGF) then
|
||||
|
||||
call wall_time(start_GF)
|
||||
call RGF(dotest,doG0F2,doevGF2,doqsGF2,doG0F3,doevGF3,renorm_GF,maxSCF_GF,thresh_GF,max_diis_GF, &
|
||||
dophBSE,doppBSE,TDA,dBSE,dTDA,singlet,triplet,lin_GF,eta_GF,reg_GF, &
|
||||
nNuc,ZNuc,rNuc,ENuc,nBas,nC,nO,nV,nR,nS,ERHF,S,X,T,V,Hc,ERI_AO,ERI_MO, &
|
||||
call RGF(dotest,doG0F2,doevGF2,doqsGF2,doufG0F02,doG0F3,doevGF3,renorm_GF,maxSCF_GF,thresh_GF,max_diis_GF, &
|
||||
dophBSE,doppBSE,TDA,dBSE,dTDA,singlet,triplet,lin_GF,eta_GF,reg_GF, &
|
||||
nNuc,ZNuc,rNuc,ENuc,nBas,nC,nO,nV,nR,nS,ERHF,S,X,T,V,Hc,ERI_AO,ERI_MO, &
|
||||
dipole_int_AO,dipole_int_MO,PHF,cHF,eHF)
|
||||
call wall_time(end_GF)
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
subroutine UQuAcK(dotest,doUHF,dostab,dosearch,doMP2,doMP3,doCCD,dopCCD,doDCD,doCCSD,doCCSDT, &
|
||||
dodrCCD,dorCCD,docrCCD,dolCCD,doCIS,doCIS_D,doCID,doCISD,doFCI,dophRPA,dophRPAx,docrRPA,doppRPA, &
|
||||
doG0F2,doevGF2,doqsGF2,doG0F3,doevGF3,doG0W0,doevGW,doqsGW,doufG0W0,doufGW,doSRGqsGW, &
|
||||
doG0F2,doevGF2,doqsGF2,doufG0F02,doG0F3,doevGF3,doG0W0,doevGW,doqsGW,doufG0W0,doufGW,doSRGqsGW, &
|
||||
doG0T0pp,doevGTpp,doqsGTpp,doG0T0eh,doevGTeh,doqsGTeh,nNuc,nBas,nC,nO,nV,nR,ENuc,ZNuc,rNuc, &
|
||||
S,T,V,Hc,X,dipole_int_AO,ERI_AO,maxSCF_HF,max_diis_HF,thresh_HF,level_shift, &
|
||||
guess_type,mix,reg_MP,maxSCF_CC,max_diis_CC,thresh_CC,spin_conserved,spin_flip,TDA, &
|
||||
@ -21,7 +21,7 @@ subroutine UQuAcK(dotest,doUHF,dostab,dosearch,doMP2,doMP3,doCCD,dopCCD,doDCD,do
|
||||
logical,intent(in) :: dodrCCD,dorCCD,docrCCD,dolCCD
|
||||
logical,intent(in) :: doCIS,doCIS_D,doCID,doCISD,doFCI
|
||||
logical,intent(in) :: dophRPA,dophRPAx,docrRPA,doppRPA
|
||||
logical,intent(in) :: doG0F2,doevGF2,doqsGF2,doG0F3,doevGF3
|
||||
logical,intent(in) :: doG0F2,doevGF2,doqsGF2,doufG0F02,doG0F3,doevGF3
|
||||
logical,intent(in) :: doG0W0,doevGW,doqsGW,doufG0W0,doufGW,doSRGqsGW
|
||||
logical,intent(in) :: doG0T0pp,doevGTpp,doqsGTpp,doG0T0eh,doevGTeh,doqsGTeh
|
||||
|
||||
@ -294,14 +294,14 @@ subroutine UQuAcK(dotest,doUHF,dostab,dosearch,doMP2,doMP3,doCCD,dopCCD,doDCD,do
|
||||
! Green's function module !
|
||||
!-------------------------!
|
||||
|
||||
doGF = doG0F2 .or. doevGF2 .or. doqsGF2 .or. doG0F3 .or. doevGF3
|
||||
doGF = doG0F2 .or. doevGF2 .or. doqsGF2 .or. doufG0F02 .or. doG0F3 .or. doevGF3
|
||||
|
||||
if(doGF) then
|
||||
|
||||
call wall_time(start_GF)
|
||||
call UGF(dotest,doG0F2,doevGF2,doqsGF2,doG0F3,doevGF3,renorm_GF,maxSCF_GF,thresh_GF,max_diis_GF, &
|
||||
dophBSE,doppBSE,TDA,dBSE,dTDA,spin_conserved,spin_flip,lin_GF,eta_GF,reg_GF, &
|
||||
nNuc,ZNuc,rNuc,ENuc,nBas,nC,nO,nV,nR,nS,EUHF,S,X,T,V,Hc,ERI_AO,ERI_aaaa,ERI_aabb,ERI_bbbb, &
|
||||
call UGF(dotest,doG0F2,doevGF2,doqsGF2,doufG0F02,doG0F3,doevGF3,renorm_GF,maxSCF_GF,thresh_GF,max_diis_GF, &
|
||||
dophBSE,doppBSE,TDA,dBSE,dTDA,spin_conserved,spin_flip,lin_GF,eta_GF,reg_GF, &
|
||||
nNuc,ZNuc,rNuc,ENuc,nBas,nC,nO,nV,nR,nS,EUHF,S,X,T,V,Hc,ERI_AO,ERI_aaaa,ERI_aabb,ERI_bbbb, &
|
||||
dipole_int_AO,dipole_int_aa,dipole_int_bb,PHF,cHF,eHF)
|
||||
call wall_time(end_GF)
|
||||
|
||||
|
@ -4,7 +4,7 @@ subroutine read_methods(doRHF,doUHF,doGHF,doROHF, &
|
||||
do_drCCD,do_rCCD,do_crCCD,do_lCCD, &
|
||||
doCIS,doCIS_D,doCID,doCISD,doFCI, &
|
||||
dophRPA,dophRPAx,docrRPA,doppRPA, &
|
||||
doG0F2,doevGF2,doqsGF2, &
|
||||
doG0F2,doevGF2,doqsGF2,doufG0F02, &
|
||||
doG0F3,doevGF3, &
|
||||
doG0W0,doevGW,doqsGW,doSRGqsGW, &
|
||||
doufG0W0,doufGW, &
|
||||
@ -24,7 +24,7 @@ subroutine read_methods(doRHF,doUHF,doGHF,doROHF, &
|
||||
logical,intent(out) :: do_drCCD,do_rCCD,do_crCCD,do_lCCD
|
||||
logical,intent(out) :: doCIS,doCIS_D,doCID,doCISD,doFCI
|
||||
logical,intent(out) :: dophRPA,dophRPAx,docrRPA,doppRPA
|
||||
logical,intent(out) :: doG0F2,doevGF2,doqsGF2,doG0F3,doevGF3
|
||||
logical,intent(out) :: doG0F2,doevGF2,doqsGF2,doufG0F02,doG0F3,doevGF3
|
||||
logical,intent(out) :: doG0W0,doevGW,doqsGW,doSRGqsGW,doufG0W0,doufGW
|
||||
logical,intent(out) :: doG0T0pp,doevGTpp,doqsGTpp
|
||||
logical,intent(out) :: doG0T0eh,doevGTeh,doqsGTeh
|
||||
@ -126,19 +126,21 @@ subroutine read_methods(doRHF,doUHF,doGHF,doROHF, &
|
||||
|
||||
! Read Green's function methods
|
||||
|
||||
doG0F2 = .false.
|
||||
doevGF2 = .false.
|
||||
doqsGF2 = .false.
|
||||
doG0F3 = .false.
|
||||
doevGF3 = .false.
|
||||
doG0F2 = .false.
|
||||
doevGF2 = .false.
|
||||
doqsGF2 = .false.
|
||||
doufG0F02 = .false.
|
||||
doG0F3 = .false.
|
||||
doevGF3 = .false.
|
||||
|
||||
read(1,*)
|
||||
read(1,*) ans1,ans2,ans3,ans4,ans5
|
||||
if(ans1 == 'T') doG0F2 = .true.
|
||||
if(ans2 == 'T') doevGF2 = .true.
|
||||
if(ans3 == 'T') doqsGF2 = .true.
|
||||
if(ans4 == 'T') doG0F3 = .true.
|
||||
if(ans5 == 'T') doevGF3 = .true.
|
||||
read(1,*) ans1,ans2,ans3,ans4,ans5,ans6
|
||||
if(ans1 == 'T') doG0F2 = .true.
|
||||
if(ans2 == 'T') doevGF2 = .true.
|
||||
if(ans3 == 'T') doqsGF2 = .true.
|
||||
if(ans4 == 'T') doufG0F02 = .true.
|
||||
if(ans5 == 'T') doG0F3 = .true.
|
||||
if(ans6 == 'T') doevGF3 = .true.
|
||||
|
||||
! Read GW methods
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user