Skip to content
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
717c064
Removed overhead of windpressureprofile interpolation
kldjonge Jul 10, 2025
3a1a50c
Adjust floor heights and parameters in PPD12 models
kldjonge Jul 10, 2025
9096257
Add vertical height check (incl. floor thickness) and refer to incInt…
kldjonge Jul 10, 2025
2177259
Cleaned-up the code and parameter dialog of CrackOrOperableDoor
kldjonge Jul 10, 2025
19bce49
Test for a cavity in a internal ceiling component
kldjonge Jul 10, 2025
583a394
Update TwoStoreyBoxes.mo
kldjonge Jul 10, 2025
48d3d23
OutsideAir testmodel and .mos
kldjonge Jun 5, 2025
9973300
Update to documentation and .mos script for CavityInternalCeiling
kldjonge Jul 10, 2025
b4562c7
Updated .mos to actually show Vdir
kldjonge Jul 10, 2025
0980e96
Updated incInt for OuterWall and Window
kldjonge Jul 10, 2025
c528e70
Fix for assert of vertical height check
kldjonge Jul 18, 2025
21a64c9
Simplify n50_computed parameter assignment
kldjonge Aug 11, 2025
97a0410
Made hRelSurfBot parameter description consistent
kldjonge Aug 11, 2025
91c9af1
Merge branch 'open-ideas:master' into hfloorcheck
kldjonge Aug 13, 2025
eab7f88
CrackOrOperableDoor clean-up and revision notes
kldjonge Aug 13, 2025
03cbd90
Updated documentation for CrackOrOperableDoor.mo
kldjonge Aug 13, 2025
5364ffe
CrackOrOperableDoor make conditionals overrideable
kldjonge Aug 13, 2025
f3de2aa
Typo for MFtrans description
kldjonge Aug 13, 2025
9e07e30
New construction type for CavityInternalCeiling.mo
kldjonge Aug 13, 2025
0653ce9
Added line-breaks in documentation
kldjonge Aug 14, 2025
97a0cf6
TwoStoreyBoxes asserts, C_nominal, revision note
kldjonge Aug 18, 2025
2a088dd
changed hThCor description
kldjonge Aug 18, 2025
74ce453
Components.Examples package in alphabetical order
kldjonge Aug 18, 2025
f192404
Corrected description of CheckVH and added checkbox in dialog
kldjonge Aug 18, 2025
dddf894
Updated an assert message in InternalWall
kldjonge Aug 18, 2025
d4dfd0e
Use IDEAS Tilt types in stead of absolute angles
kldjonge Aug 18, 2025
7991d15
Revision note update and typo in assert statement
kldjonge Aug 18, 2025
2b537eb
Grouped vertical positioning parameters in dialog.
kldjonge Aug 18, 2025
2ec3cc1
Revision note for incInt and n50_computed
kldjonge Aug 18, 2025
d590e68
Better line-breaks and obsolete whitespace for CavityInternalWall
kldjonge Aug 18, 2025
9f67d4e
Deleted obsolete whitespace inPartialSurface.mo
kldjonge Aug 18, 2025
71b2594
grey-out hRelOpeBot when hasCavity=false
kldjonge Aug 18, 2025
5b5311e
Revision note for disabling checkVH in PPD12
kldjonge Aug 18, 2025
4e9ae6d
StructureExt_2Port.mo n50 declaration
kldjonge Aug 18, 2025
d121656
StructureExt_2Port.mo needs Dassl to run
kldjonge Aug 18, 2025
01f851b
OutsideAir revision note
kldjonge Aug 18, 2025
9c0e10d
Description for Radtable
kldjonge Aug 18, 2025
a8a7cd1
Code clean-up of OutsideAir.mo
kldjonge Aug 18, 2025
debaa35
Updated documentation and revisions
kldjonge Aug 18, 2025
421a241
Revision note line-breaks and fixed error in .MOS
kldjonge Aug 18, 2025
c4a853f
fix obsolete reference in LargeHorizontalOpening.mo
kldjonge Aug 18, 2025
88ce412
Set experiment tolerance in TwoStoreyBoxes
kldjonge Aug 18, 2025
ee3af87
Move TwoStoreyBoxes mos script to correct folder
jelgerjansen Aug 18, 2025
5d2bb3a
Update and add reference results
jelgerjansen Aug 18, 2025
55a535a
Remove override for openDoorOnePort parameter in InternalWall
kldjonge Aug 19, 2025
7c01c40
OutsideAir.mo revert unit definition
kldjonge Aug 19, 2025
4997246
HTML formatting changes
kldjonge Aug 19, 2025
82f2e33
CrackOrOperableDoor.mo reformatting
kldjonge Aug 19, 2025
8435b92
Avoid overriding openDoorOnePort, assert correct use of operable wind…
kldjonge Aug 19, 2025
eba386d
Fix triggered final modifier translation warning
kldjonge Aug 19, 2025
70b5f71
Update changelog to reference issue #1417
kldjonge Aug 19, 2025
474ea2a
component-level massflow output variable
kldjonge Aug 19, 2025
23200db
explicitly setting dh=0 for large openings in floors and ceilings
kldjonge Aug 19, 2025
85ff3d8
nCom=1 for small and horizontal gaps.
kldjonge Aug 19, 2025
aa2fc63
Revert "Update and add reference results"
jelgerjansen Aug 19, 2025
4d6b035
Merge branch 'master' into hfloorcheck
jelgerjansen Aug 19, 2025
050dd48
Fix syntax errors Klaas
jelgerjansen Aug 19, 2025
8c23316
Remove dpAB[2] from reference results TwoStoreyBoxes
jelgerjansen Aug 19, 2025
a8f6716
Update new reference results
jelgerjansen Aug 19, 2025
4ed1fe8
Remove second variable from pressure difference plot
kldjonge Aug 19, 2025
f24beb6
Update reference results IDEAS.Buildings.Examples.ZoneExample
jelgerjansen Aug 20, 2025
3181109
Move TwoStoreyBoxes model and script to Buildings.Components.Examples
jelgerjansen Aug 20, 2025
ea31857
Increase time_out of TwinHouses 1-port and 2-port examples
jelgerjansen Aug 20, 2025
240b45c
Change solver BuildingO5_Exp1_1Port to cvode to decrease CPU time and…
jelgerjansen Aug 20, 2025
3224ec4
Put TwinHouses temporarily as first unit test to verify that this works
jelgerjansen Aug 20, 2025
658b16e
Revert "Put TwinHouses temporarily as first unit test to verify that …
jelgerjansen Aug 20, 2025
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
73 changes: 35 additions & 38 deletions IDEAS/Airflow/Multizone/CrackOrOperableDoor.mo
Original file line number Diff line number Diff line change
Expand Up @@ -16,35 +16,34 @@ model CrackOrOperableDoor
Modelica.Media.Interfaces.PartialMedium "Medium in the component"
annotation (choices(
choice(redeclare package Medium = IDEAS.Media.Air "Moist air")));

