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.
Files changed (59) hide show
  1. {geoloop-1.0.0/src/geoloop.egg-info → geoloop-1.0.0b1}/PKG-INFO +12 -20
  2. {geoloop-1.0.0 → geoloop-1.0.0b1}/README.md +9 -17
  3. {geoloop-1.0.0 → geoloop-1.0.0b1}/pyproject.toml +3 -4
  4. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/configuration.py +1 -1
  5. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/b2g_ana.py +21 -2
  6. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/lithology/process_lithology.py +2 -0
  7. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/plotting/create_plots.py +14 -19
  8. {geoloop-1.0.0 → geoloop-1.0.0b1/src/geoloop.egg-info}/PKG-INFO +12 -20
  9. {geoloop-1.0.0 → geoloop-1.0.0b1}/LICENSE.md +0 -0
  10. {geoloop-1.0.0 → geoloop-1.0.0b1}/setup.cfg +0 -0
  11. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/__init__.py +0 -0
  12. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/axisym/AxisymetricEL.py +0 -0
  13. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/axisym/__init__.py +0 -0
  14. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/bin/Flowdatamain.py +0 -0
  15. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/bin/Lithologymain.py +0 -0
  16. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/bin/Loadprofilemain.py +0 -0
  17. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/bin/Plotmain.py +0 -0
  18. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/bin/Runbatch.py +0 -0
  19. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/bin/Runmain.py +0 -0
  20. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/bin/SingleRunSim.py +0 -0
  21. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/bin/__init__.py +0 -0
  22. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/cli/__init__.py +0 -0
  23. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/cli/batch.py +0 -0
  24. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/cli/main.py +0 -0
  25. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/constants.py +0 -0
  26. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/CoaxialPipe.py +0 -0
  27. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/CustomPipe.py +0 -0
  28. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/__init__.py +0 -0
  29. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/b2g.py +0 -0
  30. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/boreholedesign.py +0 -0
  31. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/getloaddata.py +0 -0
  32. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/pyg_ana.py +0 -0
  33. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/pygfield_ana.py +0 -0
  34. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/simulationparameters.py +0 -0
  35. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/soilproperties.py +0 -0
  36. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/geoloopcore/strat_interpolator.py +0 -0
  37. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/lithology/__init__.py +0 -0
  38. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/lithology/plot_lithology.py +0 -0
  39. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/loadflowdata/__init__.py +0 -0
  40. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/loadflowdata/flow_data.py +0 -0
  41. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/loadflowdata/loadprofile.py +0 -0
  42. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/plotting/__init__.py +0 -0
  43. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/plotting/load_data.py +0 -0
  44. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/utils/RunManager.py +0 -0
  45. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/utils/__init__.py +0 -0
  46. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop/utils/helpers.py +0 -0
  47. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop.egg-info/SOURCES.txt +0 -0
  48. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop.egg-info/dependency_links.txt +0 -0
  49. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop.egg-info/entry_points.txt +0 -0
  50. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop.egg-info/requires.txt +0 -0
  51. {geoloop-1.0.0 → geoloop-1.0.0b1}/src/geoloop.egg-info/top_level.txt +0 -0
  52. {geoloop-1.0.0 → geoloop-1.0.0b1}/test/test_b2g.py +0 -0
  53. {geoloop-1.0.0 → geoloop-1.0.0b1}/test/test_b2g_ana.py +0 -0
  54. {geoloop-1.0.0 → geoloop-1.0.0b1}/test/test_h5.py +0 -0
  55. {geoloop-1.0.0 → geoloop-1.0.0b1}/test/test_lithology.py +0 -0
  56. {geoloop-1.0.0 → geoloop-1.0.0b1}/test/test_loadflowdata.py +0 -0
  57. {geoloop-1.0.0 → geoloop-1.0.0b1}/test/test_plotting.py +0 -0
  58. {geoloop-1.0.0 → geoloop-1.0.0b1}/test/test_pyg_ana.py +0 -0
  59. {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.0
4
- Summary: This is a Python package for simulation of (deep) vertical Borehole Heat Exchanger (BHE) systems
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-Expression: Apache-2.0
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 vertical borehole heat exchanger (BHE) systems,
37
- with a focus on the impact of depth-dependent thermal properties and geothermal gradient and their impact on system performance.
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. It allows for deterministic or stochastic performance analyses with the opportunity
42
- for optimization of the system design and operation. This makes Geoloop well suited for scenario analyses and sensitivity
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** provides a novel depth-dependent approach for thermal response calculations.
46
- A detailed description and benchmark of this depth-dependent semi-analytical method is provided in Korevaar et al. (2026).
47
- **Geoloop** uses the *pygfunction* package, developed by Cimmino & Cook (2022), including its implementation
48
- of *g*-functions, time aggregation schemes for varying loads, borehole and fluid thermal properties, and various visualization capabilities
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 vertical borehole heat exchanger (BHE) systems,
9
- with a focus on the impact of depth-dependent thermal properties and geothermal gradient and their impact on system performance.
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. It allows for deterministic or stochastic performance analyses with the opportunity
14
- for optimization of the system design and operation. This makes Geoloop well suited for scenario analyses and sensitivity
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** provides a novel depth-dependent approach for thermal response calculations.
18
- A detailed description and benchmark of this depth-dependent semi-analytical method is provided in Korevaar et al. (2026).
19
- **Geoloop** uses the *pygfunction* package, developed by Cimmino & Cook (2022), including its implementation
20
- of *g*-functions, time aggregation schemes for varying loads, borehole and fluid thermal properties, and various visualization capabilities
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.0"
8
- description = "This is a Python package for simulation of (deep) vertical Borehole Heat Exchanger (BHE) systems"
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-2.0"
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 + "_timeplot")
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
- df['COP'] = abs(df['Q_b']) / df['qloop']
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"_timeplot_{'_'.join(sorted(set(plotted_params)))}.png"
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
- + "_timeplot_"
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"_sensitivity_{y_variable}")
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.0
4
- Summary: This is a Python package for simulation of (deep) vertical Borehole Heat Exchanger (BHE) systems
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-Expression: Apache-2.0
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 vertical borehole heat exchanger (BHE) systems,
37
- with a focus on the impact of depth-dependent thermal properties and geothermal gradient and their impact on system performance.
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. It allows for deterministic or stochastic performance analyses with the opportunity
42
- for optimization of the system design and operation. This makes Geoloop well suited for scenario analyses and sensitivity
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** provides a novel depth-dependent approach for thermal response calculations.
46
- A detailed description and benchmark of this depth-dependent semi-analytical method is provided in Korevaar et al. (2026).
47
- **Geoloop** uses the *pygfunction* package, developed by Cimmino & Cook (2022), including its implementation
48
- of *g*-functions, time aggregation schemes for varying loads, borehole and fluid thermal properties, and various visualization capabilities
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