@@ -350,7 +350,37 @@ function StepSource(; P, name)
350
350
ODESystem (eqs, t, vars, pars; name, systems)
351
351
end
352
352
353
- function Pipe (; P, R, name)
353
+ function StaticVolume (; P, V, name)
354
+ D = Differential (t)
355
+
356
+ pars = @parameters begin
357
+ p_int = P
358
+ vol = V
359
+ end
360
+
361
+ vars = @variables begin
362
+ p (t) = p_int
363
+ vrho (t)
364
+ drho (t) = 0
365
+ end
366
+
367
+ # nodes -------------------------------
368
+ systems = @named begin H = HydraulicPort (; P = p_int) end
369
+
370
+ # fluid props ------------------------
371
+ rho_0 = H. rho
372
+
373
+ # equations ---------------------------
374
+ eqs = [D (vrho) ~ drho
375
+ vrho ~ rho_0 * (1 + p / H. bulk)
376
+ H. p ~ p
377
+ H. dm ~ drho * V]
378
+
379
+ ODESystem (eqs, t, vars, pars; name, systems,
380
+ defaults = [vrho => rho_0 * (1 + p_int / H. bulk)])
381
+ end
382
+
383
+ function PipeBase (; P, R, name)
354
384
pars = @parameters begin
355
385
p_int = P
356
386
resistance = R
@@ -371,35 +401,31 @@ function Pipe(; P, R, name)
371
401
ODESystem (eqs, t, vars, pars; name, systems)
372
402
end
373
403
374
- function StaticVolume (; P, V, name)
375
- D = Differential (t)
404
+ function Pipe (; P, R, name)
376
405
377
406
pars = @parameters begin
378
407
p_int = P
379
- vol = V
408
+ resistance = R
380
409
end
381
410
382
- vars = @variables begin
383
- p (t) = p_int
384
- vrho (t)
385
- drho (t) = 0
411
+ vars = []
412
+
413
+ systems = @named begin
414
+ HA = HydraulicPort (; P= p_int)
415
+ HB = HydraulicPort (; P= p_int)
416
+ p12 = PipeBase (; P= p_int, R= resistance)
417
+ v1 = StaticVolume (; P= p_int, V= 0.01 )
418
+ v2 = StaticVolume (; P= p_int, V= 0.01 )
386
419
end
387
420
388
- # nodes -------------------------------
389
- systems = @named begin H = HydraulicPort (; P = p_int) end
421
+ eqs = [
422
+ connect (v1. H, p12. HA, HA)
423
+ connect (v2. H, p12. HB, HB)]
390
424
391
- # fluid props ------------------------
392
- rho_0 = H . rho
425
+ ODESystem (eqs, t, vars, pars; name, systems)
426
+ end
393
427
394
- # equations ---------------------------
395
- eqs = [D (vrho) ~ drho
396
- vrho ~ rho_0 * (1 + p / H. bulk)
397
- H. p ~ p
398
- H. dm ~ drho * V]
399
428
400
- ODESystem (eqs, t, vars, pars; name, systems,
401
- defaults = [vrho => rho_0 * (1 + p_int / H. bulk)])
402
- end
403
429
404
430
function TwoFluidSystem (; name)
405
431
pars = []
0 commit comments