@@ -348,20 +348,8 @@ function DiffEqBase.DiscreteProblem(sys::JumpSystem, u0map, tspan::Union{Tuple,
348348 if ! iscomplete (sys)
349349 error (" A completed `JumpSystem` is required. Call `complete` or `structural_simplify` on the system before creating a `DiscreteProblem`" )
350350 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 )
365353 f = DiffEqBase. DISCRETE_INPLACE_DEFAULT
366354
367355 observedfun = ObservedFunctionCache (sys; eval_expression, eval_module)
@@ -399,16 +387,9 @@ function DiscreteProblemExpr{iip}(sys::JumpSystem, u0map, tspan::Union{Tuple, No
399387 if ! iscomplete (sys)
400388 error (" A completed `JumpSystem` is required. Call `complete` or `structural_simplify` on the system before creating a `DiscreteProblemExpr`" )
401389 end
402- dvs = unknowns (sys)
403- ps = parameters (sys)
404- defs = defaults (sys)
405390
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 )
412393 # identity function to make syms works
413394 quote
414395 f = DiffEqBase. DISCRETE_INPLACE_DEFAULT
@@ -454,19 +435,9 @@ function DiffEqBase.ODEProblem(sys::JumpSystem, u0map, tspan::Union{Tuple, Nothi
454435 if ! iscomplete (sys)
455436 error (" A completed `JumpSystem` is required. Call `complete` or `structural_simplify` on the system before creating a `DiscreteProblem`" )
456437 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)
463438
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 )
470441
471442 observedfun = ObservedFunctionCache (sys; eval_expression, eval_module)
472443
0 commit comments