|  | 
| 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