Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue3492 direct evaporative cooler #3755

Draft
wants to merge 107 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
a432926
Merge pull request #20 from lbl-srg/master
karthikeyad-pnnl Sep 1, 2020
3b2b6ca
Merge remote-tracking branch 'upstream/master'
karthikeyad-pnnl Jun 7, 2021
7f9c083
Merge remote-tracking branch 'upstream/master'
karthikeyad-pnnl Sep 15, 2021
b8b08fe
Merge remote-tracking branch 'upstream_local/master'
karthikeyad-pnnl Oct 6, 2021
53454bf
Merge branch 'lbl-srg:master' into master
karthikeyad-pnnl Oct 25, 2021
45d798b
Merge branch 'lbl-srg:master' into master
karthikeyad-pnnl Nov 9, 2021
ec99cc6
Merge branch 'lbl-srg:master' into master
karthikeyad-pnnl Jan 26, 2022
b5ae2ff
Merge branch 'lbl-srg:master' into master
karthikeyad-pnnl Feb 14, 2022
bc9857c
Merge branch 'lbl-srg:master' into master
karthikeyad-pnnl Jul 15, 2022
e59ff2a
Merge remote-tracking branch 'upstream/master'
karthikeyad-pnnl Aug 2, 2022
7b5cf41
Merge pull request #79 from lbl-srg/master
karthikeyad-pnnl Jun 27, 2023
bdaf8e0
Merge branch 'lbl-srg:master' into master
karthikeyad-pnnl Jul 11, 2023
50476d0
Merge branch 'lbl-srg:master' into master
karthikeyad-pnnl Aug 29, 2023
2286744
Added direct evaporative cooler blocks to Buildings library
karthikeyad-pnnl Aug 30, 2023
15f7242
Merge branch 'lbl-srg:master' into issue3492_DirectEvaporativeCooler
karthikeyad-pnnl Aug 30, 2023
82d4872
Change path for missing blocks.
lzwang26 Aug 31, 2023
ab30959
Change istance names of the models.
lzwang26 Aug 31, 2023
77555e3
Add comments for variables and parameters in model 'DirectCalculations'
lzwang26 Sep 1, 2023
e80f545
Clean block 'DirectCalculations' according to the conventions.
lzwang26 Sep 1, 2023
756a60f
Clean the model 'Direct'
lzwang26 Sep 2, 2023
76ece54
Add documentations and icons
lzwang26 Sep 6, 2023
f5af7c1
Add documentations.
lzwang26 Sep 9, 2023
c36f05d
Merge pull request #85 from lzwang26/issue3492_DirectEvaporativeCooler
karthikeyad-pnnl Sep 12, 2023
8e12210
Added validation scripts and modified validation model for direct eva…
karthikeyad-pnnl Sep 12, 2023
d24661e
Updated resources and scripts for validation models
karthikeyad-pnnl Sep 12, 2023
23ba270
Merge pull request #1 from karthikeyad-pnnl/issue3492_DirectEvaporati…
lzwang26 Sep 14, 2023
a9346c9
Further clean up the model 'Xi_TDryBulTWetBul'
lzwang26 Sep 14, 2023
f33ec8a
Further clean up the model 'DirectCalculations'
lzwang26 Sep 14, 2023
663f34d
Further clean up the model 'Direct'
lzwang26 Sep 14, 2023
1a538a5
Clean up the model 'Validation.DirectCalculations'
lzwang26 Sep 14, 2023
f3764ee
Clean up the model 'Validation.DirectCalculations'
lzwang26 Sep 14, 2023
d282647
Clean up the model 'Validation.Direct'
lzwang26 Sep 14, 2023
e91ab53
Add documentation for the direct calculation validation.
lzwang26 Sep 14, 2023
4e7d5b1
Finalized the documentations for all the models.
lzwang26 Sep 14, 2023
7346572
Merge branch 'issue3492_DirectEvaporativeCooler' of https://github.co…
lzwang26 Sep 14, 2023
bf409d6
Correct the path of DirectCalculations.mos
lzwang26 Sep 15, 2023
449ec7d
Add the script file.
lzwang26 Sep 15, 2023
697971d
Merge pull request #87 from lzwang26/issue3492_DirectEvaporativeCooler
karthikeyad-pnnl Sep 16, 2023
35911fb
Added files for indirect dry evaporative cooler
karthikeyad-pnnl Sep 19, 2023
54e897c
Updated models and added validation script and reference data
karthikeyad-pnnl Sep 20, 2023
42c8673
Merge pull request #2 from karthikeyad-pnnl/issue3492_DirectEvaporati…
lzwang26 Sep 20, 2023
5419ec8
Revise the documentation of 'Baseclasses.Validation.DirectCalculations'
lzwang26 Sep 20, 2023
6a6fe59
Revise the documentation of 'Validation.Direct'
lzwang26 Sep 20, 2023
689f601
Clean up IndirectDry model
lzwang26 Sep 20, 2023
8c252ba
Clean up Validation.IndirectDry
lzwang26 Sep 20, 2023
f898a2b
Add documentation and revision for 'IndirectDry'
lzwang26 Sep 20, 2023
ddbd8dd
Add documentations for 'Validation.IndirectDry'
lzwang26 Sep 20, 2023
56c0e2b
Correct some errors.
lzwang26 Sep 21, 2023
98b324c
Merge pull request #89 from lzwang26/issue3492_DirectEvaporativeCooler
karthikeyad-pnnl Sep 21, 2023
b12878d
Added new clas for indirect wet cooler
karthikeyad-pnnl Sep 22, 2023
f51c0be
Backing files up
karthikeyad-pnnl Sep 27, 2023
8eda1b9
Backing up files
karthikeyad-pnnl Sep 29, 2023
a552549
Updated formatting and documentation
karthikeyad-pnnl Sep 29, 2023
971cfb8
Updated package order files and added default component names
karthikeyad-pnnl Sep 29, 2023
e72321b
Addded tolerances to validation models
karthikeyad-pnnl Sep 29, 2023
1b40511
Added unit test results
karthikeyad-pnnl Sep 30, 2023
3d3f7e0
Merge pull request #2 from karthikeyad-pnnl/issue3492_DirectEvaporati…
cerrinamouchref-pnnl Oct 2, 2023
ca28a08
updated files to address comments on PR
cerrinamouchref-pnnl Oct 3, 2023
4921db9
Updated file paths for validation reference data
karthikeyad-pnnl Oct 4, 2023
9a3e1c2
Added pending unit test results
karthikeyad-pnnl Oct 4, 2023
808cabf
Reverted files that did not have any changes in current PR
karthikeyad-pnnl Oct 4, 2023
d6728b4
Reverted file that was not being changed through PR
karthikeyad-pnnl Oct 4, 2023
e0d4237
Updated Naming to address comments
cerrinamouchref-pnnl Oct 4, 2023
b4bb7a3
Merge pull request #97 from cerrinamouchref-pnnl/issue3492_DirectEvap…
karthikeyad-pnnl Oct 5, 2023
683685b
changes to validation models based on PR comments
cerrinamouchref-pnnl Oct 6, 2023
373c45d
Changed instance names as per comment on PR
karthikeyad-pnnl Oct 9, 2023
4f4aba3
Merge branch 'issue3492_DirectEvaporativeCooler' into issue3492_Direc…
karthikeyad-pnnl Oct 9, 2023
88f5deb
Removed unnecessary changes
karthikeyad-pnnl Oct 9, 2023
86f3e0d
Removed unnecessary formatting changes
karthikeyad-pnnl Oct 9, 2023
b62fe5c
Merge pull request #98 from karthikeyad-pnnl/issue3492_DirectEvaporat…
karthikeyad-pnnl Oct 9, 2023
32d717a
Addressed comment 'Dry bulb temperature of the inlet air'
lzwang26 Jan 16, 2024
a1fd359
Address comments 'Dry bulb temperature of the primary inlet air'
lzwang26 Jan 16, 2024
925e73d
Delte algorithm assignments
lzwang26 Jan 26, 2024
0a72565
Change equation to connect in Baseclasses.DirectCalculations.mo
lzwang26 Jan 26, 2024
a3fbada
delete visible = true in Baseclasses.IndirectWetCalculations.mo
lzwang26 Jan 26, 2024
7f31be3
Updated unit test results
lzwang26 Jan 31, 2024
6b01c91
Modified DirectCalculations.mo
lzwang26 Jan 31, 2024
c48211b
Merge pull request #116 from lzwang26/issue3492_DirectEvaporativeCooler
karthikeyad-pnnl Feb 20, 2024
6082fe7
Merge pull request #123 from lbl-srg/issue3492_DirectEvaporativeCooler
karthikeyad-pnnl Feb 20, 2024
17c66d1
Removed redundant variable
karthikeyad-pnnl Feb 20, 2024
6aea34b
Merge branch 'issue3492_DirectEvaporativeCooler' of github.com:karthi…
karthikeyad-pnnl Feb 20, 2024
ff028c7
Moved validation instance to start of model
karthikeyad-pnnl Feb 20, 2024
0229f85
Updated documentation sections for all models
karthikeyad-pnnl Feb 20, 2024
972e798
Merge pull request #3543 from karthikeyad-pnnl/issue3492_DirectEvapor…
JayHuLBL Mar 28, 2024
cd7b2c2
Merge branch 'master' into issue3492_DirectEvaporativeCooler
JayHuLBL Mar 28, 2024
edb384e
improving text
JayHuLBL Mar 29, 2024
990fcfa
improved text [ci skip]
JayHuLBL Mar 29, 2024
d4a842a
changed text format [ci skip]
JayHuLBL Apr 8, 2024
3aa436f
Updated models a per comments on PR #3755. Added missing comments to …
karthikeyad-pnnl May 2, 2024
a7a895b
Updated unit test results
karthikeyad-pnnl May 2, 2024
aaebf5e
Merge pull request #3820 from karthikeyad-pnnl/issue3492_DirectEvapor…
JayHuLBL Aug 22, 2024
5d6ad17
Merge branch 'issue3492_DirectEvaporativeCooler' of https://github.co…
JayHuLBL Aug 22, 2024
4e4162f
Merge branch 'master' into issue3492_DirectEvaporativeCooler
JayHuLBL Aug 22, 2024
54ad1ea
merged master, corrected units
JayHuLBL Aug 23, 2024
7c47337
Removed BOMs
JayHuLBL Aug 23, 2024
6abf772
corrected results plots
JayHuLBL Aug 23, 2024
bee6fa6
added start time
JayHuLBL Aug 23, 2024
82516f2
changed the file permission
JayHuLBL Aug 23, 2024
2fd64d2
Updated extended baseclasses and state measurements as per the commen…
karthikeyad-pnnl Nov 1, 2024
f393bf5
Merge branch 'issue3492_DirectEvaporativeCooler' of github.com:lbl-sr…
karthikeyad-pnnl Nov 1, 2024
4c71fcd
Merge branch 'lbl-srg-issue3492_DirectEvaporativeCooler' into issue34…
karthikeyad-pnnl Nov 1, 2024
486ba50
Added pass-through block to overcome error caused by unit mismatch
karthikeyad-pnnl Nov 21, 2024
3ae477f
Made simulation time uniform across all validation models
karthikeyad-pnnl Nov 21, 2024
0a94a5d
Updated unit test results
junkewang001 Nov 22, 2024
6b66f4a
Changed display unit parameters to unit parameters
karthikeyad-pnnl Nov 22, 2024
7628455
Merge pull request #4056 from karthikeyad-pnnl/issue3492_DirectEvapor…
JayHuLBL Nov 25, 2024
4f64da5
updated reference
JayHuLBL Nov 25, 2024
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
within Buildings.Fluid.Humidifiers.EvaporativeCoolers.Baseclasses;
block DirectCalculations
"Calculates the water vapor mass flow rate of a direct evaporative coolder"

