Skip to content

Incorrect discovery of parameters in hierarchical systems (V9) #3778

Open
@isaacsas

Description

@isaacsas

This came from a MTK MWE derived from a Catalyst bug that was reported on Discourse:

https://discourse.julialang.org/t/issue-with-scoping-rules-of-parameter-and-variable-declaration-in-components-catalyst-vs-modelingtoolkit/130232/4

@mtkmodel Decl1 begin
    @parameters begin
        k = 1.0
    end
    @variables begin
        x(t) = k
    end
end

@mtkmodel Decl2 begin
    @parameters begin
        k = 2.0
    end
    @variables begin
        x(t) = k
    end
end

@named m1 = Decl1()
@named m2 = Decl2()
@named sys1  = ODESystem([D(m2.x) ~ 0, D(m1.x) ~ 0], t; systems = [m1, m2])

giving

Model sys1:
Subsystems (2): see hierarchy(sys1)
  m1
  m2
Equations (2):
  2 standard: see equations(sys1)
Unknowns (2): see unknowns(sys1)
  m2₊x(t) [defaults to k]
  m1₊x(t) [defaults to k]
Parameters (3): see parameters(sys1)
  k [defaults to 1.0]
  m1₊k [defaults to 1.0]
  m2₊k [defaults to 2.0]

MTK seems to be adding a new top-level parameter k too instead of just the versions in the two subsystems.

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions