|
| 1 | +#ifndef CTRL_ITER_LCAO_H |
| 2 | +#define CTRL_ITER_LCAO_H |
| 3 | + |
| 4 | +#include "source_cell/unitcell.h" // use UnitCell |
| 5 | +#include "source_cell/klist.h" // use K_Vectors |
| 6 | +#include "source_estate/elecstate_lcao.h" // use elecstate::ElecStateLCAO<TK> |
| 7 | +#include "source_psi/psi.h" // use Psi<TK> |
| 8 | +#include "source_lcao/hamilt_lcao.h" // use hamilt::HamiltLCAO<TK, TR> |
| 9 | +#include "source_basis/module_nao/two_center_bundle.h" // use TwoCenterBundle |
| 10 | +#include "source_lcao/module_gint/gint_k.h" // use Gint_k |
| 11 | +#include "source_basis/module_pw/pw_basis_k.h" // use ModulePW::PW_Basis_K and ModulePW::PW_Basis |
| 12 | +#include "source_pw/module_pwdft/structure_factor.h" // use Structure_Factor |
| 13 | +#include "source_lcao/module_rdmft/rdmft.h" // use RDMFT codes |
| 14 | +#ifdef __EXX |
| 15 | +#include "source_lcao/module_ri/Exx_LRI_interface.h" // use EXX codes |
| 16 | +#endif |
| 17 | + |
| 18 | +namespace ModuleIO |
| 19 | +{ |
| 20 | + // in principle, we need to add const for all of the variables, mohan note 2025-06-05 |
| 21 | + template <typename TK, typename TR> |
| 22 | + void ctrl_iter_lcao(UnitCell& ucell, |
| 23 | + const Input_para& inp, |
| 24 | + K_Vectors& kv, |
| 25 | + elecstate::ElecStateLCAO<TK>* pelec, |
| 26 | + Parallel_Orbitals& pv, |
| 27 | + Grid_Driver& gd, |
| 28 | + psi::Psi<TK>* psi, |
| 29 | + hamilt::HamiltLCAO<TK, TR>* p_hamilt, |
| 30 | + TwoCenterBundle &two_center_bundle, |
| 31 | + Gint_k &gk, |
| 32 | + LCAO_Orbitals &orb, |
| 33 | + const ModulePW::PW_Basis_K* pw_wfc, // for berryphase |
| 34 | + const ModulePW::PW_Basis* pw_rho, // for berryphase |
| 35 | + Grid_Technique >, // for berryphase |
| 36 | + const ModulePW::PW_Basis_Big* pw_big, // for Wannier90 |
| 37 | + const Structure_Factor& sf, // for Wannier90 |
| 38 | + rdmft::RDMFT<TK, TR> &rdmft_solver, // for RDMFT |
| 39 | +#ifdef __MLALGO |
| 40 | + LCAO_Deepks<TK>& ld, |
| 41 | +#endif |
| 42 | +#ifdef __EXX |
| 43 | + Exx_LRI_Interface<TK, double>& exd, |
| 44 | + Exx_LRI_Interface<TK, std::complex<double>>& exc, |
| 45 | +#endif |
| 46 | + const int istep); |
| 47 | +} |
| 48 | +#endif |
0 commit comments