Skip to content

Commit 0c53f05

Browse files
committed
fix: propagate parameter dependencies in extend
1 parent d54f877 commit 0c53f05

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

src/systems/abstractsystem.jl

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2225,6 +2225,10 @@ function extend(sys::AbstractSystem, basesys::AbstractSystem; name::Symbol = nam
22252225
eqs = union(get_eqs(basesys), get_eqs(sys))
22262226
sts = union(get_unknowns(basesys), get_unknowns(sys))
22272227
ps = union(get_ps(basesys), get_ps(sys))
2228+
base_deps = get_parameter_dependencies(basesys)
2229+
deps = get_parameter_dependencies(sys)
2230+
dep_ps = isnothing(base_deps) ? deps :
2231+
isnothing(deps) ? base_deps : union(base_deps, deps)
22282232
obs = union(get_observed(basesys), get_observed(sys))
22292233
cevs = union(get_continuous_events(basesys), get_continuous_events(sys))
22302234
devs = union(get_discrete_events(basesys), get_discrete_events(sys))
@@ -2233,11 +2237,12 @@ function extend(sys::AbstractSystem, basesys::AbstractSystem; name::Symbol = nam
22332237

22342238
if length(ivs) == 0
22352239
T(eqs, sts, ps, observed = obs, defaults = defs, name = name, systems = syss,
2236-
continuous_events = cevs, discrete_events = devs, gui_metadata = gui_metadata)
2240+
continuous_events = cevs, discrete_events = devs, gui_metadata = gui_metadata,
2241+
parameter_dependencies = dep_ps)
22372242
elseif length(ivs) == 1
22382243
T(eqs, ivs[1], sts, ps, observed = obs, defaults = defs, name = name,
22392244
systems = syss, continuous_events = cevs, discrete_events = devs,
2240-
gui_metadata = gui_metadata)
2245+
gui_metadata = gui_metadata, parameter_dependencies = dep_ps)
22412246
end
22422247
end
22432248

@@ -2395,7 +2400,7 @@ end
23952400
"""
23962401
is_diff_equation(eq)
23972402
2398-
Returns `true` if the input is a differential equation, i.e. is an equatation that contain some
2403+
Returns `true` if the input is a differential equation, i.e. is an equatation that contain some
23992404
form of differential.
24002405
24012406
Example:
@@ -2421,7 +2426,7 @@ end
24212426
"""
24222427
is_alg_equation(eq)
24232428
2424-
Returns `true` if the input is an algebraic equation, i.e. is an equatation that does not contain
2429+
Returns `true` if the input is an algebraic equation, i.e. is an equatation that does not contain
24252430
any differentials.
24262431
24272432
Example:
@@ -2603,7 +2608,7 @@ has_alg_eqs(sys::AbstractSystem) = any(is_alg_equation, get_eqs(sys))
26032608
"""
26042609
has_diff_eqs(sys::AbstractSystem)
26052610
2606-
For a system, returns true if it contain at least one differential equation (i.e. that contain a
2611+
For a system, returns true if it contain at least one differential equation (i.e. that contain a
26072612
differential) in its *top-level system*.
26082613
26092614
Example:

0 commit comments

Comments
 (0)