@@ -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 is `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