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
20namespace ModuleIO
21{
22 // in principle, we need to add const for all of the variables, mohan note 2025-06-05
23 template <typename TK, typename TR>
24 void 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 TwoCenterBundle &two_center_bundle,
34 LCAO_Orbitals &orb,
35 const ModulePW::PW_Basis_K* pw_wfc, // for berryphase
36 const ModulePW::PW_Basis* pw_rho, // for berryphase
37 const ModulePW::PW_Basis_Big* pw_big, // for Wannier90
38 const Structure_Factor& sf, // for Wannier90
39 rdmft::RDMFT<TK, TR> &rdmft_solver, // for RDMFT
40 Setup_DeePKS<TK> &deepks,
41 Exx_NAO<TK> &exx_nao,
42 const bool conv_esolver,
43 const bool scf_nmax_flag,
44 const int istep);
45}
46#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 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:32
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, 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