10
1
mirror of https://github.com/pfloos/quack synced 2024-12-23 04:43:42 +01:00

problem with rcond in DIIS fixed

This commit is contained in:
Pierre-Francois Loos 2022-01-06 22:36:30 +01:00
parent c93ae70805
commit d51f99671d
13 changed files with 14 additions and 13 deletions

View File

@ -70,6 +70,7 @@ subroutine evGF2(BSE,TDA,dBSE,dTDA,evDyn,maxSCF,thresh,max_diis,singlet,triplet,
error_diis(:,:) = 0d0 error_diis(:,:) = 0d0
eGF2(:) = eHF(:) eGF2(:) = eHF(:)
eOld(:) = eHF(:) eOld(:) = eHF(:)
rcond = 0d0
!------------------------------------------------------------------------ !------------------------------------------------------------------------
! Main SCF loop ! Main SCF loop

View File

@ -102,6 +102,7 @@ subroutine evUGF2(maxSCF,thresh,max_diis,BSE,TDA,dBSE,dTDA,evDyn,spin_conserved,
eGF2(:,:) = eHF(:,:) eGF2(:,:) = eHF(:,:)
eOld(:,:) = eHF(:,:) eOld(:,:) = eHF(:,:)
Z(:,:) = 1d0 Z(:,:) = 1d0
rcond(:) = 0d0
!------------------------------------------------------------------------ !------------------------------------------------------------------------
! Main loop ! Main loop

View File

@ -121,7 +121,7 @@ subroutine qsGF2(maxSCF,thresh,max_diis,BSE,TDA,dBSE,dTDA,evDyn,singlet,triplet,
c(:,:) = cHF(:,:) c(:,:) = cHF(:,:)
F_diis(:,:) = 0d0 F_diis(:,:) = 0d0
error_diis(:,:) = 0d0 error_diis(:,:) = 0d0
rcond = 1d0 rcond = 0d0
!------------------------------------------------------------------------ !------------------------------------------------------------------------
! Main loop ! Main loop

View File

@ -135,7 +135,7 @@ subroutine qsUGF2(maxSCF,thresh,max_diis,BSE,TDA,dBSE,dTDA,evDyn,spin_conserved,
c(:,:,:) = cHF(:,:,:) c(:,:,:) = cHF(:,:,:)
F_diis(:,:,:) = 0d0 F_diis(:,:,:) = 0d0
error_diis(:,:,:) = 0d0 error_diis(:,:,:) = 0d0
rcond = 1d0 rcond(:) = 0d0
!------------------------------------------------------------------------ !------------------------------------------------------------------------
! Main loop ! Main loop

View File

@ -118,6 +118,7 @@ subroutine evGT(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS, &
eGT(:) = eG0T0(:) eGT(:) = eG0T0(:)
eOld(:) = eGT(:) eOld(:) = eGT(:)
Z(:) = 1d0 Z(:) = 1d0
rcond = 0d0
!------------------------------------------------------------------------ !------------------------------------------------------------------------
! Main loop ! Main loop

View File

@ -160,7 +160,7 @@ subroutine qsGT(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE,TDA_T,T
c(:,:) = cHF(:,:) c(:,:) = cHF(:,:)
F_diis(:,:) = 0d0 F_diis(:,:) = 0d0
error_diis(:,:) = 0d0 error_diis(:,:) = 0d0
rcond = 1d0 rcond = 0d0
!------------------------------------------------------------------------ !------------------------------------------------------------------------
! Main loop ! Main loop

View File

@ -139,6 +139,7 @@ subroutine evGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,
eGW(:) = eG0W0(:) eGW(:) = eG0W0(:)
eOld(:) = eGW(:) eOld(:) = eGW(:)
Z(:) = 1d0 Z(:) = 1d0
rcond = 0d0
!------------------------------------------------------------------------ !------------------------------------------------------------------------
! Main loop ! Main loop

View File

@ -153,6 +153,7 @@ subroutine evUGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE
eGW(:,:) = eG0W0(:,:) eGW(:,:) = eG0W0(:,:)
eOld(:,:) = eGW(:,:) eOld(:,:) = eGW(:,:)
Z(:,:) = 1d0 Z(:,:) = 1d0
rcond(:) = 0d0
!------------------------------------------------------------------------ !------------------------------------------------------------------------
! Main loop ! Main loop

View File

@ -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) ENuc,ET,EV,EJ,Ex,EcGM,EcRPA,EqsGW,SigC,Z,dipole)
! Print one-electron energies and other stuff for qsUGW ! 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) :: eHF(nBas,nspin)
double precision,intent(in) :: eGW(nBas,nspin) double precision,intent(in) :: eGW(nBas,nspin)
double precision,intent(in) :: cGW(nBas,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) :: 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) :: SigC(nBas,nBas,nspin)
double precision,intent(in) :: Z(nBas,nspin) double precision,intent(in) :: Z(nBas,nspin)
double precision,intent(in) :: dipole(ncart) double precision,intent(in) :: dipole(ncart)

View File

@ -153,7 +153,7 @@ subroutine qsGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,
c(:,:) = cHF(:,:) c(:,:) = cHF(:,:)
F_diis(:,:) = 0d0 F_diis(:,:) = 0d0
error_diis(:,:) = 0d0 error_diis(:,:) = 0d0
rcond = 1d0 rcond = 0d0
!------------------------------------------------------------------------ !------------------------------------------------------------------------
! Main loop ! Main loop

View File

@ -166,7 +166,7 @@ subroutine qsUGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE
c(:,:,:) = cHF(:,:,:) c(:,:,:) = cHF(:,:,:)
F_diis(:,:,:) = 0d0 F_diis(:,:,:) = 0d0
error_diis(:,:,:) = 0d0 error_diis(:,:,:) = 0d0
rcond = 1d0 rcond(:) = 0d0
!------------------------------------------------------------------------ !------------------------------------------------------------------------
! Main loop ! 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 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 enddo
!------------------------------------------------------------------------ !------------------------------------------------------------------------

View File

@ -94,6 +94,7 @@ subroutine RHF(maxSCF,thresh,max_diis,guess_type,nNuc,ZNuc,rNuc,ENuc,nBas,nO,S,T
error_diis(:,:) = 0d0 error_diis(:,:) = 0d0
Conv = 1d0 Conv = 1d0
nSCF = 0 nSCF = 0
rcond = 0d0
!------------------------------------------------------------------------ !------------------------------------------------------------------------
! Main SCF loop ! Main SCF loop

View File

@ -30,7 +30,7 @@ subroutine read_methods(doRHF,doUHF,doKS,doMOM, &
! Local variables ! 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 ! Open file with method specification