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