parameter Modelica.Units.SI.Velocity vZer=0.001
"Minimum velocity to prevent zero flow. Recommended: 0.001";
parameter Modelica.Units.SI.Length wOpe=0.9 "Width of opening"
annotation (Dialog(group="Geometry"));
parameter Modelica.Units.SI.Length hOpe=2.1 "Height of opening"
annotation (Dialog(group="Geometry"));

parameter BoundaryConditions.Types.InterZonalAirFlow interZonalAirFlowType
"Interzonal air flow type";
final parameter Modelica.Units.SI.PressureDifference dpCloRat(displayUnit="Pa")=50
"Pressure drop at rating condition of closed door"
annotation (Dialog(group="Rating conditions"));

parameter Modelica.Units.SI.Length h_b1 "Height at port b1 (hasCavity=false)";
parameter Modelica.Units.SI.Length h_b2 = 0 "Height at port b2(hasCavity=false)";
parameter Modelica.Units.SI.Length h_a1 = 0 "Height at port a1(hasCavity=false)";
parameter Modelica.Units.SI.Length h_a2 "Height at port a2(hasCavity=false)";
parameter Modelica.Units.SI.Angle inc=Modelica.Constants.pi/2 "inclination angle (vertical=pi/2)";
parameter Modelica.Units.SI.Area A_q50 "Surface area for leakage computation (closed door)" annotation (Dialog(group="Crack or Closed door"));
parameter Real q50(unit="m3/(h.m2)") "Surface air tightness" annotation (Dialog(group="Crack or Closed door"));
parameter Modelica.Units.SI.Length wOpe=0.9 "Width of opening" annotation (Dialog(group="Open door"));
parameter Modelica.Units.SI.Length hOpe=2.1 "Height of opening" annotation (Dialog(group="Open door"));
parameter Integer nCom=if abs(hOpe*sin(inc)) < 0.01 then 2 else max(2,integer(abs(hOpe*sin(inc))/4)) "Number of compartments for the discretization" annotation (Dialog(group="Open door"));

