From d51f99671d7f7711ba05a4300a6269a2c388dd7a Mon Sep 17 00:00:00 2001 From: Pierre-Francois Loos Date: Thu, 6 Jan 2022 22:36:30 +0100 Subject: [PATCH] problem with rcond in DIIS fixed --- src/GF/evGF2.f90 | 1 + src/GF/evUGF2.f90 | 1 + src/GF/qsGF2.f90 | 2 +- src/GF/qsUGF2.f90 | 2 +- src/GT/evGT.f90 | 1 + src/GT/qsGT.f90 | 2 +- src/GW/evGW.f90 | 1 + src/GW/evUGW.f90 | 1 + src/GW/print_qsUGW.f90 | 7 +------ src/GW/qsGW.f90 | 2 +- src/GW/qsUGW.f90 | 4 ++-- src/HF/RHF.f90 | 1 + src/QuAcK/read_methods.f90 | 2 +- 13 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/GF/evGF2.f90 b/src/GF/evGF2.f90 index 9466f53..e0fbeef 100644 --- a/src/GF/evGF2.f90 +++ b/src/GF/evGF2.f90 @@ -70,6 +70,7 @@ subroutine evGF2(BSE,TDA,dBSE,dTDA,evDyn,maxSCF,thresh,max_diis,singlet,triplet, error_diis(:,:) = 0d0 eGF2(:) = eHF(:) eOld(:) = eHF(:) + rcond = 0d0 !------------------------------------------------------------------------ ! Main SCF loop diff --git a/src/GF/evUGF2.f90 b/src/GF/evUGF2.f90 index 3d7c844..7d8c635 100644 --- a/src/GF/evUGF2.f90 +++ b/src/GF/evUGF2.f90 @@ -102,6 +102,7 @@ subroutine evUGF2(maxSCF,thresh,max_diis,BSE,TDA,dBSE,dTDA,evDyn,spin_conserved, eGF2(:,:) = eHF(:,:) eOld(:,:) = eHF(:,:) Z(:,:) = 1d0 + rcond(:) = 0d0 !------------------------------------------------------------------------ ! Main loop diff --git a/src/GF/qsGF2.f90 b/src/GF/qsGF2.f90 index 87b3f73..350a81c 100644 --- a/src/GF/qsGF2.f90 +++ b/src/GF/qsGF2.f90 @@ -121,7 +121,7 @@ subroutine qsGF2(maxSCF,thresh,max_diis,BSE,TDA,dBSE,dTDA,evDyn,singlet,triplet, c(:,:) = cHF(:,:) F_diis(:,:) = 0d0 error_diis(:,:) = 0d0 - rcond = 1d0 + rcond = 0d0 !------------------------------------------------------------------------ ! Main loop diff --git a/src/GF/qsUGF2.f90 b/src/GF/qsUGF2.f90 index e94a344..7a53c1d 100644 --- a/src/GF/qsUGF2.f90 +++ b/src/GF/qsUGF2.f90 @@ -135,7 +135,7 @@ subroutine qsUGF2(maxSCF,thresh,max_diis,BSE,TDA,dBSE,dTDA,evDyn,spin_conserved, c(:,:,:) = cHF(:,:,:) F_diis(:,:,:) = 0d0 error_diis(:,:,:) = 0d0 - rcond = 1d0 + rcond(:) = 0d0 !------------------------------------------------------------------------ ! Main loop diff --git a/src/GT/evGT.f90 b/src/GT/evGT.f90 index 016cf32..c600825 100644 --- a/src/GT/evGT.f90 +++ b/src/GT/evGT.f90 @@ -118,6 +118,7 @@ subroutine evGT(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS, & eGT(:) = eG0T0(:) eOld(:) = eGT(:) Z(:) = 1d0 + rcond = 0d0 !------------------------------------------------------------------------ ! Main loop diff --git a/src/GT/qsGT.f90 b/src/GT/qsGT.f90 index 7b7e474..e2a1cf0 100644 --- a/src/GT/qsGT.f90 +++ b/src/GT/qsGT.f90 @@ -160,7 +160,7 @@ subroutine qsGT(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE,TDA_T,T c(:,:) = cHF(:,:) F_diis(:,:) = 0d0 error_diis(:,:) = 0d0 - rcond = 1d0 + rcond = 0d0 !------------------------------------------------------------------------ ! Main loop diff --git a/src/GW/evGW.f90 b/src/GW/evGW.f90 index 4790cf4..f510975 100644 --- a/src/GW/evGW.f90 +++ b/src/GW/evGW.f90 @@ -139,6 +139,7 @@ subroutine evGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE, eGW(:) = eG0W0(:) eOld(:) = eGW(:) Z(:) = 1d0 + rcond = 0d0 !------------------------------------------------------------------------ ! Main loop diff --git a/src/GW/evUGW.f90 b/src/GW/evUGW.f90 index bed065a..ceac1dd 100644 --- a/src/GW/evUGW.f90 +++ b/src/GW/evUGW.f90 @@ -153,6 +153,7 @@ subroutine evUGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE eGW(:,:) = eG0W0(:,:) eOld(:,:) = eGW(:,:) Z(:,:) = 1d0 + rcond(:) = 0d0 !------------------------------------------------------------------------ ! Main loop diff --git a/src/GW/print_qsUGW.f90 b/src/GW/print_qsUGW.f90 index 983e148..9afcbde 100644 --- a/src/GW/print_qsUGW.f90 +++ b/src/GW/print_qsUGW.f90 @@ -1,4 +1,4 @@ -subroutine print_qsUGW(nBas,nO,nSCF,Conv,thresh,eHF,eGW,cGW,PGW,Ov,T,V,J,K, & +subroutine print_qsUGW(nBas,nO,nSCF,Conv,thresh,eHF,eGW,cGW,Ov, & ENuc,ET,EV,EJ,Ex,EcGM,EcRPA,EqsGW,SigC,Z,dipole) ! Print one-electron energies and other stuff for qsUGW @@ -24,12 +24,7 @@ subroutine print_qsUGW(nBas,nO,nSCF,Conv,thresh,eHF,eGW,cGW,PGW,Ov,T,V,J,K, & double precision,intent(in) :: eHF(nBas,nspin) double precision,intent(in) :: eGW(nBas,nspin) double precision,intent(in) :: cGW(nBas,nBas,nspin) - double precision,intent(in) :: PGW(nBas,nBas,nspin) double precision,intent(in) :: Ov(nBas,nBas) - double precision,intent(in) :: T(nBas,nBas) - double precision,intent(in) :: V(nBas,nBas) - double precision,intent(in) :: J(nBas,nBas,nspin) - double precision,intent(in) :: K(nBas,nBas,nspin) double precision,intent(in) :: SigC(nBas,nBas,nspin) double precision,intent(in) :: Z(nBas,nspin) double precision,intent(in) :: dipole(ncart) diff --git a/src/GW/qsGW.f90 b/src/GW/qsGW.f90 index 9a418aa..806ae6d 100644 --- a/src/GW/qsGW.f90 +++ b/src/GW/qsGW.f90 @@ -153,7 +153,7 @@ subroutine qsGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE, c(:,:) = cHF(:,:) F_diis(:,:) = 0d0 error_diis(:,:) = 0d0 - rcond = 1d0 + rcond = 0d0 !------------------------------------------------------------------------ ! Main loop diff --git a/src/GW/qsUGW.f90 b/src/GW/qsUGW.f90 index fb7b59f..acfab9f 100644 --- a/src/GW/qsUGW.f90 +++ b/src/GW/qsUGW.f90 @@ -166,7 +166,7 @@ subroutine qsUGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE c(:,:,:) = cHF(:,:,:) F_diis(:,:,:) = 0d0 error_diis(:,:,:) = 0d0 - rcond = 1d0 + rcond(:) = 0d0 !------------------------------------------------------------------------ ! Main loop @@ -366,7 +366,7 @@ subroutine qsUGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE !------------------------------------------------------------------------ call dipole_moment(nBas,P(:,:,1)+P(:,:,2),nNuc,ZNuc,rNuc,dipole_int_AO,dipole) - call print_qsUGW(nBas,nO,nSCF,Conv,thresh,eHF,eGW,c,P,S,T,V,J,K,ENuc,ET,EV,EJ,Ex,EcGM,EcRPA,EqsGW,SigCp,Z,dipole) + call print_qsUGW(nBas,nO,nSCF,Conv,thresh,eHF,eGW,c,S,ENuc,ET,EV,EJ,Ex,EcGM,EcRPA,EqsGW,SigCp,Z,dipole) enddo !------------------------------------------------------------------------ diff --git a/src/HF/RHF.f90 b/src/HF/RHF.f90 index a4bf5fe..f5a098a 100644 --- a/src/HF/RHF.f90 +++ b/src/HF/RHF.f90 @@ -94,6 +94,7 @@ subroutine RHF(maxSCF,thresh,max_diis,guess_type,nNuc,ZNuc,rNuc,ENuc,nBas,nO,S,T error_diis(:,:) = 0d0 Conv = 1d0 nSCF = 0 + rcond = 0d0 !------------------------------------------------------------------------ ! Main SCF loop diff --git a/src/QuAcK/read_methods.f90 b/src/QuAcK/read_methods.f90 index 8ddd885..9b909e9 100644 --- a/src/QuAcK/read_methods.f90 +++ b/src/QuAcK/read_methods.f90 @@ -30,7 +30,7 @@ subroutine read_methods(doRHF,doUHF,doKS,doMOM, & ! Local variables - character(len=1) :: answer1,answer2,answer3,answer4,answer5,answer6,answer7 + character(len=1) :: answer1,answer2,answer3,answer4,answer5 ! Open file with method specification