diff --git a/src/hartree_fock/10.hf.bats b/src/hartree_fock/10.hf.bats index 6d49f20c..70ad6c6f 100644 --- a/src/hartree_fock/10.hf.bats +++ b/src/hartree_fock/10.hf.bats @@ -15,7 +15,7 @@ function run() { qp run scf # qp set_frozen_core energy="$(ezfio get hartree_fock energy)" - eq $energy $2 $thresh + eq $2 $energy $thresh } diff --git a/src/hartree_fock/scf.irp.f b/src/hartree_fock/scf.irp.f index 2ed02bee..3226073d 100644 --- a/src/hartree_fock/scf.irp.f +++ b/src/hartree_fock/scf.irp.f @@ -79,7 +79,7 @@ subroutine run integer :: i_it, i, j, k - mo_label = 'Near-Canonical' + mo_label = 'Orthonormalized' call Roothaan_Hall_SCF call ezfio_set_hartree_fock_energy(SCF_energy) diff --git a/src/mo_one_e_ints/orthonormalize.irp.f b/src/mo_one_e_ints/orthonormalize.irp.f index 94ece41f..69d6c73d 100644 --- a/src/mo_one_e_ints/orthonormalize.irp.f +++ b/src/mo_one_e_ints/orthonormalize.irp.f @@ -3,11 +3,7 @@ subroutine orthonormalize_mos integer :: m,p,s,i m = size(mo_coef,1) p = size(mo_overlap,1) - do i=1,4 - call ortho_lowdin(mo_overlap,p,mo_num,mo_coef,m,ao_num,lin_dep_cutoff) - call nullify_small_elements(ao_num,mo_num,mo_coef,size(mo_coef,1),1.d-10) - enddo - call restore_symmetry(ao_num, mo_num, mo_coef, size(mo_coef,1), 1.d-10) + call ortho_lowdin(mo_overlap,p,mo_num,mo_coef,m,ao_num,lin_dep_cutoff) SOFT_TOUCH mo_coef end diff --git a/src/scf_utils/roothaan_hall_scf.irp.f b/src/scf_utils/roothaan_hall_scf.irp.f index 29f563cf..1406d603 100644 --- a/src/scf_utils/roothaan_hall_scf.irp.f +++ b/src/scf_utils/roothaan_hall_scf.irp.f @@ -62,7 +62,7 @@ END_DOC dim_DIIS = min(dim_DIIS+1,max_dim_DIIS) - if (scf_algorithm == 'DIIS') then + if ( (scf_algorithm == 'DIIS').and.(dabs(Delta_energy_SCF) > 1.d-6) ) then ! Store Fock and error matrices at each iteration do j=1,ao_num @@ -166,7 +166,7 @@ END_DOC if(.not.frozen_orb_scf)then call mo_as_eigvectors_of_mo_matrix(Fock_matrix_mo,size(Fock_matrix_mo,1), & size(Fock_matrix_mo,2),mo_label,1,.true.) - call nullify_small_elements(ao_num, mo_num, mo_coef, size(mo_coef,1), 1.d-10) + call restore_symmetry(ao_num, mo_num, mo_coef, size(mo_coef,1), 1.d-10) call orthonormalize_mos call save_mos endif