Skip to content

Commit 3e5c436

Browse files
fix: better handle scalarized array parameters with unscalarized defaults in is_parameter_solvable
1 parent 6bc28a8 commit 3e5c436

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed

src/systems/nonlinear/initializesystem.jl

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -355,16 +355,27 @@ function get_possibly_array_fallback_singletons(varmap, p)
355355
if haskey(varmap, p)
356356
return varmap[p]
357357
end
358-
symbolic_type(p) == ArraySymbolic() || return nothing
359-
scal = collect(p)
360-
if all(x -> haskey(varmap, x), scal)
361-
res = [varmap[x] for x in scal]
362-
if any(x -> x === nothing, res)
358+
if symbolic_type(p) == ArraySymbolic()
359+
scal = collect(p)
360+
if all(x -> haskey(varmap, x), scal)
361+
res = [varmap[x] for x in scal]
362+
if any(x -> x === nothing, res)
363+
return nothing
364+
elseif any(x -> x === missing, res)
365+
return missing
366+
end
367+
return res
368+
end
369+
elseif iscall(p) && operation(p) == getindex
370+
arrp = arguments(p)[1]
371+
val = get_possibly_array_fallback_singletons(varmap, arrp)
372+
if val === nothing
363373
return nothing
364-
elseif any(x -> x === missing, res)
374+
elseif val === missing
365375
return missing
376+
else
377+
return val
366378
end
367-
return res
368379
end
369380
return nothing
370381
end

0 commit comments

Comments
 (0)