@@ -295,7 +295,7 @@ function has_parameter_dependency_with_lhs(sys, sym)
295295    if  has_index_cache (sys) &&  (ic =  get_index_cache (sys)) != =  nothing 
296296        return  haskey (ic. dependent_pars_to_timeseries, unwrap (sym))
297297    else 
298-         return  any (isequal (sym), [eq. lhs for  eq in  parameter_dependencies (sys)])
298+         return  any (isequal (sym), [eq. lhs for  eq in  get_parameter_dependencies (sys)])
299299    end 
300300end 
301301
@@ -565,7 +565,7 @@ function add_initialization_parameters(sys::AbstractSystem; split = true)
565565        D =  Differential (get_iv (sys))
566566        union! (all_initialvars, [D (v) for  v in  all_initialvars if  iscall (v)])
567567    end 
568-     for  eq in  parameter_dependencies (sys)
568+     for  eq in  get_parameter_dependencies (sys)
569569        is_variable_floatingpoint (eq. lhs) ||  continue 
570570        push! (all_initialvars, eq. lhs)
571571    end 
@@ -1314,8 +1314,15 @@ function parameter_dependencies(sys::AbstractSystem)
13141314    get_parameter_dependencies (sys)
13151315end 
13161316
1317+ """ 
1318+     $(TYPEDSIGNATURES)  
1319+ 
1320+ Return all of the parameters of the system, including hidden initial parameters and ones 
1321+ eliminated via `parameter_dependencies`. 
1322+ """ 
13171323function  full_parameters (sys:: AbstractSystem )
1318-     vcat (parameters (sys; initial_parameters =  true ), dependent_parameters (sys))
1324+     dep_ps =  [eq. lhs for  eq in  get_parameter_dependencies (sys)]
1325+     vcat (parameters (sys; initial_parameters =  true ), dep_ps)
13191326end 
13201327
13211328""" 
@@ -2095,7 +2102,7 @@ function Base.show(
20952102    end 
20962103
20972104    #  Print parameter dependencies
2098-     npdeps =  has_parameter_dependencies (sys) ?  length (parameter_dependencies (sys)) :  0 
2105+     npdeps =  has_parameter_dependencies (sys) ?  length (get_parameter_dependencies (sys)) :  0 
20992106    npdeps >  0  &&  printstyled (io, " \n Parameter dependencies ($npdeps ):"  ; bold)
21002107    npdeps >  0  &&  hint &&  print (io, "  see parameter_dependencies($name )"  )
21012108
@@ -2604,15 +2611,15 @@ function extend(sys::AbstractSystem, basesys::AbstractSystem;
26042611    eqs =  union (get_eqs (basesys), get_eqs (sys))
26052612    sts =  union (get_unknowns (basesys), get_unknowns (sys))
26062613    ps =  union (get_ps (basesys), get_ps (sys))
2607-     dep_ps =  union (parameter_dependencies (basesys), parameter_dependencies (sys))
2614+     dep_ps =  union (get_parameter_dependencies (basesys), get_parameter_dependencies (sys))
26082615    obs =  union (get_observed (basesys), get_observed (sys))
26092616    cevs =  union (get_continuous_events (basesys), get_continuous_events (sys))
26102617    devs =  union (get_discrete_events (basesys), get_discrete_events (sys))
26112618    defs =  merge (get_defaults (basesys), get_defaults (sys)) #  prefer `sys`
26122619    meta =  merge (get_metadata (basesys), get_metadata (sys))
26132620    syss =  union (get_systems (basesys), get_systems (sys))
26142621    args =  length (ivs) ==  0  ?  (eqs, sts, ps) :  (eqs, ivs[1 ], sts, ps)
2615-     kwargs =  (parameter_dependencies  =  dep_ps,  observed =  obs, continuous_events =  cevs,
2622+     kwargs =  (observed =  obs, continuous_events =  cevs,
26162623        discrete_events =  devs, defaults =  defs, systems =  syss, metadata =  meta,
26172624        name =  name, description =  description, gui_metadata =  gui_metadata)
26182625
@@ -2626,7 +2633,10 @@ function extend(sys::AbstractSystem, basesys::AbstractSystem;
26262633            kwargs, (; assertions =  merge (get_assertions (basesys), get_assertions (sys))))
26272634    end 
26282635
2629-     return  T (args... ; kwargs... )
2636+     newsys =  T (args... ; kwargs... )
2637+     @set!  newsys. parameter_dependencies =  dep_ps
2638+ 
2639+     return  newsys
26302640end 
26312641
26322642""" 
@@ -2768,9 +2778,10 @@ function Symbolics.substitute(sys::AbstractSystem, rules::Union{Vector{<:Pair},
27682778        initialization_eqs =  fast_substitute (get_initialization_eqs (sys), rules)
27692779        cstrs =  fast_substitute (get_constraints (sys), rules)
27702780        subsys =  map (s ->  substitute (s, rules), get_systems (sys))
2771-         System (eqs, get_iv (sys); name =  nameof (sys), defaults =  defs,
2772-             guesses =  guess, parameter_dependencies  =  pdeps,  systems =  subsys, noise_eqs,
2781+         newsys  =   System (eqs, get_iv (sys); name =  nameof (sys), defaults =  defs,
2782+             guesses =  guess, systems =  subsys, noise_eqs,
27732783            observed, initialization_eqs, constraints =  cstrs)
2784+         @set!  newsys. parameter_dependencies =  pdeps
27742785    else 
27752786        error (" substituting symbols is not supported for $(typeof (sys)) "  )
27762787    end 
@@ -2846,7 +2857,7 @@ See also: [`ModelingToolkit.dump_variable_metadata`](@ref), [`ModelingToolkit.du
28462857""" 
28472858function  dump_parameters (sys:: AbstractSystem )
28482859    defs =  defaults (sys)
2849-     pdeps =  parameter_dependencies (sys)
2860+     pdeps =  get_parameter_dependencies (sys)
28502861    metas =  map (dump_variable_metadata .(parameters (sys))) do  meta
28512862        if  haskey (defs, meta. var)
28522863            meta =  merge (meta, (; default =  defs[meta. var]))
0 commit comments