|
3 | 3 | t = nothing, eval_expression = false, eval_module = @__MODULE__, sparse = false, |
4 | 4 | steady_state = false, checkbounds = false, sparsity = false, analytic = nothing, |
5 | 5 | simplify = false, cse = true, initialization_data = nothing, expression = Val{false}, |
6 | | - check_compatibility = true, kwargs...) where {iip, spec} |
| 6 | + check_compatibility = true, nlstep = false, kwargs...) where {iip, spec} |
7 | 7 | check_complete(sys, ODEFunction) |
8 | 8 | check_compatibility && check_compatible_system(ODEFunction, sys) |
9 | 9 |
|
|
41 | 41 | M = calculate_massmatrix(sys) |
42 | 42 | _M = concrete_massmatrix(M; sparse, u0) |
43 | 43 |
|
| 44 | + if nlstep |
| 45 | + ode_nlstep = generate_ODENLStepData(sys, u0, p, M) |
| 46 | + else |
| 47 | + ode_nlstep = nothing |
| 48 | + end |
| 49 | + |
44 | 50 | observedfun = ObservedFunctionCache( |
45 | 51 | sys; expression, steady_state, eval_expression, eval_module, checkbounds, cse) |
46 | 52 |
|
|
57 | 63 | observed = observedfun, |
58 | 64 | sparsity = sparsity ? _W_sparsity : nothing, |
59 | 65 | analytic = analytic, |
60 | | - initialization_data) |
| 66 | + initialization_data, |
| 67 | + nlstep_data = ode_nlstep) |
61 | 68 |
|
62 | 69 | maybe_codegen_scimlfn(expression, ODEFunction{iip, spec}, args; kwargs...) |
63 | 70 | end |
|
0 commit comments