ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
ctrl_scf_lcao.h
Go to the documentation of this file.
1#ifndef CTRL_SCF_LCAO_H
2#define CTRL_SCF_LCAO_H
3
4#include "source_basis/module_nao/two_center_bundle.h" // use TwoCenterBundle
5#include "source_basis/module_pw/pw_basis_k.h" // use ModulePW::PW_Basis_K and ModulePW::PW_Basis
6#include "source_cell/klist.h" // use K_Vectors
7#include "source_cell/unitcell.h" // use UnitCell
8#include "source_estate/elecstate.h" // use elecstate::ElecStateLCAO<TK>
9#include "source_estate/module_dm/density_matrix.h" // mohan add 2025-11-04
10#include "source_lcao/hamilt_lcao.h" // use hamilt::HamiltLCAO<TK, TR>
11#include "source_lcao/module_dftu/dftu.h" // mohan add 20251107
12#include "source_lcao/module_rdmft/rdmft.h" // use RDMFT codes
13#include "source_lcao/setup_deepks.h" // for deepks, mohan add 20251008
14#include "source_lcao/setup_exx.h" // for exx, mohan add 20251008
15#include "source_psi/psi.h" // use Psi<TK>
16#include "source_pw/module_pwdft/structure_factor.h" // use Structure_Factor
17
18#include <complex>
19
20namespace ModuleIO
21{
22// in principle, we need to add const for all of the variables, mohan note 2025-06-05
23template <typename TK, typename TR>
24void ctrl_scf_lcao(UnitCell& ucell,
25 const Input_para& inp,
26 K_Vectors& kv,
28 elecstate::DensityMatrix<TK, double>* dm, // mohan add 2025-11-04
30 Grid_Driver& gd,
33 Plus_U& dftu, // mohan add 2025-11-07
34 TwoCenterBundle& two_center_bundle,
35 LCAO_Orbitals& orb,
36 const ModulePW::PW_Basis_K* pw_wfc, // for berryphase
37 const ModulePW::PW_Basis* pw_rho, // for berryphase
38 const ModulePW::PW_Basis_Big* pw_big, // for Wannier90
39 const Structure_Factor& sf, // for Wannier90
40 rdmft::RDMFT<TK, TR>& rdmft_solver, // for RDMFT
41 Setup_DeePKS<TK>& deepks,
42 Exx_NAO<TK>& exx_nao,
43 const bool conv_esolver,
44 const bool scf_nmax_flag,
45 const int istep);
46} // namespace ModuleIO
47#endif
Definition setup_exx.h:19
Definition sltk_grid_driver.h:43
Definition klist.h:13
Definition ORB_read.h:19
Definition pw_basis_big.h:16
Special pw_basis class. It includes different k-points.
Definition pw_basis_k.h:57
A class which can convert a function of "r" to the corresponding linear superposition of plane waves ...
Definition pw_basis.h:56
Definition parallel_orbitals.h:9
Definition dftu.h:20
Definition setup_deepks.h:23
Definition structure_factor.h:11
Definition two_center_bundle.h:11
Definition unitcell.h:17
Definition density_matrix.h:36
Definition elecstate.h:15
Definition hamilt_lcao.h:33
Definition psi.h:37
Definition rdmft.h:41
Definition cal_dos.h:9
void ctrl_scf_lcao(UnitCell &ucell, const Input_para &inp, K_Vectors &kv, elecstate::ElecState *pelec, elecstate::DensityMatrix< TK, double > *dm, Parallel_Orbitals &pv, Grid_Driver &gd, psi::Psi< TK > *psi, hamilt::HamiltLCAO< TK, TR > *p_hamilt, Plus_U &dftu, TwoCenterBundle &two_center_bundle, LCAO_Orbitals &orb, const ModulePW::PW_Basis_K *pw_wfc, const ModulePW::PW_Basis *pw_rho, const ModulePW::PW_Basis_Big *pw_big, const Structure_Factor &sf, rdmft::RDMFT< TK, TR > &rdmft_solver, Setup_DeePKS< TK > &deepks, Exx_NAO< TK > &exx_nao, const bool conv_esolver, const bool scf_nmax_flag, const int istep)
Definition ctrl_scf_lcao.cpp:36
Definition exx_lip.h:23
Definition input_parameter.h:13
Plus_U dftu
Definition test_dftu.cpp:14