ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
LCAO_domain.h
Go to the documentation of this file.
1#ifndef LCAO_DOMAIN_H
2#define LCAO_DOMAIN_H
3
15
16namespace LCAO_domain
17{
18
20 const double& onsite_radius,
21 const double& lcao_ecut,
22 const double& lcao_dk,
23 const double& lcao_dr,
24 const double& lcao_rmax,
25 UnitCell& ucell,
26 TwoCenterBundle& two_center_bundle,
27 LCAO_Orbitals& orb);
28
30 ForceStressArrays& fsr, // mohan 2024-06-16
31 double* HlocR,
32 const bool& calc_deri,
33 const UnitCell& ucell,
34 const LCAO_Orbitals& orb,
35 const TwoCenterIntegrator& intor_orb_beta,
36 const Grid_Driver* GridD);
37
41void grid_prepare(const Grid_Technique& gt,
42 Gint_Gamma& gint_gamma,
43 Gint_k& gint_k,
44 const UnitCell& ucell,
45 const LCAO_Orbitals& orb,
46 const ModulePW::PW_Basis& rhopw,
47 const ModulePW::PW_Basis_Big& bigpw);
48
52void set_force(const Parallel_Orbitals& pv,
53 const int& iw1_all,
54 const int& iw2_all,
55 const double& vx,
56 const double& vy,
57 const double& vz,
58 const char& dtype,
59 double* dsloc_x,
60 double* dsloc_y,
61 double* dsloc_z,
62 double* dhloc_fixed_x,
63 double* dhloc_fixed_y,
64 double* dhloc_fixed_z);
65
69void set_stress(const Parallel_Orbitals& pv,
70 const int& iw1_all,
71 const int& iw2_all,
72 const double& vx,
73 const double& vy,
74 const double& vz,
75 const char& dtype,
77 double* dsloc_11,
78 double* dsloc_12,
79 double* dsloc_13,
80 double* dsloc_22,
81 double* dsloc_23,
82 double* dsloc_33,
83 double* dhloc_fixed_11,
84 double* dhloc_fixed_12,
85 double* dhloc_fixed_13,
86 double* dhloc_fixed_22,
87 double* dhloc_fixed_23,
88 double* dhloc_fixed_33);
89
93void single_overlap(const LCAO_Orbitals& orb,
94 const TwoCenterBundle& two_center_bundle,
95 const Parallel_Orbitals& pv,
96 const UnitCell& ucell,
97 const int nspin,
98 const bool cal_stress,
99 const int iw1_all,
100 const int iw2_all,
101 const int m1,
102 const int m2,
103 const char& dtype,
104 const int T1,
105 const int L1,
106 const int N1,
107 const int T2,
108 const int L2,
109 const int N2,
110 const ModuleBase::Vector3<double>& dtau,
111 const ModuleBase::Vector3<double>& tau1,
112 const ModuleBase::Vector3<double>& tau2,
113 const int npol,
114 const int jj,
115 const int jj0,
116 const int kk,
117 const int kk0,
118 int& nnr, // output value
119 int& total_nnr, // output value
120 double* olm, // output value
121 double* HSloc); // output value
122
127 const LCAO_Orbitals& orb,
128 const TwoCenterBundle& two_center_bundle,
129 const Parallel_Orbitals& pv,
130 const UnitCell& ucell,
131 const int nspin,
132 const bool cal_stress,
133 const int iw1_all,
134 const int iw2_all,
135 const int m1,
136 const int m2,
137 const char& dtype,
138 const int T1,
139 const int L1,
140 const int N1,
141 const int T2,
142 const int L2,
143 const int N2,
144 const ModuleBase::Vector3<double>& dtau,
145 const ModuleBase::Vector3<double>& tau1,
146 const ModuleBase::Vector3<double>& tau2,
147 const int npol,
148 const int jj,
149 const int jj0,
150 const int kk,
151 const int kk0,
152 int& nnr, // output value
153 int& total_nnr, // output value
154 double* olm); // output value
155
160 const char& dtype,
161 const bool& cal_deri,
162 const bool& cal_stress,
163 const UnitCell& ucell,
164 const LCAO_Orbitals& orb,
165 const Parallel_Orbitals& pv,
166 const TwoCenterBundle& two_center_bundle,
167 const Grid_Driver* GridD,
168 double* SHlocR,
169 bool cal_syns = false,
170 double dmax = 0.0);
171
175void zeros_HSR(const char& mtype, LCAO_HS_Arrays& HS_arrays);
176
177#ifdef __MLALGO
178template <typename T>
179void DeePKS_init(const UnitCell& ucell,
181 const int& nks,
182 const LCAO_Orbitals& orb,
183 LCAO_Deepks<T>& ld,
184 std::ofstream& ofs);
185#endif
186
187template <typename T>
188void set_mat2d(const int& global_ir, const int& global_ic, const T& v, const Parallel_Orbitals& pv, T* mat);
189
190} // namespace LCAO_domain
191
192#endif
Definition force_stress_arrays.h:5
Definition gint_gamma.h:23
Definition gint_k.h:13
Definition sltk_grid_driver.h:43
Definition grid_technique.h:18
Definition LCAO_deepks.h:52
Definition LCAO_HS_arrays.hpp:9
Definition ORB_read.h:19
3 elements vector
Definition vector3.h:22
Definition pw_basis_big.h:16
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 two_center_bundle.h:11
A class to compute two-center integrals.
Definition two_center_integrator.h:35
Definition unitcell.h:16
#define T
Definition exp.cpp:237
Definition grid_init.cpp:9
void single_derivative(ForceStressArrays &fsr, const LCAO_Orbitals &orb, const TwoCenterBundle &two_center_bundle, const Parallel_Orbitals &pv, const UnitCell &ucell, const int nspin, const bool cal_stress, const int iw1_all, const int iw2_all, const int m1, const int m2, const char &dtype, const int T1, const int L1, const int N1, const int T2, const int L2, const int N2, const ModuleBase::Vector3< double > &dtau, const ModuleBase::Vector3< double > &tau1, const ModuleBase::Vector3< double > &tau2, const int npol, const int jj, const int jj0, const int kk, const int kk0, int &nnr, int &total_nnr, double *olm)
set each element of T matrices
Definition LCAO_set_st.cpp:8
void build_Nonlocal_mu_new(const Parallel_Orbitals &pv, ForceStressArrays &fsr, double *HlocR, const bool &calc_deri, const UnitCell &ucell, const LCAO_Orbitals &orb, const TwoCenterIntegrator &intor_orb_beta, const Grid_Driver *GridD)
Definition LCAO_nl_mu.cpp:12
void zeros_HSR(const char &mtype, LCAO_HS_Arrays &HS_arrays)
set zeros for HSR matrices
Definition LCAO_set_zero.cpp:10
void set_stress(const Parallel_Orbitals &pv, const int &iw1_all, const int &iw2_all, const double &vx, const double &vy, const double &vz, const char &dtype, const ModuleBase::Vector3< double > &dtau, double *dsloc_11, double *dsloc_12, double *dsloc_13, double *dsloc_22, double *dsloc_23, double *dsloc_33, double *dhloc_fixed_11, double *dhloc_fixed_12, double *dhloc_fixed_13, double *dhloc_fixed_22, double *dhloc_fixed_23, double *dhloc_fixed_33)
set the elements of stress-related matrices in LCAO method
Definition LCAO_set_fs.cpp:63
void set_mat2d(const int &global_ir, const int &global_ic, const T &v, const Parallel_Orbitals &pv, T *mat)
Definition LCAO_set_mat2d.cpp:13
void init_basis_lcao(Parallel_Orbitals &pv, const double &onsite_radius, const double &lcao_ecut, const double &lcao_dk, const double &lcao_dr, const double &lcao_rmax, UnitCell &ucell, TwoCenterBundle &two_center_bundle, LCAO_Orbitals &orb)
Definition LCAO_init_basis.cpp:13
void set_force(const Parallel_Orbitals &pv, const int &iw1_all, const int &iw2_all, const double &vx, const double &vy, const double &vz, const char &dtype, double *dsloc_x, double *dsloc_y, double *dsloc_z, double *dhloc_fixed_x, double *dhloc_fixed_y, double *dhloc_fixed_z)
set the elements of force-related matrices in LCAO method
Definition LCAO_set_fs.cpp:7
void grid_prepare(const Grid_Technique &gt, Gint_Gamma &gint_gamma, Gint_k &gint_k, const UnitCell &ucell, const LCAO_Orbitals &orb, const ModulePW::PW_Basis &rhopw, const ModulePW::PW_Basis_Big &bigpw)
prepare gird integration
Definition grid_init.cpp:14
void build_ST_new(ForceStressArrays &fsr, const char &dtype, const bool &cal_deri, const bool &cal_stress, const UnitCell &ucell, const LCAO_Orbitals &orb, const Parallel_Orbitals &pv, const TwoCenterBundle &two_center_bundle, const Grid_Driver *GridD, double *SHlocR, bool cal_syns=false, double dmax=0.0)
set the elements of S and T matrices
Definition LCAO_set_st.cpp:311
void DeePKS_init(const UnitCell &ucell, Parallel_Orbitals &pv, const int &nks, const LCAO_Orbitals &orb, LCAO_Deepks< T > &ld, std::ofstream &ofs)
Definition LCAO_allocate.cpp:12
void single_overlap(const LCAO_Orbitals &orb, const TwoCenterBundle &two_center_bundle, const Parallel_Orbitals &pv, const UnitCell &ucell, const int nspin, const bool cal_stress, const int iw1_all, const int iw2_all, const int m1, const int m2, const char &dtype, const int T1, const int L1, const int N1, const int T2, const int L2, const int N2, const ModuleBase::Vector3< double > &dtau, const ModuleBase::Vector3< double > &tau1, const ModuleBase::Vector3< double > &tau2, const int npol, const int jj, const int jj0, const int kk, const int kk0, int &nnr, int &total_nnr, double *olm, double *HSloc)
set each element without derivatives
Definition LCAO_set_st.cpp:205