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 <complex>
5
6#include "source_cell/unitcell.h" // use UnitCell
7#include "source_cell/klist.h" // use K_Vectors
8#include "source_estate/elecstate.h" // use elecstate::ElecStateLCAO<TK>
9#include "source_psi/psi.h" // use Psi<TK>
10#include "source_lcao/hamilt_lcao.h" // use hamilt::HamiltLCAO<TK, TR>
11#include "source_basis/module_nao/two_center_bundle.h" // use TwoCenterBundle
12#include "source_basis/module_pw/pw_basis_k.h" // use ModulePW::PW_Basis_K and ModulePW::PW_Basis
13#include "source_pw/module_pwdft/structure_factor.h" // use Structure_Factor
14#include "source_lcao/module_rdmft/rdmft.h" // use RDMFT codes
15
16#include "source_lcao/setup_deepks.h" // for deepks, mohan add 20251008
17#include "source_lcao/setup_exx.h" // for exx, mohan add 20251008
18#include "source_estate/module_dm/density_matrix.h" // mohan add 2025-11-04
19#include "source_lcao/module_dftu/dftu.h" // mohan add 20251107
20
21namespace ModuleIO
22{
23 // in principle, we need to add const for all of the variables, mohan note 2025-06-05
24 template <typename TK, typename TR>
25 void ctrl_scf_lcao(UnitCell& ucell,
26 const Input_para& inp,
27 K_Vectors& kv,
29 elecstate::DensityMatrix<TK,double> *dm, // mohan add 2025-11-04
31 Grid_Driver& gd,
34 Plus_U &dftu, // mohan add 2025-11-07
35 TwoCenterBundle &two_center_bundle,
36 LCAO_Orbitals &orb,
37 const ModulePW::PW_Basis_K* pw_wfc, // for berryphase
38 const ModulePW::PW_Basis* pw_rho, // for berryphase
39 const ModulePW::PW_Basis_Big* pw_big, // for Wannier90
40 const Structure_Factor& sf, // for Wannier90
41 rdmft::RDMFT<TK, TR> &rdmft_solver, // for RDMFT
42 Setup_DeePKS<TK> &deepks,
43 Exx_NAO<TK> &exx_nao,
44 const bool conv_esolver,
45 const bool scf_nmax_flag,
46 const int istep);
47}
48#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