Skip to content

Commit b8bd45f

Browse files
committed
bugfix for soft fault reaction example
1 parent bd388e9 commit b8bd45f

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

pySDC/implementations/problem_classes/GeneralizedFisher_1D_FD_implicit.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ def __init__(self, problem_params, dtype_u, dtype_f):
3838
if (problem_params['nvars'] + 1) % 2 != 0:
3939
raise ProblemError('setup requires nvars = 2^p - 1')
4040

41+
if 'stop_at_nan' not in problem_params:
42+
problem_params['stop_at_nan'] = True
43+
4144
# invoke super init, passing number of dofs, dtype_u and dtype_f
4245
super(generalized_fisher, self).__init__(problem_params['nvars'], dtype_u, dtype_f, problem_params)
4346

@@ -118,8 +121,13 @@ def solve_system(self, rhs, factor, u0, t):
118121
# increase iteration count
119122
n += 1
120123

124+
if np.isnan(res) and self.params.stop_at_nan:
125+
raise ProblemError('Newton got nan after %i iterations, aborting...' % n)
126+
elif np.isnan(res):
127+
self.logger.warning('Newton got nan after %i iterations...' % n)
128+
121129
if n == self.params.newton_maxiter:
122-
raise ProblemError('Newton did not converge after %i iterations, error is %s' % (n, res))
130+
self.logger.warning('Newton did not converge after %i iterations, error is %s' % (n, res))
123131

124132
return u
125133

0 commit comments

Comments
 (0)