@@ -206,19 +206,24 @@ function build_nlsolver(
206
206
if nlalg isa NonlinearSolveAlg
207
207
α = tTypeNoUnits (α)
208
208
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)
213
223
end
214
- nlp_params = (tmp, ustep, γ, α, tstep, k, invγdt, p, dt, f)
215
224
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 = ()
222
227
end
223
228
prob = NonlinearProblem (NonlinearFunction (nlf), ztmp, nlp_params)
224
229
cache = init (prob, nlalg. alg)
0 commit comments