geoloop 0.0.1__py3-none-any.whl → 1.0.0__py3-none-any.whl

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 (47) hide show
  1. geoloop/axisym/AxisymetricEL.py +751 -0
  2. geoloop/axisym/__init__.py +3 -0
  3. geoloop/bin/Flowdatamain.py +89 -0
  4. geoloop/bin/Lithologymain.py +84 -0
  5. geoloop/bin/Loadprofilemain.py +100 -0
  6. geoloop/bin/Plotmain.py +250 -0
  7. geoloop/bin/Runbatch.py +81 -0
  8. geoloop/bin/Runmain.py +86 -0
  9. geoloop/bin/SingleRunSim.py +928 -0
  10. geoloop/bin/__init__.py +3 -0
  11. geoloop/cli/__init__.py +0 -0
  12. geoloop/cli/batch.py +106 -0
  13. geoloop/cli/main.py +105 -0
  14. geoloop/configuration.py +946 -0
  15. geoloop/constants.py +112 -0
  16. geoloop/geoloopcore/CoaxialPipe.py +503 -0
  17. geoloop/geoloopcore/CustomPipe.py +727 -0
  18. geoloop/geoloopcore/__init__.py +3 -0
  19. geoloop/geoloopcore/b2g.py +739 -0
  20. geoloop/geoloopcore/b2g_ana.py +516 -0
  21. geoloop/geoloopcore/boreholedesign.py +683 -0
  22. geoloop/geoloopcore/getloaddata.py +112 -0
  23. geoloop/geoloopcore/pyg_ana.py +280 -0
  24. geoloop/geoloopcore/pygfield_ana.py +519 -0
  25. geoloop/geoloopcore/simulationparameters.py +130 -0
  26. geoloop/geoloopcore/soilproperties.py +152 -0
  27. geoloop/geoloopcore/strat_interpolator.py +194 -0
  28. geoloop/lithology/__init__.py +3 -0
  29. geoloop/lithology/plot_lithology.py +277 -0
  30. geoloop/lithology/process_lithology.py +695 -0
  31. geoloop/loadflowdata/__init__.py +3 -0
  32. geoloop/loadflowdata/flow_data.py +161 -0
  33. geoloop/loadflowdata/loadprofile.py +325 -0
  34. geoloop/plotting/__init__.py +3 -0
  35. geoloop/plotting/create_plots.py +1142 -0
  36. geoloop/plotting/load_data.py +432 -0
  37. geoloop/utils/RunManager.py +164 -0
  38. geoloop/utils/__init__.py +0 -0
  39. geoloop/utils/helpers.py +841 -0
  40. geoloop-1.0.0.dist-info/METADATA +120 -0
  41. geoloop-1.0.0.dist-info/RECORD +46 -0
  42. geoloop-1.0.0.dist-info/entry_points.txt +2 -0
  43. geoloop-0.0.1.dist-info/licenses/LICENSE → geoloop-1.0.0.dist-info/licenses/LICENSE.md +2 -1
  44. geoloop-0.0.1.dist-info/METADATA +0 -10
  45. geoloop-0.0.1.dist-info/RECORD +0 -6
  46. {geoloop-0.0.1.dist-info → geoloop-1.0.0.dist-info}/WHEEL +0 -0
  47. {geoloop-0.0.1.dist-info → geoloop-1.0.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,120 @@
1
+ Metadata-Version: 2.4
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
5
+ Author-email: Zanne Korevaar <zanne.korevaar@tno.nl>, Jan-Diederik van Wees <jan_diederik.vanwees@tno.nl>
6
+ License-Expression: Apache-2.0
7
+ Keywords: borehole heat exchanger,BHE,geothermal,ground-source heat pump,deep borehole heat exchanger
8
+ Requires-Python: <3.14,>=3.12
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE.md
11
+ Requires-Dist: pygfunction>=2.2.2
12
+ Requires-Dist: matplotlib>=3.10.1
13
+ Requires-Dist: numpy>=2.2.4
14
+ Requires-Dist: scipy>=1.7.3
15
+ Requires-Dist: h5py>=3.4.0
16
+ Requires-Dist: xarray>=2025.3.1
17
+ Requires-Dist: pandas<3,>=2.2.3
18
+ Requires-Dist: seaborn>=0.13.2
19
+ Requires-Dist: tqdm>=4.67.1
20
+ Requires-Dist: netCDF4>=1.7.2
21
+ Requires-Dist: SecondaryCoolantProps>=1.3
22
+ Requires-Dist: openpyxl>=3.1.5
23
+ Requires-Dist: h5netcdf>=1.7.3
24
+ Requires-Dist: pathlib>=1.0.1
25
+ Requires-Dist: pydantic>=2.12.4
26
+ Requires-Dist: typer>=0.20.0
27
+ Dynamic: license-file
28
+
29
+ # Geoloop: A BHE Calculator for Python
30
+
31
+ [![PyPI](https://img.shields.io/pypi/v/geoloop.svg)](https://pypi.org/project/geoloop/)
32
+ [![Documentation](https://img.shields.io/badge/docs-latest-blue)](https://geoloop-8f7a36.ci.tno.nl/)
33
+
34
+ ## What is **Geoloop**?
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.
38
+
39
+ **Geoloop** incorporates (uncertainty in) depth-variations in subsurface thermal conductivity, subsurface temperature,
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
43
+ studies in both research and practical applications.
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
52
+ finite volume approach.
53
+
54
+ ---
55
+
56
+ ## Installation
57
+
58
+ Install from PyPI using:
59
+
60
+ ```bash
61
+ pip install geoloop
62
+ ```
63
+
64
+ For detailed setup instructions (including uv-based environments and development setup),
65
+ see the [Installation Guide](https://geoloop-8f7a36.ci.tno.nl/installation/install/).
66
+
67
+ ---
68
+
69
+ ## Requirements
70
+
71
+ Geoloop requires **Python 3.12 or higher**.
72
+
73
+ Core dependencies include:
74
+ - pygfunction
75
+ - matplotlib
76
+ - numpy
77
+ - scipy
78
+ - h5py
79
+ - xarray
80
+ - pandas
81
+ - seaborn
82
+ - tqdm
83
+ - netCDF4
84
+ - SecondaryCoolantProps
85
+ - openpyxl
86
+ - h5netcdf
87
+ - pathlib
88
+ - pydantic
89
+ - typer
90
+
91
+ ---
92
+
93
+ ## Quick Start
94
+
95
+ Explore the [Examples](docs/examples/) folder to get started quickly with Geoloop.
96
+
97
+ Read the full documenation [here](https://geoloop-8f7a36.ci.tno.nl/).
98
+
99
+ ---
100
+
101
+ ## License
102
+
103
+ This project is licensed under the Apache 2.0 License.
104
+ See the [LICENSE.md](LICENSE.md) file for details.
105
+
106
+ ---
107
+
108
+ ## Acknowledgments
109
+
110
+ Developed with the support of the Dutch funding agency **RVO**, in a consortium project with grant nr. MOOI322009.
111
+
112
+ ---
113
+
114
+
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
@@ -0,0 +1,46 @@
1
+ geoloop/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ geoloop/configuration.py,sha256=hYpskvpol_82Ai5RsGTcH7zBWLX8SYSSFSF0NBs21ig,33131
3
+ geoloop/constants.py,sha256=F2fsh3e35Fp8AqNguPba6W96jaIAfsWazk1d6uzKi6I,2698
4
+ geoloop/axisym/AxisymetricEL.py,sha256=uGERxWzt9PIixzyYqK_v2kBuOEye6ZhqqXVBBEbrRig,28218
5
+ geoloop/axisym/__init__.py,sha256=s3Suw3X0GzuQKGvR1ia6RCYGa43Az8g4gtRgedkf2b0,84
6
+ geoloop/bin/Flowdatamain.py,sha256=vwVn7y9jPH-6RU2_eH2tWLvcsbFFHDxi8APoQ5ug1J0,2566
7
+ geoloop/bin/Lithologymain.py,sha256=8vzXVsLbleIp7FN0aM1Y6qrPfFeK0vaG9RuZC71rNsA,2839
8
+ geoloop/bin/Loadprofilemain.py,sha256=A491o8eiImAfanjZrdJPGkbWgiW1L6-KeNazKTwJKVg,3218
9
+ geoloop/bin/Plotmain.py,sha256=7D7lAjMSgyyeuVRG3m8C6JpuUpEZRSPRW7EjXecOmns,10293
10
+ geoloop/bin/Runbatch.py,sha256=b5EbMEbUI7pYrOxfkFgmxYnFuJ4Cutsb1Y-caZlUji0,2211
11
+ geoloop/bin/Runmain.py,sha256=nan1DlWijdfb3DK_yWvbaDNnw3jAlkDbeQNIyixyNWc,2729
12
+ geoloop/bin/SingleRunSim.py,sha256=xzQOBzTF_JSUNHzFK4PKdcDNrMYQ42N2opvL1rc4sS8,29483
13
+ geoloop/bin/__init__.py,sha256=TCfdSH7pJZUGcJEdcnwnoLwtOv7JtEZJTfHMjNGiFhE,76
14
+ geoloop/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
+ geoloop/cli/batch.py,sha256=S_H-XWwH5NN2isXZsuJvbgCSAjHmMvZeeDe76V_mwSM,3499
16
+ geoloop/cli/main.py,sha256=OPLHHZ_jTcRhJJyxMso11lBbV_QV6u9sv672SCiXLPA,3061
17
+ geoloop/geoloopcore/CoaxialPipe.py,sha256=QDoelo4LmIy99Wf6_w8ECZOQbNQ7hTRMrvY6RgdiA94,18395
18
+ geoloop/geoloopcore/CustomPipe.py,sha256=2sRUj0dhqtqbi0h2ydj_uDvpxYpqi1yowXvhlpOoRYA,23885
19
+ geoloop/geoloopcore/__init__.py,sha256=-KGPB9JKniMxRslEodzCwcrRPrdz_JgWion7uDbfF9I,104
20
+ geoloop/geoloopcore/b2g.py,sha256=U7Hw6M1v4ckY78K9IYzyqk_NtVTU5ibwUlTsGNbEeiY,29098
21
+ geoloop/geoloopcore/b2g_ana.py,sha256=3gFY3Q8DdXGnMmerf2crmgBnC__oBLhyiaFen1jG1Og,18469
22
+ geoloop/geoloopcore/boreholedesign.py,sha256=k9TlSHrnRFCnw9TtDoZ8rURIWMksHncS0Uz0qp7fY8E,23574
23
+ geoloop/geoloopcore/getloaddata.py,sha256=Lj5q8dx6JQms0TIpkhA2GzQ-BGrgJEp4agFq-i3d15Y,4135
24
+ geoloop/geoloopcore/pyg_ana.py,sha256=b66IoR4UwvB9n_bFUBqjYvq34e49MeBcXMwKVwyLy3k,9756
25
+ geoloop/geoloopcore/pygfield_ana.py,sha256=vBMSg8ii47Gs1L9I9jXVpSmmc4sZRtmYkix0BiSeblQ,16957
26
+ geoloop/geoloopcore/simulationparameters.py,sha256=_fd4FKiZCs6D553cJ10enCps-_38kKHNviatxhP64QQ,4122
27
+ geoloop/geoloopcore/soilproperties.py,sha256=vpH5Iq7Uuf1AX2wEqWEAv9J8w9nQqh-CfEAYHPVhPpU,6053
28
+ geoloop/geoloopcore/strat_interpolator.py,sha256=BB-xMA5Py3QOOoAdZMZBnxsuGpEug9xCfvuE7ZL6Ysk,6071
29
+ geoloop/lithology/__init__.py,sha256=Nwcc5G-DCpBQjTIn2VK0Rvm2HDs3cc8gjXUAjRg7DmU,158
30
+ geoloop/lithology/plot_lithology.py,sha256=SyOYH6hEAhMz8f4qk9XlofEVG7cEpOtBxOwgh6uEeQ0,9477
31
+ geoloop/lithology/process_lithology.py,sha256=LjNKJ77PKnrZlvBZ27Lt7kiFdjj8X5CVe39Obb9dPgM,26327
32
+ geoloop/loadflowdata/__init__.py,sha256=5LO-5fjkWkw50gOuLwDIY2oZHojguTdKJrOtuHHVFPo,138
33
+ geoloop/loadflowdata/flow_data.py,sha256=FM9QZ-oK0zSrMTfTTOjjifP4G5F5sAiWHhnSpRVGaaw,5395
34
+ geoloop/loadflowdata/loadprofile.py,sha256=a0sMkNfqs-YDMwuLreX1Oy3L_yF4aciziHBthsnEvMM,9746
35
+ geoloop/plotting/__init__.py,sha256=cUvbg7WZIuEAYLgQrhhUyS0MFzkwhWaktVV9TwmncuU,125
36
+ geoloop/plotting/create_plots.py,sha256=KJbqH3UN25C3NttQBJUGQ8zhQhWosGjFlCc3XBG5LaE,45549
37
+ geoloop/plotting/load_data.py,sha256=7-HGOLV4e-_D8PShTljMSbehRrX10vok6aTjenrfOYM,18184
38
+ geoloop/utils/RunManager.py,sha256=_teQvHJ5ET5STjTv1YZbYUD4I9lC6xPpACL5zer7nas,5861
39
+ geoloop/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
+ geoloop/utils/helpers.py,sha256=Xrowd6t1nUUsU642y2bD3haKtNs0Zi8cCR8PtIFqAug,32139
41
+ geoloop-1.0.0.dist-info/licenses/LICENSE.md,sha256=0MhY1_Mi2BnmfY4sG2hMfaIQBsGbCR-_jPNOQ2wjnaI,582
42
+ geoloop-1.0.0.dist-info/METADATA,sha256=zxLkYV-_NSVW2iIyezQP4u712TUOcRPamzhX8vknh_w,4269
43
+ geoloop-1.0.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
44
+ geoloop-1.0.0.dist-info/entry_points.txt,sha256=MK2kD_B90zZfZN-kUVrfQyJZqorcgg1WYLe7CSgvfHc,56
45
+ geoloop-1.0.0.dist-info/top_level.txt,sha256=V20v-HNxFxZn9Tguuo4KZFG3c9Kn4D4w06tL1tlRbwE,8
46
+ geoloop-1.0.0.dist-info/RECORD,,
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ geoloop = geoloop.cli.main:simulation
@@ -1,4 +1,5 @@
1
- Copyright 2025 TNO
1
+ Copyright (c) 2025, TNO
2
+ All rights reserved.
2
3
 
3
4
  Licensed under the Apache License, Version 2.0 (the "License");
4
5
  you may not use this file except in compliance with the License.
@@ -1,10 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: geoloop
3
- Version: 0.0.1
4
- Summary: Reserved package name
5
- Author-email: Jan-Diederik van Wees <Jan_Diederik.vanWees@tno.nl>, Zanne Korevaar <zanne.korevaar@tno.nl>
6
- License: Apache 2.0
7
- Requires-Python: >=3.8
8
- Description-Content-Type: text/markdown
9
- License-File: LICENSE
10
- Dynamic: license-file
@@ -1,6 +0,0 @@
1
- geoloop/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- geoloop-0.0.1.dist-info/licenses/LICENSE,sha256=kBlk8vnfPW7g3Bkg0mhhm15kY4Y1uxj-Zy1Q_LN4rb0,555
3
- geoloop-0.0.1.dist-info/METADATA,sha256=62hkwWs_w1cs0p4Oxs8GVr8_-pho1rEWRpfZ3OLsJxE,325
4
- geoloop-0.0.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
5
- geoloop-0.0.1.dist-info/top_level.txt,sha256=V20v-HNxFxZn9Tguuo4KZFG3c9Kn4D4w06tL1tlRbwE,8
6
- geoloop-0.0.1.dist-info/RECORD,,