@@ -202,7 +202,6 @@ void Exx<TA,Tcell,Ndim,Tdata>::cal_Hs(
202202 }
203203
204204 std::vector<std::map<TA, std::map<TAC, Tensor<Tdata>>>> Hs_vec (1 );
205- this ->lri .coefficients = {nullptr };
206205 this ->lri .cal_loop3 (
207206 {Label::ab_ab::a0b0_a1b1,
208207 Label::ab_ab::a0b0_a1b2,
@@ -317,92 +316,6 @@ void Exx<TA,Tcell,Ndim,Tdata>::cal_force(
317316}
318317
319318
320- /*
321- template<typename TA, typename Tcell, std::size_t Ndim, typename Tdata>
322- void Exx<TA,Tcell,Ndim,Tdata>::cal_stress(
323- const std::array<std::string,5> &save_names_suffix) // "Cs","Vs","Ds","dCs","dVs"
324- {
325- assert(this->flag_finish.stru);
326- assert(this->flag_finish.C);
327- assert(this->flag_finish.V);
328- assert(this->flag_finish.D);
329- assert(this->flag_finish.dC);
330- assert(this->flag_finish.dV);
331-
332- Cell_Nearest<TA,Tcell,Ndim,Tpos,Npos> cell_nearest;
333- cell_nearest.init(this->atoms_pos, this->latvec, this->period);
334-
335- using namespace Array_Operator;
336- auto get_delta_pos = [this, &cell_nearest](
337- const TA &Ax, const TA &Ay, const std::array<Tcell,Ndim> &celly, const std::size_t &ipos1)
338- -> Tpos
339- {
340- Tpos delta_pos = this->atoms_pos[Ay][ipos1] - this->atoms_pos[Ax][ipos1];
341- const std::array<Tcell,Ndim> celly_nearest = cell_nearest.get_cell_nearest_discrete(Ax, Ay, celly);
342- for(std::size_t idim=0; idim<Ndim; ++idim)
343- delta_pos += celly_nearest[idim] * this->latvec[idim][ipos1];
344- return delta_pos;
345- };
346-
347- this->stress = Tensor<Tdata>({Npos, Npos});
348-
349- this->lri.data_ab_name[Label::ab::a1b1] = this->lri.data_ab_name[Label::ab::a2b1] = "Ds_"+save_names_suffix[2];
350- for(std::size_t ipos0=0; ipos0<Npos; ++ipos0)
351- {
352- std::vector<std::map<TA,std::map<TAC,Tensor<Tdata>>>> dHs_vec(Npos);
353- this->lri.coefficients.resize(Npos);
354-
355- this->lri.data_ab_name[Label::ab::a ] = "dCs_"+std::to_string(ipos0)+"_"+save_names_suffix[3];
356- this->lri.data_ab_name[Label::ab::a0b0] = "Vs_"+save_names_suffix[1];
357- this->lri.data_ab_name[Label::ab::b ] = "Cs_"+save_names_suffix[0];
358-
359- for(std::size_t ipos1=0; ipos1<Npos; ++ipos1)
360- this->lri.coefficients[ipos1] =
361- [this,ipos1,&get_delta_pos](
362- const Label::ab_ab &label, const TA &Aa01, const TAC &Aa2, const TAC &Ab01, const TAC &Ab2) -> Tdata
363- { return get_delta_pos(Aa01, Aa2.first, Aa2.second, ipos1); };
364-
365- this->lri.cal(
366- {Label::ab_ab::a0b0_a1b1,
367- Label::ab_ab::a0b0_a2b1},
368- dHs_vec);
369-
370- this->lri.data_ab_name[Label::ab::a ] = "Cs_"+save_names_suffix[0];
371- this->lri.data_ab_name[Label::ab::a0b0] = "dVs_"+std::to_string(ipos0)+"_"+save_names_suffix[4];
372-
373- for(std::size_t ipos1=0; ipos1<Npos; ++ipos1)
374- this->lri.coefficients[ipos1] =
375- [this,ipos1,&get_delta_pos](
376- const Label::ab_ab &label, const TA &Aa01, const TAC &Aa2, const TAC &Ab01, const TAC &Ab2) -> Tdata
377- { return get_delta_pos(Aa01, Ab01.first, Ab01.second, ipos1); };
378-
379- this->lri.cal(
380- {Label::ab_ab::a0b0_a1b1,
381- Label::ab_ab::a0b0_a2b1},
382- dHs_vec);
383-
384- this->lri.data_ab_name[Label::ab::a0b0] = "Vs_"+save_names_suffix[1];
385- this->lri.data_ab_name[Label::ab::b ] = "dCs_"+std::to_string(ipos0)+"_"+save_names_suffix[3];
386-
387- for(std::size_t ipos1=0; ipos1<Npos; ++ipos1)
388- this->lri.coefficients[ipos1] =
389- [this,ipos1,&get_delta_pos](
390- const Label::ab_ab &label, const TA &Aa01, const TAC &Aa2, const TAC &Ab01, const TAC &Ab2) -> Tdata
391- { return get_delta_pos(Ab01.first, Ab2.first, (Ab2.second-Ab01.second)%this->period, ipos1); };
392-
393- this->lri.cal(
394- {Label::ab_ab::a0b0_a1b1,
395- Label::ab_ab::a0b0_a2b1},
396- dHs_vec);
397-
398- for(std::size_t ipos1=0; ipos1<Npos; ++ipos1)
399- this->stress(ipos0,ipos1) = post_2D.cal_energy(
400- this->post_2D.saves["Ds_"+save_names_suffix[2]],
401- this->post_2D.set_tensors_map2(dHs_vec[ipos1]));
402- }
403- }
404- */
405-
406319
407320template <typename TA, typename Tcell, std::size_t Ndim, typename Tdata>
408321void Exx<TA,Tcell,Ndim,Tdata>::cal_stress(
0 commit comments