TubeBase
This component extends from TwoPorts
Usage
TubeBase(area, length, perimeter, shape_factor, head_factor, add_inertia=false, d_h=4*area/perimeter, m_flow0)
Parameters:
Name | Description | Units | Default value |
---|---|---|---|
area | m2 | ||
length | m | ||
perimeter | m | ||
shape_factor | – | ||
head_factor | – | ||
add_inertia | – | false | |
m_flow0 | kg/s |
Connectors
Variables
Name | Description | Units |
---|---|---|
Δp | Pa | |
m_flow | kg/s | |
rho | kg/m3 | |
mu | Pa.s | |
velocity | m/s | |
sheer | Pa | |
ff | – |
Behavior
Behavior of this component cannot be rendered because it includes path
variables.
Source
dyad
component TubeBase
extends TwoPorts
parameter area::Area
parameter length::Length
parameter perimeter::Length
parameter shape_factor::Real
parameter head_factor::Real
parameter add_inertia::Boolean = false
final parameter d_h::Length = 4*area/perimeter
variable rho::Density
variable mu::DynamicViscosity
variable velocity::Velocity
variable sheer::Pressure
variable ff::Real
parameter m_flow0::MassFlowRate
relations
initial m_flow = m_flow0
rho = density(port_a.medium, port_a.p)
mu = viscosity(port_a.medium)
velocity = m_flow/(rho*area)
ff = friction_factor(m_flow, area, d_h, mu, shape_factor)
sheer = 0.5*rho*reg_pow(velocity, 2)*ff*head_factor*(length/d_h)
Δp = if add_inertia then sheer+(length/area)*der(m_flow) else sheer
m_flow = port_a.m_flow
end
Flattened Source
dyad
component TubeBase
port_a = Port()
port_b = Port()
variable Δp::AbsolutePressure
variable m_flow::MassFlowRate
parameter area::Area
parameter length::Length
parameter perimeter::Length
parameter shape_factor::Real
parameter head_factor::Real
parameter add_inertia::Boolean = false
final parameter d_h::Length = 4*area/perimeter
variable rho::Density
variable mu::DynamicViscosity
variable velocity::Velocity
variable sheer::Pressure
variable ff::Real
parameter m_flow0::MassFlowRate
relations
continuity(port_a.medium, port_b.medium)
port_a.m_flow+port_b.m_flow = 0
Δp = port_a.p-port_b.p
initial m_flow = m_flow0
rho = density(port_a.medium, port_a.p)
mu = viscosity(port_a.medium)
velocity = m_flow/(rho*area)
ff = friction_factor(m_flow, area, d_h, mu, shape_factor)
sheer = 0.5*rho*reg_pow(velocity, 2)*ff*head_factor*(length/d_h)
Δp = if add_inertia then sheer+(length/area)*der(m_flow) else sheer
m_flow = port_a.m_flow
metadata {}
end
Test Cases
This is setup code, that must be run before each test case.
julia
using HydraulicComponents
using ModelingToolkit, OrdinaryDiffEqDefault
using Plots
using CSV, DataFrames
snapshotsdir = joinpath(dirname(dirname(pathof(HydraulicComponents))), "test", "snapshots")
"/home/actions-runner-10/.julia/packages/HydraulicComponents/EtOYG/test/snapshots"
Related
Examples
Experiments
Analyses
Tests