@@ -348,20 +348,8 @@ function DiffEqBase.DiscreteProblem(sys::JumpSystem, u0map, tspan::Union{Tuple,
348
348
if ! iscomplete (sys)
349
349
error (" A completed `JumpSystem` is required. Call `complete` or `structural_simplify` on the system before creating a `DiscreteProblem`" )
350
350
end
351
- dvs = unknowns (sys)
352
- ps = parameters (sys)
353
-
354
- defs = defaults (sys)
355
- defs = mergedefaults (defs, parammap, ps)
356
- defs = mergedefaults (defs, u0map, dvs)
357
-
358
- u0 = varmap_to_vars (u0map, dvs; defaults = defs, tofloat = false )
359
- if has_index_cache (sys) && get_index_cache (sys) != = nothing
360
- p = MTKParameters (sys, parammap, u0map)
361
- else
362
- p = varmap_to_vars (parammap, ps; defaults = defs, tofloat = false , use_union)
363
- end
364
-
351
+ _, u0, p = process_SciMLProblem (EmptySciMLFunction, sys, u0map, parammap;
352
+ t = tspan === nothing ? nothing : tspan[1 ], use_union, tofloat = false , check_length = false )
365
353
f = DiffEqBase. DISCRETE_INPLACE_DEFAULT
366
354
367
355
observedfun = ObservedFunctionCache (sys; eval_expression, eval_module)
@@ -399,16 +387,9 @@ function DiscreteProblemExpr{iip}(sys::JumpSystem, u0map, tspan::Union{Tuple, No
399
387
if ! iscomplete (sys)
400
388
error (" A completed `JumpSystem` is required. Call `complete` or `structural_simplify` on the system before creating a `DiscreteProblemExpr`" )
401
389
end
402
- dvs = unknowns (sys)
403
- ps = parameters (sys)
404
- defs = defaults (sys)
405
390
406
- u0 = varmap_to_vars (u0map, dvs; defaults = defs, tofloat = false )
407
- if has_index_cache (sys) && get_index_cache (sys) != = nothing
408
- p = MTKParameters (sys, parammap, u0map)
409
- else
410
- p = varmap_to_vars (parammap, ps; defaults = defs, tofloat = false , use_union)
411
- end
391
+ _, u0, p = process_SciMLProblem (EmptySciMLFunction, sys, u0map, parammap;
392
+ t = tspan === nothing ? nothing : tspan[1 ], use_union, tofloat = false , check_length = false )
412
393
# identity function to make syms works
413
394
quote
414
395
f = DiffEqBase. DISCRETE_INPLACE_DEFAULT
@@ -454,19 +435,9 @@ function DiffEqBase.ODEProblem(sys::JumpSystem, u0map, tspan::Union{Tuple, Nothi
454
435
if ! iscomplete (sys)
455
436
error (" A completed `JumpSystem` is required. Call `complete` or `structural_simplify` on the system before creating a `DiscreteProblem`" )
456
437
end
457
- dvs = unknowns (sys)
458
- ps = parameters (sys)
459
-
460
- defs = defaults (sys)
461
- defs = mergedefaults (defs, parammap, ps)
462
- defs = mergedefaults (defs, u0map, dvs)
463
438
464
- u0 = varmap_to_vars (u0map, dvs; defaults = defs, tofloat = false )
465
- if has_index_cache (sys) && get_index_cache (sys) != = nothing
466
- p = MTKParameters (sys, parammap, u0map)
467
- else
468
- p = varmap_to_vars (parammap, ps; defaults = defs, tofloat = false , use_union)
469
- end
439
+ _, u0, p = process_SciMLProblem (EmptySciMLFunction, sys, u0map, parammap;
440
+ t = tspan === nothing ? nothing : tspan[1 ], use_union, tofloat = false , check_length = false )
470
441
471
442
observedfun = ObservedFunctionCache (sys; eval_expression, eval_module)
472
443
0 commit comments