This is a model of a flow resistance with a fixed flow coefficient. The mass flow rate is computed as

ṁ = k √ΔP,

where *k* is a constant and *ΔP* is the pressure drop.
The constant *k* is equal to
`k=m_flow_nominal/sqrt(dp_nominal)`

, where
`m_flow_nominal`

is a parameter.

In the region `abs(m_flow) < m_flow_turbulent`

,
the square root is replaced by a differentiable function with
finite slope. The value of `m_flow_turbulent`

is
computed as `m_flow_turbulent = eta_nominal*dh/4*π*ReC`

,
where `eta_nominal`

is the dynamic viscosity, obtained
from the medium model. The parameter `dh`

is the
hydraulic diameter and `ReC=4000`

is the critical
Reynolds number, which both can be set by the user.

By default, the pressure drop at nominal flow rate is computed as

dp_nominal = fac * dpStraightPipe_nominal,

where `dpStraightPipe_nominal`

is a parameter that is
automatically computed based on the nominal mass flow rate,
hydraulic diameter, pipe roughness and medium properties. The
hydraulic diameter `dh`

is by default computed based on
the flow velocity `v_nominal`

and the nominal mass flow
rate `m_flow_nominal`

. Hence, users should change the
default values of `dh`

or `v_nominal`

if they
are not applicable for their model.

The factor `fac`

takes into account additional
resistances such as for bends. The default value of `2`

can be changed by the user.

The parameter `from_dp`

is used to determine whether
the mass flow rate is computed as a function of the pressure drop
(if `from_dp=true`

), or vice versa. This setting can
affect the size of the nonlinear system of equations.

If the parameter `linearized`

is set to
`true`

, then the pressure drop is computed as a linear
function of the mass flow rate.

Setting `allowFlowReversal=false`

can lead to simpler
equations. However, this should only be set to `false`

if one can guarantee that the flow never reverses its direction.
This can be difficult to guarantee, as pressure imbalance after the
initialization, or due to medium expansion and contraction, can
lead to reverse flow.

If the parameter `show_T`

is set to
`true`

, then the model will compute the temperature at
its ports. Note that this can lead to state events when the mass
flow rate approaches zero, which can increase computing time.

For more detailed models that compute the actual flow friction,
models from the package Modelica.Fluid can be used and
combined with models from the `Buildings`

library.

For a model that uses `dp_nominal`

as a parameter
rather than geoemetric data, use Buildings.Fluid.FixedResistances.PressureDrop.

The pressure drop is computed by calling a function in the package Buildings.Fluid.BaseClasses.FlowModels, This package contains regularized implementations of the equation

m = sign(Δp) k √ Δp

and its inverse function.

To decouple the energy equation from the mass equations, the pressure drop is a function of the mass flow rate, and not the volume flow rate. This leads to simpler equations.

- December 1, 2016, by Michael Wetter:

First implementation for #480.

Generated at 2021-04-18T01:03:03Z by OpenModelicaOpenModelica 1.18.0~dev-228-gf450566 using GenerateDoc.mos