geoloop 1.0.0__tar.gz → 1.0.0b1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {geoloop-1.0.0/src/geoloop.egg-info → geoloop-1.0.0b1}/PKG-INFO +12 -20
- {geoloop-1.0.0 → geoloop-1.0.0b1}/README.md +9 -17
- {geoloop-1.0.0 → geoloop-1.0.0b1}/pyproject.toml +3 -4
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/configuration.py +1 -1
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/b2g_ana.py +21 -2
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/lithology/process_lithology.py +2 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/plotting/create_plots.py +14 -19
- {geoloop-1.0.0 → geoloop-1.0.0b1/src/geoloop.egg-info}/PKG-INFO +12 -20
- {geoloop-1.0.0 → geoloop-1.0.0b1}/LICENSE.md +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/setup.cfg +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/__init__.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/axisym/AxisymetricEL.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/axisym/__init__.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/bin/Flowdatamain.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/bin/Lithologymain.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/bin/Loadprofilemain.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/bin/Plotmain.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/bin/Runbatch.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/bin/Runmain.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/bin/SingleRunSim.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/bin/__init__.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/cli/__init__.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/cli/batch.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/cli/main.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/constants.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/CoaxialPipe.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/CustomPipe.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/__init__.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/b2g.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/boreholedesign.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/getloaddata.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/pyg_ana.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/pygfield_ana.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/simulationparameters.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/soilproperties.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/strat_interpolator.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/lithology/__init__.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/lithology/plot_lithology.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/loadflowdata/__init__.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/loadflowdata/flow_data.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/loadflowdata/loadprofile.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/plotting/__init__.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/plotting/load_data.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/utils/RunManager.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/utils/__init__.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/utils/helpers.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop.egg-info/SOURCES.txt +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop.egg-info/dependency_links.txt +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop.egg-info/entry_points.txt +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop.egg-info/requires.txt +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop.egg-info/top_level.txt +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/test/test_b2g.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/test/test_b2g_ana.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/test/test_h5.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/test/test_lithology.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/test/test_loadflowdata.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/test/test_plotting.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/test/test_pyg_ana.py +0 -0
- {geoloop-1.0.0 → geoloop-1.0.0b1}/test/test_pygfield_ana.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: geoloop
|
|
3
|
-
Version: 1.0.
|
|
4
|
-
Summary: This is a Python package for simulation of (deep)
|
|
3
|
+
Version: 1.0.0b1
|
|
4
|
+
Summary: This is a Python package for simulation of (deep) Borehole Heat Exchanger (BHE) systems
|
|
5
5
|
Author-email: Zanne Korevaar <zanne.korevaar@tno.nl>, Jan-Diederik van Wees <jan_diederik.vanwees@tno.nl>
|
|
6
|
-
License
|
|
6
|
+
License: Apache 2.0
|
|
7
7
|
Keywords: borehole heat exchanger,BHE,geothermal,ground-source heat pump,deep borehole heat exchanger
|
|
8
8
|
Requires-Python: <3.14,>=3.12
|
|
9
9
|
Description-Content-Type: text/markdown
|
|
@@ -33,22 +33,20 @@ Dynamic: license-file
|
|
|
33
33
|
|
|
34
34
|
## What is **Geoloop**?
|
|
35
35
|
|
|
36
|
-
**Geoloop** is a Python package for simulating
|
|
37
|
-
with a focus on
|
|
36
|
+
**Geoloop** is a Python package for simulating borehole heat exchanger (BHE) systems,
|
|
37
|
+
with a focus on optimal implementation of subsurface thermal properties and their impact on system performance.
|
|
38
38
|
|
|
39
39
|
**Geoloop** incorporates (uncertainty in) depth-variations in subsurface thermal conductivity, subsurface temperature,
|
|
40
40
|
BHE design and diverse operational boundary conditions such as seasonal load variations or
|
|
41
|
-
minimum fluid temperatures
|
|
42
|
-
for optimization of the system design and operation. This makes Geoloop
|
|
41
|
+
minimum fluid temperatures, in a tool for deterministic or stochastic performance analyses with the opportunity
|
|
42
|
+
for optimization of the system design and operation. This makes Geoloop ideal for scenario analyses and sensitivity
|
|
43
43
|
studies in both research and practical applications.
|
|
44
44
|
|
|
45
|
-
**Geoloop**
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
**Geoloop's** generic framework allows for easy switching between simulation methods, including the
|
|
51
|
-
depth-dependent model, the depth-uniform implementation of g-functions as implemented in *pygfunction* and a numerical
|
|
45
|
+
**Geoloop** uses thermal response factors (*g*-functions) calculated using the analytical Finite Line Source model from
|
|
46
|
+
the *pygfunction* package. This setup is extended into a stacked approach for depth-dependent thermal response calculations.
|
|
47
|
+
A detailed description and benchmark of this depth-dependent semi-analytical method is provided in Korevaar & Van Wees (in prep.).
|
|
48
|
+
**Geoloop's** generic framework allows for easy switching between simulation methods, including the innovative depth-dependent
|
|
49
|
+
semi-analytical approach, the depth-uniform implementation of g-functions as implemented in *pygfunction* and a numerical
|
|
52
50
|
finite volume approach.
|
|
53
51
|
|
|
54
52
|
---
|
|
@@ -112,9 +110,3 @@ Developed with the support of the Dutch funding agency **RVO**, in a consortium
|
|
|
112
110
|
---
|
|
113
111
|
|
|
114
112
|
|
|
115
|
-
## References
|
|
116
|
-
|
|
117
|
-
- Cimmino, M. and Cook, J.: pygfunction 2.2: New features and improvements in accuracy and computational efficiency,
|
|
118
|
-
in: Proceedings of the IGSHPA Research Track 2022, International Ground Source Heat Pump Association,
|
|
119
|
-
https://doi.org/10.22488/okstate.22.000015, 2022.
|
|
120
|
-
- Korevaar, Z., Brett, H., Van Wees, J.D.: Geoloop (v1.0) – a stochastic, depth-dependent borehole heat exchanger model, Geoscientific Model Development (in prep), 2026
|
|
@@ -5,22 +5,20 @@
|
|
|
5
5
|
|
|
6
6
|
## What is **Geoloop**?
|
|
7
7
|
|
|
8
|
-
**Geoloop** is a Python package for simulating
|
|
9
|
-
with a focus on
|
|
8
|
+
**Geoloop** is a Python package for simulating borehole heat exchanger (BHE) systems,
|
|
9
|
+
with a focus on optimal implementation of subsurface thermal properties and their impact on system performance.
|
|
10
10
|
|
|
11
11
|
**Geoloop** incorporates (uncertainty in) depth-variations in subsurface thermal conductivity, subsurface temperature,
|
|
12
12
|
BHE design and diverse operational boundary conditions such as seasonal load variations or
|
|
13
|
-
minimum fluid temperatures
|
|
14
|
-
for optimization of the system design and operation. This makes Geoloop
|
|
13
|
+
minimum fluid temperatures, in a tool for deterministic or stochastic performance analyses with the opportunity
|
|
14
|
+
for optimization of the system design and operation. This makes Geoloop ideal for scenario analyses and sensitivity
|
|
15
15
|
studies in both research and practical applications.
|
|
16
16
|
|
|
17
|
-
**Geoloop**
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
**Geoloop's** generic framework allows for easy switching between simulation methods, including the
|
|
23
|
-
depth-dependent model, the depth-uniform implementation of g-functions as implemented in *pygfunction* and a numerical
|
|
17
|
+
**Geoloop** uses thermal response factors (*g*-functions) calculated using the analytical Finite Line Source model from
|
|
18
|
+
the *pygfunction* package. This setup is extended into a stacked approach for depth-dependent thermal response calculations.
|
|
19
|
+
A detailed description and benchmark of this depth-dependent semi-analytical method is provided in Korevaar & Van Wees (in prep.).
|
|
20
|
+
**Geoloop's** generic framework allows for easy switching between simulation methods, including the innovative depth-dependent
|
|
21
|
+
semi-analytical approach, the depth-uniform implementation of g-functions as implemented in *pygfunction* and a numerical
|
|
24
22
|
finite volume approach.
|
|
25
23
|
|
|
26
24
|
---
|
|
@@ -84,9 +82,3 @@ Developed with the support of the Dutch funding agency **RVO**, in a consortium
|
|
|
84
82
|
---
|
|
85
83
|
|
|
86
84
|
|
|
87
|
-
## References
|
|
88
|
-
|
|
89
|
-
- Cimmino, M. and Cook, J.: pygfunction 2.2: New features and improvements in accuracy and computational efficiency,
|
|
90
|
-
in: Proceedings of the IGSHPA Research Track 2022, International Ground Source Heat Pump Association,
|
|
91
|
-
https://doi.org/10.22488/okstate.22.000015, 2022.
|
|
92
|
-
- Korevaar, Z., Brett, H., Van Wees, J.D.: Geoloop (v1.0) – a stochastic, depth-dependent borehole heat exchanger model, Geoscientific Model Development (in prep), 2026
|
|
@@ -4,15 +4,14 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "geoloop"
|
|
7
|
-
version = "1.0.
|
|
8
|
-
description = "This is a Python package for simulation of (deep)
|
|
7
|
+
version = "1.0.0b1"
|
|
8
|
+
description = "This is a Python package for simulation of (deep) Borehole Heat Exchanger (BHE) systems"
|
|
9
9
|
authors = [
|
|
10
10
|
{ name = "Zanne Korevaar", email = "zanne.korevaar@tno.nl" },
|
|
11
11
|
{ name = "Jan-Diederik van Wees", email = "jan_diederik.vanwees@tno.nl" }
|
|
12
12
|
]
|
|
13
13
|
readme = "README.md"
|
|
14
|
-
license = "Apache
|
|
15
|
-
license-files = ["LICENSE.md"]
|
|
14
|
+
license = { text = "Apache 2.0" }
|
|
16
15
|
requires-python = ">=3.12,<3.14"
|
|
17
16
|
keywords = [
|
|
18
17
|
"borehole heat exchanger", "BHE", "geothermal", "ground-source heat pump",
|
|
@@ -399,7 +399,7 @@ class SingleRunConfig(BaseModel, extra="allow"):
|
|
|
399
399
|
fluid_percent : float or int
|
|
400
400
|
Mixture percentage for the fluid dissolved in water.
|
|
401
401
|
m_flow : float
|
|
402
|
-
Mass flow rate [kg/s].
|
|
402
|
+
Mass flow rate per pipe [kg/s].
|
|
403
403
|
epsilon : float
|
|
404
404
|
Pipe roughness [m].
|
|
405
405
|
r_in : list of float, optional
|
|
@@ -110,9 +110,28 @@ class B2G_ana:
|
|
|
110
110
|
for k in range(nsegments):
|
|
111
111
|
la = gt.load_aggregation.ClaessonJaved(sim_params.dt, sim_params.tmax)
|
|
112
112
|
LoadAgg.append(la)
|
|
113
|
-
|
|
113
|
+
# TODO: JD: the workaround below was not reuired anymore?
|
|
114
114
|
# The field contains only one borehole
|
|
115
|
-
boreField = [gt.boreholes.Borehole(custom_pipe.b.H, custom_pipe.b.D, custom_pipe.b.r_b, x=0., y=0.)]
|
|
115
|
+
# boreField = [gt.boreholes.Borehole(custom_pipe.b.H, custom_pipe.b.D, custom_pipe.b.r_b, x=0., y=0.)]
|
|
116
|
+
# The field contains only one borehole, but needs one extra at very large distance to be correct, ie. gfunc plateaus at 6.7)
|
|
117
|
+
boreField = [
|
|
118
|
+
gt.boreholes.Borehole(
|
|
119
|
+
custom_pipe.b.H,
|
|
120
|
+
custom_pipe.b.D,
|
|
121
|
+
custom_pipe.b.r_b,
|
|
122
|
+
x=0.0,
|
|
123
|
+
y=0.0,
|
|
124
|
+
tilt=np.radians(0.1),
|
|
125
|
+
),
|
|
126
|
+
gt.boreholes.Borehole(
|
|
127
|
+
custom_pipe.b.H,
|
|
128
|
+
custom_pipe.b.D,
|
|
129
|
+
custom_pipe.b.r_b,
|
|
130
|
+
x=1000.0,
|
|
131
|
+
y=0.0,
|
|
132
|
+
tilt=np.radians(0.1),
|
|
133
|
+
),
|
|
134
|
+
]
|
|
116
135
|
|
|
117
136
|
# Get time values needed for g-function evaluation
|
|
118
137
|
time_req = LoadAgg[0].get_times_for_simulation()
|
|
@@ -9,6 +9,8 @@ from geoloop.configuration import LithologyConfig
|
|
|
9
9
|
from geoloop.constants import lithology_properties_xlsx
|
|
10
10
|
from geoloop.geoloopcore.strat_interpolator import TgInterpolator
|
|
11
11
|
|
|
12
|
+
# TODO: save the config paramters (error and scaling factors) in the thermcon h5 file that now only stores the results
|
|
13
|
+
|
|
12
14
|
|
|
13
15
|
class ThermalConductivityCalculator:
|
|
14
16
|
"""
|
|
@@ -199,7 +199,7 @@ class PlotResults:
|
|
|
199
199
|
-------
|
|
200
200
|
None
|
|
201
201
|
"""
|
|
202
|
-
out_path_prefix = out_path.with_name(out_path.name + "
|
|
202
|
+
out_path_prefix = out_path.with_name(out_path.name + "timeplot")
|
|
203
203
|
|
|
204
204
|
# Ensure results_dfs is a list of dataframes
|
|
205
205
|
if isinstance(results_dfs, pd.DataFrame):
|
|
@@ -237,7 +237,12 @@ class PlotResults:
|
|
|
237
237
|
and "Q_b" in df.columns
|
|
238
238
|
and "qloop" in df.columns
|
|
239
239
|
):
|
|
240
|
-
|
|
240
|
+
mean_Q = df["Q_b"].mean()
|
|
241
|
+
mean_q = df["qloop"].mean()
|
|
242
|
+
mean_COP = mean_Q / mean_q
|
|
243
|
+
df["COP"] = mean_COP # abs(df['Q_b'] / df['qloop'])
|
|
244
|
+
# df['COP'] = abs(df['Q_b']) / df['qloop']
|
|
245
|
+
# print(df["COP"].min())
|
|
241
246
|
if (
|
|
242
247
|
"Delta_T" in plot_parameters
|
|
243
248
|
and "T_fi" in df.columns
|
|
@@ -248,7 +253,7 @@ class PlotResults:
|
|
|
248
253
|
plots = [
|
|
249
254
|
("Q_b", "Heat Load [W]", "Q_b", None, None),
|
|
250
255
|
("flowrate", "Flowrate [kg/s]", "flowrate", None, None),
|
|
251
|
-
("COP", "Coefficient of Performance", "COP", None, None)
|
|
256
|
+
("COP", "Coefficient of Performance", "COP", None, None),
|
|
252
257
|
]
|
|
253
258
|
|
|
254
259
|
plotted_params = []
|
|
@@ -276,12 +281,11 @@ class PlotResults:
|
|
|
276
281
|
|
|
277
282
|
ax.legend(loc=(-0.07, -0.35))
|
|
278
283
|
|
|
284
|
+
ax_twin = ax.twinx()
|
|
285
|
+
ax_twin.set_ylabel("Pump Power [W]")
|
|
286
|
+
|
|
279
287
|
for idx, df in enumerate(results_dfs):
|
|
280
288
|
if "qloop" in plot_parameters and "qloop" in df.columns:
|
|
281
|
-
|
|
282
|
-
ax_twin = ax.twinx()
|
|
283
|
-
ax_twin.set_ylabel("Pump Power [W]")
|
|
284
|
-
|
|
285
289
|
color = next(color_iter)
|
|
286
290
|
|
|
287
291
|
# Plot the line
|
|
@@ -315,7 +319,7 @@ class PlotResults:
|
|
|
315
319
|
ax_twin.grid(axis="both")
|
|
316
320
|
|
|
317
321
|
file_name = out_path.with_name(
|
|
318
|
-
out_path.name + f"
|
|
322
|
+
out_path.name + f"timeplot_{'_'.join(sorted(set(plotted_params)))}.png"
|
|
319
323
|
)
|
|
320
324
|
|
|
321
325
|
fig.tight_layout()
|
|
@@ -436,7 +440,7 @@ class PlotResults:
|
|
|
436
440
|
|
|
437
441
|
file_name = out_path.with_name(
|
|
438
442
|
out_path.name
|
|
439
|
-
+ "
|
|
443
|
+
+ "timeplot_"
|
|
440
444
|
+ "_".join(sorted(set(plotted_params)))
|
|
441
445
|
+ ".png"
|
|
442
446
|
)
|
|
@@ -469,15 +473,6 @@ class PlotResults:
|
|
|
469
473
|
label=labels[idx][param],
|
|
470
474
|
color=next(color_iter),
|
|
471
475
|
)
|
|
472
|
-
if param=="COP":
|
|
473
|
-
if param == "COP":
|
|
474
|
-
ax.text(
|
|
475
|
-
0.7, 0.9, # 2% from left and bottom of the axes
|
|
476
|
-
f"mean COP: {df['COP'].mean():.2f}",
|
|
477
|
-
transform=ax.transAxes,
|
|
478
|
-
bbox=dict(boxstyle="round,pad=0.3", facecolor="white", alpha=0.7),
|
|
479
|
-
fontsize=12
|
|
480
|
-
)
|
|
481
476
|
|
|
482
477
|
ax.legend(loc=(-0.07, -0.17 - (0.08 * len(results_dfs))))
|
|
483
478
|
ax.grid()
|
|
@@ -989,7 +984,7 @@ class PlotResults:
|
|
|
989
984
|
bbox_to_anchor=(0, -0.1), loc="upper left"
|
|
990
985
|
) # Adjust legend position if needed
|
|
991
986
|
|
|
992
|
-
save_path = outpath.with_name(outpath.name + f"
|
|
987
|
+
save_path = outpath.with_name(outpath.name + f"Sensitivity_{y_variable}")
|
|
993
988
|
plt.savefig(save_path, bbox_inches="tight")
|
|
994
989
|
plt.close()
|
|
995
990
|
else:
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: geoloop
|
|
3
|
-
Version: 1.0.
|
|
4
|
-
Summary: This is a Python package for simulation of (deep)
|
|
3
|
+
Version: 1.0.0b1
|
|
4
|
+
Summary: This is a Python package for simulation of (deep) Borehole Heat Exchanger (BHE) systems
|
|
5
5
|
Author-email: Zanne Korevaar <zanne.korevaar@tno.nl>, Jan-Diederik van Wees <jan_diederik.vanwees@tno.nl>
|
|
6
|
-
License
|
|
6
|
+
License: Apache 2.0
|
|
7
7
|
Keywords: borehole heat exchanger,BHE,geothermal,ground-source heat pump,deep borehole heat exchanger
|
|
8
8
|
Requires-Python: <3.14,>=3.12
|
|
9
9
|
Description-Content-Type: text/markdown
|
|
@@ -33,22 +33,20 @@ Dynamic: license-file
|
|
|
33
33
|
|
|
34
34
|
## What is **Geoloop**?
|
|
35
35
|
|
|
36
|
-
**Geoloop** is a Python package for simulating
|
|
37
|
-
with a focus on
|
|
36
|
+
**Geoloop** is a Python package for simulating borehole heat exchanger (BHE) systems,
|
|
37
|
+
with a focus on optimal implementation of subsurface thermal properties and their impact on system performance.
|
|
38
38
|
|
|
39
39
|
**Geoloop** incorporates (uncertainty in) depth-variations in subsurface thermal conductivity, subsurface temperature,
|
|
40
40
|
BHE design and diverse operational boundary conditions such as seasonal load variations or
|
|
41
|
-
minimum fluid temperatures
|
|
42
|
-
for optimization of the system design and operation. This makes Geoloop
|
|
41
|
+
minimum fluid temperatures, in a tool for deterministic or stochastic performance analyses with the opportunity
|
|
42
|
+
for optimization of the system design and operation. This makes Geoloop ideal for scenario analyses and sensitivity
|
|
43
43
|
studies in both research and practical applications.
|
|
44
44
|
|
|
45
|
-
**Geoloop**
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
**Geoloop's** generic framework allows for easy switching between simulation methods, including the
|
|
51
|
-
depth-dependent model, the depth-uniform implementation of g-functions as implemented in *pygfunction* and a numerical
|
|
45
|
+
**Geoloop** uses thermal response factors (*g*-functions) calculated using the analytical Finite Line Source model from
|
|
46
|
+
the *pygfunction* package. This setup is extended into a stacked approach for depth-dependent thermal response calculations.
|
|
47
|
+
A detailed description and benchmark of this depth-dependent semi-analytical method is provided in Korevaar & Van Wees (in prep.).
|
|
48
|
+
**Geoloop's** generic framework allows for easy switching between simulation methods, including the innovative depth-dependent
|
|
49
|
+
semi-analytical approach, the depth-uniform implementation of g-functions as implemented in *pygfunction* and a numerical
|
|
52
50
|
finite volume approach.
|
|
53
51
|
|
|
54
52
|
---
|
|
@@ -112,9 +110,3 @@ Developed with the support of the Dutch funding agency **RVO**, in a consortium
|
|
|
112
110
|
---
|
|
113
111
|
|
|
114
112
|
|
|
115
|
-
## References
|
|
116
|
-
|
|
117
|
-
- Cimmino, M. and Cook, J.: pygfunction 2.2: New features and improvements in accuracy and computational efficiency,
|
|
118
|
-
in: Proceedings of the IGSHPA Research Track 2022, International Ground Source Heat Pump Association,
|
|
119
|
-
https://doi.org/10.22488/okstate.22.000015, 2022.
|
|
120
|
-
- Korevaar, Z., Brett, H., Van Wees, J.D.: Geoloop (v1.0) – a stochastic, depth-dependent borehole heat exchanger model, Geoscientific Model Development (in prep), 2026
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|