diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc index f0820d1fb59b87d629e60f0a002b51ccb3de69cc..dd233f3f94b8b07ca9884fa73351819e681ce8fe 100644 --- a/src/one-body-sample.cc +++ b/src/one-body-sample.cc @@ -257,10 +257,9 @@ int main(int argc, char *argv[]) { if (ignoreNodes[i].count() == dim) dirichletFunction.evaluate(time, u_diff[i][0]); - for (size_t state_fpi = 0; - state_fpi < - parset.get<size_t>("solver.tnnmg.fixed_point_iterations"); - ++state_fpi) { + 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) { auto myGlobalNonlinearity = assemble_nonlinearity<MatrixType, VectorType>( parset.sub("boundary.friction"), *nodalIntegrals, alpha, tau); @@ -306,6 +305,10 @@ int main(int argc, char *argv[]) { if (energyNorm.diff(u_diff_saved, u_diff) < parset.get<double>("solver.tnnmg.fixed_point_tolerance")) break; + + if (state_fpi == state_fpi_max) + std::cerr << "FPI did not converge after " << state_fpi_max + << " iterations" << std::endl; } // Record the state, (scaled) displacement, and Neumann