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
13
14namespace LCAO_domain
15{
16
18 const double& onsite_radius,
19 const double& lcao_ecut,
20 const double& lcao_dk,
21 const double& lcao_dr,
22 const double& lcao_rmax,
23 UnitCell& ucell,
24 TwoCenterBundle& two_center_bundle,
25 LCAO_Orbitals& orb);
26
28 ForceStressArrays& fsr, // mohan 2024-06-16
29 double* HlocR,
30 const bool& calc_deri,
31 const UnitCell& ucell,
32 const LCAO_Orbitals& orb,
33 const TwoCenterIntegrator& intor_orb_beta,
34 const Grid_Driver* GridD);
35
39void set_force(const Parallel_Orbitals& pv,
40 const int& iw1_all,
41 const int& iw2_all,
42 const double& vx,
43 const double& vy,
44 const double& vz,
45 const char& dtype,
46 double* dsloc_x,
47 double* dsloc_y,
48 double* dsloc_z,
49 double* dhloc_fixed_x,
50 double* dhloc_fixed_y,
51 double* dhloc_fixed_z);
52
56void set_stress(const Parallel_Orbitals& pv,
57 const int& iw1_all,
58 const int& iw2_all,
59 const double& vx,
60 const double& vy,
61 const double& vz,
62 const char& dtype,
64 double* dsloc_11,
65 double* dsloc_12,
66 double* dsloc_13,
67 double* dsloc_22,
68 double* dsloc_23,
69 double* dsloc_33,
70 double* dhloc_fixed_11,
71 double* dhloc_fixed_12,
72 double* dhloc_fixed_13,
73 double* dhloc_fixed_22,
74 double* dhloc_fixed_23,
75 double* dhloc_fixed_33);
76
80void single_overlap(const LCAO_Orbitals& orb,
81 const TwoCenterBundle& two_center_bundle,
82 const Parallel_Orbitals& pv,
83 const UnitCell& ucell,
84 const int nspin,
85 const bool cal_stress,
86 const int iw1_all,
87 const int iw2_all,
88 const int m1,
89 const int m2,
90 const char& dtype,
91 const int T1,
92 const int L1,
93 const int N1,
94 const int T2,
95 const int L2,
96 const int N2,
100 const int npol,
101 const int jj,
102 const int jj0,
103 const int kk,
104 const int kk0,
105 int& nnr, // output value
106 int& total_nnr, // output value
107 double* olm, // output value
108 double* HSloc); // output value
109
114 const LCAO_Orbitals& orb,
115 const TwoCenterBundle& two_center_bundle,
116 const Parallel_Orbitals& pv,
117 const UnitCell& ucell,
118 const int nspin,
119 const bool cal_stress,
120 const int iw1_all,
121 const int iw2_all,
122 const int m1,
123 const int m2,
124 const char& dtype,
125 const int T1,
126 const int L1,
127 const int N1,
128 const int T2,
129 const int L2,
130 const int N2,
131 const ModuleBase::Vector3<double>& dtau,
132 const ModuleBase::Vector3<double>& tau1,
133 const ModuleBase::Vector3<double>& tau2,
134 const int npol,
135 const int jj,
136 const int jj0,
137 const int kk,
138 const int kk0,
139 int& nnr, // output value
140 int& total_nnr, // output value
141 double* olm); // output value
142
147 const char& dtype,
148 const bool& cal_deri,
149 const bool& cal_stress,
150 const UnitCell& ucell,
151 const LCAO_Orbitals& orb,
152 const Parallel_Orbitals& pv,
153 const TwoCenterBundle& two_center_bundle,
154 const Grid_Driver* GridD,
155 double* SHlocR,
156 bool cal_syns = false,
157 double dmax = 0.0);
158
162void zeros_HSR(const char& mtype, LCAO_HS_Arrays& HS_arrays);
163
164#ifdef __MLALGO
165template <typename T>
166void DeePKS_init(const UnitCell& ucell,
168 const int& nks,
169 const LCAO_Orbitals& orb,
170 LCAO_Deepks<T>& ld,
171 std::ofstream& ofs);
172#endif
173
174template <typename T>
175void set_mat2d(const int& global_ir, const int& global_ic, const T& v, const Parallel_Orbitals& pv, T* mat);
176
177} // namespace LCAO_domain
178
179#endif
Definition force_stress_arrays.h:5
Definition sltk_grid_driver.h:43
Definition LCAO_deepks.h:51
Definition LCAO_HS_arrays.hpp:9
Definition ORB_read.h:19
3 elements vector
Definition vector3.h:22
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:17
#define T
Definition exp.cpp:237
Definition LCAO_allocate.cpp:8
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:14
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 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