mirror of
https://github.com/pfloos/quack
synced 2025-02-23 01:49:03 +01:00
working on Parquet structure
This commit is contained in:
parent
671c6f4f12
commit
3207b3b583
@ -18,5 +18,7 @@
|
||||
F F F F
|
||||
# G0T0eh evGTeh qsGTeh
|
||||
F F F
|
||||
# Parquet
|
||||
F
|
||||
# Rtest Utest Gtest
|
||||
F F F
|
||||
|
@ -1,6 +1,6 @@
|
||||
subroutine GQuAcK(working_dir,dotest,doGHF,dostab,dosearch,doMP2,doMP3,doCCD,dopCCD,doDCD,doCCSD,doCCSDT, &
|
||||
dodrCCD,dorCCD,docrCCD,dolCCD,dophRPA,dophRPAx,docrRPA,doppRPA, &
|
||||
doG0W0,doevGW,doqsGW,doG0F2,doevGF2,doqsGF2,doG0T0pp,doevGTpp,doqsGTpp, &
|
||||
doG0W0,doevGW,doqsGW,doG0F2,doevGF2,doqsGF2,doG0T0pp,doevGTpp,doqsGTpp,doParquet,&
|
||||
nNuc,nBas,nC,nO,nV,nR,ENuc,ZNuc,rNuc,S,T,V,Hc,X,dipole_int_AO, &
|
||||
maxSCF_HF,max_diis_HF,thresh_HF,level_shift,guess_type,mix,reg_MP, &
|
||||
maxSCF_CC,max_diis_CC,thresh_CC, &
|
||||
@ -27,6 +27,7 @@ subroutine GQuAcK(working_dir,dotest,doGHF,dostab,dosearch,doMP2,doMP3,doCCD,dop
|
||||
logical,intent(in) :: doG0F2,doevGF2,doqsGF2
|
||||
logical,intent(in) :: doG0W0,doevGW,doqsGW
|
||||
logical,intent(in) :: doG0T0pp,doevGTpp,doqsGTpp
|
||||
logical,intent(in) :: doParquet
|
||||
|
||||
integer,intent(in) :: nNuc,nBas
|
||||
integer,intent(in) :: nC
|
||||
@ -86,6 +87,7 @@ subroutine GQuAcK(working_dir,dotest,doGHF,dostab,dosearch,doMP2,doMP3,doCCD,dop
|
||||
double precision :: start_GF ,end_GF ,t_GF
|
||||
double precision :: start_GW ,end_GW ,t_GW
|
||||
double precision :: start_GT ,end_GT ,t_GT
|
||||
double precision :: start_Parquet,end_Parquet ,t_Parquet
|
||||
|
||||
double precision :: start_int, end_int, t_int
|
||||
double precision,allocatable :: cHF(:,:),eHF(:),PHF(:,:),FHF(:,:)
|
||||
@ -331,6 +333,22 @@ subroutine GQuAcK(working_dir,dotest,doGHF,dostab,dosearch,doMP2,doMP3,doCCD,dop
|
||||
write(*,'(A65,1X,F9.3,A8)') 'Total wall time for GT = ',t_GT,' seconds'
|
||||
write(*,*)
|
||||
|
||||
end if
|
||||
|
||||
!------------------------!
|
||||
! Parquet module !
|
||||
!------------------------!
|
||||
|
||||
if(doParquet) then
|
||||
call wall_time(start_Parquet)
|
||||
|
||||
call wall_time(end_Parquet)
|
||||
|
||||
t_Parquet = end_Parquet - start_Parquet
|
||||
write(*,'(A65,1X,F9.3,A8)') 'Total wall time for Parquet module = ',t_Parquet,' seconds'
|
||||
write(*,*)
|
||||
|
||||
end if
|
||||
|
||||
|
||||
end subroutine
|
||||
|
@ -14,6 +14,7 @@ program QuAcK
|
||||
logical :: doG0F2,doevGF2,doqsGF2,doufG0F02,doG0F3,doevGF3
|
||||
logical :: doG0W0,doevGW,doqsGW,doufG0W0,doufGW
|
||||
logical :: doG0T0pp,doevGTpp,doqsGTpp,doufG0T0pp,doG0T0eh,doevGTeh,doqsGTeh
|
||||
logical :: doParquet
|
||||
|
||||
integer :: nNuc
|
||||
integer :: nBas
|
||||
@ -119,6 +120,7 @@ program QuAcK
|
||||
doG0W0,doevGW,doqsGW,doufG0W0,doufGW, &
|
||||
doG0T0pp,doevGTpp,doqsGTpp,doufG0T0pp, &
|
||||
doG0T0eh,doevGTeh,doqsGTeh, &
|
||||
doParquet, &
|
||||
doRtest,doUtest,doGtest)
|
||||
|
||||
!--------------------------!
|
||||
@ -241,7 +243,7 @@ program QuAcK
|
||||
call RQuAcK(working_dir,use_gpu,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,doufG0F02,doG0F3,doevGF3,doG0W0,doevGW,doqsGW,doufG0W0,doufGW, &
|
||||
doG0T0pp,doevGTpp,doqsGTpp,doufG0T0pp,doG0T0eh,doevGTeh,doqsGTeh, &
|
||||
doG0T0pp,doevGTpp,doqsGTpp,doufG0T0pp,doG0T0eh,doevGTeh,doqsGTeh,doParquet, &
|
||||
nNuc,nBas,nOrb,nC,nO,nV,nR,ENuc,ZNuc,rNuc, &
|
||||
S,T,V,Hc,X,dipole_int_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, &
|
||||
@ -273,7 +275,7 @@ program QuAcK
|
||||
if(doGQuAcK) &
|
||||
call GQuAcK(working_dir,doGtest,doGHF,dostab,dosearch,doMP2,doMP3,doCCD,dopCCD,doDCD,doCCSD,doCCSDT, &
|
||||
dodrCCD,dorCCD,docrCCD,dolCCD,dophRPA,dophRPAx,docrRPA,doppRPA, &
|
||||
doG0W0,doevGW,doqsGW,doG0F2,doevGF2,doqsGF2,doG0T0pp,doevGTpp,doqsGTpp, &
|
||||
doG0W0,doevGW,doqsGW,doG0F2,doevGF2,doqsGF2,doG0T0pp,doevGTpp,doqsGTpp,doParquet, &
|
||||
nNuc,nBas,sum(nC),sum(nO),sum(nV),sum(nR),ENuc,ZNuc,rNuc,S,T,V,Hc,X,dipole_int_AO, &
|
||||
maxSCF_HF,max_diis_HF,thresh_HF,level_shift,guess_type,mix,reg_MP, &
|
||||
maxSCF_CC,max_diis_CC,thresh_CC,TDA,maxSCF_GF,max_diis_GF,thresh_GF,lin_GF,reg_GF,eta_GF, &
|
||||
|
@ -1,7 +1,7 @@
|
||||
subroutine RQuAcK(working_dir,use_gpu,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,doufG0F02,doG0F3,doevGF3,doG0W0,doevGW,doqsGW,doufG0W0,doufGW, &
|
||||
doG0T0pp,doevGTpp,doqsGTpp,doufG0T0pp,doG0T0eh,doevGTeh,doqsGTeh, &
|
||||
doG0T0pp,doevGTpp,doqsGTpp,doufG0T0pp,doG0T0eh,doevGTeh,doqsGTeh,doParquet, &
|
||||
nNuc,nBas,nOrb,nC,nO,nV,nR,ENuc,ZNuc,rNuc, &
|
||||
S,T,V,Hc,X,dipole_int_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, &
|
||||
@ -32,6 +32,7 @@ subroutine RQuAcK(working_dir,use_gpu,dotest,doRHF,doROHF,dostab,dosearch,doMP2,
|
||||
logical,intent(in) :: doG0W0,doevGW,doqsGW,doufG0W0,doufGW
|
||||
logical,intent(in) :: doG0T0pp,doevGTpp,doqsGTpp,doufG0T0pp
|
||||
logical,intent(in) :: doG0T0eh,doevGTeh,doqsGTeh
|
||||
logical,intent(in) :: doParquet
|
||||
|
||||
integer,intent(in) :: nNuc,nBas,nOrb
|
||||
integer,intent(in) :: nC
|
||||
@ -94,6 +95,7 @@ subroutine RQuAcK(working_dir,use_gpu,dotest,doRHF,doROHF,dostab,dosearch,doMP2,
|
||||
double precision :: start_GF ,end_GF ,t_GF
|
||||
double precision :: start_GW ,end_GW ,t_GW
|
||||
double precision :: start_GT ,end_GT ,t_GT
|
||||
double precision :: start_Parquet,end_Parquet ,t_Parquet
|
||||
|
||||
double precision :: start_int, end_int, t_int
|
||||
double precision,allocatable :: eHF(:)
|
||||
@ -362,6 +364,21 @@ subroutine RQuAcK(working_dir,use_gpu,dotest,doRHF,doROHF,dostab,dosearch,doMP2,
|
||||
|
||||
end if
|
||||
|
||||
!------------------------!
|
||||
! Parquet module !
|
||||
!------------------------!
|
||||
|
||||
if(doParquet) then
|
||||
call wall_time(start_Parquet)
|
||||
|
||||
call wall_time(end_Parquet)
|
||||
|
||||
t_Parquet = end_Parquet - start_Parquet
|
||||
write(*,'(A65,1X,F9.3,A8)') 'Total wall time for Parquet module = ',t_Parquet,' seconds'
|
||||
write(*,*)
|
||||
|
||||
end if
|
||||
|
||||
|
||||
deallocate(eHF)
|
||||
deallocate(cHF)
|
||||
|
@ -10,6 +10,7 @@ subroutine read_methods(working_dir, &
|
||||
doG0W0,doevGW,doqsGW,doufG0W0,doufGW, &
|
||||
doG0T0pp,doevGTpp,doqsGTpp,doufG0T0pp, &
|
||||
doG0T0eh,doevGTeh,doqsGTeh, &
|
||||
doParquet, &
|
||||
doRtest,doUtest,doGtest)
|
||||
|
||||
! Read desired methods
|
||||
@ -32,6 +33,7 @@ subroutine read_methods(working_dir, &
|
||||
logical,intent(out) :: doG0W0,doevGW,doqsGW,doufG0W0,doufGW
|
||||
logical,intent(out) :: doG0T0pp,doevGTpp,doqsGTpp,doufG0T0pp
|
||||
logical,intent(out) :: doG0T0eh,doevGTeh,doqsGTeh
|
||||
logical,intent(out) :: doParquet
|
||||
|
||||
logical,intent(out) :: doRtest,doUtest,doGtest
|
||||
|
||||
@ -196,6 +198,14 @@ subroutine read_methods(working_dir, &
|
||||
if(ans1 == 'T') doG0T0eh = .true.
|
||||
if(ans2 == 'T') doevGTeh = .true.
|
||||
if(ans3 == 'T') doqsGTeh = .true.
|
||||
|
||||
! Read coupled channels methods
|
||||
|
||||
doParquet = .false.
|
||||
|
||||
read(1,*)
|
||||
read(1,*) ans1
|
||||
if(ans1 == 'T') doParquet = .true.
|
||||
|
||||
! Read test
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user