replaceable package Medium = Modelica.Media.Interfaces.PartialMedium
"Medium";

parameter Modelica.Units.SI.Area padAre
"Area of the rigid media evaporative pad";

parameter Modelica.Units.SI.Length dep
"Depth of the rigid media evaporative pad";

Real eff(
final unit="1")
"Evaporative humidifier efficiency";

Buildings.Controls.OBC.CDL.Interfaces.RealInput V_flow(
final unit="m3/s",
final quantity = "VolumeFlowRate")
"Air volume flow rate"
annotation (Placement(transformation(origin={-120,-20},extent={{-20,-20},{20,20}}),
iconTransformation(origin={-120,-20}, extent={{-20,-20},{20,20}})));

Buildings.Controls.OBC.CDL.Interfaces.RealInput TDryBulIn(
final unit="K",
displayUnit="degC",
final quantity="ThermodynamicTemperature")
"Dry bulb temperature of the inlet air"
annotation (Placement(transformation(origin={-120,60},extent={{-20,-20},{20,20}}),
iconTransformation(origin={-120,20}, extent={{-20,-20},{20,20}})));

Buildings.Controls.OBC.CDL.Interfaces.RealInput TWetBulIn(
final unit="K",
displayUnit="degC",
final quantity="ThermodynamicTemperature")
"Wet bulb temperature of the inlet air"
annotation (Placement(transformation(origin={-120,20}, extent={{-20,-20},{20,20}}),
iconTransformation(origin={-120,60}, extent={{-20,-20},{20,20}})));

