functionpowerLaw_m_flow

Inverse of power law used in pressure drop equations when the flow exponent is constant and may be different from 2

Information

This model describes the pressure difference and mass flow rate relation of a flow resistance in the form

Δp = sign(ṁ) (ṁ ⁄ k)n

where Δp is the pressure drop, k > 0 is a flow coefficient, is the mass flow rate, and n ∈ [1, 2] is a flow exponent. The equation is regularized for |ṁ| < ṁt, where t is a parameter. For laminar flow, set n=1 and for turbulent flow, set n=2.

The coefficient C and the polynomial coefficients b1, b3 and b5 are computed by the function Buildings.Fluid.BaseClasses.FlowModels.powerLawData and passed as inputs. As these quantities only depend on the parameters k, n and m_flow_turbulent, they can be computed once as parameters rather than at each function evaluation.

The model is used for the fluid flow models that are neither fully laminar nor fully turbulent.

Note regarding arguments

This function takes as inputs not only the coefficients C, b1, b3 and b5 that are used in its own implementation, but also the coefficients dp_turbulent, m, a1, a3 and a5 that are used by its inverse function Buildings.Fluid.BaseClasses.FlowModels.powerLaw_dp. These additional arguments are needed so that the inverse annotation can pass the input arguments of this function directly to its inverse function. Therefore, this function and its inverse function Buildings.Fluid.BaseClasses.FlowModels.powerLaw_dp have the same input arguments, except that this function takes the mass flow rate m_flow as the first argument while its inverse takes the pressure difference dp as the first argument. The coefficients dp_turbulent, m, a1, a3 and a5 are computed by the function Buildings.Fluid.BaseClasses.FlowModels.powerLawData.

Implementation

For |ṁ| < ṁt, the equation is regularized so that it is twice continuously differentiable in , and that it has an infinite number of continuous derivatives in n and in k.

Inputs

TypeNameDefaultDescription
Modelica.Units.SI.MassFlowRatem_flowMass flow rate
RealkFlow coefficient, k = m_flow/ dp^(1/n)
RealnFlow exponent, n=1 for laminar, n=2 for turbulent
Modelica.Units.SI.MassFlowRatem_flow_turbulentMass flow rate where transition to turbulent flow occurs
Modelica.Units.SI.PressureDifferencedp_turbulentPressure difference where turbulent flow occurs
RealmFlow exponent for the pressure drop
Reala1Polynomial coefficient for regularized implementation of flow resistance
Reala3Polynomial coefficient for regularized implementation of flow resistance
Reala5Polynomial coefficient for regularized implementation of flow resistance
RealCCoefficient 1/k^n, based on the definition k = m_flow / dp^(1/n)
Realb1Polynomial coefficient for regularized implementation of flow resistance
Realb3Polynomial coefficient for regularized implementation of flow resistance
Realb5Polynomial coefficient for regularized implementation of flow resistance

Outputs

TypeNameDefaultDescription
Modelica.Units.SI.PressureDifferencedpPressure difference

Revisions

  • May 30, 2026, by Michael Wetter:
    First implementation.
    This is for Buildings, #4620.