From faf52d83c39a78c38914b0e75d29a7f55f143e0c Mon Sep 17 00:00:00 2001 From: Elias Pipping <elias.pipping@fu-berlin.de> Date: Tue, 28 Aug 2012 11:40:21 +0200 Subject: [PATCH] Add a warning for when we do not converge --- src/one-body-sample.cc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc index f0820d1f..dd233f3f 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 -- GitLab