906906# #############
907907
908908""" 
909-     u0, p, defs = get_u0_p(sys, u0map, parammap; tofloat=true) 
909+     u0, p, defs = get_u0_p(sys, u0map, parammap; use_union=true,  tofloat=true) 
910910
911911Take dictionaries with initial conditions and parameters and convert them to numeric arrays `u0` and `p`. Also return the merged dictionary `defs` containing the entire operating point. 
912912""" 
@@ -915,6 +915,7 @@ function get_u0_p(sys,
915915        parammap =  nothing ;
916916        t0 =  nothing ,
917917        tofloat =  true ,
918+         use_union =  true ,
918919        symbolic_u0 =  false )
919920    dvs =  unknowns (sys)
920921    ps =  parameters (sys; initial_parameters =  true )
@@ -952,19 +953,19 @@ function get_u0_p(sys,
952953    end 
953954
954955    if  symbolic_u0
955-         u0 =  varmap_to_vars (u0map, dvs; defaults =  defs, tofloat =  false )
956+         u0 =  varmap_to_vars (u0map, dvs; defaults =  defs, tofloat =  false , use_union  =   false )
956957    else 
957-         u0 =  varmap_to_vars (u0map, dvs; defaults =  defs, tofloat =  true )
958+         u0 =  varmap_to_vars (u0map, dvs; defaults =  defs, tofloat =  true , use_union )
958959    end 
959-     p =  varmap_to_vars (parammap, ps; defaults =  defs, tofloat)
960+     p =  varmap_to_vars (parammap, ps; defaults =  defs, tofloat, use_union )
960961    p =  p ===  nothing  ?  SciMLBase. NullParameters () :  p
961962    t0 != =  nothing  &&  delete! (defs, get_iv (sys))
962963    u0, p, defs
963964end 
964965
965966function  get_u0 (
966967        sys, u0map, parammap =  nothing ; symbolic_u0 =  false ,
967-         toterm =  default_toterm, t0 =  nothing )
968+         toterm =  default_toterm, t0 =  nothing , use_union  =   true )
968969    dvs =  unknowns (sys)
969970    ps =  parameters (sys)
970971    defs =  defaults (sys)
@@ -987,9 +988,9 @@ function get_u0(
987988    defs =  mergedefaults (defs, obsmap, u0map, dvs)
988989    if  symbolic_u0
989990        u0 =  varmap_to_vars (
990-             u0map, dvs; defaults =  defs, tofloat =  false , toterm)
991+             u0map, dvs; defaults =  defs, tofloat =  false , use_union  =   false ,  toterm)
991992    else 
992-         u0 =  varmap_to_vars (u0map, dvs; defaults =  defs, tofloat =  true , toterm)
993+         u0 =  varmap_to_vars (u0map, dvs; defaults =  defs, tofloat =  true , use_union,  toterm)
993994    end 
994995    t0 != =  nothing  &&  delete! (defs, get_iv (sys))
995996    return  u0, defs
0 commit comments