Buildings.Controls.OBC.CDL.Interfaces.RealInput p(
final unit="Pa",
final quantity="Pressure")
"Pressure"
annotation (Placement(transformation(origin={-120,-60},extent={{-20,-20},{20,20}}),
iconTransformation(origin={-120,-60}, extent={{-20,-20},{20,20}})));

Buildings.Controls.OBC.CDL.Interfaces.RealOutput dmWat_flow(
final unit="kg/s",
final quantity="MassFlowRate")
"Water vapor mass flow rate difference between inlet and outlet"
annotation (Placement(transformation(origin={120,0}, extent={{-20,-20},{20,20}}),
iconTransformation(origin={120,0}, extent={{-20,-20},{20,20}})));

Buildings.Fluid.Humidifiers.EvaporativeCoolers.Baseclasses.Xi_TDryBulTWetBul
XiOut(redeclare package Medium = Medium)
"Water vapor mass fraction at the outlet";

Buildings.Fluid.Humidifiers.EvaporativeCoolers.Baseclasses.Xi_TDryBulTWetBul
XiIn(redeclare package Medium = Medium)
"Water vapor mass fraction at the inlet";

Modelica.Units.SI.Velocity vel
"Air velocity";

Modelica.Units.SI.ThermodynamicTemperature TDryBulOut(
displayUnit="degC")
"Dry bulb temperature of the outlet air";

