@@ -44,6 +44,13 @@ void ctrl_output_lcao(UnitCell& ucell,
4444 const ModulePW::PW_Basis_Big* pw_big, // for Wannier90
4545 const Structure_Factor& sf, // for Wannier90
4646 rdmft::RDMFT<TK, TR> &rdmft_solver, // for RDMFT
47+ #ifdef __DEEPKS
48+ LCAO_Deepks<T>& ld,
49+ #endif
50+ #ifdef __EXX
51+ Exx_LRI_Interface<T, double >& exd,
52+ Exx_LRI_Interface<T, std::complex <double >>& exc,
53+ #endif
4754 const int istep)
4855{
4956 ModuleBase::TITLE (" ModuleIO" , " ctrl_output_lcao" );
@@ -121,7 +128,7 @@ void ctrl_output_lcao(UnitCell& ucell,
121128 // ------------------------------------------------------------------
122129#ifdef __DEEPKS
123130 // need control parameter
124- hamilt::HamiltLCAO<TK, TR>* p_ham_deepks = dynamic_cast <hamilt::HamiltLCAO<TK, TR>*>( p_hamilt) ;
131+ hamilt::HamiltLCAO<TK, TR>* p_ham_deepks = p_hamilt;
125132 std::shared_ptr<LCAO_Deepks<TK>> ld_shared_ptr (&ld, [](LCAO_Deepks<TK>*) {});
126133 LCAO_Deepks_Interface<TK, TR> deepks_interface (ld_shared_ptr);
127134
@@ -336,7 +343,7 @@ void ctrl_output_lcao(UnitCell& ucell,
336343 if (PARAM.inp .rpa )
337344 {
338345 RPA_LRI<TK, double > rpa_lri_double (GlobalC::exx_info.info_ri );
339- rpa_lri_double.cal_postSCF_exx (*dynamic_cast <const elecstate::ElecStateLCAO<TK>*>(this -> pelec )->get_DM (),
346+ rpa_lri_double.cal_postSCF_exx (*dynamic_cast <const elecstate::ElecStateLCAO<TK>*>(pelec)->get_DM (),
340347 MPI_COMM_WORLD,
341348 ucell,
342349 kv,
@@ -414,6 +421,10 @@ template void ModuleIO::ctrl_output_lcao<double, double>(UnitCell& ucell,
414421 const ModulePW::PW_Basis_Big* pw_big, // for Wannier90
415422 const Structure_Factor& sf, // for Wannier90
416423 rdmft::RDMFT<double , double > &rdmft_solver, // for RDMFT
424+ #ifdef __EXX
425+ Exx_LRI_Interface<T, double >& exd,
426+ Exx_LRI_Interface<T, std::complex <double >>& exc,
427+ #endif
417428 const int istep);
418429
419430// For multiple k-points
@@ -433,6 +444,13 @@ template void ModuleIO::ctrl_output_lcao<std::complex<double>, double>(UnitCell&
433444 const ModulePW::PW_Basis_Big* pw_big, // for Wannier90
434445 const Structure_Factor& sf, // for Wannier90
435446 rdmft::RDMFT<std::complex <double >, double > &rdmft_solver, // for RDMFT
447+ #ifdef __DEEPKS
448+ LCAO_Deepks<T>& ld,
449+ #endif
450+ #ifdef __EXX
451+ Exx_LRI_Interface<T, double >& exd,
452+ Exx_LRI_Interface<T, std::complex <double >>& exc,
453+ #endif
436454 const int istep);
437455
438456template void ModuleIO::ctrl_output_lcao<std::complex <double >, std::complex <double >>(UnitCell& ucell,
@@ -451,5 +469,12 @@ template void ModuleIO::ctrl_output_lcao<std::complex<double>, std::complex<doub
451469 const ModulePW::PW_Basis_Big* pw_big, // for Wannier90
452470 const Structure_Factor& sf, // for Wannier90
453471 rdmft::RDMFT<std::complex <double >, std::complex <double >> &rdmft_solver, // for RDMFT
472+ #ifdef __DEEPKS
473+ LCAO_Deepks<T>& ld,
474+ #endif
475+ #ifdef __EXX
476+ Exx_LRI_Interface<T, double >& exd,
477+ Exx_LRI_Interface<T, std::complex <double >>& exc,
478+ #endif
454479 const int istep);
455480
0 commit comments