BuildingSystems.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp

# .BuildingSystems.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp

Function that computes mass flow rate for given pressure drop

## Information

Function that computes the pressure drop of flow elements as

ṁ = sign(Δp) k √ Δp

with regularization near the origin. Therefore, the flow coefficient is

k = ṁ ⁄ √ Δp

The input `m_flow_turbulent` determines the location of the regularization.

#### Interface

>     function basicFlowFunction_dp
>       input Modelica.Units.SI.PressureDifference dp(displayUnit = "Pa") "Pressure difference between port_a and port_b (= port_a.p - port_b.p)";
>       input Real k(min = 0, unit = "") "Flow coefficient, k=m_flow/sqrt(dp), with unit=(kg.m)^(1/2)";
>       input Modelica.Units.SI.MassFlowRate m_flow_turbulent(min = 0) "Mass flow rate where transition to turbulent flow occurs";
>       output Modelica.Units.SI.MassFlowRate m_flow "Mass flow rate in design flow direction";
>     end basicFlowFunction_dp;

## Revisions

- November 9, 2019, by Filip Jorissen:
  Added `smooth(2, . )` for avoiding a warning in the check valve model.
  See #1240.
- January 4, 2019, by Michael Wetter:
  Set `Inline=false`.
  See #1070.
- May 1, 2017, by Filip Jorissen:
  Revised implementation such that basicFlowFunction_dp is C2 continuous. See #725.
- March 19, 2016, by Michael Wetter:
  Added `abs` function for `BuildingSystems.Fluid.FixedResistances.Validation.PressureDropsExplicit` to work in OpenModelica. See OpenModelica ticket 3778.
- January 22, 2016, by Michael Wetter:
  Corrected type declaration of pressure difference. This is for #404.
- July 28, 2015, by Michael Wetter:
  Removed double declaration of `smooth(..)` and `smoothOrder` and changed `Inline=true` to `LateInline=true`. This is for issue 301.
- July 15, 2015, by Filip Jorissen:
  New, more efficient implementation based on regularisation using simple polynomial. Expanded common subexpressions for function inlining to be possible. Set `Inline=true` for inlining to occur. This is for #279.
- January 9, 2014, by Michael Wetter:
  Correct revision section, of which there were two.
- August 10, 2011, by Michael Wetter:
  Removed `if-then` optimization that set `m_flow=0` if `dp=0`, as this causes the derivative to be discontinuous at `dp=0`.
- August 4, 2011, by Michael Wetter:
  Removed option to use a linear function. The linear implementation is now done in models that call this function. With the previous implementation, the symbolic processor may not rearrange the equations, which can lead to coupled equations instead of an explicit solution.
- March 29, 2010 by Michael Wetter:
  Changed implementation to allow `k=0`, which is the case for a closed valve with no leakage
- April 13, 2009, by Michael Wetter:
  First implementation.

Generated at 2026-05-09T18:18:56Z by OpenModelicaOpenModelica 1.26.7 using GenerateDoc.mos