Hi,
What is the logic behind the parameter TwoPunctures::Newton_maxit? Its default is set to 5, and if the Newton iteration doesn't converge in this number of iterations, the solution is just used anyway. Shouldn't there be a fatal error in this case? Is it ever legitimate to use a solution which has not converged to within the tolerance? I think I would prefer to be told to specify a larger tolerance than to have a solution which does not meet the tolerance I set.
I think the idea is that one typically wants the solution to be nearly as accurate as possible, i.e., with the tolerance set to the round-off limit. Often, this means setting tol lower than the unknown round-off limit and having the system harmlessly iterate a few times at the round-off level. Choosing a reasonable tol and maxit usually leads to the desired behavior (i.e., if round off is larger than tol, the solve will still complete reasonably fast, and if round off is less than tol, the solve finishes before maxit is reached).
I have also hit the issue where the solve failed entirely and I didn't catch it. Perhaps a tolerance interval a better solution.
for i range(maxit) NewtonIteration break if err < tol_min
abort if err > tol_max
On 09/14/2016 07:24 AM, Ian Hinder wrote:
Hi,
What is the logic behind the parameter TwoPunctures::Newton_maxit? Its default is set to 5, and if the Newton iteration doesn't converge in this number of iterations, the solution is just used anyway. Shouldn't there be a fatal error in this case? Is it ever legitimate to use a solution which has not converged to within the tolerance? I think I would prefer to be told to specify a larger tolerance than to have a solution which does not meet the tolerance I set.
-- Ian Hinder http://members.aei.mpg.de/ianhin
Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
users@lists.einsteintoolkit.org