parameter Modelica.Units.SI.Length h_b1 "Height of crack at port b1 (hasCavity=false), center of conected zone is 0" annotation (Dialog(group="Density Column Heights"));
parameter Modelica.Units.SI.Length h_b2 = 0 "Height of crack at port b2(hasCavity=false), center of conected zone is 0" annotation (Dialog(group="Density Column Heights"));
parameter Modelica.Units.SI.Length h_a1 = 0 "Height of crack at port a1(hasCavity=false), center of conected zone is 0" annotation (Dialog(group="Density Column Heights"));
parameter Modelica.Units.SI.Length h_a2 "Height at of crack port a2(hasCavity=false), center of conected zone is 0" annotation (Dialog(group="Density Column Heights"));

parameter Modelica.Units.SI.Length hA=(h_a1 + h_b2)/2
"Height of reference pressure at port a1 for opening (hasCavity=true) model";
"Height of reference pressure at port a1 for opening (hasCavity=true) model, opening starting height is 0"
annotation (Dialog(group="Density Column Heights"));
parameter Modelica.Units.SI.Length hB=(h_a2 + h_b1)/2
"Height of reference pressure at port b1 for opening (hasCavity=true) model";
"Height of reference pressure at port b1 for opening (hasCavity=true) model, opening starting height is 0"
annotation (Dialog(group="Density Column Heights"));

final parameter Modelica.Units.SI.PressureDifference dpCloRat(displayUnit="Pa")=50
"Pressure drop at rating condition of closed door"
annotation (Dialog(group="Rating conditions"));
final parameter Real CDCloRat(min=0, max=1)=1
"Discharge coefficient at rating conditions of closed door"
annotation (Dialog(group="Rating conditions"));
parameter Modelica.Units.SI.Area A_q50 "Surface area for leakage computation (closed door)";
parameter Real q50(unit="m3/(h.m2)") "Surface air tightness";


final parameter Modelica.Units.SI.Area LClo(min=0) = ((q50*A_q50/3600)/(dpCloRat)^mClo)/(((dpCloRat)^(0.5-mClo))*sqrt(2/rho_default))
"Effective leakage area of internal wall (when door is fully closed)"
Expand All @@ -59,23 +58,27 @@ model CrackOrOperableDoor
parameter Real mClo= 0.65 "Flow exponent for crack or crack of closed door"
annotation (Dialog(group="Crack or Closed door"));

parameter Integer nCom=if abs(hOpe*sin(inc)) < 0.01 then 2 else max(2,integer(abs(hOpe*sin(inc))/4)) "Number of compartments for the discretization";

parameter Boolean useDoor = false "=true, to use operable door instead of a crack";
parameter Boolean use_y = true "=true, to use control input";
parameter Boolean openDoorOnePort = false "Sets whether a door is open or closed in one port configuration";
parameter Boolean useDoor = false "=true, to use operable door instead of a crack" annotation (Dialog(group="Open door"));
parameter Boolean use_y = true "=true, to use control input" annotation (Dialog(group="Open door"));
parameter Boolean openDoorOnePort = false "Sets whether a door is open or closed in one port configuration" annotation (Dialog(group="Open door"));

