From 099001e957f00c133477aca66a0ea0254bbbead1 Mon Sep 17 00:00:00 2001 From: dzzz2001 Date: Tue, 24 Jun 2025 14:25:17 +0800 Subject: [PATCH 1/2] don't mix_dmr in the last step --- source/source_esolver/esolver_ks_lcao.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/source/source_esolver/esolver_ks_lcao.cpp b/source/source_esolver/esolver_ks_lcao.cpp index e0791577a9..36c2a61efd 100644 --- a/source/source_esolver/esolver_ks_lcao.cpp +++ b/source/source_esolver/esolver_ks_lcao.cpp @@ -821,11 +821,14 @@ void ESolver_KS_LCAO::iter_finish(UnitCell& ucell, const int istep, int& ESolver_KS::iter_finish(ucell, istep, iter, conv_esolver); // 5) mix density matrix if mixing_restart + mixing_dmr + not first - // mixing_restart at every iter - if (PARAM.inp.mixing_restart > 0 && this->p_chgmix->mixing_restart_count > 0 && PARAM.inp.mixing_dmr) + // mixing_restart at every iter except the last iter + if(iter != PARAM.inp.scf_nmax && !conv_esolver) { - elecstate::DensityMatrix* dm = dynamic_cast*>(this->pelec)->get_DM(); - this->p_chgmix->mix_dmr(dm); + if (PARAM.inp.mixing_restart > 0 && this->p_chgmix->mixing_restart_count > 0 && PARAM.inp.mixing_dmr) + { + elecstate::DensityMatrix* dm = dynamic_cast*>(this->pelec)->get_DM(); + this->p_chgmix->mix_dmr(dm); + } } // 6) save charge density From a02d35be9f81961f9d56c90f57bde021d5b59bb1 Mon Sep 17 00:00:00 2001 From: dzzz2001 Date: Tue, 24 Jun 2025 16:40:43 +0800 Subject: [PATCH 2/2] fix test reference values --- tests/03_NAO_multik/53_NO_PK_URAMP/result.ref | 2 +- tests/03_NAO_multik/54_NO_PK_PU/result.ref | 4 ++-- tests/03_NAO_multik/55_NO_PK_PU_S1/result.ref | 4 ++-- tests/03_NAO_multik/56_NO_PK_PU_SO/result.ref | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/03_NAO_multik/53_NO_PK_URAMP/result.ref b/tests/03_NAO_multik/53_NO_PK_URAMP/result.ref index 09870b91eb..ca69bddb25 100644 --- a/tests/03_NAO_multik/53_NO_PK_URAMP/result.ref +++ b/tests/03_NAO_multik/53_NO_PK_URAMP/result.ref @@ -1,5 +1,5 @@ etotref -3376.2723454300949015 etotperatomref -1688.1361727150 totalforceref 36.032716 -totalstressref 12211.003288 +totalstressref 12211.003182 totaltimeref 2.21 diff --git a/tests/03_NAO_multik/54_NO_PK_PU/result.ref b/tests/03_NAO_multik/54_NO_PK_PU/result.ref index 8386f15941..a762a4c4ab 100644 --- a/tests/03_NAO_multik/54_NO_PK_PU/result.ref +++ b/tests/03_NAO_multik/54_NO_PK_PU/result.ref @@ -1,5 +1,5 @@ etotref -7661.7030524582096405 etotperatomref -1915.4257631146 -totalforceref 24.669066 -totalstressref 7358.093426 +totalforceref 24.663512 +totalstressref 7359.638478 totaltimeref 27.05 diff --git a/tests/03_NAO_multik/55_NO_PK_PU_S1/result.ref b/tests/03_NAO_multik/55_NO_PK_PU_S1/result.ref index b1661be415..dfb3f5b493 100644 --- a/tests/03_NAO_multik/55_NO_PK_PU_S1/result.ref +++ b/tests/03_NAO_multik/55_NO_PK_PU_S1/result.ref @@ -1,5 +1,5 @@ etotref -5909.5419790928954171 etotperatomref -1969.8473263643 -totalforceref 955.111693 -totalstressref 46844.269362 +totalforceref 955.111630 +totalstressref 46844.260877 totaltimeref 1.25 diff --git a/tests/03_NAO_multik/56_NO_PK_PU_SO/result.ref b/tests/03_NAO_multik/56_NO_PK_PU_SO/result.ref index 3c6533ae0f..74a7a7e4d7 100644 --- a/tests/03_NAO_multik/56_NO_PK_PU_SO/result.ref +++ b/tests/03_NAO_multik/56_NO_PK_PU_SO/result.ref @@ -1,5 +1,5 @@ etotref -6789.2817503491569369 etotperatomref -3394.6408751746 -totalforceref 11.329526 -totalstressref 4894.902744 +totalforceref 11.335196 +totalstressref 4892.274915 totaltimeref 4.70