@@ -450,6 +450,9 @@ void PairNNP::compute(int eflag, int vflag)
450450 vector<double > tmp_avg_f;
451451 nnp_inter_model_devi.compute_avg (tmp_avg_f, all_force);
452452 nnp_inter_model_devi.compute_std_f (std_f, tmp_avg_f, all_force);
453+ if (out_rel == 1 ){
454+ nnp_inter_model_devi.compute_relative_std_f (std_f, tmp_avg_f, eps);
455+ }
453456#else
454457 vector<float > tmp_avg_f_, std_f_;
455458 for (unsigned ii = 0 ; ii < all_force_.size (); ++ii){
@@ -461,6 +464,9 @@ void PairNNP::compute(int eflag, int vflag)
461464 nnp_inter_model_devi.compute_std_f (std_f_, tmp_avg_f_, all_force_);
462465 std_f.resize (std_f_.size ());
463466 for (int dd = 0 ; dd < std_f_.size (); ++dd) std_f[dd] = std_f_[dd];
467+ if (out_rel == 1 ){
468+ nnp_inter_model_devi.compute_relative_std_f (std_f, tmp_avg_f_, eps);
469+ }
464470#endif
465471 double min = numeric_limits<double >::max (), max = 0 , avg = 0 ;
466472 ana_st (max, min, avg, std_f, nlocal);
@@ -514,16 +520,7 @@ void PairNNP::compute(int eflag, int vflag)
514520 // 1. If the atom_style is not atomic (e.g. charge), the order of std_f is different from that of atom ids.
515521 // 2. std_f is not gathered by MPI.
516522 for (int dd = 0 ; dd < all_nlocal; ++dd) {
517- if (out_rel == 1 ){
518- // relative std = std/(abs(f)+1)
519- #ifdef HIGH_PREC
520- fp << " " << setw (18 ) << std_f[dd] / (fabs (tmp_avg_f[dd]) + eps);
521- #else
522- fp << " " << setw (18 ) << std_f[dd] / (fabsf (tmp_avg_f_[dd]) + eps);
523- #endif
524- } else {
525523 fp << " " << setw (18 ) << std_f[dd];
526- }
527524 }
528525 }
529526 fp << endl;
0 commit comments