protected
parameter Medium.ThermodynamicState sta_default=Medium.setState_pTX(
T=Medium.T_default,
p=Medium.p_default,
X=Medium.X_default)
"Default state of medium";

parameter Modelica.Units.SI.Density rho_default=Medium.density(sta_default)
"Density, used to compute fluid volume";

parameter Real effCoe[11] = {0.792714, 0.958569, -0.25193, -1.03215, 0.0262659,
0.914869, -1.48241, -0.018992, 1.13137, 0.0327622,
-0.145384}
"Coefficients for evaporative medium efficiency calculation";

equation
vel =abs(V_flow)/padAre;
eff = effCoe[1] + effCoe[2]*(dep) + effCoe[3]*(vel) + effCoe[4]*(dep^2) +
effCoe[5]*(vel^2) + effCoe[6]*(dep*vel) + effCoe[7]*(vel*dep^2) +
effCoe[8]*(dep*vel^3) + effCoe[9]*(dep^3*vel) + effCoe[10]*(vel^3*dep^2) +
effCoe[11]*(dep^3*vel^2);
TDryBulOut = TDryBulIn - eff*(TDryBulIn - TWetBulIn);
TDryBulIn = XiIn.TDryBul;
TWetBulIn = XiIn.TWetBul;
p = XiIn.p;
TWetBulIn = XiOut.TWetBul;
p = XiOut.p;
TDryBulOut = XiOut.TDryBul;
dmWat_flow = (XiOut.Xi[1] - XiIn.Xi[1])*V_flow*rho_default;

