Skip to content

Commit 1d57a68

Browse files
format
1 parent bda9245 commit 1d57a68

File tree

2 files changed

+84
-93
lines changed

2 files changed

+84
-93
lines changed

src/systems/abstractsystem.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -870,7 +870,8 @@ function namespace_equations(sys::AbstractSystem, ivs = independent_variables(sy
870870
map(eq -> namespace_equation(eq, sys; ivs), eqs)
871871
end
872872

873-
function namespace_initialization_equations(sys::AbstractSystem, ivs = independent_variables(sys))
873+
function namespace_initialization_equations(
874+
sys::AbstractSystem, ivs = independent_variables(sys))
874875
eqs = initialization_equations(sys)
875876
isempty(eqs) && return Equation[]
876877
map(eq -> namespace_equation(eq, sys; ivs), eqs)

test/hierarchical_initialization_eqs.jl

Lines changed: 82 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -7,135 +7,125 @@ A simple linear resistor model
77
88
![Resistor](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTpJkiEyqh-BRx27pvVH0GLZ4MP_D1oriBwJhnZdgIq7m17z9VKUWaW9MeNQAz1rTML2ho&usqp=CAU)
99
"""
10-
@component function Resistor(; name, R=1.0)
11-
systems = @named begin
12-
p = Pin()
13-
n = Pin()
14-
end
15-
vars = @variables begin
16-
v(t), [guess=0.0]
17-
i(t), [guess=0.0]
18-
end
19-
params = @parameters begin
20-
R = R, [description = "Resistance of this Resistor"]
21-
end
22-
eqs = [
23-
v ~ p.v - n.v
24-
i ~ p.i
25-
p.i + n.i ~ 0
26-
# Ohm's Law
27-
v ~ i * R
28-
]
29-
return ODESystem(eqs, t, vars, params; systems, name)
10+
@component function Resistor(; name, R = 1.0)
11+
systems = @named begin
12+
p = Pin()
13+
n = Pin()
14+
end
15+
vars = @variables begin
16+
v(t), [guess = 0.0]
17+
i(t), [guess = 0.0]
18+
end
19+
params = @parameters begin
20+
R = R, [description = "Resistance of this Resistor"]
21+
end
22+
eqs = [v ~ p.v - n.v
23+
i ~ p.i
24+
p.i + n.i ~ 0
25+
# Ohm's Law
26+
v ~ i * R]
27+
return ODESystem(eqs, t, vars, params; systems, name)
3028
end
3129
@connector Pin begin
32-
v(t)
33-
i(t), [connect = Flow]
30+
v(t)
31+
i(t), [connect = Flow]
3432
end
35-
@component function ConstantVoltage(; name, V=1.0)
36-
systems = @named begin
37-
p = Pin()
38-
n = Pin()
39-
end
40-
vars = @variables begin
41-
v(t), [guess=0.0]
42-
i(t), [guess=0.0]
43-
end
44-
params = @parameters begin
45-
V = 10
46-
end
47-
eqs = [
48-
v ~ p.v - n.v
49-
i ~ p.i
50-
p.i + n.i ~ 0
51-
v ~ V
52-
]
53-
return ODESystem(eqs, t, vars, params; systems, name)
33+
@component function ConstantVoltage(; name, V = 1.0)
34+
systems = @named begin
35+
p = Pin()
36+
n = Pin()
37+
end
38+
vars = @variables begin
39+
v(t), [guess = 0.0]
40+
i(t), [guess = 0.0]
41+
end
42+
params = @parameters begin
43+
V = 10
44+
end
45+
eqs = [v ~ p.v - n.v
46+
i ~ p.i
47+
p.i + n.i ~ 0
48+
v ~ V]
49+
return ODESystem(eqs, t, vars, params; systems, name)
5450
end
5551

56-
@component function Capacitor(; name, C=1.0)
52+
@component function Capacitor(; name, C = 1.0)
5753
systems = @named begin
58-
p = Pin()
59-
n = Pin()
54+
p = Pin()
55+
n = Pin()
6056
end
6157
vars = @variables begin
62-
v(t), [guess=0.0]
63-
i(t), [guess=0.0]
58+
v(t), [guess = 0.0]
59+
i(t), [guess = 0.0]
6460
end
6561
params = @parameters begin
66-
C = C
62+
C = C
6763
end
6864
initialization_eqs = [
69-
v ~ 0
70-
]
71-
eqs = [
72-
v ~ p.v - n.v
73-
i ~ p.i
74-
p.i + n.i ~ 0
75-
C * D(v) ~ i
65+
v ~ 0
7666
]
67+
eqs = [v ~ p.v - n.v
68+
i ~ p.i
69+
p.i + n.i ~ 0
70+
C * D(v) ~ i]
7771
return ODESystem(eqs, t, vars, params; systems, name, initialization_eqs)
78-
end
72+
end
7973

80-
@component function Ground(; name)
74+
@component function Ground(; name)
8175
systems = @named begin
82-
g = Pin()
76+
g = Pin()
8377
end
8478
eqs = [
85-
g.v ~ 0
79+
g.v ~ 0
8680
]
8781
return ODESystem(eqs, t, [], []; systems, name)
88-
end
82+
end
8983

90-
@component function Inductor(; name, L=1.0)
84+
@component function Inductor(; name, L = 1.0)
9185
systems = @named begin
92-
p = Pin()
93-
n = Pin()
86+
p = Pin()
87+
n = Pin()
9488
end
9589
vars = @variables begin
96-
v(t), [guess = 0.0]
97-
i(t), [guess = 0.0]
90+
v(t), [guess = 0.0]
91+
i(t), [guess = 0.0]
9892
end
9993
params = @parameters begin
100-
(L = L)
94+
(L = L)
10195
end
102-
eqs = [
103-
v ~ p.v - n.v
104-
i ~ p.i
105-
p.i + n.i ~ 0
106-
L * D(i) ~ v
107-
]
96+
eqs = [v ~ p.v - n.v
97+
i ~ p.i
98+
p.i + n.i ~ 0
99+
L * D(i) ~ v]
108100
return ODESystem(eqs, t, vars, params; systems, name)
109-
end
101+
end
110102

111103
"""
112104
This is an RLC model. This should support markdown. That includes
113105
HTML as well.
114106
"""
115107
@component function RLCModel(; name)
116-
systems = @named begin
117-
resistor = Resistor(R=100)
118-
capacitor = Capacitor(C=0.001)
119-
inductor = Inductor(L=1)
120-
source = ConstantVoltage(V=30)
121-
ground = Ground()
122-
end
123-
initialization_eqs = [
124-
inductor.i ~ 0
125-
]
126-
eqs = [
127-
connect(source.p, inductor.n)
128-
connect(inductor.p, resistor.p, capacitor.p)
129-
connect(resistor.n, ground.g, capacitor.n, source.n)
130-
]
131-
return ODESystem(eqs, t, [], []; systems, name, initialization_eqs)
108+
systems = @named begin
109+
resistor = Resistor(R = 100)
110+
capacitor = Capacitor(C = 0.001)
111+
inductor = Inductor(L = 1)
112+
source = ConstantVoltage(V = 30)
113+
ground = Ground()
114+
end
115+
initialization_eqs = [
116+
inductor.i ~ 0
117+
]
118+
eqs = [connect(source.p, inductor.n)
119+
connect(inductor.p, resistor.p, capacitor.p)
120+
connect(resistor.n, ground.g, capacitor.n, source.n)]
121+
return ODESystem(eqs, t, [], []; systems, name, initialization_eqs)
132122
end
133123
"""Run model RLCModel from 0 to 10"""
134124
function simple()
135-
@mtkbuild model = RLCModel()
136-
u0 = []
137-
prob = ODEProblem(model, u0, (0.0, 10.0))
138-
sol = solve(prob)
125+
@mtkbuild model = RLCModel()
126+
u0 = []
127+
prob = ODEProblem(model, u0, (0.0, 10.0))
128+
sol = solve(prob)
139129
end
140130
@test SciMLBase.successful_retcode(simple())
141131

0 commit comments

Comments
 (0)