@@ -301,12 +301,14 @@ end
301301"""
302302 $(TYPEDSIGNATURES)
303303
304- Performs symbolic substitution on the values in `varmap`, using `varmap` itself as the
305- set of substitution rules.
306- """
307- function evaluate_varmap! (varmap:: AbstractDict )
308- for (k, v) in varmap
309- varmap[k] = fixpoint_sub (v, varmap)
304+ Performs symbolic substitution on the values in `varmap` for the keys in `vars`, using
305+ `varmap` itself as the set of substitution rules. If an entry in `vars` is not a key
306+ in `varmap`, it is ignored.
307+ """
308+ function evaluate_varmap! (varmap:: AbstractDict , vars)
309+ for k in vars
310+ haskey (varmap, k) || continue
311+ varmap[k] = fixpoint_sub (varmap[k], varmap)
310312 end
311313end
312314
@@ -499,7 +501,7 @@ function process_SciMLProblem(
499501 add_observed! (sys, op)
500502 add_parameter_dependencies! (sys, op)
501503
502- evaluate_varmap! (op)
504+ evaluate_varmap! (op, dvs )
503505
504506 u0 = better_varmap_to_vars (
505507 op, dvs; tofloat = true , use_union = false ,
@@ -511,6 +513,7 @@ function process_SciMLProblem(
511513
512514 check_eqs_u0 (eqs, dvs, u0; check_length, kwargs... )
513515
516+ evaluate_varmap! (op, ps)
514517 if is_split (sys)
515518 p = MTKParameters (sys, op)
516519 else
0 commit comments