From a95e841b25eb4b17b0c771be48e266f6d046824c Mon Sep 17 00:00:00 2001 From: someone Date: Wed, 6 May 2026 17:31:35 +0800 Subject: [PATCH 1/2] Fix: use correct PSI for GPU in cal_tau for ELF --- source/source_esolver/esolver_ks_pw.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/source_esolver/esolver_ks_pw.cpp b/source/source_esolver/esolver_ks_pw.cpp index 6714821d02f..24af93cfb5a 100644 --- a/source/source_esolver/esolver_ks_pw.cpp +++ b/source/source_esolver/esolver_ks_pw.cpp @@ -279,7 +279,7 @@ void ESolver_KS_PW::after_scf(UnitCell& ucell, const int istep, const // Calculate kinetic energy density tau for ELF if needed if (PARAM.inp.out_elf[0] > 0) { - this->pelec->cal_tau(*(this->stp.psi_cpu)); + static_cast*>(this->pelec)->cal_tau(*this->stp.template get_psi_t()); } ESolver_KS::after_scf(ucell, istep, conv_esolver); From 8809c2830869aa1aca2b572fa6328055d5a127f1 Mon Sep 17 00:00:00 2001 From: someone Date: Sat, 30 May 2026 11:43:49 +0800 Subject: [PATCH 2/2] Refactor: split long cast into readable lines in after_scf --- source/source_esolver/esolver_ks_pw.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/source_esolver/esolver_ks_pw.cpp b/source/source_esolver/esolver_ks_pw.cpp index 24af93cfb5a..97b79b7e6e6 100644 --- a/source/source_esolver/esolver_ks_pw.cpp +++ b/source/source_esolver/esolver_ks_pw.cpp @@ -279,7 +279,9 @@ void ESolver_KS_PW::after_scf(UnitCell& ucell, const int istep, const // Calculate kinetic energy density tau for ELF if needed if (PARAM.inp.out_elf[0] > 0) { - static_cast*>(this->pelec)->cal_tau(*this->stp.template get_psi_t()); + auto* elec_pw = static_cast*>(this->pelec); + auto& psi = *this->stp.template get_psi_t(); + elec_pw->cal_tau(psi); } ESolver_KS::after_scf(ucell, istep, conv_esolver);