fix bug in ROHF

This commit is contained in:
Pierre-Francois Loos 2023-09-06 09:50:29 +02:00
parent 99cbd0e95d
commit 00049621ff
3 changed files with 10 additions and 10 deletions

View File

@ -1,5 +1,5 @@
# HF: maxSCF thresh DIIS n_diis guess_type ortho_type mix_guess level_shift stability
64 0.0000001 F 5 1 1 F 0.0 F
64 0.0000001 T 5 1 1 F 0.0 F
# MP: reg
F
# CC: maxSCF thresh DIIS n_diis

View File

@ -1,7 +1,7 @@
subroutine ROHF(maxSCF,thresh,max_diis,guess_type,mix,level_shift,nNuc,ZNuc,rNuc,ENuc, &
nBas,nO,S,T,V,Hc,ERI,dipole_int,X,EHF,e,c,P)
! Perform unrestricted Hartree-Fock calculation
! Perform restricted open-shell Hartree-Fock calculation
implicit none
include 'parameters.h'
@ -165,7 +165,7 @@ subroutine ROHF(maxSCF,thresh,max_diis,guess_type,mix,level_shift,nNuc,ZNuc,rNuc
! Diagonalize Fock matrix to get eigenvectors and eigenvalues
cp(:,:) = Ftot(:,:)
cp(:,:) = Fp(:,:)
call diagonalize_matrix(nBas,cp,e)
! Back-transform eigenvectors in non-orthogonal basis

View File

@ -49,23 +49,23 @@ subroutine ROHF_fock_matrix(nBas,nOa,nOb,S,c,Fa,Fb,F)
! Block-by-block Fock matrix
call AOtoMO_transform(nBas,c,Fa)
call AOtoMO_transform(nBas,c,Fb)
! call AOtoMO_transform(nBas,c,Fa)
! call AOtoMO_transform(nBas,c,Fb)
F(1:nC, 1:nC ) = aC*Fa(1:nC, 1:nC ) + bC*Fb(1:nC, 1:nC )
F(1:nC, nC+1:nC+nO ) = Fb(1:nC, nC+1:nC+nO )
F(1:nC,nO+nC+1:nC+nO+nV) = 0.5d0*Fa(1:nC,nO+nC+1:nC+nO+nV) + 0.5d0*Fb(1:nC,nO+nC+1:nC+nO+nV)
F(nC+1:nO+nC, 1:nC ) = Fb(nC+1:nO+nC, 1:nC )
F(nC+1:nO+nC, nC+1:nC+nO ) = aO*Fa(nC+1:nC+nO, nC+1:nC+nO ) + bO*Fb(nC+1:nO+nC,nC+1:nC+nO)
F(nC+1:nO+nC,nO+nC+1:nC+nO+nV) = Fa(nC+1:nC+nO,nO+nC+1:nC+nO+nV)
F(nC+1:nO+nC, nC+1:nC+nO ) = aO*Fa(nC+1:nO+nC, nC+1:nC+nO ) + bO*Fb(nC+1:nO+nC,nC+1:nC+nO)
F(nC+1:nO+nC,nO+nC+1:nC+nO+nV) = Fa(nC+1:nO+nC,nO+nC+1:nC+nO+nV)
F(nO+nC+1:nC+nO+nV, 1:nC ) = 0.5d0*Fa(nO+nC+1:nC+nO+nV, 1:nC ) + 0.5d0*Fb(nO+nC+1:nC+nO+nV, 1:nC )
F(nO+nC+1:nC+nO+nV, nC+1:nC+nO ) = Fa(nO+nC+1:nC+nO+nV, nC+1:nC+nO )
F(nO+nC+1:nC+nO+nV,nO+nC+1:nC+nO+nV) = aV*Fa(nO+nC+1:nC+nO+nV,nO+nC+1:nC+nO+nV) + bV*Fb(nO+nC+1:nC+nO+nV,nO+nC+1:nC+nO+nV)
call MOtoAO_transform(nBas,S,c,F)
call MOtoAO_transform(nBas,S,c,Fa)
call MOtoAO_transform(nBas,S,c,Fb)
! call MOtoAO_transform(nBas,S,c,F)
! call MOtoAO_transform(nBas,S,c,Fa)
! call MOtoAO_transform(nBas,S,c,Fb)
end subroutine