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

Issue1754 ATES model #1759

Merged
merged 89 commits into from
Oct 20, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
84f9135
Added first version of ATES model
May 23, 2023
b9dce37
Added documentation SingleWell
May 24, 2023
0b83b17
Added aquifer properties as record
May 24, 2023
b073350
Added documentation of validation case
May 24, 2023
5df25f3
Added example
May 25, 2023
efdbaf9
Fixed html documentation
May 25, 2023
31e6686
Working on html errors
May 25, 2023
aee7edc
Working on html errors part 2
May 25, 2023
42edf69
Working on html errors part 3
May 25, 2023
5fb9859
Changed package order
May 25, 2023
a7cdc15
Changed order of Data package
May 25, 2023
dd3c0a2
Added unit tests
May 25, 2023
dd5113a
Fixed tolerance in unit tests
May 25, 2023
244e427
Fixed order package Data
May 25, 2023
65e67a0
Fixed documentation
May 25, 2023
f8442e9
Fixed UTF-8 code
May 25, 2023
af90fbc
Fixed UTF-8 code part 2
May 25, 2023
2210977
Fixed UTF-8 part 3
May 25, 2023
ecb683c
Test UTF-8 errors
May 25, 2023
d9de3cb
Restored original html for Geothermal.Borefields.BaseClasses.HeatTran…
May 25, 2023
d40371c
Removed BOM
May 26, 2023
33c7fa2
Fixed BOMs
May 26, 2023
cbef948
Updated example file
May 30, 2023
969f220
Corrected typo in script Example
May 30, 2023
537e107
Corrected typo
mwetter Jun 2, 2023
bc75b7c
Added reference file for example CoolingOffice
amaccarini Jun 9, 2023
9cbf220
Added reference file for SimulationTest
amaccarini Jun 9, 2023
c9e2ab2
Changed single ATES model into a multiwell model
amaccarini Aug 18, 2023
ba31085
Updated unit tests and reference results
amaccarini Aug 18, 2023
ba7a5c6
Removed option to use glycol or air
mwetter Aug 18, 2023
f15f918
Changed dialog group as many of these entries are not about discretiz…
mwetter Aug 18, 2023
f4a86db
Made parameters final, added comments
mwetter Aug 18, 2023
b8d840c
Renamed components to 'hot' and 'col'. Aligned connectors to grid
mwetter Aug 18, 2023
801ee63
Renamed parameter to use naming convention
mwetter Aug 18, 2023
3fe9624
Added comments
mwetter Aug 18, 2023
a1e7942
Changed parameter names to end with _nominal per naming convention
mwetter Aug 19, 2023
a7cb58a
Set unit
mwetter Aug 19, 2023
489966c
Changed parameter names according to conventions, added comments
mwetter Aug 19, 2023
b85f689
Removed display unit [ci skip]
mwetter Aug 19, 2023
89c802e
Corrected typo [ci skip]
mwetter Aug 19, 2023
3c12de5
Ordered components, made some protected
mwetter Aug 19, 2023
8d6c1fb
Fixed dimension of R
amaccarini Aug 22, 2023
38e9a33
Moved porosity to data record
amaccarini Aug 22, 2023
1c3900d
Changed default value for adding power to medium in pumps
amaccarini Aug 22, 2023
a343ef2
Changed pressure drops multipliers in MultiWell
amaccarini Aug 22, 2023
d07eb7a
Added illustration of pressure circuit
amaccarini Aug 22, 2023
d770c2d
Adjusted quality of figures
Aug 22, 2023
8aa43fc
Changed name of parameters for radius
amaccarini Aug 23, 2023
75980e1
Added a temperature array to output aquifer temperatures
amaccarini Aug 23, 2023
479e0d6
Fixed typo in html text
amaccarini Aug 23, 2023
c8c3053
Fixed another typo in html text
amaccarini Aug 23, 2023
f0120de
Putting rC into protected and added a new variable rVol
amaccarini Aug 23, 2023
f6f6841
Fixed typo in record data parameter
amaccarini Aug 25, 2023
ceb7c89
Reconfigured flow resistance
mwetter Sep 6, 2023
06eedb8
Added hydraulic resistance
mwetter Sep 6, 2023
49ca167
Merge pull request #1784 from ibpsa/issue1754_ATESmodel_patch_resistance
amaccarini Sep 7, 2023
4118f76
Set nominal attribute for dp to avoid Dymola warning
mwetter Sep 7, 2023
73c1dad
Added calculation for pressure drop in aquifer
amaccarini Sep 8, 2023
b6006ff
Corrected parameter dpAquifer_nominal in NumberWells example
amaccarini Sep 11, 2023
9b6575f
Adjusted pressure drop parameters
Sep 11, 2023
f581a87
Added missing comments
mwetter Sep 12, 2023
53dff2a
Eliminated alias variable (rC and rVol are the same quantity)
mwetter Sep 12, 2023
618674c
Removed assignment of m_flow_small
mwetter Sep 12, 2023
0a68b30
Corrected wrong entry to .mos script
mwetter Sep 12, 2023
49a0854
Simplified model instantiation
mwetter Sep 12, 2023
e949283
Implemented number of paired wells as parameter to scale the model
Sep 15, 2023
ac8bbdc
Improved documentation of MultiWell
Sep 15, 2023
c4bad4e
Revised documentation. Removed defaults for h, length, rMax
mwetter Sep 22, 2023
d33fbf6
Unified notation by always using 'Col' rather than sometimes 'Col' an…
mwetter Sep 22, 2023
7b150be
Added units and dynamic display of temperatures
mwetter Sep 22, 2023
dc3084c
Set final from_dp=false (as soil resistance outputs m_flow)
mwetter Sep 22, 2023
fd1c981
Removed mix of assignment and graphical connections
mwetter Sep 22, 2023
3ecbc50
Corrected html
mwetter Sep 22, 2023
7117c82
Simplified pressure drop calculation
mwetter Sep 22, 2023
d92f0c5
Enlarged schematic diagram
mwetter Sep 22, 2023
bc33beb
Added icon
mwetter Sep 22, 2023
57571ce
Updated documentation
mwetter Sep 22, 2023
85ff288
Changed to having only one instance for the acquifer resistance
mwetter Sep 22, 2023
1da8fe7
Introduced distance between wells as parameter
Oct 5, 2023
05684d3
Changed unit for parameter d
Oct 5, 2023
158995f
Merge branch 'master' into issue1754_ATESmodel
mwetter Oct 13, 2023
5f40b8d
Added assertion for rMax and fixed examples accordingly
Oct 14, 2023
aedee8c
Merge branch 'issue1754_ATESmodel' of https://github.com/ibpsa/modeli…
Oct 14, 2023
3456a4b
Updated image in documentation of MultiWell
Oct 14, 2023
76b561c
Updated image with names of parameters
Oct 14, 2023
e525a26
Formatted model
mwetter Oct 18, 2023
d32ad16
Merge remote-tracking branch 'origin/master' into issue1754_ATESmodel
mwetter Oct 18, 2023
586b769
Increased timeout
mwetter Oct 19, 2023
ec200ac
Removed each keyword
mwetter Oct 19, 2023
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
26 changes: 26 additions & 0 deletions IBPSA/Fluid/Geothermal/Aquifer/Data/Rock.mo
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
within IBPSA.Fluid.Geothermal.Aquifer.Data;
record Rock "Soil data record of rock heat transfer properties"
extends IBPSA.Fluid.Geothermal.Aquifer.Data.Template(
kSoi=2.8,
dSoi=2680,
cSoi=833,
phi=0.2,
K=1E-5);
annotation (
defaultComponentPrefixes="parameter",
defaultComponentName="aquDat",
Documentation(
info="<html>
<p>
This data record contains the heat transfer properties of rock.
</p>
</html>",
revisions="<html>
<ul>
<li>
May 2023, Alessandro Maccarini:<br/>
First implementation.
</li>
</ul>
</html>"));
end Rock;
35 changes: 35 additions & 0 deletions IBPSA/Fluid/Geothermal/Aquifer/Data/Template.mo
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
within IBPSA.Fluid.Geothermal.Aquifer.Data;
record Template
"Template for soil data records"
extends Modelica.Icons.Record;
parameter Modelica.Units.SI.ThermalConductivity kSoi
"Thermal conductivity of the soil material";
parameter Modelica.Units.SI.SpecificHeatCapacity cSoi
"Specific heat capacity of the soil material";
parameter Modelica.Units.SI.Density dSoi(displayUnit="kg/m3")
"Density of the soil material";
Comment on lines +5 to +10
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This data record should also include the porosity phi as it is a property of the soil, and not of the well model.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

parameter Real phi(final unit="1")
"Reservoir porosity";
parameter Modelica.Units.SI.Velocity K
"Hydraulic conductivity";
annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(
coordinateSystem(preserveAspectRatio=false)),
defaultComponentPrefixes="parameter",
defaultComponentName="aquDat",
Documentation(
info="<html>
<p>
This record is a template for the records in
<a href=\"modelica://IBPSA.Fluid.Geothermal.Aquifer.SingleWell\">
IBPSA.Fluid.Geothermal.Aquifer.SingleWell</a>.
</p>
</html>",
revisions="<html>
<ul>
<li>
May 2023, by Alessandro Maccarini:<br/>
First implementation.
</li>
</ul>
</html>"));
end Template;
12 changes: 12 additions & 0 deletions IBPSA/Fluid/Geothermal/Aquifer/Data/package.mo
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
within IBPSA.Fluid.Geothermal.Aquifer;
package Data "Collection of data records for aquifer thermal energy storage"
extends Modelica.Icons.MaterialPropertiesPackage;

annotation (preferredView="info", Documentation(info="<html>
<p>
This package contains data records for heat properties of aquifers
<a href=\"modelica://IBPSA.Fluid.Geothermal.Aquifer\">
IBPSA.Fluid.Geothermal.Aquifer</a>.
</p>
</html>"));
end Data;
2 changes: 2 additions & 0 deletions IBPSA/Fluid/Geothermal/Aquifer/Data/package.order
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Rock
Template
77 changes: 77 additions & 0 deletions IBPSA/Fluid/Geothermal/Aquifer/Examples/CoolingOffice.mo
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
within IBPSA.Fluid.Geothermal.Aquifer.Examples;
model CoolingOffice
extends Modelica.Icons.Example;
package Medium = IBPSA.Media.Water "Medium model";

parameter Modelica.Units.SI.HeatFlowRate QCoo_flow_nominal=30000
"Cooling power";
parameter Modelica.Units.SI.TemperatureDifference deltaT=4 "Temperature difference at heat exchanger";
parameter Modelica.Units.SI.SpecificHeatCapacity cpWat=4186 "Heat capacity of water";
parameter Modelica.Units.SI.MassFlowRate mWat_flow_nominal=
QCoo_flow_nominal/(deltaT*cpWat) "Nominal water mass flow rate";

HeatExchangers.HeaterCooler_u hea(
redeclare package Medium = Medium,
m_flow_nominal=mWat_flow_nominal,
dp_nominal=100,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

100 Pa pressure drop is way too low for the water-side friction of a heat exchanger.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Working on it (I would like to find some references for these values).

energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
Q_flow_nominal=QCoo_flow_nominal) "Heat exchanger"
annotation (Placement(transformation(extent={{-10,54},{10,74}})));
Modelica.Blocks.Sources.Constant uPum(k=1) "Pump control signal"
annotation (Placement(transformation(extent={{-60,-20},{-40,0}})));
Modelica.Blocks.Sources.Constant uHea(k=1) "Heat load control signal"
annotation (Placement(transformation(extent={{-60,60},{-40,80}})));
MultiWell aquWel(
redeclare package Medium = Medium,
nVol=80,
h=20,
d=1000,
length=40,
TCol_start=285.15,
THot_start=285.15,
aquDat=IBPSA.Fluid.Geothermal.Aquifer.Data.Rock(),
m_flow_nominal=mWat_flow_nominal,
dpExt_nominal=5000)
"Acquifer well"
annotation (Placement(transformation(extent={{-10,-20},{10,0}})));
Sources.Boundary_pT bou(
redeclare package Medium = Medium,
nPorts=1) "Pressure boundary condition" annotation (Placement(transformation(extent={{-80,20},{-60,40}})));
equation
connect(uHea.y, hea.u)
annotation (Line(points={{-39,70},{-12,70}}, color={0,0,127}));
connect(aquWel.port_Hot, hea.port_b) annotation (Line(points={{6,0},{6,30},{20,
30},{20,64},{10,64}}, color={0,127,255}));
connect(aquWel.port_Col, hea.port_a) annotation (Line(points={{-6,0},{-6,0},{-6,
30},{-20,30},{-20,64},{-10,64}}, color={0,127,255}));
connect(bou.ports[1], hea.port_a) annotation (Line(points={{-60,30},{-20,30},
{-20,64},{-10,64}}, color={0,127,255}));
connect(uPum.y, aquWel.u)
annotation (Line(points={{-39,-10},{-26,-10},{-26,-10},{-12,-10}},
color={0,0,127}));
annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram(
coordinateSystem(preserveAspectRatio=false)),
experiment(StopTime=7776000,Tolerance=1e-6),
__Dymola_Commands(file=
"modelica://IBPSA/Resources/Scripts/Dymola/Fluid/Geothermal/Aquifer/Examples/CoolingOffice.mos"
"Simulate and plot"),
Documentation(info="<html>
<p>
This example shows the application of the model
<a href=\"modelica://IBPSA.Fluid.Geothermal.Aquifer.SingleWell\">IBPSA.Fluid.Geothermal.Aquifer.SingleWell</a>.
</p>
<p>
The system consists of two wells, a warm well and a cold well. Water is extracted from the cold well at 12C and
after passing through a heat exchanger it is injected in the warm well at 16C. This may represent the operation of an
aquifer thermal energy storage system that cools an office building with a constant load of 30 kW.
</p>

</html>", revisions="<html>
<ul>
<li>
May 2023, by Alessandro Maccarini:<br/>
First Implementation.
</li>
</ul>
</html>"));
end CoolingOffice;
12 changes: 12 additions & 0 deletions IBPSA/Fluid/Geothermal/Aquifer/Examples/package.mo
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
within IBPSA.Fluid.Geothermal.Aquifer;
package Examples "Example models for IBPSA.Fluid.Geothermal.Aquifer"
extends Modelica.Icons.ExamplesPackage;

annotation (preferredView="info", Documentation(info="<html>
<p>
This package contains example models for the classes in
<a href=\"modelica://IBPSA.Fluid.Geothermal.Aquifer\">
IBPSA.Fluid.Geothermal.Aquifer</a>.
</p>
</html>"));
end Examples;
1 change: 1 addition & 0 deletions IBPSA/Fluid/Geothermal/Aquifer/Examples/package.order
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
CoolingOffice
Loading