@@ -43,7 +43,7 @@ void Numerical_Basis::start_from_file_k( const int &ik, ModuleBase::ComplexMatri
4343}
4444
4545// The function is called in run_fp.cpp.
46- void Numerical_Basis::output_overlap ( const ModuleBase::ComplexMatrix * psi)
46+ void Numerical_Basis::output_overlap ( const psi::Psi<std:: complex < double >> & psi)
4747{
4848 ModuleBase::TITLE (" Numerical_Basis" ," output_overlap" );
4949 ModuleBase::GlobalFunc::NEW_PART (" Overlap Data For Spillage Minimization" );
@@ -97,7 +97,8 @@ void Numerical_Basis::output_overlap( const ModuleBase::ComplexMatrix *psi)
9797 GlobalV::ofs_running << " --------------------------------------------------------" << std::endl;
9898
9999 // search for all k-points.
100- overlap_Q[ik] = this ->cal_overlap_Q (ik, npw, psi[ik], static_cast <double >(derivative_order));
100+ psi.fix_k (ik);
101+ overlap_Q[ik] = this ->cal_overlap_Q (ik, npw, psi, static_cast <double >(derivative_order));
101102 ModuleBase::GlobalFunc::DONE (GlobalV::ofs_running," cal_overlap_Q" );
102103
103104 // (2) generate Sq matrix if necessary.
@@ -140,7 +141,7 @@ void Numerical_Basis::output_overlap( const ModuleBase::ComplexMatrix *psi)
140141ModuleBase::ComplexArray Numerical_Basis::cal_overlap_Q (
141142 const int &ik,
142143 const int &np,
143- const ModuleBase::ComplexMatrix &psi,
144+ const psi::Psi<std:: complex < double >> &psi,
144145 const double derivative_order) const
145146{
146147 ModuleBase::TITLE (" Numerical_Basis" ," cal_overlap_Q" );
@@ -335,7 +336,7 @@ ModuleBase::ComplexArray Numerical_Basis::cal_overlap_Sq(
335336
336337// Peize Lin add for dpsi 2020.04.23
337338ModuleBase::matrix Numerical_Basis::cal_overlap_V (
338- const ModuleBase::ComplexMatrix * psi,
339+ const psi::Psi<std:: complex < double >> & psi,
339340 const double derivative_order)
340341{
341342 ModuleBase::matrix overlap_V (GlobalC::kv.nks , GlobalV::NBANDS);
@@ -349,7 +350,7 @@ ModuleBase::matrix Numerical_Basis::cal_overlap_V(
349350
350351 for (int ib=0 ; ib<GlobalV::NBANDS; ++ib)
351352 for (int ig=0 ; ig<GlobalC::kv.ngk [ik]; ++ig)
352- overlap_V (ik,ib)+= norm (psi[ik]( ib,ig)) * gpow[ig];
353+ overlap_V (ik,ib)+= norm (psi (ik, ib,ig)) * gpow[ig];
353354 }
354355 return overlap_V;
355356}
0 commit comments