parameter Modelica.Units.SI.PressureDifference dp_turbulent(
min=0,
displayUnit="Pa") = 0.01
"Pressure difference where laminar and turbulent flow relation coincide. Recommended: 0.01";
"Pressure difference where laminar and turbulent flow relation coincide. Recommended: 0.01" annotation (Dialog(tab="Advanced",group="Crack model regularisation"));

parameter Modelica.Units.SI.PressureDifference dp_turbulent_ope(min=0,displayUnit="Pa") = (MFtrans/(rho_default*(CDOpe * hOpe*wOpe * sqrt(2/rho_default))))^(1/mOpe)
if useDoor and interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts "Pressure difference where laminar and turbulent flow relation coincide for large cavities";
parameter Modelica.Units.SI.MassFlowRate MFtrans=(hOpe*wOpe)*VItrans*REtrans/DOpe if useDoor and interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts "Recommended massflowrate used for reguralisation";
parameter Modelica.Units.SI.Length DOpe=4*hOpe*wOpe/(2*hOpe+2*wOpe) if useDoor and interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts "Estimated hydraulic diameter of the opening - 4*A/Perimeter";
constant Modelica.Units.SI.ReynoldsNumber REtrans=30 if useDoor and interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts "Assumed Reynolds number at transition";
constant Modelica.Units.SI.DynamicViscosity VItrans=0.0000181625 if useDoor and interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts "Assumed dynamic viscosity of air at transition";
if useDoor and interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts "Pressure difference where laminar and turbulent flow relation coincide for large cavities"
annotation (Dialog(tab="Advanced",group="Door model regularisation"));
parameter Modelica.Units.SI.MassFlowRate MFtrans=(hOpe*wOpe)*VItrans*REtrans/DOpe if useDoor and interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts "Recommended massflowrate used for reguralisation"
annotation (Dialog(tab="Advanced",group="Door model regularisation"));
parameter Modelica.Units.SI.Length DOpe=4*hOpe*wOpe/(2*hOpe+2*wOpe) if useDoor and interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts "Estimated hydraulic diameter of the opening - 4*A/Perimeter"
annotation (Dialog(tab="Advanced",group="Door model regularisation"));
constant Modelica.Units.SI.ReynoldsNumber REtrans=30 if useDoor and interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts "Assumed Reynolds number at transition"
annotation (Dialog(tab="Advanced",group="Door model regularisation"));
constant Modelica.Units.SI.DynamicViscosity VItrans=0.0000181625 if useDoor and interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts "Assumed dynamic viscosity of air at transition"
annotation (Dialog(tab="Advanced",group="Door model regularisation"));

