Skip to content

Commit 1cb8337

Browse files
Fix isothermal domain test connections
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
1 parent 8539d8f commit 1cb8337

1 file changed

Lines changed: 17 additions & 12 deletions

File tree

test/isothermal_compressible.jl

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
using ModelingToolkit, OrdinaryDiffEq, Test
2+
using ModelingToolkitBase: bindings, domain_connect, unknowns
3+
using SciMLBase: NoInit
24
using SciCompDSL
35
using OrdinaryDiffEqNonlinearSolve: NLNewton
46
using ModelingToolkit: t_nounits as t, D_nounits as D
@@ -152,8 +154,7 @@ end
152154
end
153155

154156
eqs = [
155-
connect(fluid, src1.port)
156-
connect(fluid, src2.port)
157+
domain_connect(fluid, src1.port, src2.port)
157158
connect(src1.port, vol1.port)
158159
connect(src2.port, vol2.port)
159160
connect(vol1.flange, mass.flange, vol2.flange)
@@ -196,6 +197,8 @@ end
196197
# volume/mass should stop moving at opposite ends
197198
@test sol(0; idxs = sys.vol1.x) == 0.1
198199
@test sol(0; idxs = sys.vol2.x) == 0.1
200+
@test sol[sys.src1.port.dm] -sol[sys.vol1.port.dm]
201+
@test sol[sys.src2.port.dm] -sol[sys.vol2.port.dm]
199202

200203
@test round(sol(1; idxs = sys.vol1.x); digits = 2) == 0.19
201204
@test round(sol(1; idxs = sys.vol2.x); digits = 2) == 0.01
@@ -293,7 +296,7 @@ end
293296

294297
connect(src.port, valve.port_s)
295298
connect(snk.port, valve.port_r)
296-
connect(fluid, src.port, snk.port)
299+
domain_connect(fluid, src.port, snk.port)
297300
D(piston.mass.v) ~ ddx
298301
]
299302

@@ -307,7 +310,7 @@ end
307310
@mtkcompile initsys = ActuatorSystem(false)
308311

309312
initprob = ODEProblem(initsys, [], (0, 0))
310-
initsol = solve(initprob, Rodas5P())
313+
initial_state = [v => initprob[v] for v in unknowns(initsys)]
311314

312315
@mtkcompile sys = ActuatorSystem(true)
313316

@@ -321,18 +324,19 @@ end
321324
defs[sys.input.buffer] = Parameter(0.5 * x, dt)
322325

323326
# NOTE: bypassing initialization system: https://github.com/SciML/ModelingToolkit.jl/issues/3312
324-
prob = ODEProblem(sys, unknowns(initsys) .=> initsol.u[end], (0, 0.1); build_initializeprob = false)
327+
prob = ODEProblem(sys, initial_state, (0, 0.1); build_initializeprob = false)
325328

326329
#TODO: Implement proper initialization system after issue is resolved
327330
#TODO: How to bring the body back and not have an overdetermined system?
328331

329332
# check the fluid domain
330-
@test Symbol(defs[sys.src.port.ρ]) == Symbol(sys.fluid.ρ)
331-
@test Symbol(defs[sys.valve.port_s.ρ]) == Symbol(sys.fluid.ρ)
332-
@test Symbol(defs[sys.valve.port_a.ρ]) == Symbol(sys.fluid.ρ)
333-
@test Symbol(defs[sys.valve.port_b.ρ]) == Symbol(sys.fluid.ρ)
334-
@test Symbol(defs[sys.valve.port_r.ρ]) == Symbol(sys.fluid.ρ)
335-
@test Symbol(defs[sys.snk.port.ρ]) == Symbol(sys.fluid.ρ)
333+
binds = bindings(sys)
334+
@test Symbol(binds[sys.src.port.ρ]) == Symbol(sys.fluid.ρ)
335+
@test Symbol(binds[sys.valve.port_s.ρ]) == Symbol(sys.fluid.ρ)
336+
@test Symbol(binds[sys.valve.port_a.ρ]) == Symbol(sys.fluid.ρ)
337+
@test Symbol(binds[sys.valve.port_b.ρ]) == Symbol(sys.fluid.ρ)
338+
@test Symbol(binds[sys.valve.port_r.ρ]) == Symbol(sys.fluid.ρ)
339+
@test Symbol(binds[sys.snk.port.ρ]) == Symbol(sys.fluid.ρ)
336340

337341
@time sol = solve(prob, Rodas5P(); initializealg = NoInit())
338342

@@ -356,7 +360,8 @@ end
356360
end
357361

358362
eqs = [
359-
connect(fluid, cap.port, vol.port)
363+
domain_connect(fluid, cap.port, vol.port)
364+
connect(cap.port, vol.port)
360365
connect(vol.flange, mass.flange)
361366
]
362367

0 commit comments

Comments
 (0)