Skip to content

Commit df61055

Browse files
committed
add ctrl_iter_lcao files
1 parent bf5ccbc commit df61055

File tree

2 files changed

+87
-0
lines changed

2 files changed

+87
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#include "source_io/ctrl_iter_lcao.h" // use ctrl_iter_lcao()
2+
3+
namespace ModuleIO
4+
{
5+
6+
template <typename TK, typename TR>
7+
void ctrl_iter_lcao(UnitCell& ucell,
8+
const Input_para& inp,
9+
K_Vectors& kv,
10+
elecstate::ElecStateLCAO<TK>* pelec,
11+
Parallel_Orbitals& pv,
12+
Grid_Driver& gd,
13+
psi::Psi<TK>* psi,
14+
hamilt::HamiltLCAO<TK, TR>* p_hamilt,
15+
TwoCenterBundle &two_center_bundle,
16+
Gint_k &gk,
17+
LCAO_Orbitals &orb,
18+
const ModulePW::PW_Basis_K* pw_wfc, // for berryphase
19+
const ModulePW::PW_Basis* pw_rho, // for berryphase
20+
Grid_Technique &gt, // for berryphase
21+
const ModulePW::PW_Basis_Big* pw_big, // for Wannier90
22+
const Structure_Factor& sf, // for Wannier90
23+
rdmft::RDMFT<TK, TR> &rdmft_solver, // for RDMFT
24+
#ifdef __MLALGO
25+
LCAO_Deepks<TK>& ld,
26+
#endif
27+
#ifdef __EXX
28+
Exx_LRI_Interface<TK, double>& exd,
29+
Exx_LRI_Interface<TK, std::complex<double>>& exc,
30+
#endif
31+
const int istep)
32+
{
33+
ModuleBase::TITLE("ModuleIO", "ctrl_iter_lcao");
34+
ModuleBase::timer::tick("ModuleIO", "ctrl_iter_lcao");
35+
36+
37+
38+
ModuleBase::timer::tick("ModuleIO", "ctrl_iter_lcao");
39+
}

source/source_io/ctrl_iter_lcao.h

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
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 &gt, // 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

Comments
 (0)