final parameter Medium.ThermodynamicState state_default=Medium.setState_pTX(
T=Medium.T_default,
Expand Down Expand Up @@ -151,7 +154,7 @@ model CrackOrOperableDoor
hOpe=hOpe,
dpCloRat=dpCloRat,
LClo=LClo,
vZer=MFtrans/(rho_default*doo.wOpe*doo.hOpe))
vZer=MFtrans/(rho_default*doo.wOpe*doo.hOpe)/1000)
if useDoor and interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts annotation (
Placement(visible = true, transformation(origin={-2,0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
IDEAS.Fluid.Sources.Boundary_pT bou(
Expand All @@ -165,8 +168,7 @@ model CrackOrOperableDoor
"Door constantly opened" annotation (
Placement(visible = true, transformation(origin = {-54, -14}, extent = {{-6, -6}, {6, 6}}, rotation = 0)));

parameter Modelica.Units.SI.Angle inc=Modelica.Constants.pi/2
"inclination angle (vertical=pi/2)";

initial equation
assert( not (interZonalAirFlowType <> IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts and useDoor and use_y),
"In " +getInstanceName() + ": Cannot use a controllable door unless interZonalAirFlowType == TwoPorts.");
Expand Down Expand Up @@ -223,11 +225,6 @@ There is no support for open doors when using only a single fluid port.
revisions="<html>
<ul>
<li>
February 4, 2025, by Jelger Jansen:<br/>
Added <code>Modelica.Units.</code> to one or multiple parameter(s) due to the removal of <code>import</code> in IDEAS/package.mo.
See <a href=\"https://github.com/open-ideas/IDEAS/issues/1415\">#1415</a> .
</li>
<li>
January 30, 2025, by Klaas De Jonge:<br/>
Changed wrong parameter declaration <code>doo.vZer</code> to have compatible units.
See <a href=\"https://github.com/open-ideas/IDEAS/issues/1402\">#1402</a>.
Expand Down
43 changes: 43 additions & 0 deletions IDEAS/Buildings/Components/Examples/CavityInternalCeiling.mo
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
within IDEAS.Buildings.Components.Examples;
model CavityInternalCeiling
"Illustration of an internal ceiling with an operable cavity"
extends IDEAS.Buildings.Examples.ZoneExample(
sim( interZonalAirFlowType = IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts),internalWall(
redeclare parameter
IDEAS.Buildings.Validation.Data.Constructions.LightRoof
constructionType,
incOpt=3, hasCavity = true),
zone1(hFloor=zone.hFloor + zone.hZone + 0.15));
equation

annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(
coordinateSystem(preserveAspectRatio=false)),
experiment(
StopTime=108000,
Interval=720,
Tolerance=1e-06,
__Dymola_Algorithm="Dassl"),
__Dymola_Commands(file="Resources/Scripts/Dymola/Buildings/Components/Examples/CavityInternalCeiling.mos"
"Simulate and plot"),
Documentation(info="<html>
<p>
This example contains an example use of an opening in an internal ceiling. Note that it requires TwoPorts interzonal air flow.
</p>
</html>", revisions="<html>
<ul>
<li>
February 05 2025, Klaas De Jonge<br/>
First implementation.
</li>
</ul>
</html>"),
__Dymola_experimentSetupOutput,
__Dymola_experimentFlags(
Advanced(
EvaluateAlsoTop=false,
GenerateAnalyticJacobian=true,
OutputModelicaCode=false),
Evaluate=true,
OutputCPUtime=true,
OutputFlatModelica=false));
end CavityInternalCeiling;
4 changes: 3 additions & 1 deletion IDEAS/Buildings/Components/Examples/TwoStoreyBoxes.mo
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ model TwoStoreyBoxes "Model with two zones on different floors, one zone above t
inner BoundaryConditions.SimInfoManager sim(interZonalAirFlowType=IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts,n50=1) annotation (Placement(transformation(extent={{-100,80},{-80,100}})));

IDEAS.Buildings.Components.RectangularZoneTemplate Level(
hFloor=5,
Medium(extraPropertiesNames={"CO2"}),
hFloor=5.25,
T_start=291.15,
bouTypA=IDEAS.Buildings.Components.Interfaces.BoundaryType.OuterWall,
bouTypB=IDEAS.Buildings.Components.Interfaces.BoundaryType.OuterWall,
Expand All @@ -25,6 +26,7 @@ model TwoStoreyBoxes "Model with two zones on different floors, one zone above t
annotation (Placement(transformation(extent={{-40,20},{-20,40}})));

IDEAS.Buildings.Components.RectangularZoneTemplate Groundfloor(
Medium(extraPropertiesNames={"CO2"}),
T_start=291.15,
bouTypA=IDEAS.Buildings.Components.Interfaces.BoundaryType.OuterWall,
bouTypB=IDEAS.Buildings.Components.Interfaces.BoundaryType.OuterWall,
Expand Down
1 change: 1 addition & 0 deletions IDEAS/Buildings/Components/Examples/package.order
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ AirflowBoxModel
BeamRadiationOnFloor
BuildingShadeExample
CavityInternalWall
CavityInternalCeiling
CavityWalls
FacadeShadeExample
HorizontalFinExample
Expand Down
6 changes: 3 additions & 3 deletions IDEAS/Buildings/Components/Interfaces/PartialSurface.mo
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ partial model PartialSurface "Partial model for building envelope component"

final parameter Modelica.Units.SI.Length hzone_a( fixed=false);//connected with propsbus in inital equation
final parameter Modelica.Units.SI.Length hAbs_floor_a( fixed=false);
parameter Modelica.Units.SI.Length hVertical=if IDEAS.Utilities.Math.Functions.isAngle(inc,IDEAS.Types.Tilt.Floor) or IDEAS.Utilities.Math.Functions.isAngle(inc,IDEAS.Types.Tilt.Ceiling) then 0 else hzone_a "Vertical surface height, height of the surface projected to the vertical, 0 for floors and ceilings" annotation(Evaluate=true);
parameter Modelica.Units.SI.Length hRelSurfBot_a= if IDEAS.Utilities.Math.Functions.isAngle(inc,IDEAS.Types.Tilt.Ceiling) then hzone_a else 0 "Height between the lowest point of the surface (bottom) and the floor level of the zone connected at propsBus_a"
parameter Modelica.Units.SI.Length hVertical=if IDEAS.Utilities.Math.Functions.isAngle(incInt,IDEAS.Types.Tilt.Floor) or IDEAS.Utilities.Math.Functions.isAngle(incInt,IDEAS.Types.Tilt.Ceiling) then 0 else hzone_a "Vertical surface height, height of the surface projected to the vertical, 0 for floors and ceilings" annotation(Evaluate=true);
parameter Modelica.Units.SI.Length hRelSurfBot_a= if IDEAS.Utilities.Math.Functions.isAngle(incInt,IDEAS.Types.Tilt.Ceiling) then hzone_a else 0 "Height between the lowest point of the surface (bottom) and the floor level of the zone connected at propsBus_a (e.g. 0 for walls at floor level and floors.)"
annotation(Evaluate=true);
final parameter Modelica.Units.SI.Length Habs_surf=hAbs_floor_a+hRelSurfBot_a+(hVertical/2) "Absolute height of the middle of the surface, can be used to check the heights after initialisation";

Expand Down Expand Up @@ -102,7 +102,7 @@ partial model PartialSurface "Partial model for building envelope component"
h_b1=-0.5*hzone_a + 0.75*hVertical + hRelSurfBot_a,
h_a2=-0.5*hzone_a + 0.25*hVertical + hRelSurfBot_a,
interZonalAirFlowType = sim.interZonalAirFlowType,
inc=inc) if add_door and sim.interZonalAirFlowType <> IDEAS.BoundaryConditions.Types.InterZonalAirFlow.None annotation (
inc=incInt) if add_door and sim.interZonalAirFlowType <> IDEAS.BoundaryConditions.Types.InterZonalAirFlow.None annotation (
Placement(visible = true, transformation(origin = {30, -52}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Blocks.Sources.RealExpression AExp(y = A) "Area expression" annotation(
Placement(transformation(origin = {0, 20}, extent = {{-10, -10}, {10, 10}})));
Expand Down
2 changes: 1 addition & 1 deletion IDEAS/Buildings/Components/Interfaces/PartialZone.mo
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ model PartialZone "Building zone model"

parameter Real n50(unit="1/h",min=0.01)= sim.n50 "n50 value for this zone"
annotation(Dialog(tab="Airflow", group="Airtightness"));
final parameter Real n50_computed(unit="1/h",min=0.01) = if use_custom_n50 and not setq50.allSurfacesCustom then n50 else n50_int "Computed n50 value";
final parameter Real n50_computed(unit="1/h",min=0.01) = n50_int "Computed n50 value";
parameter Boolean allowFlowReversal=true
"= true to allow flow reversal in zone, false restricts to design direction (port_a -> port_b)."
annotation(Dialog(tab="Airflow", group="Air model"));
Expand Down
Loading
Loading