@@ -62,8 +62,9 @@ namespace LR_Util
6262 template <>
6363 void matsym<double >(const double * in, const int n, const Parallel_2D& pmat, double * out)
6464 {
65- for (int i = 0 ;i < pmat.get_local_size ();++i) {out[i] = in[i];
66- }
65+ for (int i = 0 ;i < pmat.get_local_size ();++i) {
66+ out[i] = in[i];
67+ }
6768 const double alpha = 0.5 , beta = 0.5 ;
6869 const int i1 = 1 ;
6970 pdtran_ (&n, &n, &alpha, in, &i1, &i1, pmat.desc , &beta, out, &i1, &i1, pmat.desc );
@@ -72,17 +73,19 @@ namespace LR_Util
7273 void matsym<double >(double * inout, const int n, const Parallel_2D& pmat)
7374 {
7475 std::vector<double > tmp (n * n);
75- for (int i = 0 ;i < pmat.get_local_size ();++i) {tmp[i] = inout[i];
76- }
76+ for (int i = 0 ;i < pmat.get_local_size ();++i) {
77+ tmp[i] = inout[i];
78+ }
7779 const double alpha = 0.5 , beta = 0.5 ;
7880 const int i1 = 1 ;
7981 pdtran_ (&n, &n, &alpha, tmp.data (), &i1, &i1, pmat.desc , &beta, inout, &i1, &i1, pmat.desc );
8082 }
8183 template <>
8284 void matsym<std::complex <double >>(const std::complex <double >* in, const int n, const Parallel_2D& pmat, std::complex <double >* out)
8385 {
84- for (int i = 0 ;i < pmat.get_local_size ();++i) {out[i] = in[i];
85- }
86+ for (int i = 0 ;i < pmat.get_local_size ();++i) {
87+ out[i] = in[i];
88+ }
8689 const std::complex <double > alpha (0.5 , 0.0 ), beta (0.5 , 0.0 );
8790 const int i1 = 1 ;
8891 pztranc_ (&n, &n, &alpha, in, &i1, &i1, pmat.desc , &beta, out, &i1, &i1, pmat.desc );
@@ -91,8 +94,9 @@ namespace LR_Util
9194 void matsym<std::complex <double >>(std::complex <double >* inout, const int n, const Parallel_2D& pmat)
9295 {
9396 std::vector<std::complex <double >> tmp (n * n);
94- for (int i = 0 ;i < pmat.get_local_size ();++i) {tmp[i] = inout[i];
95- }
97+ for (int i = 0 ;i < pmat.get_local_size ();++i) {
98+ tmp[i] = inout[i];
99+ }
96100 const std::complex <double > alpha (0.5 , 0.0 ), beta (0.5 , 0.0 );
97101 const int i1 = 1 ;
98102 pztranc_ (&n, &n, &alpha, tmp.data (), &i1, &i1, pmat.desc , &beta, inout, &i1, &i1, pmat.desc );
@@ -101,88 +105,100 @@ namespace LR_Util
101105 container::Tensor mat2ten_double (ModuleBase::matrix& m)
102106 {
103107 container::Tensor t (DAT::DT_DOUBLE, DEV::CpuDevice, { m.nr , m.nc });
104- for (int i = 0 ;i < t.NumElements ();++i) {t.data <double >()[i] = m.c [i];
105- }
108+ for (int i = 0 ;i < t.NumElements ();++i) {
109+ t.data <double >()[i] = m.c [i];
110+ }
106111 return t;
107112 }
108113 std::vector<container::Tensor> mat2ten_double (std::vector<ModuleBase::matrix>& m)
109114 {
110115 std::vector<container::Tensor> t;
111- for (int i = 0 ;i < m.size ();++i) { t.push_back (mat2ten_double (m[i]));
112- }
116+ for (int i = 0 ;i < m.size ();++i) {
117+ t.push_back (mat2ten_double (m[i]));
118+ }
113119 return t;
114120 }
115121 ModuleBase::matrix ten2mat_double (container::Tensor& t)
116122 {
117123 ModuleBase::matrix m (t.shape ().dims ()[0 ], t.shape ().dims ()[1 ]);
118- for (int i = 0 ;i < t.NumElements ();++i) {m.c [i] = t.data <double >()[i];
119- }
124+ for (int i = 0 ;i < t.NumElements ();++i) {
125+ m.c [i] = t.data <double >()[i];
126+ }
120127 return m;
121128 }
122129 std::vector<ModuleBase::matrix> ten2mat_double (std::vector<container::Tensor>& t)
123130 {
124131 std::vector<ModuleBase::matrix> m;
125- for (int i = 0 ;i < t.size ();++i) { m.push_back (ten2mat_double (t[i]));
126- }
132+ for (int i = 0 ;i < t.size ();++i) {
133+ m.push_back (ten2mat_double (t[i]));
134+ }
127135 return m;
128136 }
129137 container::Tensor mat2ten_complex (ModuleBase::ComplexMatrix& m)
130138 {
131139 container::Tensor t (DAT::DT_COMPLEX_DOUBLE, DEV::CpuDevice, { m.nr , m.nc });
132- for (int i = 0 ;i < t.NumElements ();++i) {t.data <std::complex <double >>()[i] = m.c [i];
133- }
140+ for (int i = 0 ;i < t.NumElements ();++i) {
141+ t.data <std::complex <double >>()[i] = m.c [i];
142+ }
134143 return t;
135144 }
136145 std::vector<container::Tensor> mat2ten_complex (std::vector<ModuleBase::ComplexMatrix>& m)
137146 {
138147 std::vector<container::Tensor> t;
139- for (int i = 0 ;i < m.size ();++i) { t.push_back (mat2ten_complex (m[i]));
140- }
148+ for (int i = 0 ;i < m.size ();++i) {
149+ t.push_back (mat2ten_complex (m[i]));
150+ }
141151 return t;
142152 }
143153 ModuleBase::ComplexMatrix ten2mat_complex (container::Tensor& t)
144154 {
145155 ModuleBase::ComplexMatrix m (t.shape ().dims ()[0 ], t.shape ().dims ()[1 ]);
146- for (int i = 0 ;i < t.NumElements ();++i) {m.c [i] = t.data <std::complex <double >>()[i];
147- }
156+ for (int i = 0 ;i < t.NumElements ();++i) {
157+ m.c [i] = t.data <std::complex <double >>()[i];
158+ }
148159 return m;
149160 }
150161 std::vector<ModuleBase::ComplexMatrix> ten2mat_complex (std::vector<container::Tensor>& t)
151162 {
152163 std::vector<ModuleBase::ComplexMatrix> m;
153- for (int i = 0 ;i < t.size ();++i) { m.push_back (ten2mat_complex (t[i]));
154- }
164+ for (int i = 0 ;i < t.size ();++i) {
165+ m.push_back (ten2mat_complex (t[i]));
166+ }
155167 return m;
156168 }
157169
158170 ModuleBase::matrix vec2mat (const std::vector<double >& v, const int nr, const int nc)
159171 {
160172 assert (v.size () == nr * nc);
161173 ModuleBase::matrix m (nr, nc, false );
162- for (int i = 0 ;i < v.size ();++i) { m.c [i] = v[i];
163- }
174+ for (int i = 0 ;i < v.size ();++i) {
175+ m.c [i] = v[i];
176+ }
164177 return m;
165178 }
166179 ModuleBase::ComplexMatrix vec2mat (const std::vector<std::complex <double >>& v, const int nr, const int nc)
167180 {
168181 assert (v.size () == nr * nc);
169182 ModuleBase::ComplexMatrix m (nr, nc, false );
170- for (int i = 0 ;i < v.size ();++i) { m.c [i] = v[i];
171- }
183+ for (int i = 0 ;i < v.size ();++i) {
184+ m.c [i] = v[i];
185+ }
172186 return m;
173187 }
174188 std::vector<ModuleBase::matrix> vec2mat (const std::vector<std::vector<double >>& v, const int nr, const int nc)
175189 {
176190 std::vector<ModuleBase::matrix> m (v.size ());
177- for (int i = 0 ;i < v.size ();++i) { m[i] = vec2mat (v[i], nr, nc);
178- }
191+ for (int i = 0 ;i < v.size ();++i) {
192+ m[i] = vec2mat (v[i], nr, nc);
193+ }
179194 return m;
180195 }
181196 std::vector<ModuleBase::ComplexMatrix> vec2mat (const std::vector<std::vector<std::complex <double >>>& v, const int nr, const int nc)
182197 {
183198 std::vector<ModuleBase::ComplexMatrix> m (v.size ());
184- for (int i = 0 ;i < v.size ();++i) { m[i] = vec2mat (v[i], nr, nc);
185- }
199+ for (int i = 0 ;i < v.size ();++i) {
200+ m[i] = vec2mat (v[i], nr, nc);
201+ }
186202 return m;
187203 }
188204
@@ -270,32 +286,4 @@ namespace LR_Util
270286 vl.data (), &ldvl, vr.data (), &ldvr, work2.data (), &lwork, rwork.data (), &info);
271287 if (info) { std::cout << " ERROR: Lapack solver zgeev, info=" << info << std::endl; }
272288 }
273- void grad (const double * rhor,
274- ModuleBase::Vector3<double >* gdr,
275- const ModulePW::PW_Basis& rho_basis,
276- const double & tpiba)
277- {
278- std::vector<std::complex <double >> rhog (rho_basis.npw );
279- rho_basis.real2recip (rhor, rhog.data ());
280- XC_Functional::grad_rho (rhog.data (), gdr, &rho_basis, tpiba);
281- }
282- void laplace (const double * rhor, double * lapn,
283- const ModulePW::PW_Basis& rho_basis,
284- const double & tpiba2)
285- {
286- ModuleBase::GlobalFunc::ZEROS (lapn, rho_basis.nrxx );
287- std::vector<std::complex <double >> rhog (rho_basis.npw );
288- std::vector<double > tmp_rhor (rho_basis.nrxx );
289- rho_basis.real2recip (rhor, rhog.data ());
290- for (int i = 0 ;i < 3 ;++i)
291- {
292- for (int ig = 0 ; ig < rho_basis.npw ; ig++) {
293- rhog[ig] *= pow (rho_basis.gcar [ig][i], 2 );
294- }
295- rho_basis.recip2real (rhog.data (), tmp_rhor.data ());
296- for (int ir = 0 ; ir < rho_basis.nrxx ; ir++) {
297- lapn[ir] -= tmp_rhor[ir] * tpiba2;
298- }
299- }
300- }
301- }
289+ }
0 commit comments