@@ -43,8 +43,7 @@ function MTKParameters(
4343 p = merge (defs, p)
4444 p = merge (Dict (unwrap (k) => v for (k, v) in p),
4545 Dict (default_toterm (unwrap (k)) => v for (k, v) in p))
46- p = Dict (k => fixpoint_sub (v, p)
47- for (k, v) in p if k in all_ps || default_toterm (k) in all_ps)
46+ p = Dict (k => fixpoint_sub (v, p) for (k, v) in p)
4847 for (sym, _) in p
4948 if istree (sym) && operation (sym) === getindex &&
5049 first (arguments (sym)) in all_ps
@@ -89,14 +88,24 @@ function MTKParameters(
8988
9089 for (sym, val) in p
9190 sym = unwrap (sym)
91+ val = unwrap (val)
9292 ctype = concrete_symtype (sym)
93- val = symconvert (ctype, unwrap (fixpoint_sub (val, p)))
93+ if symbolic_type (val) != = NotSymbolic ()
94+ continue
95+ end
96+ val = symconvert (ctype, val)
9497 done = set_value (sym, val)
9598 if ! done && Symbolics. isarraysymbolic (sym)
96- done = all (set_value .(collect (sym), val))
97- end
98- if ! done
99- error (" Symbol $sym does not have an index" )
99+ if Symbolics. shape (sym) === Symbolics. Unknown ()
100+ for i in eachindex (val)
101+ set_value (sym[i], val[i])
102+ end
103+ else
104+ if size (sym) != size (val)
105+ error (" Got value of size $(size (val)) for parameter $sym of size $(size (sym)) " )
106+ end
107+ set_value .(collect (sym), val)
108+ end
100109 end
101110 end
102111
@@ -341,6 +350,7 @@ function SymbolicIndexingInterface.remake_buffer(sys, oldbuf::MTKParameters, val
341350 if newbuf. dependent_update_oop != = nothing
342351 @set! newbuf. dependent = newbuf. dependent_update_oop (newbuf... )
343352 end
353+ return newbuf
344354end
345355
346356_subarrays (v:: AbstractVector ) = isempty (v) ? () : (v,)
0 commit comments