diff --git a/source/source_esolver/esolver_ks_pw.cpp b/source/source_esolver/esolver_ks_pw.cpp index 57d0a1100be..454ef7532a2 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) { - this->pelec->cal_tau(*(this->stp.psi_cpu)); + 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);