annotation (Documentation(info="<html>
<p>
Block that calculates the water vapor mass flow rate addition in the
direct evaporative cooler component. The calculations are based on the direct
evaporative cooler model in the Engineering Reference document from EnergyPlus v23.1.0.
</p>
<p>
The effectiveness of the evaporative media <code>eff</code> is calculated using
the curve
</p>
<p align=\"center\" style=\"font-style:italic;\">
eff = effCoe[1] + effCoe[2]*(dep) + effCoe[3]*(vel) + effCoe[4]*(dep<sup>2</sup>) +
effCoe[5]*(vel<sup>2</sup>) + effCoe[6]*(dep*vel) + effCoe[7]*(vel*dep<sup>2</sup>) +
effCoe[8]*(dep*vel<sup>3</sup>) + effCoe[9]*(dep<sup>3</sup>*vel) + effCoe[10]*(vel<sup>3</sup>*dep<sup>2</sup>) +
effCoe[11]*(dep<sup>3</sup>*vel<sup>2</sup>)
</p>
<p>
where <code>effCoe[:]</code> is the evaporative efficiency coefficients for the
CelDek rigid media pad used in evaporative coolers. It is currently protected from
modification by the user, but can be modified for other materials within this class
by advanced users. <code>dep</code> is the depth of the evaporative media, and
<code>vel</code> is the velocity of the fluid media which is calculated from the volume flowrate
<code>V_flow</code> and evaporative media cross-sectional area <code>padAre</code>
using
</p>
<p align=\"center\" style=\"font-style:italic;\">
vel = V_flow/padAre
</p>
<p>
The outlet air drybulb temperature <code>TDryBulOut</code> is calculated using
the heat-balance equation
</p>
<p align=\"center\" style=\"font-style:italic;\">
TDryBulOut = TDryBulIn - eff*(TDryBulIn - TWetBulIn)
</p>
<p>
where <code>TDryBulIn</code> is the inlet air drybulb temperature and
<code>TWetBulIn</code> is the inlet air wetbulb temperature.
</p>
<p>
The humidity ratio difference between the inlet and outlet air is used to
calculate the added mass of water vapor <code>dmWat_flow</code>, with the humidity
ratios being determined from psychrometric relationships, while assuming the
outlet air wetbulb temperature is the same as inlet air wetbulb temperature.
</p>
</html>", revisions="<html>
<ul>
<li>
September 14, 2023 by Cerrina Mouchref, Karthikeya Devaprasad, Lingzhe Wang:<br/>
First implementation.
</li>
</ul>
</html>"), Icon(graphics={
Text(extent={{-152,144},{148,104}}, textString="%name", textColor={0,0,255}),
Rectangle(extent={{-100,100},{100,-100}}, lineColor={0,0,0},
fillColor={255,255,255}, fillPattern=FillPattern.Solid)}));
end DirectCalculations;
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
within Buildings.Fluid.Humidifiers.EvaporativeCoolers.Baseclasses;
block IndirectWetCalculations
"Calculates the heat transfer in an indirect wet evaporative cooler"

parameter Real maxEff(
unit="1")
"Maximum efficiency of heat exchanger coil";

parameter Real floRat(
unit="1")
"Coil flow efficency ratio of actual to maximum heat transfer rate";

Buildings.Controls.OBC.CDL.Interfaces.RealInput VPri_flow(
final unit="m3/s",
final quantity = "VolumeFlowRate")
"Primary air volume flow rate"
annotation (Placement(transformation(origin={-120,-60}, extent={{-20,-20},{20,20}}),
iconTransformation(origin={-140,-60}, extent={{-20,-20},{20,20}})));

Buildings.Controls.OBC.CDL.Interfaces.RealInput VSec_flow(
final unit="m3/s",
final quantity = "VolumeFlowRate")
"Secondary air volume flow rate"
annotation (Placement(transformation(origin={-120,-100}, extent={{-20,-20},{20,20}}),
iconTransformation(origin={-140,-100}, extent={{-20,-20},{20,20}})));

Buildings.Controls.OBC.CDL.Interfaces.RealInput TDryBulPriIn(
final unit="K",
displayUnit="degC",
final quantity="ThermodynamicTemperature")
"Dry bulb temperature of the primary inlet air"
annotation (Placement(transformation(origin={-120,100}, extent={{-20,-20},{20,20}}),
iconTransformation(origin={-140,100}, extent={{-20,-20},{20,20}})));

