mirror of
https://github.com/pfloos/quack
synced 2024-11-03 20:53:53 +01:00
HF solution search
This commit is contained in:
parent
17ce993aa2
commit
3b958f5610
@ -1,5 +1,5 @@
|
|||||||
# HF: maxSCF thresh DIIS guess mix_guess level_shift stability
|
# HF: maxSCF thresh DIIS guess mix_guess level_shift stab search
|
||||||
1000 0.00001 5 1 0.0 0.0 T
|
1000 0.00001 5 1 0.0 0.0 T T
|
||||||
# MP: reg
|
# MP: reg
|
||||||
F
|
F
|
||||||
# CC: maxSCF thresh DIIS
|
# CC: maxSCF thresh DIIS
|
||||||
|
@ -41,13 +41,14 @@ subroutine RHF_search(maxSCF,thresh,max_diis,guess_type,level_shift,nNuc,ZNuc,rN
|
|||||||
integer :: nS
|
integer :: nS
|
||||||
|
|
||||||
integer,parameter :: maxS = 20
|
integer,parameter :: maxS = 20
|
||||||
integer :: ia
|
integer :: ia,i,a
|
||||||
integer :: ispin
|
integer :: ispin
|
||||||
|
|
||||||
double precision,allocatable :: A(:,:)
|
double precision,allocatable :: Aph(:,:)
|
||||||
double precision,allocatable :: B(:,:)
|
double precision,allocatable :: Bph(:,:)
|
||||||
double precision,allocatable :: AB(:,:)
|
double precision,allocatable :: AB(:,:)
|
||||||
double precision,allocatable :: Om(:)
|
double precision,allocatable :: Om(:)
|
||||||
|
double precision,allocatable :: R(:,:)
|
||||||
|
|
||||||
integer :: eig
|
integer :: eig
|
||||||
double precision :: eigval
|
double precision :: eigval
|
||||||
@ -74,7 +75,7 @@ subroutine RHF_search(maxSCF,thresh,max_diis,guess_type,level_shift,nNuc,ZNuc,rN
|
|||||||
|
|
||||||
nS = (nO - nC)*(nV - nR)
|
nS = (nO - nC)*(nV - nR)
|
||||||
allocate(ERI_MO(nBas,nBas,nBas,nBas),eigvec(nS))
|
allocate(ERI_MO(nBas,nBas,nBas,nBas),eigvec(nS))
|
||||||
allocate(A(nS,nS),B(nS,nS),AB(nS,nS),Om(nS))
|
allocate(Aph(nS,nS),Bph(nS,nS),AB(nS,nS),Om(nS),R(nBas,nBas))
|
||||||
|
|
||||||
!------------------!
|
!------------------!
|
||||||
! Search algorithm !
|
! Search algorithm !
|
||||||
@ -119,10 +120,10 @@ subroutine RHF_search(maxSCF,thresh,max_diis,guess_type,level_shift,nNuc,ZNuc,rN
|
|||||||
|
|
||||||
ispin = 1
|
ispin = 1
|
||||||
|
|
||||||
call phLR_A(ispin,.false.,nBas,nC,nO,nV,nR,nS,1d0,e,ERI_MO,A)
|
call phLR_A(ispin,.false.,nBas,nC,nO,nV,nR,nS,1d0,e,ERI_MO,Aph)
|
||||||
call phLR_B(ispin,.false.,nBas,nC,nO,nV,nR,nS,1d0,ERI_MO,B)
|
call phLR_B(ispin,.false.,nBas,nC,nO,nV,nR,nS,1d0,ERI_MO,Bph)
|
||||||
|
|
||||||
AB(:,:) = A(:,:) + B(:,:)
|
AB(:,:) = Aph(:,:) + Bph(:,:)
|
||||||
|
|
||||||
call diagonalize_matrix(nS,AB,Om)
|
call diagonalize_matrix(nS,AB,Om)
|
||||||
Om(:) = 0.5d0*Om(:)
|
Om(:) = 0.5d0*Om(:)
|
||||||
@ -148,8 +149,32 @@ subroutine RHF_search(maxSCF,thresh,max_diis,guess_type,level_shift,nNuc,ZNuc,rN
|
|||||||
read(*,*) eig
|
read(*,*) eig
|
||||||
|
|
||||||
eigval = Om(eig)
|
eigval = Om(eig)
|
||||||
eigvec = AB(:,eig)
|
eigvec(:) = AB(:,eig)
|
||||||
|
|
||||||
|
print*,eigval
|
||||||
|
call matout(nS,1,eigvec)
|
||||||
|
|
||||||
|
R(:,:) = 0d0
|
||||||
|
ia = 0
|
||||||
|
do i=nC+1,nO
|
||||||
|
do a=nO+1,nBas-nR
|
||||||
|
ia = ia + 1
|
||||||
|
R(i,a) = +eigvec(ia)
|
||||||
|
R(a,i) = -eigvec(ia)
|
||||||
|
end do
|
||||||
|
end do
|
||||||
|
|
||||||
|
print*,'rotation matrix'
|
||||||
|
call matout(nBas,nBas,R)
|
||||||
|
|
||||||
|
print*,'old coefficients'
|
||||||
|
call matout(nBas,nBas,c)
|
||||||
|
|
||||||
|
c = c - 0.1d0*matmul(c,R)
|
||||||
|
|
||||||
|
print*,'new coefficients'
|
||||||
|
call matout(nBas,nBas,c)
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
write(*,'(1X,A40,1X)') 'Well done, RHF solution is stable!'
|
write(*,'(1X,A40,1X)') 'Well done, RHF solution is stable!'
|
||||||
|
@ -14,11 +14,12 @@ subroutine mo_guess(nBas,guess_type,S,Hc,X,c)
|
|||||||
|
|
||||||
! Output variables
|
! Output variables
|
||||||
|
|
||||||
double precision,intent(out) :: c(nBas,nBas)
|
double precision,intent(inout) :: c(nBas,nBas)
|
||||||
|
|
||||||
if(guess_type == 0) then
|
if(guess_type == 0) then
|
||||||
|
|
||||||
write(*,*) 'Reading HF coefficients...'
|
write(*,*) 'Reading HF coefficients...'
|
||||||
|
c(:,:) = c(:,:)
|
||||||
|
|
||||||
elseif(guess_type == 1) then
|
elseif(guess_type == 1) then
|
||||||
|
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
subroutine GQuAcK(doGHF,dostab,doMP2,doMP3,dophRPA,dophRPAx,doppRPA,doG0W0,doevGW,doqsGW,doG0F2,doevGF2,doqsGF2, &
|
subroutine GQuAcK(doGHF,dostab,dosearch,doMP2,doMP3,dophRPA,dophRPAx,doppRPA, &
|
||||||
nNuc,nBas,nC,nO,nV,nR,ENuc,ZNuc,rNuc,S,T,V,Hc,X,dipole_int_AO,ERI_AO, &
|
doG0W0,doevGW,doqsGW,doG0F2,doevGF2,doqsGF2, &
|
||||||
maxSCF_HF,max_diis_HF,thresh_HF,level_shift,guess_type,mix,reg_MP, &
|
nNuc,nBas,nC,nO,nV,nR,ENuc,ZNuc,rNuc,S,T,V,Hc,X,dipole_int_AO,ERI_AO, &
|
||||||
spin_conserved,spin_flip,TDA,maxSCF_GF,max_diis_GF,thresh_GF,lin_GF,reg_GF,eta_GF, &
|
maxSCF_HF,max_diis_HF,thresh_HF,level_shift,guess_type,mix,reg_MP, &
|
||||||
maxSCF_GW,max_diis_GW,thresh_GW,TDA_W,lin_GW,reg_GW,eta_GW, &
|
spin_conserved,spin_flip,TDA,maxSCF_GF,max_diis_GF,thresh_GF,lin_GF,reg_GF,eta_GF, &
|
||||||
|
maxSCF_GW,max_diis_GW,thresh_GW,TDA_W,lin_GW,reg_GW,eta_GW, &
|
||||||
dophBSE,dophBSE2,doppBSE,dBSE,dTDA,doACFDT,exchange_kernel,doXBS)
|
dophBSE,dophBSE2,doppBSE,dBSE,dTDA,doACFDT,exchange_kernel,doXBS)
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
@ -10,6 +11,7 @@ subroutine GQuAcK(doGHF,dostab,doMP2,doMP3,dophRPA,dophRPAx,doppRPA,doG0W0,doevG
|
|||||||
|
|
||||||
logical,intent(in) :: doGHF
|
logical,intent(in) :: doGHF
|
||||||
logical,intent(in) :: dostab
|
logical,intent(in) :: dostab
|
||||||
|
logical,intent(in) :: dosearch
|
||||||
logical,intent(in) :: doMP2
|
logical,intent(in) :: doMP2
|
||||||
logical,intent(in) :: doMP3
|
logical,intent(in) :: doMP3
|
||||||
logical,intent(in) :: dophRPA,dophRPAx,doppRPA
|
logical,intent(in) :: dophRPA,dophRPAx,doppRPA
|
||||||
|
@ -5,7 +5,7 @@ program QuAcK
|
|||||||
|
|
||||||
logical :: doRQuAcK,doUQuAcK,doGQuAcK
|
logical :: doRQuAcK,doUQuAcK,doGQuAcK
|
||||||
logical :: doRHF,doUHF,doGHF,doROHF
|
logical :: doRHF,doUHF,doGHF,doROHF
|
||||||
logical :: dostab
|
logical :: dostab,dosearch
|
||||||
logical :: doMP2,doMP3
|
logical :: doMP2,doMP3
|
||||||
logical :: doCCD,dopCCD,doDCD,doCCSD,doCCSDT
|
logical :: doCCD,dopCCD,doDCD,doCCSD,doCCSDT
|
||||||
logical :: dodrCCD,dorCCD,docrCCD,dolCCD
|
logical :: dodrCCD,dorCCD,docrCCD,dolCCD
|
||||||
@ -107,14 +107,14 @@ program QuAcK
|
|||||||
! Read options for methods !
|
! Read options for methods !
|
||||||
!--------------------------!
|
!--------------------------!
|
||||||
|
|
||||||
call read_options(maxSCF_HF,thresh_HF,max_diis_HF,guess_type,mix,level_shift,dostab, &
|
call read_options(maxSCF_HF,thresh_HF,max_diis_HF,guess_type,mix,level_shift,dostab,dosearch, &
|
||||||
reg_MP, &
|
reg_MP, &
|
||||||
maxSCF_CC,thresh_CC,max_diis_CC, &
|
maxSCF_CC,thresh_CC,max_diis_CC, &
|
||||||
TDA,spin_conserved,spin_flip, &
|
TDA,spin_conserved,spin_flip, &
|
||||||
maxSCF_GF,thresh_GF,max_diis_GF,lin_GF,eta_GF,renorm_GF,reg_GF, &
|
maxSCF_GF,thresh_GF,max_diis_GF,lin_GF,eta_GF,renorm_GF,reg_GF, &
|
||||||
maxSCF_GW,thresh_GW,max_diis_GW,lin_GW,eta_GW,reg_GW,TDA_W, &
|
maxSCF_GW,thresh_GW,max_diis_GW,lin_GW,eta_GW,reg_GW,TDA_W, &
|
||||||
maxSCF_GT,thresh_GT,max_diis_GT,lin_GT,eta_GT,reg_GT,TDA_T, &
|
maxSCF_GT,thresh_GT,max_diis_GT,lin_GT,eta_GT,reg_GT,TDA_T, &
|
||||||
doACFDT,exchange_kernel,doXBS, &
|
doACFDT,exchange_kernel,doXBS, &
|
||||||
dophBSE,dophBSE2,doppBSE,dBSE,dTDA)
|
dophBSE,dophBSE2,doppBSE,dBSE,dTDA)
|
||||||
|
|
||||||
!------------------------------------------------!
|
!------------------------------------------------!
|
||||||
@ -185,7 +185,7 @@ program QuAcK
|
|||||||
!-------------------------!
|
!-------------------------!
|
||||||
|
|
||||||
if(doRQuAcK) &
|
if(doRQuAcK) &
|
||||||
call RQuAcK(doRHF,doROHF,dostab,doMP2,doMP3,doCCD,dopCCD,doDCD,doCCSD,doCCSDT, &
|
call RQuAcK(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, &
|
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,doG0F3,doevGF3,doG0W0,doevGW,doqsGW,doufG0W0,doufGW,doSRGqsGW, &
|
||||||
doG0T0pp,doevGTpp,doqsGTpp,doG0T0eh,doevGTeh,doqsGTeh,nNuc,nBas,nC,nO,nV,nR,ENuc,ZNuc,rNuc, &
|
doG0T0pp,doevGTpp,doqsGTpp,doG0T0eh,doevGTeh,doqsGTeh,nNuc,nBas,nC,nO,nV,nR,ENuc,ZNuc,rNuc, &
|
||||||
@ -200,7 +200,7 @@ program QuAcK
|
|||||||
!---------------------------!
|
!---------------------------!
|
||||||
|
|
||||||
if(doUQuAcK) &
|
if(doUQuAcK) &
|
||||||
call UQuAcK(doUHF,dostab,doMP2,doMP3,doCCD,dopCCD,doDCD,doCCSD,doCCSDT, &
|
call UQuAcK(doUHF,dostab,dosearch,doMP2,doMP3,doCCD,dopCCD,doDCD,doCCSD,doCCSDT, &
|
||||||
dodrCCD,dorCCD,docrCCD,dolCCD,doCIS,doCIS_D,doCID,doCISD,doFCI,dophRPA,dophRPAx,docrRPA,doppRPA, &
|
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,doG0F3,doevGF3,doG0W0,doevGW,doqsGW,doufG0W0,doufGW,doSRGqsGW, &
|
||||||
doG0T0pp,doevGTpp,doqsGTpp,doG0T0eh,doevGTeh,doqsGTeh,nNuc,nBas,nC,nO,nV,nR,ENuc,ZNuc,rNuc, &
|
doG0T0pp,doevGTpp,doqsGTpp,doG0T0eh,doevGTeh,doqsGTeh,nNuc,nBas,nC,nO,nV,nR,ENuc,ZNuc,rNuc, &
|
||||||
@ -215,11 +215,12 @@ program QuAcK
|
|||||||
!--------------------------!
|
!--------------------------!
|
||||||
|
|
||||||
if(doGQuAcK) &
|
if(doGQuAcK) &
|
||||||
call GQuAcK(doGHF,dostab,doMP2,doMP3,dophRPA,dophRPAx,doppRPA,doG0W0,doevGW,doqsGW,doG0F2,doevGF2,doqsGF2, &
|
call GQuAcK(doGHF,dostab,dosearch,doMP2,doMP3,dophRPA,dophRPAx,doppRPA, &
|
||||||
nNuc,nBas,sum(nC),sum(nO),sum(nV),sum(nR),ENuc,ZNuc,rNuc,S,T,V,Hc,X,dipole_int_AO,ERI_AO, &
|
doG0W0,doevGW,doqsGW,doG0F2,doevGF2,doqsGF2, &
|
||||||
maxSCF_HF,max_diis_HF,thresh_HF,level_shift,guess_type,mix,reg_MP, &
|
nNuc,nBas,sum(nC),sum(nO),sum(nV),sum(nR),ENuc,ZNuc,rNuc,S,T,V,Hc,X,dipole_int_AO,ERI_AO, &
|
||||||
spin_conserved,spin_flip,TDA,maxSCF_GF,max_diis_GF,thresh_GF,lin_GF,reg_GF,eta_GF, &
|
maxSCF_HF,max_diis_HF,thresh_HF,level_shift,guess_type,mix,reg_MP, &
|
||||||
maxSCF_GW,max_diis_GW,thresh_GW,TDA_W,lin_GW,reg_GW,eta_GW, &
|
spin_conserved,spin_flip,TDA,maxSCF_GF,max_diis_GF,thresh_GF,lin_GF,reg_GF,eta_GF, &
|
||||||
|
maxSCF_GW,max_diis_GW,thresh_GW,TDA_W,lin_GW,reg_GW,eta_GW, &
|
||||||
dophBSE,dophBSE2,doppBSE,dBSE,dTDA,doACFDT,exchange_kernel,doXBS)
|
dophBSE,dophBSE2,doppBSE,dBSE,dTDA,doACFDT,exchange_kernel,doXBS)
|
||||||
|
|
||||||
!--------------!
|
!--------------!
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
subroutine RQuAcK(doRHF,doROHF,dostab,doMP2,doMP3,doCCD,dopCCD,doDCD,doCCSD,doCCSDT, &
|
subroutine RQuAcK(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, &
|
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,doG0F3,doevGF3,doG0W0,doevGW,doqsGW,doufG0W0,doufGW,doSRGqsGW, &
|
||||||
doG0T0pp,doevGTpp,doqsGTpp,doG0T0eh,doevGTeh,doqsGTeh,nNuc,nBas,nC,nO,nV,nR,ENuc,ZNuc,rNuc, &
|
doG0T0pp,doevGTpp,doqsGTpp,doG0T0eh,doevGTeh,doqsGTeh,nNuc,nBas,nC,nO,nV,nR,ENuc,ZNuc,rNuc, &
|
||||||
@ -15,6 +15,7 @@ subroutine RQuAcK(doRHF,doROHF,dostab,doMP2,doMP3,doCCD,dopCCD,doDCD,doCCSD,doCC
|
|||||||
|
|
||||||
logical,intent(in) :: doRHF,doROHF
|
logical,intent(in) :: doRHF,doROHF
|
||||||
logical,intent(in) :: dostab
|
logical,intent(in) :: dostab
|
||||||
|
logical,intent(in) :: dosearch
|
||||||
logical,intent(in) :: doMP2,doMP3
|
logical,intent(in) :: doMP2,doMP3
|
||||||
logical,intent(in) :: doCCD,dopCCD,doDCD,doCCSD,doCCSDT
|
logical,intent(in) :: doCCD,dopCCD,doDCD,doCCSD,doCCSDT
|
||||||
logical,intent(in) :: dodrCCD,dorCCD,docrCCD,dolCCD
|
logical,intent(in) :: dodrCCD,dorCCD,docrCCD,dolCCD
|
||||||
@ -182,7 +183,7 @@ subroutine RQuAcK(doRHF,doROHF,dostab,doMP2,doMP3,doCCD,dopCCD,doDCD,doCCSD,doCC
|
|||||||
|
|
||||||
end if
|
end if
|
||||||
|
|
||||||
if(dostab) then
|
if(dosearch) then
|
||||||
|
|
||||||
call wall_time(start_stab)
|
call wall_time(start_stab)
|
||||||
call RHF_search(maxSCF_HF,thresh_HF,max_diis_HF,guess_type,level_shift,nNuc,ZNuc,rNuc,ENuc, &
|
call RHF_search(maxSCF_HF,thresh_HF,max_diis_HF,guess_type,level_shift,nNuc,ZNuc,rNuc,ENuc, &
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
subroutine UQuAcK(doUHF,dostab,doMP2,doMP3,doCCD,dopCCD,doDCD,doCCSD,doCCSDT, &
|
subroutine UQuAcK(doUHF,dostab,dosearch,doMP2,doMP3,doCCD,dopCCD,doDCD,doCCSD,doCCSDT, &
|
||||||
dodrCCD,dorCCD,docrCCD,dolCCD,doCIS,doCIS_D,doCID,doCISD,doFCI,dophRPA,dophRPAx,docrRPA,doppRPA, &
|
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,doG0F3,doevGF3,doG0W0,doevGW,doqsGW,doufG0W0,doufGW,doSRGqsGW, &
|
||||||
doG0T0pp,doevGTpp,doqsGTpp,doG0T0eh,doevGTeh,doqsGTeh,nNuc,nBas,nC,nO,nV,nR,ENuc,ZNuc,rNuc, &
|
doG0T0pp,doevGTpp,doqsGTpp,doG0T0eh,doevGTeh,doqsGTeh,nNuc,nBas,nC,nO,nV,nR,ENuc,ZNuc,rNuc, &
|
||||||
@ -13,6 +13,7 @@ subroutine UQuAcK(doUHF,dostab,doMP2,doMP3,doCCD,dopCCD,doDCD,doCCSD,doCCSDT,
|
|||||||
|
|
||||||
logical,intent(in) :: doUHF
|
logical,intent(in) :: doUHF
|
||||||
logical,intent(in) :: dostab
|
logical,intent(in) :: dostab
|
||||||
|
logical,intent(in) :: dosearch
|
||||||
logical,intent(in) :: doMP2,doMP3
|
logical,intent(in) :: doMP2,doMP3
|
||||||
logical,intent(in) :: doCCD,dopCCD,doDCD,doCCSD,doCCSDT
|
logical,intent(in) :: doCCD,dopCCD,doDCD,doCCSD,doCCSDT
|
||||||
logical,intent(in) :: dodrCCD,dorCCD,docrCCD,dolCCD
|
logical,intent(in) :: dodrCCD,dorCCD,docrCCD,dolCCD
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
subroutine read_options(maxSCF_HF,thresh_HF,max_diis_HF,guess_type,mix,level_shift,dostab, &
|
subroutine read_options(maxSCF_HF,thresh_HF,max_diis_HF,guess_type,mix,level_shift,dostab,dosearch, &
|
||||||
reg_MP, &
|
reg_MP, &
|
||||||
maxSCF_CC,thresh_CC,max_diis_CC, &
|
maxSCF_CC,thresh_CC,max_diis_CC, &
|
||||||
TDA,spin_conserved,spin_flip, &
|
TDA,spin_conserved,spin_flip, &
|
||||||
maxSCF_GF,thresh_GF,max_diis_GF,lin_GF,eta_GF,renorm_GF,reg_GF, &
|
maxSCF_GF,thresh_GF,max_diis_GF,lin_GF,eta_GF,renorm_GF,reg_GF, &
|
||||||
maxSCF_GW,thresh_GW,max_diis_GW,lin_GW,eta_GW,reg_GW,TDA_W, &
|
maxSCF_GW,thresh_GW,max_diis_GW,lin_GW,eta_GW,reg_GW,TDA_W, &
|
||||||
maxSCF_GT,thresh_GT,max_diis_GT,lin_GT,eta_GT,reg_GT,TDA_T, &
|
maxSCF_GT,thresh_GT,max_diis_GT,lin_GT,eta_GT,reg_GT,TDA_T, &
|
||||||
doACFDT,exchange_kernel,doXBS, &
|
doACFDT,exchange_kernel,doXBS, &
|
||||||
dophBSE,dophBSE2,doppBSE,dBSE,dTDA)
|
dophBSE,dophBSE2,doppBSE,dBSE,dTDA)
|
||||||
|
|
||||||
! Read desired methods
|
! Read desired methods
|
||||||
@ -21,6 +21,7 @@ subroutine read_options(maxSCF_HF,thresh_HF,max_diis_HF,guess_type,mix,level_shi
|
|||||||
double precision,intent(out) :: mix
|
double precision,intent(out) :: mix
|
||||||
double precision,intent(out) :: level_shift
|
double precision,intent(out) :: level_shift
|
||||||
logical,intent(out) :: dostab
|
logical,intent(out) :: dostab
|
||||||
|
logical,intent(out) :: dosearch
|
||||||
|
|
||||||
logical,intent(out) :: reg_MP
|
logical,intent(out) :: reg_MP
|
||||||
|
|
||||||
@ -83,11 +84,13 @@ subroutine read_options(maxSCF_HF,thresh_HF,max_diis_HF,guess_type,mix,level_shi
|
|||||||
mix = 0d0
|
mix = 0d0
|
||||||
level_shift = 0d0
|
level_shift = 0d0
|
||||||
dostab = .false.
|
dostab = .false.
|
||||||
|
dosearch = .false.
|
||||||
|
|
||||||
read(1,*)
|
read(1,*)
|
||||||
read(1,*) maxSCF_HF,thresh_HF,max_diis_HF,guess_type,mix,level_shift,ans1
|
read(1,*) maxSCF_HF,thresh_HF,max_diis_HF,guess_type,mix,level_shift,ans1,ans2
|
||||||
|
|
||||||
if(ans1 == 'T') dostab = .true.
|
if(ans1 == 'T') dostab = .true.
|
||||||
|
if(ans2 == 'T') dosearch = .true.
|
||||||
|
|
||||||
! Read MPn options
|
! Read MPn options
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user