diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc index 0e0ce17a09ce6971d47c9280077ff922005083f1..b44d66872ca020ba0ad5f367e60336a6fd8f8ff7 100644 --- a/src/one-body-sample.cc +++ b/src/one-body-sample.cc @@ -338,8 +338,7 @@ int main(int argc, char *argv[]) { timeSteppingScheme->setup(ell, tau, time, problem_rhs, problem_iterate, problem_A); - VectorType ud_saved(finestSize); - ud_saved = 0.0; // FIXME + VectorType u_saved; auto const state_fpi_max = parset.get<size_t>("solver.tnnmg.fixed_point_iterations"); for (size_t state_fpi = 1; state_fpi <= state_fpi_max; ++state_fpi) { @@ -388,11 +387,12 @@ int main(int argc, char *argv[]) { std::cerr << '.'; std::cerr.flush(); } - if (energyNorm.diff(ud_saved, ud) < - parset.get<double>("solver.tnnmg.fixed_point_tolerance")) + if (state_fpi > 1 && + energyNorm.diff(u_saved, u) < + parset.get<double>("solver.tnnmg.fixed_point_tolerance")) break; else - ud_saved = ud; + u_saved = u; if (state_fpi == state_fpi_max) std::cerr << "[ref = " << refinements