Skip to content

Commit f0cad9c

Browse files
author
Oscar Smith
authored
try this
1 parent 7eefc04 commit f0cad9c

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/nlsolve/nlsolve.jl

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,7 @@ function nlsolve!(nlsolver::NL, integrator::DiffEqBase.DEIntegrator,
8888
break
8989
end
9090
else
91-
# don't use prev_θ for non-adaptive because we own't know if it actually converged
92-
if !integrator.opts.adaptive || !integrator.accept_step
91+
if !integrator.accept_step
9392
prev_θ = one(prev_θ)
9493
end
9594
θ = prev_θ
@@ -103,8 +102,11 @@ function nlsolve!(nlsolver::NL, integrator::DiffEqBase.DEIntegrator,
103102

104103
# check for convergence
105104
η = DiffEqBase.value/ (1 - θ))
105+
# don't trust θ for non-adaptive on first iter because the solver doesn't provide feedback
106+
# for us to know whether our previous nlsolve converged sufficiently well
107+
check_η_convergance = (iter > 1 || (isnewton(nlsolver) && isadaptive(solver)))
106108
if (iter == 1 && ndz < 1e-5) ||
107-
((iter > 1 || isnewton(nlsolver)) && η >= zero(η) && η * ndz < κ)
109+
(check_η_convergance && η >= zero(η) && η * ndz < κ)
108110
nlsolver.status = Convergence
109111
nlsolver.nfails = 0
110112
break

0 commit comments

Comments
 (0)