From 404a36413869f6d916a5cfcdc84d2aee09f2ac53 Mon Sep 17 00:00:00 2001 From: maki49 <1579492865@qq.com> Date: Wed, 12 Nov 2025 18:05:49 +0800 Subject: [PATCH] fix nspin=2 bug in write_Vxc --- source/module_io/write_vxc.hpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/source/module_io/write_vxc.hpp b/source/module_io/write_vxc.hpp index fa9da0ec62..aefbae1a10 100644 --- a/source/module_io/write_vxc.hpp +++ b/source/module_io/write_vxc.hpp @@ -243,7 +243,12 @@ void write_Vxc(const int nspin, vxcs_op_ao[is] = new hamilt::Veff>(gint, &vxc_k_ao, kv.kvec_d, potxc, &vxcs_R_ao[is], &ucell, orb_cutoff, &gd, nspin); - vxcs_op_ao[is]->contributeHR(); + vxcs_op_ao[is]->contributeHR(); // Veff::current_spin=0 + if (is == 1) + { + vxcs_R_ao[is].set_zero(); + vxcs_op_ao[is]->contributeHR(); //Veff::current_spin=1 (changes only when contributeHR() called) + } } std::vector> e_orb_locxc; // orbital energy (local XC) std::vector> e_orb_tot; // orbital energy (total) @@ -304,6 +309,17 @@ void write_Vxc(const int nspin, "k-" + std::to_string(ik), p2d, drank); + // ModuleIO::save_mat(-1, + // vxc_k_ao.get_hk(), + // nbasis, + // false /*binary*/, + // PARAM.inp.out_ndigits, + // true /*triangle*/, + // false /*append*/, + // "Vxc_AO", + // "k-" + std::to_string(ik), + // *pv, + // drank); // ======test======= // total_energy += all_band_energy(ik, vxc_tot_k_mo, p2d, wg); // ======test=======