Skip to content

Commit 0377273

Browse files
feat: implement initialization for QuasiNewtonCache
1 parent 1ff9f7f commit 0377273

File tree

1 file changed

+9
-3
lines changed
  • lib/NonlinearSolveQuasiNewton/src

1 file changed

+9
-3
lines changed

lib/NonlinearSolveQuasiNewton/src/solve.jl

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@ end
9393
force_stop::Bool
9494
force_reinit::Bool
9595
kwargs
96+
97+
# Initialization
98+
initializealg
9699
end
97100

98101
function NonlinearSolveBase.get_abstol(cache::QuasiNewtonCache)
@@ -137,7 +140,7 @@ function SciMLBase.__init(
137140
stats = NLStats(0, 0, 0, 0, 0), alias_u0 = false, maxtime = nothing,
138141
maxiters = 1000, abstol = nothing, reltol = nothing,
139142
linsolve_kwargs = (;), termination_condition = nothing,
140-
internalnorm::F = L2_NORM, kwargs...
143+
internalnorm::F = L2_NORM, initializealg = NonlinearSolveBase.NonlinearSolveDefaultInit(), kwargs...
141144
) where {F}
142145
timer = get_timer_output()
143146
@static_timeit timer "cache construction" begin
@@ -211,15 +214,18 @@ function SciMLBase.__init(
211214
uses_jacobian_inverse = inverted_jac, kwargs...
212215
)
213216

214-
return QuasiNewtonCache(
217+
cache = QuasiNewtonCache(
215218
fu, u, u_cache, prob.p, du, J, alg, prob, globalization,
216219
initialization_cache, descent_cache, linesearch_cache,
217220
trustregion_cache, update_rule_cache, reinit_rule_cache,
218221
inv_workspace, stats, 0, 0, alg.max_resets, maxiters, maxtime,
219222
alg.max_shrink_times, 0, timer, 0.0, termination_cache, trace,
220-
ReturnCode.Default, false, false, kwargs
223+
ReturnCode.Default, false, false, kwargs, initializealg
221224
)
222225
end
226+
227+
NonlinearSolveBase.initialize_cache!(cache)
228+
return cache
223229
end
224230

225231
function InternalAPI.step!(

0 commit comments

Comments
 (0)