Skip to content

Commit b0c65fa

Browse files
committed
fix: simple nonlinear solve working in kernels again
1 parent 1dfd7b7 commit b0c65fa

File tree

2 files changed

+8
-9
lines changed

2 files changed

+8
-9
lines changed

lib/NonlinearSolveBase/src/initialization.jl

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
struct NonlinearSolveDefaultInit <: SciMLBase.DAEInitializationAlgorithm end
22

33
function run_initialization!(cache, initializealg = cache.initializealg, prob = cache.prob)
4-
_run_initialization!(cache, initializealg, prob, Val(SciMLBase.isinplace(cache)))
4+
_run_initialization!(cache, initializealg, prob, SciMLBase.isinplace(cache))
55
end
66

7-
function _run_initialization!(
8-
cache, ::NonlinearSolveDefaultInit, prob, isinplace::Union{Val{true}, Val{false}})
7+
function _run_initialization!(cache, ::NonlinearSolveDefaultInit, prob, isinplace::Bool)
98
if SciMLBase.has_initialization_data(prob.f) &&
109
prob.f.initialization_data isa SciMLBase.OverrideInitData
1110
return _run_initialization!(cache, SciMLBase.OverrideInit(), prob, isinplace)
@@ -14,7 +13,7 @@ function _run_initialization!(
1413
end
1514

1615
function _run_initialization!(cache, initalg::SciMLBase.OverrideInit, prob,
17-
isinplace::Union{Val{true}, Val{false}})
16+
isinplace::Bool)
1817
if cache isa AbstractNonlinearSolveCache && isdefined(cache.alg, :autodiff)
1918
autodiff = cache.alg.autodiff
2019
else
@@ -24,9 +23,8 @@ function _run_initialization!(cache, initalg::SciMLBase.OverrideInit, prob,
2423
if alg === nothing && cache isa AbstractNonlinearSolveCache
2524
alg = cache.alg
2625
end
27-
u0, p,
28-
success = SciMLBase.get_initial_values(
29-
prob, cache, prob.f, initalg, isinplace; nlsolve_alg = alg,
26+
u0, p, success = SciMLBase.get_initial_values(
27+
prob, cache, prob.f, initalg, Val(isinplace); nlsolve_alg = alg,
3028
abstol = get_abstol(cache), reltol = get_reltol(cache))
3129
cache = update_initial_values!(cache, u0, p)
3230
if cache isa AbstractNonlinearSolveCache && isdefined(cache, :retcode) && !success

lib/SimpleNonlinearSolve/src/SimpleNonlinearSolve.jl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,11 @@ end
9292
function CommonSolve.solve(
9393
prob::Union{ImmutableNonlinearProblem, NonlinearLeastSquaresProblem},
9494
alg::AbstractSimpleNonlinearSolveAlgorithm,
95-
args...; sensealg = nothing, u0 = nothing, p = nothing, kwargs...
95+
args...; sensealg = nothing, u0 = nothing, p = nothing,
96+
initializealg = SciMLBase.NoInit(), kwargs...
9697
)
9798
alg = configure_autodiff(prob, alg)
98-
cache = SciMLBase.__init(prob, alg, args...; kwargs...)
99+
cache = SciMLBase.__init(prob, alg, args...; initializealg, kwargs...)
99100
prob = cache.prob
100101
if cache.retcode == ReturnCode.InitialFailure
101102
return SciMLBase.build_solution(prob, alg, prob.u0,

0 commit comments

Comments
 (0)