Buildings.Controls.OBC.CDL.Interfaces.RealInput TWetBulPriIn(
final unit="K",
displayUnit="degC",
final quantity="ThermodynamicTemperature")
"Wet bulb temperature of the primary inlet air"
annotation (Placement(transformation(origin={-120,60}, extent={{-20,-20},{20,20}}),
iconTransformation(origin={-140,60}, extent={{-20,-20},{20,20}})));

Buildings.Controls.OBC.CDL.Interfaces.RealInput TDryBulSecIn(
final unit="K",
displayUnit="degC",
final quantity="ThermodynamicTemperature")
"Dry bulb temperature of the secondary inlet air"
annotation (Placement(transformation(origin={-120,20}, extent={{-20,-20},{20,20}}),
iconTransformation(origin={-140,20}, extent={{-20,-20},{20,20}})));

Buildings.Controls.OBC.CDL.Interfaces.RealInput TWetBulSecIn(
final unit="K",
displayUnit="degC",
final quantity="ThermodynamicTemperature")
"Wet bulb temperature of the secondary inlet air"
annotation (Placement(transformation(origin={-120,-20}, extent={{-20,-20},{20,20}}),
iconTransformation(origin={-140,-20}, extent={{-20,-20},{20,20}})));

Buildings.Controls.OBC.CDL.Interfaces.RealOutput TDryBulPriOut(
displayUnit="degC",
final unit="K",
final quantity="ThermodynamicTemperature")
"Dry bulb temperature of the outlet air"
annotation (Placement(transformation(origin={120,0}, extent={{-20,-20},{20,20}}),
iconTransformation(origin={140,0}, extent={{-20,-20},{20,20}})));

Real eff(
unit="1")
"Actual efficiency of component";

equation
eff = max((maxEff - floRat*abs(VPri_flow)/abs(VSec_flow)),0);
TDryBulPriOut = TDryBulPriIn - eff*(TDryBulSecIn - TWetBulSecIn);

annotation (defaultComponentName="indWetCal",
Documentation(info="<html>
<p>
Block that calculates the water vapor mass flow rate addition in the
indirect evaporative cooler component. The calculations are based on the indirect
wet evaporative cooler model in the Engineering Reference document from EnergyPlus
v23.1.0.
</p>
<p>
The effective efficiency of the heat exchanger <code>eff</code> is calculated using
the formula
</p>
<p align=\"center\" style=\"font-style:italic;\">
eff = max((maxEff - floRat*abs(VPri_flow)/abs(VSec_flow)), 0)
</p>
<p>
where <code>VPri_flow</code> and <code>VSec_flow</code> are the volume flow
rates of the primary and secondary fluid media respectively. The maximum
efficiency of the heat exchanger <code>maxEff</code> and the efficiency-reduction
coil flow ratio <code>floRat</code> are empirically determined for the specific
equipment based on experiments.
</p>
<p>
The outlet primary fluid drybulb temperature <code>TDryBulPriOut</code> is calculated
using the energy-balance equation
</p>
<p align=\"center\" style=\"font-style:italic;\">
TDryBulPriOut = TDryBulPriIn - eff*(TDryBulSecIn - TWetBulSecIn)
</p>
<p>
where <code>TDryBulPriIn</code> is the inlet primary fluid drybulb temperature,
<code>TDryBulSecIn</code> is the inlet secondary air drybulb temperature and
<code>TWetBulSecIn</code> is the inlet secondary air wetbulb temperature.
</p>
</html>", revisions="<html>
<ul>
<li>
September 29, 2023 by Karthikeya Devaprasad:<br/>
First implementation.
</li>
</ul>
</html>"), Icon(coordinateSystem(extent={{-120,-120},{120,120}}),
graphics={Text(
extent={{-150,160},{150,120}},
textString="%name",
textColor={0,0,255}), Rectangle(extent={{-120,120},{120,-120}},
lineColor={0,0,0},
fillColor={255,255,255},
fillPattern=FillPattern.Solid)}),
Diagram(coordinateSystem(extent={{-100,-120},{100,120}})));
end IndirectWetCalculations;
Loading