Skip to content

Commit 1ff9f7f

Browse files
feat: implement initialization for first order cache
1 parent f6f4689 commit 1ff9f7f

File tree

1 file changed

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

1 file changed

+9
-3
lines changed

lib/NonlinearSolveFirstOrder/src/solve.jl

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,8 @@ end
8787
retcode::ReturnCode.T
8888
force_stop::Bool
8989
kwargs
90+
91+
initializealg
9092
end
9193

9294
function InternalAPI.reinit_self!(
@@ -121,7 +123,7 @@ function SciMLBase.__init(
121123
stats = NLStats(0, 0, 0, 0, 0), alias_u0 = false, maxiters = 1000,
122124
abstol = nothing, reltol = nothing, maxtime = nothing,
123125
termination_condition = nothing, internalnorm = L2_NORM,
124-
linsolve_kwargs = (;), kwargs...
126+
linsolve_kwargs = (;), initializealg = NonlinearSolveBase.NonlinearSolveDefaultInit(), kwargs...
125127
)
126128
@set! alg.autodiff = NonlinearSolveBase.select_jacobian_autodiff(prob, alg.autodiff)
127129
provided_jvp_autodiff = alg.jvp_autodiff !== nothing
@@ -206,13 +208,17 @@ function SciMLBase.__init(
206208
prob, alg, u, fu, J, du; kwargs...
207209
)
208210

209-
return GeneralizedFirstOrderAlgorithmCache(
211+
cache = GeneralizedFirstOrderAlgorithmCache(
210212
fu, u, u_cache, prob.p, du, J, alg, prob, globalization,
211213
jac_cache, descent_cache, linesearch_cache, trustregion_cache,
212214
stats, 0, maxiters, maxtime, alg.max_shrink_times, timer,
213-
0.0, true, termination_cache, trace, ReturnCode.Default, false, kwargs
215+
0.0, true, termination_cache, trace, ReturnCode.Default, false, kwargs,
216+
initializealg
214217
)
215218
end
219+
220+
NonlinearSolveBase.initialize_cache!(cache)
221+
return cache
216222
end
217223

218224
function InternalAPI.step!(

0 commit comments

Comments
 (0)