diff --git a/source/module_esolver/esolver_ks.cpp b/source/module_esolver/esolver_ks.cpp index f57ff84d53..9bc1e65818 100644 --- a/source/module_esolver/esolver_ks.cpp +++ b/source/module_esolver/esolver_ks.cpp @@ -673,10 +673,10 @@ void ESolver_KS::iter_finish(int& iter) this->pelec->f_en.etot_old = this->pelec->f_en.etot; // add a energy threshold for SCF convergence - if (this->conv_esolver == 0) // only check when density is not converged + if (this->scf_ene_thr > 0.0 && this->conv_esolver == 1) // only check when density is converged { this->conv_esolver - = (iter != 1 && std::abs(this->pelec->f_en.etot_delta * ModuleBase::Ry_to_eV) < this->scf_ene_thr); + = (std::abs(this->pelec->f_en.etot_delta * ModuleBase::Ry_to_eV) < this->scf_ene_thr); } }