Skip to content

Commit d2ecb58

Browse files
committed
use nonlinear func if present
1 parent 6eabcae commit d2ecb58

File tree

1 file changed

+16
-11
lines changed
  • lib/OrdinaryDiffEqNonlinearSolve/src

1 file changed

+16
-11
lines changed

Diff for: lib/OrdinaryDiffEqNonlinearSolve/src/utils.jl

+16-11
Original file line numberDiff line numberDiff line change
@@ -206,19 +206,24 @@ function build_nlsolver(
206206
if nlalg isa NonlinearSolveAlg
207207
α = tTypeNoUnits(α)
208208
dt = tTypeNoUnits(dt)
209-
if isdae
210-
nlf = (ztmp, z, p) -> begin
211-
tmp, ustep, γ, α, tstep, k, invγdt, _p, dt, f = p
212-
_compute_rhs!(tmp, ztmp, ustep, γ, α, tstep, k, invγdt, _p, dt, f, z)[1]
209+
if isnothing(f.nlfunc)
210+
if isdae
211+
nlf = (ztmp, z, p) -> begin
212+
tmp, ustep, γ, α, tstep, k, invγdt, _p, dt, f = p
213+
_compute_rhs!(tmp, ztmp, ustep, γ, α, tstep, k, invγdt, _p, dt, f, z)[1]
214+
end
215+
nlp_params = (tmp, ustep, γ, α, tstep, k, invγdt, p, dt, f)
216+
else
217+
nlf = (ztmp, z, p) -> begin
218+
tmp, ustep, γ, α, tstep, k, invγdt, method, _p, dt, f = p
219+
_compute_rhs!(
220+
tmp, ztmp, ustep, γ, α, tstep, k, invγdt, method, _p, dt, f, z)[1]
221+
end
222+
nlp_params = (tmp, ustep, γ, α, tstep, k, invγdt, DIRK, p, dt, f)
213223
end
214-
nlp_params = (tmp, ustep, γ, α, tstep, k, invγdt, p, dt, f)
215224
else
216-
nlf = (ztmp, z, p) -> begin
217-
tmp, ustep, γ, α, tstep, k, invγdt, method, _p, dt, f = p
218-
_compute_rhs!(
219-
tmp, ztmp, ustep, γ, α, tstep, k, invγdt, method, _p, dt, f, z)[1]
220-
end
221-
nlp_params = (tmp, ustep, γ, α, tstep, k, invγdt, DIRK, p, dt, f)
225+
nlf = f.nlfunc
226+
nlp_params =()
222227
end
223228
prob = NonlinearProblem(NonlinearFunction(nlf), ztmp, nlp_params)
224229
cache = init(prob, nlalg.alg)

0 commit comments

Comments
 (0)