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.
- geoloop/axisym/AxisymetricEL.py +751 -0
- geoloop/axisym/__init__.py +3 -0
- geoloop/bin/Flowdatamain.py +89 -0
- geoloop/bin/Lithologymain.py +84 -0
- geoloop/bin/Loadprofilemain.py +100 -0
- geoloop/bin/Plotmain.py +250 -0
- geoloop/bin/Runbatch.py +81 -0
- geoloop/bin/Runmain.py +86 -0
- geoloop/bin/SingleRunSim.py +928 -0
- geoloop/bin/__init__.py +3 -0
- geoloop/cli/__init__.py +0 -0
- geoloop/cli/batch.py +106 -0
- geoloop/cli/main.py +105 -0
- geoloop/configuration.py +946 -0
- geoloop/constants.py +112 -0
- geoloop/geoloopcore/CoaxialPipe.py +503 -0
- geoloop/geoloopcore/CustomPipe.py +727 -0
- geoloop/geoloopcore/__init__.py +3 -0
- geoloop/geoloopcore/b2g.py +739 -0
- geoloop/geoloopcore/b2g_ana.py +516 -0
- geoloop/geoloopcore/boreholedesign.py +683 -0
- geoloop/geoloopcore/getloaddata.py +112 -0
- geoloop/geoloopcore/pyg_ana.py +280 -0
- geoloop/geoloopcore/pygfield_ana.py +519 -0
- geoloop/geoloopcore/simulationparameters.py +130 -0
- geoloop/geoloopcore/soilproperties.py +152 -0
- geoloop/geoloopcore/strat_interpolator.py +194 -0
- geoloop/lithology/__init__.py +3 -0
- geoloop/lithology/plot_lithology.py +277 -0
- geoloop/lithology/process_lithology.py +695 -0
- geoloop/loadflowdata/__init__.py +3 -0
- geoloop/loadflowdata/flow_data.py +161 -0
- geoloop/loadflowdata/loadprofile.py +325 -0
- geoloop/plotting/__init__.py +3 -0
- geoloop/plotting/create_plots.py +1142 -0
- geoloop/plotting/load_data.py +432 -0
- geoloop/utils/RunManager.py +164 -0
- geoloop/utils/__init__.py +0 -0
- geoloop/utils/helpers.py +841 -0
- geoloop-1.0.0.dist-info/METADATA +120 -0
- geoloop-1.0.0.dist-info/RECORD +46 -0
- geoloop-1.0.0.dist-info/entry_points.txt +2 -0
- geoloop-0.0.1.dist-info/licenses/LICENSE → geoloop-1.0.0.dist-info/licenses/LICENSE.md +2 -1
- geoloop-0.0.1.dist-info/METADATA +0 -10
- geoloop-0.0.1.dist-info/RECORD +0 -6
- {geoloop-0.0.1.dist-info → geoloop-1.0.0.dist-info}/WHEEL +0 -0
- {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
|
+
[](https://pypi.org/project/geoloop/)
|
|
32
|
+
[](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,,
|
geoloop-0.0.1.dist-info/METADATA
DELETED
|
@@ -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
|
geoloop-0.0.1.dist-info/RECORD
DELETED
|
@@ -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,,
|
|
File without changes
|
|
File without changes
|