Skip to content

Commit 7b7966a

Browse files
Fix isothermal domain test connections
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
1 parent 289ba1a commit 7b7966a

1 file changed

Lines changed: 16 additions & 12 deletions

File tree

test/isothermal_compressible.jl

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using ModelingToolkit, OrdinaryDiffEq, Test
2+
using ModelingToolkitBase: bindings, domain_connect, unknowns
23
using SciCompDSL
34
using OrdinaryDiffEqNonlinearSolve: NLNewton
45
using ModelingToolkit: t_nounits as t, D_nounits as D
@@ -152,8 +153,7 @@ end
152153
end
153154

154155
eqs = [
155-
connect(fluid, src1.port)
156-
connect(fluid, src2.port)
156+
domain_connect(fluid, src1.port, src2.port)
157157
connect(src1.port, vol1.port)
158158
connect(src2.port, vol2.port)
159159
connect(vol1.flange, mass.flange, vol2.flange)
@@ -196,6 +196,8 @@ end
196196
# volume/mass should stop moving at opposite ends
197197
@test sol(0; idxs = sys.vol1.x) == 0.1
198198
@test sol(0; idxs = sys.vol2.x) == 0.1
199+
@test sol[sys.src1.port.dm] -sol[sys.vol1.port.dm]
200+
@test sol[sys.src2.port.dm] -sol[sys.vol2.port.dm]
199201

200202
@test round(sol(1; idxs = sys.vol1.x); digits = 2) == 0.19
201203
@test round(sol(1; idxs = sys.vol2.x); digits = 2) == 0.01
@@ -293,7 +295,7 @@ end
293295

294296
connect(src.port, valve.port_s)
295297
connect(snk.port, valve.port_r)
296-
connect(fluid, src.port, snk.port)
298+
domain_connect(fluid, src.port, snk.port)
297299
D(piston.mass.v) ~ ddx
298300
]
299301

@@ -307,7 +309,7 @@ end
307309
@mtkcompile initsys = ActuatorSystem(false)
308310

309311
initprob = ODEProblem(initsys, [], (0, 0))
310-
initsol = solve(initprob, Rodas5P())
312+
initial_state = [v => initprob[v] for v in unknowns(initsys)]
311313

312314
@mtkcompile sys = ActuatorSystem(true)
313315

@@ -321,18 +323,19 @@ end
321323
defs[sys.input.buffer] = Parameter(0.5 * x, dt)
322324

323325
# 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)
326+
prob = ODEProblem(sys, initial_state, (0, 0.1); build_initializeprob = false)
325327

326328
#TODO: Implement proper initialization system after issue is resolved
327329
#TODO: How to bring the body back and not have an overdetermined system?
328330

329331
# 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.ρ)
332+
binds = bindings(sys)
333+
@test Symbol(binds[sys.src.port.ρ]) == Symbol(sys.fluid.ρ)
334+
@test Symbol(binds[sys.valve.port_s.ρ]) == Symbol(sys.fluid.ρ)
335+
@test Symbol(binds[sys.valve.port_a.ρ]) == Symbol(sys.fluid.ρ)
336+
@test Symbol(binds[sys.valve.port_b.ρ]) == Symbol(sys.fluid.ρ)
337+
@test Symbol(binds[sys.valve.port_r.ρ]) == Symbol(sys.fluid.ρ)
338+
@test Symbol(binds[sys.snk.port.ρ]) == Symbol(sys.fluid.ρ)
336339

337340
@time sol = solve(prob, Rodas5P(); initializealg = NoInit())
338341

@@ -356,7 +359,8 @@ end
356359
end
357360

358361
eqs = [
359-
connect(fluid, cap.port, vol.port)
362+
domain_connect(fluid, cap.port, vol.port)
363+
connect(cap.port, vol.port)
360364
connect(vol.flange, mass.flange)
361365
]
362366

0 commit comments

Comments
 (0)