Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions IDEAS/.copiedFiles.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ IDEAS\Airflow\Multizone\BaseClasses\Door.mo
IDEAS\Airflow\Multizone\BaseClasses\DoorDiscretized.mo
IDEAS\Airflow\Multizone\BaseClasses\ErrorControl.mo
IDEAS\Airflow\Multizone\BaseClasses\Examples\PowerLaw.mo
IDEAS\Airflow\Multizone\BaseClasses\Examples\PowerLaw05.mo
IDEAS\Airflow\Multizone\BaseClasses\Examples\PowerLawFixedM.mo
IDEAS\Airflow\Multizone\BaseClasses\Examples\WindPressureLowRise.mo
IDEAS\Airflow\Multizone\BaseClasses\Examples\WindPressureProfile.mo
Expand All @@ -17,6 +18,7 @@ IDEAS\Airflow\Multizone\BaseClasses\ZonalFlow.mo
IDEAS\Airflow\Multizone\BaseClasses\package.mo
IDEAS\Airflow\Multizone\BaseClasses\package.order
IDEAS\Airflow\Multizone\BaseClasses\powerLaw.mo
IDEAS\Airflow\Multizone\BaseClasses\powerLaw05.mo
IDEAS\Airflow\Multizone\BaseClasses\powerLawFixedM.mo
IDEAS\Airflow\Multizone\BaseClasses\windPressureLowRise.mo
IDEAS\Airflow\Multizone\BaseClasses\windPressureProfile.mo
Expand Down Expand Up @@ -2912,6 +2914,7 @@ IDEAS\Resources\Images\Utilities\Math\int.pdf
IDEAS\Resources\Images\Utilities\Math\int.png
IDEAS\Resources\Python-Sources\MakeORCFluidRecord.py
IDEAS\Resources\ReferenceResults\Dymola\IDEAS_Airflow_Multizone_BaseClasses_Examples_PowerLaw.txt
IDEAS\Resources\ReferenceResults\Dymola\IDEAS_Airflow_Multizone_BaseClasses_Examples_PowerLaw05.txt
IDEAS\Resources\ReferenceResults\Dymola\IDEAS_Airflow_Multizone_BaseClasses_Examples_PowerLawFixedM.txt
IDEAS\Resources\ReferenceResults\Dymola\IDEAS_Airflow_Multizone_BaseClasses_Examples_WindPressureLowRise.txt
IDEAS\Resources\ReferenceResults\Dymola\IDEAS_Airflow_Multizone_BaseClasses_Examples_WindPressureProfile.txt
Expand Down Expand Up @@ -3824,6 +3827,7 @@ IDEAS\Resources\ReferenceResults\Dymola\IDEAS_Utilities_Time_Validation_Calendar
IDEAS\Resources\ReferenceResults\Dymola\IDEAS_Utilities_Time_Validation_CalendarTimeMonthsMinus.txt
IDEAS\Resources\ReferenceResults\Dymola\IDEAS_Utilities_Time_Validation_CalendarTimeMonthsPlus.txt
IDEAS\Resources\Scripts\Dymola\Airflow\Multizone\BaseClasses\Examples\PowerLaw.mos
IDEAS\Resources\Scripts\Dymola\Airflow\Multizone\BaseClasses\Examples\PowerLaw05.mos
IDEAS\Resources\Scripts\Dymola\Airflow\Multizone\BaseClasses\Examples\PowerLawFixedM.mos
IDEAS\Resources\Scripts\Dymola\Airflow\Multizone\BaseClasses\Examples\WindPressureLowRise.mos
IDEAS\Resources\Scripts\Dymola\Airflow\Multizone\BaseClasses\Examples\WindPressureProfile.mos
Expand Down Expand Up @@ -4743,6 +4747,46 @@ IDEAS\Resources\src\convertEPW\src\ConvertWeatherData.java
IDEAS\Resources\src\convertEPW\src\Makefile
IDEAS\Resources\src\convertEPW\src\Manifest.txt
IDEAS\Resources\src\fluid\heatpumps\calibration\Examples\SomeManufacturer_ABC060_70kW_4_0COP_R410A.mo
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootstrap-3.4.1\css\bootstrap-theme.css
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootstrap-3.4.1\css\bootstrap-theme.css.map
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootstrap-3.4.1\css\bootstrap-theme.min.css
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootstrap-3.4.1\css\bootstrap-theme.min.css.map
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootstrap-3.4.1\css\bootstrap.css
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootstrap-3.4.1\css\bootstrap.css.map
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootstrap-3.4.1\css\bootstrap.min.css
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootstrap-3.4.1\css\bootstrap.min.css.map
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootstrap-3.4.1\fonts\glyphicons-halflings-regular.eot
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootstrap-3.4.1\fonts\glyphicons-halflings-regular.svg
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootstrap-3.4.1\fonts\glyphicons-halflings-regular.ttf
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootstrap-3.4.1\fonts\glyphicons-halflings-regular.woff
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootstrap-3.4.1\fonts\glyphicons-halflings-regular.woff2
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootstrap-3.4.1\js\bootstrap.js
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootstrap-3.4.1\js\bootstrap.min.js
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootstrap-3.4.1\js\npm.js
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\cerulean\bootstrap.min.css
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\cosmo\bootstrap.min.css
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\cyborg\bootstrap.min.css
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\darkly\bootstrap.min.css
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\flatly\bootstrap.min.css
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\fonts\glyphicons-halflings-regular.eot
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\fonts\glyphicons-halflings-regular.svg
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\fonts\glyphicons-halflings-regular.ttf
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\fonts\glyphicons-halflings-regular.woff
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\fonts\glyphicons-halflings-regular.woff2
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\journal\bootstrap.min.css
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\lumen\bootstrap.min.css
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\paper\bootstrap.min.css
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\readable\bootstrap.min.css
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\sandstone\bootstrap.min.css
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\simplex\bootstrap.min.css
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\slate\bootstrap.min.css
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\spacelab\bootstrap.min.css
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\superhero\bootstrap.min.css
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\united\bootstrap.min.css
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\bootswatch-3.4.1\yeti\bootstrap.min.css
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\jquery-3.5.1.js
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\js\jquery-1.12.4.min.js
IDEAS\Resources\src\fluid\heatpumps\calibration\doc\build\html\_static\underscore-1.13.1.js
IDEAS\Resources\weatherdata\DRYCOLD.TMY
IDEAS\Resources\weatherdata\DRYCOLD.mos
IDEAS\Resources\weatherdata\USA_CA_San.Francisco.Intl.AP.724940_TMY3.epw
Expand Down
10 changes: 10 additions & 0 deletions IDEAS/Airflow/Multizone/BaseClasses/Door.mo
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ protected
constant Real conTP = IDEAS.Media.Air.dStp*Modelica.Media.IdealGases.Common.SingleGasesData.Air.R_s
"Conversion factor for converting temperature difference to pressure difference";

