1515
1616function SciMLBase. __solve (prob:: SciMLBase.AbstractSteadyStateProblem , alg:: DynamicSS ,
1717 args... ; abstol = 1e-8 , reltol = 1e-6 , odesolve_kwargs = (;),
18- save_idxs = nothing , termination_condition = NormTerminationMode (infnorm),
18+ save_idxs = nothing , termination_condition = NonlinearSolveBase . NormTerminationMode (infnorm),
1919 kwargs... )
2020 tspan = __get_tspan (prob. u0, alg)
2121
@@ -36,9 +36,9 @@ function SciMLBase.__solve(prob::SciMLBase.AbstractSteadyStateProblem, alg::Dyna
3636 du = f (prob. u0, prob. p, first (tspan))
3737 end
3838
39- tc_cache = init (du, prob. u0 , termination_condition, last (tspan) ; abstol, reltol)
40- abstol = DiffEqBase . get_abstol (tc_cache)
41- reltol = DiffEqBase . get_reltol (tc_cache)
39+ tc_cache = init (prob, termination_condition, du, prob . u0 ; abstol, reltol)
40+ abstol = NonlinearSolveBase . get_abstol (tc_cache)
41+ reltol = NonlinearSolveBase . get_reltol (tc_cache)
4242
4343 function terminate_function (u, t, integrator)
4444 return tc_cache (get_du (integrator), integrator. u, integrator. uprev, t)
7878function __get_result_from_sol (:: AbstractSafeNonlinearTerminationMode , tc_cache, odesol)
7979 u, t = last (odesol. u), last (odesol. t)
8080 du = odesol (t, Val{1 })
81-
82- if tc_cache. retcode == NonlinearSafeTerminationReturnCode. Success
83- retcode_tc = ReturnCode. Success
84- elseif tc_cache. retcode == NonlinearSafeTerminationReturnCode. PatienceTermination
85- retcode_tc = ReturnCode. ConvergenceFailure
86- elseif tc_cache. retcode == NonlinearSafeTerminationReturnCode. ProtectiveTermination
87- retcode_tc = ReturnCode. Unstable
88- else
89- retcode_tc = ReturnCode. Default
90- end
81+ retcode_tc = tc_cache. retcode
9182
9283 retcode = if odesol. retcode == ReturnCode. Terminated
9384 ifelse (retcode_tc != ReturnCode. Default, retcode_tc, ReturnCode. Success)
10394function __get_result_from_sol (:: AbstractSafeBestNonlinearTerminationMode , tc_cache, odesol)
10495 u, t = tc_cache. u, only (DiffEqBase. get_saved_values (tc_cache))
10596 du = odesol (t, Val{1 })
106-
107- if tc_cache. retcode == NonlinearSafeTerminationReturnCode. Success
108- retcode_tc = ReturnCode. Success
109- elseif tc_cache. retcode == NonlinearSafeTerminationReturnCode. PatienceTermination
110- retcode_tc = ReturnCode. ConvergenceFailure
111- elseif tc_cache. retcode == NonlinearSafeTerminationReturnCode. ProtectiveTermination
112- retcode_tc = ReturnCode. Unstable
113- else
114- retcode_tc = ReturnCode. Default
115- end
97+ retcode_tc = tc_cache. retcode
11698
11799 retcode = if odesol. retcode == ReturnCode. Terminated
118100 ifelse (retcode_tc != ReturnCode. Default, retcode_tc, ReturnCode. Success)
0 commit comments