@@ -172,9 +172,9 @@ void Sto_EleCond::cal_jmatrix(const psi::Psi<std::complex<float>>& kspsi_all,
172172 const int allbands = bandinfo[5 ];
173173 const int dim_jmatrix = perbands_ks * allbands_sto + perbands_sto * allbands;
174174
175- psi::Psi<std::complex <double >> right_hchi (1 , perbands_sto, npwx, p_kv-> ngk . data () );
176- psi::Psi<std::complex <float >> f_rightchi (1 , perbands_sto, npwx, p_kv-> ngk . data () );
177- psi::Psi<std::complex <float >> f_right_hchi (1 , perbands_sto, npwx, p_kv-> ngk . data () );
175+ psi::Psi<std::complex <double >> right_hchi (1 , perbands_sto, npwx, npw, true );
176+ psi::Psi<std::complex <float >> f_rightchi (1 , perbands_sto, npwx, npw, true );
177+ psi::Psi<std::complex <float >> f_right_hchi (1 , perbands_sto, npwx, npw, true );
178178
179179 this ->p_hamilt_sto ->hPsi (leftchi.get_pointer (), left_hchi.get_pointer (), perbands_sto);
180180 this ->p_hamilt_sto ->hPsi (rightchi.get_pointer (), right_hchi.get_pointer (), perbands_sto);
@@ -206,8 +206,8 @@ void Sto_EleCond::cal_jmatrix(const psi::Psi<std::complex<float>>& kspsi_all,
206206 }
207207#endif
208208
209- psi::Psi<std::complex <float >> f_batch_vchi (1 , bsize_psi * ndim, npwx, p_kv-> ngk . data () );
210- psi::Psi<std::complex <float >> f_batch_vhchi (1 , bsize_psi * ndim, npwx, p_kv-> ngk . data () );
209+ psi::Psi<std::complex <float >> f_batch_vchi (1 , bsize_psi * ndim, npwx, npw, true );
210+ psi::Psi<std::complex <float >> f_batch_vhchi (1 , bsize_psi * ndim, npwx, npw, true );
211211 std::vector<std::complex <float >> tmpj (ndim * allbands_sto * perbands_sto);
212212
213213 // 1. (<\psi|J|\chi>)^T
@@ -663,19 +663,19 @@ void Sto_EleCond::sKG(const int& smear_type,
663663 // -----------------------------------------------------------
664664 // ------------------- allocate -------------------------
665665 size_t ks_memory_cost = perbands_ks * npwx * sizeof (std::complex <float >);
666- psi::Psi<std::complex <double >> kspsi (1 , perbands_ks, npwx, p_kv-> ngk . data () );
667- psi::Psi<std::complex <double >> vkspsi (1 , perbands_ks * ndim, npwx, p_kv-> ngk . data () );
666+ psi::Psi<std::complex <double >> kspsi (1 , perbands_ks, npwx, npw, true );
667+ psi::Psi<std::complex <double >> vkspsi (1 , perbands_ks * ndim, npwx, npw, true );
668668 std::vector<std::complex <double >> expmtmf_fact (perbands_ks), expmtf_fact (perbands_ks);
669- psi::Psi<std::complex <float >> f_kspsi (1 , perbands_ks, npwx, p_kv-> ngk . data () );
669+ psi::Psi<std::complex <float >> f_kspsi (1 , perbands_ks, npwx, npw, true );
670670 ModuleBase::Memory::record (" SDFT::kspsi" , ks_memory_cost);
671- psi::Psi<std::complex <float >> f_vkspsi (1 , perbands_ks * ndim, npwx, p_kv-> ngk . data () );
671+ psi::Psi<std::complex <float >> f_vkspsi (1 , perbands_ks * ndim, npwx, npw, true );
672672 ModuleBase::Memory::record (" SDFT::vkspsi" , ks_memory_cost);
673673 psi::Psi<std::complex <float >>* kspsi_all = &f_kspsi;
674674
675675 size_t sto_memory_cost = perbands_sto * npwx * sizeof (std::complex <double >);
676- psi::Psi<std::complex <double >> sfchi (1 , perbands_sto, npwx, p_kv-> ngk . data () );
676+ psi::Psi<std::complex <double >> sfchi (1 , perbands_sto, npwx, npw, true );
677677 ModuleBase::Memory::record (" SDFT::sfchi" , sto_memory_cost);
678- psi::Psi<std::complex <double >> smfchi (1 , perbands_sto, npwx, p_kv-> ngk . data () );
678+ psi::Psi<std::complex <double >> smfchi (1 , perbands_sto, npwx, npw, true );
679679 ModuleBase::Memory::record (" SDFT::smfchi" , sto_memory_cost);
680680#ifdef __MPI
681681 psi::Psi<std::complex <float >> chi_all, hchi_all, psi_all;
@@ -702,8 +702,8 @@ void Sto_EleCond::sKG(const int& smear_type,
702702
703703 const int nbatch_psi = npart_sto;
704704 const int bsize_psi = ceil (double (perbands_sto) / nbatch_psi);
705- psi::Psi<std::complex <double >> batch_vchi (1 , bsize_psi * ndim, npwx, p_kv-> ngk . data () );
706- psi::Psi<std::complex <double >> batch_vhchi (1 , bsize_psi * ndim, npwx, p_kv-> ngk . data () );
705+ psi::Psi<std::complex <double >> batch_vchi (1 , bsize_psi * ndim, npwx, npw, true );
706+ psi::Psi<std::complex <double >> batch_vhchi (1 , bsize_psi * ndim, npwx, npw, true );
707707 ModuleBase::Memory::record (" SDFT::batchjpsi" , 3 * bsize_psi * ndim * npwx * sizeof (std::complex <double >));
708708
709709 // ------------------- sqrt(f)|psi> sqrt(1-f)|psi> ---------------
@@ -781,7 +781,7 @@ void Sto_EleCond::sKG(const int& smear_type,
781781 std::vector<std::complex <float >> j1r (ndim * dim_jmatrix), j2r (ndim * dim_jmatrix);
782782 ModuleBase::Memory::record (" SDFT::j1r" , sizeof (std::complex <float >) * ndim * dim_jmatrix);
783783 ModuleBase::Memory::record (" SDFT::j2r" , sizeof (std::complex <float >) * ndim * dim_jmatrix);
784- psi::Psi<std::complex <double >> tmphchil (1 , perbands_sto, npwx, p_kv-> ngk . data () );
784+ psi::Psi<std::complex <double >> tmphchil (1 , perbands_sto, npwx, npw, true );
785785 ModuleBase::Memory::record (" SDFT::tmphchil/r" , sto_memory_cost * 2 );
786786
787787 // ------------------------ t loop --------------------------
0 commit comments