final parameter Real sqrt_dp_turbulent(min=0) = sqrt(dp_turbulent)
"Square root of pressure difference where laminar and turbulent flow relation coincide";

parameter Medium.ThermodynamicState sta_default=Medium.setState_pTX(
T=Medium.T_default,
p=Medium.p_default,
Expand Down Expand Up @@ -118,6 +121,13 @@ This is a partial model for the bi-directional air flow through a door.
revisions="<html>
<ul>
<li>
September 19, 2025, by Michael Wetter:<br/>
Introduced protected parameter <code>sqrt_dp_turbulent</code>,
which is needed to improve computing efficiency if flow exponent is <i>0.5</i>.<br/>
This is for
<a href=\"https://github.com/ibpsa/modelica-ibpsa/issues/2043\">IBPSA, #2043</a>.
</li>
<li>
October 6, 2020, by Michael Wetter:<br/>
First implementation for
<a href=\"https://github.com/ibpsa/modelica-ibpsa/issues/1353\">#1353</a>.
Expand Down
10 changes: 10 additions & 0 deletions IDEAS/Airflow/Multizone/BaseClasses/DoorDiscretized.mo
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ protected
parameter Modelica.Units.SI.Density rho_default=Medium.density(sta_default)
"Density, used to compute fluid volume";

final parameter Real sqrt_dp_turbulent(min=0) = sqrt(dp_turbulent)
"Square root of pressure difference where laminar and turbulent flow relation coincide";

input Real hAg[nCom](each unit="m2/s2")=
{Modelica.Constants.g_n*(hA - (i - 0.5)*dh) for i in 1:nCom}
"Product g*h_i for each compartment";
Expand Down Expand Up @@ -118,6 +121,13 @@ using the model for a door that can be open or closed.
revisions="<html>
<ul>
<li>
September 19, 2025, by Michael Wetter:<br/>
Introduced protected parameter <code>sqrt_dp_turbulent</code>,
which is needed to improve computing efficiency if flow exponent is <i>0.5</i>.<br/>
This is for
<a href=\"https://github.com/ibpsa/modelica-ibpsa/issues/2043\">IBPSA, #2043</a>.
</li>
<li>
October 29, 2024, by Klaas De Jonge:<br/>
Unprotected <code>dh</code> and changed prefixes of <code>dh</code>,<code>hAg</code> and <code>hBg</code> to <code>input</code>.<br/>
This is for <a href=\"https://github.com/ibpsa/modelica-ibpsa/issues/1935\">#1935</a>.
Expand Down
73 changes: 73 additions & 0 deletions IDEAS/Airflow/Multizone/BaseClasses/Examples/PowerLaw05.mo
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
within IDEAS.Airflow.Multizone.BaseClasses.Examples;
model PowerLaw05
"Test model for power law function with constant exponent of 0.5"
extends Modelica.Icons.Example;
parameter Real C = 2/10^m "Flow coefficient, C = V_flow/ dp^m";

constant Real m(min=0.5, max=1) = 0.5
"Flow exponent, m=0.5 for turbulent, m=1 for laminar";
parameter Modelica.Units.SI.PressureDifference dp_turbulent(min=0) = 5
"Pressure difference where regularization starts";
final parameter Real sqrt_dp_turbulent(min=0) = sqrt(dp_turbulent)
"Square root of pressure difference where regularization starts";

Modelica.Units.SI.PressureDifference dp "Pressure difference";
Modelica.Units.SI.VolumeFlowRate V_flow
"Volume flow rate computed with model powerLaw";
Modelica.Units.SI.VolumeFlowRate VFixed_flow
"Volume flow rate computed with model powerLawFixed";

constant Real gamma(min=1) = 1.5
"Normalized flow rate where dphi(0)/dpi intersects phi(1)";
constant Real a = gamma
"Polynomial coefficient for regularized implementation of flow resistance";
constant Real b = 1/8*m^2 - 3*gamma - 3/2*m + 35.0/8
"Polynomial coefficient for regularized implementation of flow resistance";
constant Real c = -1/4*m^2 + 3*gamma + 5/2*m - 21.0/4
"Polynomial coefficient for regularized implementation of flow resistance";
constant Real d = 1/8*m^2 - gamma - m + 15.0/8
"Polynomial coefficient for regularized implementation of flow resistance";

equation
dp = 10*(-1+2*time);
V_flow = IDEAS.Airflow.Multizone.BaseClasses.powerLaw(
dp=dp,
C=C,
m=m,
dp_turbulent=dp_turbulent);
VFixed_flow = IDEAS.Airflow.Multizone.BaseClasses.powerLaw05(
C=C,
dp=dp,
a=a,
b=b,
c=c,
d=d,
dp_turbulent=dp_turbulent,
sqrt_dp_turbulent=sqrt_dp_turbulent);
assert(abs(V_flow-VFixed_flow) < 1E-10, "Error: The two implementations of the power law model need to give identical results");
annotation (
experiment(Tolerance=1e-6, StopTime=1.0),
__Dymola_Commands(file="modelica://IDEAS/Resources/Scripts/Dymola/Airflow/Multizone/BaseClasses/Examples/PowerLaw05.mos"
"Simulate and plot"), Documentation(info="<html>
<p>
This examples demonstrates the
<a href=\"modelica://IDEAS.Airflow.Multizone.BaseClasses.powerLaw\">
IDEAS.Airflow.Multizone.BaseClasses.powerLaw</a>
and
<a href=\"modelica://IDEAS.Airflow.Multizone.BaseClasses.powerLaw05\">
IDEAS.Airflow.Multizone.BaseClasses.powerLaw05</a>
functions.
They need to return the same function value.
This is verified by an <code>assert</code> statement.
</p>
</html>", revisions="<html>
<ul>
<li>
September 19. 2025, by Michael Wetter:<br/>
First implementation.<br/>
This is for
<a href=\"https://github.com/ibpsa/modelica-ibpsa/issues/2043\">IBPSA, #2043</a>.
</li>
</ul>
</html>"));
end PowerLaw05;
1 change: 1 addition & 0 deletions IDEAS/Airflow/Multizone/BaseClasses/Examples/package.order
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
Interpolate
PowerLaw
PowerLaw05
PowerLawFixedM
WindPressureLowRise
WindPressureProfile
25 changes: 23 additions & 2 deletions IDEAS/Airflow/Multizone/BaseClasses/PartialOneWayFlowElement.mo
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,15 @@ protected
Medium.dynamicViscosity(sta_default)
"Dynamic viscosity at the medium default properties";

final parameter Real sqrt_dp_turbulent(min=0) = sqrt(dp_turbulent)
"Square root of pressure difference where laminar and turbulent flow relation coincide";

Medium.ThermodynamicState sta "State of the medium in the component";
Modelica.Units.SI.DynamicViscosity dynVis "Dynamic viscosity";
Real mExc(quantity="Mass", final unit="kg")
Modelica.Units.SI.Mass mExc(start=0, fixed=true, unbounded=true)
"Air mass exchanged (for purpose of error control only)";

initial equation
mExc=0;
assert(homotopyInitialization, "In " + getInstanceName() +
": The constant homotopyInitialization has been modified from its default value. This constant will be removed in future releases.",
level = AssertionLevel.warning);
Expand Down Expand Up @@ -110,6 +112,25 @@ not in the equation section since this model sets both
revisions="<html>
<ul>
<li>
September 22, 2025, by Michael Wetter:<br/>
Set <code>unbounded=true</code> for <code>mExc_flow</code>.
This is to have the same implementation as in
<a href=\"modelica://IDEAS.Airflow.Multizone.BaseClasses.TwoWayFlowElement\">
IDEAS.Airflow.Multizone.BaseClasses.TwoWayFlowElement</a>
where this change was done to avoid spikes in <code>port_a.m_flow</code> in
<a href=\"modelica://IDEAS.Airflow.Multizone.Examples.OneOpenDoor\">
IDEAS.Airflow.Multizone.Examples.OneOpenDoor</a>.<br/>
This is for
<a href=\"https://github.com/lbl-srg/modelica-buildings/issues/4360\">Buildings, #4360</a>.
</li>
<li>
September 19, 2025, by Michael Wetter:<br/>
Introduced protected parameter <code>sqrt_dp_turbulent</code>,
which is needed to improve computing efficiency if flow exponent is <i>0.5</i>.<br/>
This is for
<a href=\"https://github.com/ibpsa/modelica-ibpsa/issues/2043\">IBPSA, #2043</a>.
</li>
<li>
February 2, 2022, by Michael Wetter:<br/>
Revised implementation.<br/>
This is for
Expand Down
36 changes: 28 additions & 8 deletions IDEAS/Airflow/Multizone/BaseClasses/TwoWayFlowElement.mo
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ protected
Modelica.Units.SI.VolumeFlowRate VZer_flow(fixed=false)
"Minimum net volume flow rate to prevent zero flow";

Modelica.Units.SI.Mass mExcAB(start=0, fixed=true)
Modelica.Units.SI.Mass mExcAB(start=0, fixed=true, unbounded=true)
"Air mass exchanged (for purpose of error control only)";
Modelica.Units.SI.Mass mExcBA(start=0, fixed=true)
Modelica.Units.SI.Mass mExcBA(start=0, fixed=true, unbounded=true)
"Air mass exchanged (for purpose of error control only)";

Medium.MassFraction Xi_a1_inflow[Medium1.nXi]
Expand All @@ -55,8 +55,8 @@ equation
// gives higher robustness. The reason may be that for bi-directional flow,
// (VAB_flow - VBA_flow) may be close to zero.
if forceErrorControlOnFlow then
der(mExcAB) = mAB_flow;
der(mExcBA) = mBA_flow;
der(mExcAB) = port_a1.m_flow;
der(mExcBA) = port_a2.m_flow;
else
der(mExcAB) = 0;
der(mExcBA) = 0;
Expand All @@ -82,14 +82,14 @@ equation

VZer_flow = vZer*A;

mAB_flow = rho_a1_inflow*VAB_flow;
mBA_flow = rho_a2_inflow*VBA_flow;
mAB_flow = port_a1.m_flow;
mBA_flow = port_a2.m_flow;
// Average velocity (using the whole orifice area)
vAB = VAB_flow/A;
vBA = VBA_flow/A;

port_a1.m_flow = mAB_flow;
port_a2.m_flow = mBA_flow;
port_a1.m_flow = rho_a1_inflow*VAB_flow;
port_a2.m_flow = rho_a2_inflow*VBA_flow;

// Energy balance (no storage, no heat loss/gain)
port_a1.h_outflow = inStream(port_b1.h_outflow);
Expand Down Expand Up @@ -135,6 +135,26 @@ for doors that can be open or closed as a function of an input signal.
revisions="<html>
<ul>
<li>
September 22, 2025, by Michael Wetter:<br/>
Set <code>unbounded=true</code> for <code>mExcAB_flow</code> and <code>mExcBA_flow</code>
to avoid spikes in <code>port_a.m_flow</code> in
<a href=\"modelica://IDEAS.Airflow.Multizone.Examples.OneOpenDoor\">
IDEAS.Airflow.Multizone.Examples.OneOpenDoor</a>.<br/>
This is for
<a href=\"https://github.com/lbl-srg/modelica-buildings/issues/4360\">Buildings, #4360</a>.
</li>
<li>
September 19, 2025, by Michael Wetter:<br/>
Refactored implementation of underlying function that computes the flow rate
to allow function to be inlined.
This leads to a 20% faster simulation of
<a href=\"modelica://IDEAS.Airflow.Multizone.Examples.OneOpenDoor\">
IDEAS.Airflow.Multizone.Examples.OneOpenDoor</a> compared to the previous
implementation.<br/>
This is for
<a href=\"https://github.com/ibpsa/modelica-ibpsa/issues/2043\">IBPSA, #2043</a>.
</li>
<li>
May 12, 2020, by Michael Wetter:<br/>
Changed assignment of <code>m1_flow_small</code> and
<code>m2_flow_small</code> to <code>final</code>.
Expand Down
1 change: 1 addition & 0 deletions IDEAS/Airflow/Multizone/BaseClasses/package.order
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ TwoWayFlowElementBuoyancy
ZonalFlow
interpolate
powerLaw
powerLaw05
powerLawFixedM
windPressureLowRise
windPressureProfile
Expand Down
43 changes: 26 additions & 17 deletions IDEAS/Airflow/Multizone/BaseClasses/powerLaw.mo
Original file line number Diff line number Diff line change
Expand Up @@ -14,32 +14,31 @@ function powerLaw "Power law used in orifice equations"
protected
constant Real gamma(min=1) = 1.5
"Normalized flow rate where dphi(0)/dpi intersects phi(1)";
Real a
"Polynomial coefficient for regularized implementation of flow resistance";
Real b
"Polynomial coefficient for regularized implementation of flow resistance";
Real c
"Polynomial coefficient for regularized implementation of flow resistance";
Real d
"Polynomial coefficient for regularized implementation of flow resistance";
Real pi "Normalized pressure";
Real pi2 "Square of normalized pressure";
Real pi = dp/dp_turbulent "Normalized pressure";
Real pi2 = pi*pi "Square of normalized pressure";
algorithm
if (dp >= dp_turbulent) then
V_flow :=C *dp^m;
V_flow := if (dp >= dp_turbulent) then
C *dp^m
elseif (dp <= -dp_turbulent) then
V_flow :=-C*(-dp)^m;
-C*(-dp)^m
else
C *dp_turbulent^m * pi *
( gamma + pi2 *
( (1/8*m^2 - 3*gamma - 3/2*m + 35.0/8) + pi2 *
( (-1/4*m^2 + 3*gamma + 5/2*m - 21.0/4) + pi2 *
(1/8*m^2 - gamma - m + 15.0/8))));
/*
a := gamma;
b := 1/8*m^2 - 3*gamma - 3/2*m + 35.0/8;
c := -1/4*m^2 + 3*gamma + 5/2*m - 21.0/4;
d := 1/8*m^2 - gamma - m + 15.0/8;
pi := dp/dp_turbulent;
pi2 := pi*pi;
V_flow :=C *dp_turbulent^m * pi * ( a + pi2 * ( b + pi2 * ( c + pi2 * d)));
end if;
*/

annotation (smoothOrder=2,

annotation (
smoothOrder=2,
Inline=true,
Documentation(info="<html>
<p>
This model describes the mass flow rate and pressure difference relation
Expand Down Expand Up @@ -82,6 +81,16 @@ of a model.
revisions="<html>
<ul>
<li>
September 19, 2025, by Michael Wetter:<br/>
Refactored implementation to allow function to be inlined.
This leads to a 20% faster simulation of
<a href=\"modelica://IDEAS.Airflow.Multizone.Examples.OneOpenDoor\">
IDEAS.Airflow.Multizone.Examples.OneOpenDoor</a> compared to the previous
implementation.<br/>
This is for
<a href=\"https://github.com/ibpsa/modelica-ibpsa/issues/2043\">IBPSA, #2043</a>.
</li>
<li>
February 8, 2022, by Michael Wetter:<br/>
Changed to use <code>C</code> for volume flow coefficient (<i>C = V_flow/dp^m</i>),
and <code>k</code> for mass flow coefficient (<i>k = m_flow/dp^m</i>).
Expand Down
Loading