Skip to content

Commit

Permalink
Added ATES models, increased version to 10.1.x (#3567)
Browse files Browse the repository at this point in the history
* Added ATES models, increased version to 10.1.x

This adds the new ATES models, and also increased the minor version number

* Increased time out
  • Loading branch information
mwetter authored Oct 24, 2023
1 parent 654bdc3 commit 61d2b6a
Show file tree
Hide file tree
Showing 33 changed files with 1,047 additions and 13 deletions.
26 changes: 26 additions & 0 deletions Buildings/Fluid/Geothermal/Aquifer/Data/Rock.mo
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
within Buildings.Fluid.Geothermal.Aquifer.Data;
record Rock "Soil data record of rock heat transfer properties"
extends Buildings.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 Buildings/Fluid/Geothermal/Aquifer/Data/Template.mo
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
within Buildings.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";
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://Buildings.Fluid.Geothermal.Aquifer.SingleWell\">
Buildings.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 Buildings/Fluid/Geothermal/Aquifer/Data/package.mo
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
within Buildings.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://Buildings.Fluid.Geothermal.Aquifer\">
Buildings.Fluid.Geothermal.Aquifer</a>.
</p>
</html>"));
end Data;
2 changes: 2 additions & 0 deletions Buildings/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 Buildings/Fluid/Geothermal/Aquifer/Examples/CoolingOffice.mo
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
within Buildings.Fluid.Geothermal.Aquifer.Examples;
model CoolingOffice
extends Modelica.Icons.Example;
package Medium = Buildings.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,
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=Buildings.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://Buildings/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://Buildings.Fluid.Geothermal.Aquifer.SingleWell\">Buildings.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 Buildings/Fluid/Geothermal/Aquifer/Examples/package.mo
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
within Buildings.Fluid.Geothermal.Aquifer;
package Examples "Example models for Buildings.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://Buildings.Fluid.Geothermal.Aquifer\">
Buildings.Fluid.Geothermal.Aquifer</a>.
</p>
</html>"));
end Examples;
1 change: 1 addition & 0 deletions Buildings/Fluid/Geothermal/Aquifer/Examples/package.order
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
CoolingOffice
Loading

0 comments on commit 61d2b6a

Please sign in to comment.