@@ -118,7 +118,7 @@ RI::Tensor<Tdata> Matrix_Orbs22::cal_overlap_matrix(
118118 case Matrix_Order::B2A2A1B1 : m (iB2,iA2,iA1,iB1) = overlap; break ;
119119 case Matrix_Order::B2A2B1A1 : m (iB2,iA2,iB1,iA1) = overlap; break ;
120120 case Matrix_Order::B2B1A1A2 : m (iB2,iB1,iA1,iA2) = overlap; break ;
121- case Matrix_Order::B2B1A2A1 : m (iB2,iB1,iA2,iA1) = overlap; break ;
121+ case Matrix_Order::B2B1A2A1 : m (iB2,iB1,iA2,iA1) = overlap; break ;
122122 default : throw std::invalid_argument (std::string (__FILE__)+" line " +std::to_string (__LINE__));
123123 }
124124 }
@@ -217,44 +217,40 @@ std::array<RI::Tensor<Tdata>,3> Matrix_Orbs22::cal_grad_overlap_matrix(
217217 const size_t NB2 = co10.first ;
218218 for ( size_t MB2 =0 ; MB2 !=2 *LB2 +1 ; ++MB2 )
219219 {
220- const Tdata overlap = co10.second .cal_overlap ( tauA*lat0, tauB*lat0, MA1 , MA2 , MB1 , MB2 );
221- switch (matrix_order)
222- {
223- const std::array<double ,3 > grad_overlap = RI_Util::Vector3_to_array3 (co10.second .cal_grad_overlap ( tauA*lat0, tauB*lat0, MA1 , MA2 , MB1 , MB2 ));
224- const size_t iA1 = index_A1[TA ][LA1 ][NA1 ][MA1 ];
225- const size_t iA2 = index_A2[TA ][LA2 ][NA2 ][MA2 ];
226- const size_t iB1 = index_B1[TB ][LB1 ][NB1 ][MB1 ];
227- const size_t iB2 = index_B2[TB ][LB2 ][NB2 ][MB2 ];
228- for (size_t i=0 ; i<m.size (); ++i)
220+ const std::array<double ,3 > grad_overlap = RI_Util::Vector3_to_array3 (co10.second .cal_grad_overlap ( tauA*lat0, tauB*lat0, MA1 , MA2 , MB1 , MB2 ));
221+ const size_t iA1 = index_A1[TA ][LA1 ][NA1 ][MA1 ];
222+ const size_t iA2 = index_A2[TA ][LA2 ][NA2 ][MA2 ];
223+ const size_t iB1 = index_B1[TB ][LB1 ][NB1 ][MB1 ];
224+ const size_t iB2 = index_B2[TB ][LB2 ][NB2 ][MB2 ];
225+ for (size_t i=0 ; i<m.size (); ++i)
226+ {
227+ switch (matrix_order)
229228 {
230- switch (matrix_order)
231- {
232- case Matrix_Order::A1A2B1B2 : m[i](iA1,iA2,iB1,iB2) = grad_overlap; break ;
233- case Matrix_Order::A1A2B2B1 : m[i](iA1,iA2,iB2,iB1) = grad_overlap; break ;
234- case Matrix_Order::A1B1A2B2 : m[i](iA1,iB1,iA2,iB2) = grad_overlap; break ;
235- case Matrix_Order::A1B1B2A2 : m[i](iA1,iB1,iB2,iA2) = grad_overlap; break ;
236- case Matrix_Order::A1B2A2B1 : m[i](iA1,iB2,iA2,iB1) = grad_overlap; break ;
237- case Matrix_Order::A1B2B1A2 : m[i](iA1,iB2,iB1,iA2) = grad_overlap; break ;
238- case Matrix_Order::A2A1B1B2 : m[i](iA2,iA1,iB1,iB2) = grad_overlap; break ;
239- case Matrix_Order::A2A1B2B1 : m[i](iA2,iA1,iB2,iB1) = grad_overlap; break ;
240- case Matrix_Order::A2B1A1B2 : m[i](iA2,iB1,iA1,iB2) = grad_overlap; break ;
241- case Matrix_Order::A2B1B2A1 : m[i](iA2,iB1,iB2,iA1) = grad_overlap; break ;
242- case Matrix_Order::A2B2A1B1 : m[i](iA2,iB2,iA1,iB1) = grad_overlap; break ;
243- case Matrix_Order::A2B2B1A1 : m[i](iA2,iB2,iB1,iA1) = grad_overlap; break ;
244- case Matrix_Order::B1A1A2B2 : m[i](iB1,iA1,iA2,iB2) = grad_overlap; break ;
245- case Matrix_Order::B1A1B2A2 : m[i](iB1,iA1,iB2,iA2) = grad_overlap; break ;
246- case Matrix_Order::B1A2A1B2 : m[i](iB1,iA2,iA1,iB2) = grad_overlap; break ;
247- case Matrix_Order::B1A2B2A1 : m[i](iB1,iA2,iB2,iA1) = grad_overlap; break ;
248- case Matrix_Order::B1B2A1A2 : m[i](iB1,iB2,iA1,iA2) = grad_overlap; break ;
249- case Matrix_Order::B1B2A2A1 : m[i](iB1,iB2,iA2,iA1) = grad_overlap; break ;
250- case Matrix_Order::B2A1A2B1 : m[i](iB2,iA1,iA2,iB1) = grad_overlap; break ;
251- case Matrix_Order::B2A1B1A2 : m[i](iB2,iA1,iB1,iA2) = grad_overlap; break ;
252- case Matrix_Order::B2A2A1B1 : m[i](iB2,iA2,iA1,iB1) = grad_overlap; break ;
253- case Matrix_Order::B2A2B1A1 : m[i](iB2,iA2,iB1,iA1) = grad_overlap; break ;
254- case Matrix_Order::B2B1A1A2 : m[i](iB2,iB1,iA1,iA2) = grad_overlap; break ;
255- case Matrix_Order::B2B1A2A1 : m[i](iB2,iB1,iA2,iA1) = grad_overlap; break ;
256- default : throw std::invalid_argument (std::string (__FILE__)+" line " +std::to_string (__LINE__));
257- }
229+ case Matrix_Order::A1A2B1B2 : m[i](iA1,iA2,iB1,iB2) = grad_overlap; break ;
230+ case Matrix_Order::A1A2B2B1 : m[i](iA1,iA2,iB2,iB1) = grad_overlap; break ;
231+ case Matrix_Order::A1B1A2B2 : m[i](iA1,iB1,iA2,iB2) = grad_overlap; break ;
232+ case Matrix_Order::A1B1B2A2 : m[i](iA1,iB1,iB2,iA2) = grad_overlap; break ;
233+ case Matrix_Order::A1B2A2B1 : m[i](iA1,iB2,iA2,iB1) = grad_overlap; break ;
234+ case Matrix_Order::A1B2B1A2 : m[i](iA1,iB2,iB1,iA2) = grad_overlap; break ;
235+ case Matrix_Order::A2A1B1B2 : m[i](iA2,iA1,iB1,iB2) = grad_overlap; break ;
236+ case Matrix_Order::A2A1B2B1 : m[i](iA2,iA1,iB2,iB1) = grad_overlap; break ;
237+ case Matrix_Order::A2B1A1B2 : m[i](iA2,iB1,iA1,iB2) = grad_overlap; break ;
238+ case Matrix_Order::A2B1B2A1 : m[i](iA2,iB1,iB2,iA1) = grad_overlap; break ;
239+ case Matrix_Order::A2B2A1B1 : m[i](iA2,iB2,iA1,iB1) = grad_overlap; break ;
240+ case Matrix_Order::A2B2B1A1 : m[i](iA2,iB2,iB1,iA1) = grad_overlap; break ;
241+ case Matrix_Order::B1A1A2B2 : m[i](iB1,iA1,iA2,iB2) = grad_overlap; break ;
242+ case Matrix_Order::B1A1B2A2 : m[i](iB1,iA1,iB2,iA2) = grad_overlap; break ;
243+ case Matrix_Order::B1A2A1B2 : m[i](iB1,iA2,iA1,iB2) = grad_overlap; break ;
244+ case Matrix_Order::B1A2B2A1 : m[i](iB1,iA2,iB2,iA1) = grad_overlap; break ;
245+ case Matrix_Order::B1B2A1A2 : m[i](iB1,iB2,iA1,iA2) = grad_overlap; break ;
246+ case Matrix_Order::B1B2A2A1 : m[i](iB1,iB2,iA2,iA1) = grad_overlap; break ;
247+ case Matrix_Order::B2A1A2B1 : m[i](iB2,iA1,iA2,iB1) = grad_overlap; break ;
248+ case Matrix_Order::B2A1B1A2 : m[i](iB2,iA1,iB1,iA2) = grad_overlap; break ;
249+ case Matrix_Order::B2A2A1B1 : m[i](iB2,iA2,iA1,iB1) = grad_overlap; break ;
250+ case Matrix_Order::B2A2B1A1 : m[i](iB2,iA2,iB1,iA1) = grad_overlap; break ;
251+ case Matrix_Order::B2B1A1A2 : m[i](iB2,iB1,iA1,iA2) = grad_overlap; break ;
252+ case Matrix_Order::B2B1A2A1 : m[i](iB2,iB1,iA2,iA1) = grad_overlap; break ;
253+ default : throw std::invalid_argument (std::string (__FILE__)+" line " +std::to_string (__LINE__));
258254 }
259255 }
260256 }
0 commit comments