geoloop 0.0.1__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-0.0.1/LICENSE → geoloop-1.0.0b1/LICENSE.md +2 -1
- geoloop-1.0.0b1/PKG-INFO +112 -0
- geoloop-1.0.0b1/README.md +84 -0
- geoloop-1.0.0b1/pyproject.toml +84 -0
- geoloop-1.0.0b1/src/geoloop/axisym/AxisymetricEL.py +751 -0
- geoloop-1.0.0b1/src/geoloop/axisym/__init__.py +3 -0
- geoloop-1.0.0b1/src/geoloop/bin/Flowdatamain.py +89 -0
- geoloop-1.0.0b1/src/geoloop/bin/Lithologymain.py +84 -0
- geoloop-1.0.0b1/src/geoloop/bin/Loadprofilemain.py +100 -0
- geoloop-1.0.0b1/src/geoloop/bin/Plotmain.py +250 -0
- geoloop-1.0.0b1/src/geoloop/bin/Runbatch.py +81 -0
- geoloop-1.0.0b1/src/geoloop/bin/Runmain.py +86 -0
- geoloop-1.0.0b1/src/geoloop/bin/SingleRunSim.py +928 -0
- geoloop-1.0.0b1/src/geoloop/bin/__init__.py +3 -0
- geoloop-1.0.0b1/src/geoloop/cli/batch.py +106 -0
- geoloop-1.0.0b1/src/geoloop/cli/main.py +105 -0
- geoloop-1.0.0b1/src/geoloop/configuration.py +946 -0
- geoloop-1.0.0b1/src/geoloop/constants.py +112 -0
- geoloop-1.0.0b1/src/geoloop/geoloopcore/CoaxialPipe.py +503 -0
- geoloop-1.0.0b1/src/geoloop/geoloopcore/CustomPipe.py +727 -0
- geoloop-1.0.0b1/src/geoloop/geoloopcore/__init__.py +3 -0
- geoloop-1.0.0b1/src/geoloop/geoloopcore/b2g.py +739 -0
- geoloop-1.0.0b1/src/geoloop/geoloopcore/b2g_ana.py +535 -0
- geoloop-1.0.0b1/src/geoloop/geoloopcore/boreholedesign.py +683 -0
- geoloop-1.0.0b1/src/geoloop/geoloopcore/getloaddata.py +112 -0
- geoloop-1.0.0b1/src/geoloop/geoloopcore/pyg_ana.py +280 -0
- geoloop-1.0.0b1/src/geoloop/geoloopcore/pygfield_ana.py +519 -0
- geoloop-1.0.0b1/src/geoloop/geoloopcore/simulationparameters.py +130 -0
- geoloop-1.0.0b1/src/geoloop/geoloopcore/soilproperties.py +152 -0
- geoloop-1.0.0b1/src/geoloop/geoloopcore/strat_interpolator.py +194 -0
- geoloop-1.0.0b1/src/geoloop/lithology/__init__.py +3 -0
- geoloop-1.0.0b1/src/geoloop/lithology/plot_lithology.py +277 -0
- geoloop-1.0.0b1/src/geoloop/lithology/process_lithology.py +697 -0
- geoloop-1.0.0b1/src/geoloop/loadflowdata/__init__.py +3 -0
- geoloop-1.0.0b1/src/geoloop/loadflowdata/flow_data.py +161 -0
- geoloop-1.0.0b1/src/geoloop/loadflowdata/loadprofile.py +325 -0
- geoloop-1.0.0b1/src/geoloop/plotting/__init__.py +3 -0
- geoloop-1.0.0b1/src/geoloop/plotting/create_plots.py +1137 -0
- geoloop-1.0.0b1/src/geoloop/plotting/load_data.py +432 -0
- geoloop-1.0.0b1/src/geoloop/utils/RunManager.py +164 -0
- geoloop-1.0.0b1/src/geoloop/utils/__init__.py +0 -0
- geoloop-1.0.0b1/src/geoloop/utils/helpers.py +841 -0
- geoloop-1.0.0b1/src/geoloop.egg-info/PKG-INFO +112 -0
- geoloop-1.0.0b1/src/geoloop.egg-info/SOURCES.txt +57 -0
- geoloop-1.0.0b1/src/geoloop.egg-info/entry_points.txt +2 -0
- geoloop-1.0.0b1/src/geoloop.egg-info/requires.txt +16 -0
- geoloop-1.0.0b1/test/test_b2g.py +147 -0
- geoloop-1.0.0b1/test/test_b2g_ana.py +192 -0
- geoloop-1.0.0b1/test/test_h5.py +97 -0
- geoloop-1.0.0b1/test/test_lithology.py +72 -0
- geoloop-1.0.0b1/test/test_loadflowdata.py +182 -0
- geoloop-1.0.0b1/test/test_plotting.py +201 -0
- geoloop-1.0.0b1/test/test_pyg_ana.py +133 -0
- geoloop-1.0.0b1/test/test_pygfield_ana.py +150 -0
- geoloop-0.0.1/PKG-INFO +0 -10
- geoloop-0.0.1/pyproject.toml +0 -16
- geoloop-0.0.1/src/geoloop.egg-info/PKG-INFO +0 -10
- geoloop-0.0.1/src/geoloop.egg-info/SOURCES.txt +0 -8
- {geoloop-0.0.1 → geoloop-1.0.0b1}/setup.cfg +0 -0
- {geoloop-0.0.1 → geoloop-1.0.0b1}/src/geoloop/__init__.py +0 -0
- /geoloop-0.0.1/README.md → /geoloop-1.0.0b1/src/geoloop/cli/__init__.py +0 -0
- {geoloop-0.0.1 → geoloop-1.0.0b1}/src/geoloop.egg-info/dependency_links.txt +0 -0
- {geoloop-0.0.1 → geoloop-1.0.0b1}/src/geoloop.egg-info/top_level.txt +0 -0
geoloop-1.0.0b1/PKG-INFO
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: geoloop
|
|
3
|
+
Version: 1.0.0b1
|
|
4
|
+
Summary: This is a Python package for simulation of (deep) 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: 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 borehole heat exchanger (BHE) systems,
|
|
37
|
+
with a focus on optimal implementation of subsurface thermal properties 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, 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
|
+
studies in both research and practical applications.
|
|
44
|
+
|
|
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
|
|
50
|
+
finite volume approach.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Installation
|
|
55
|
+
|
|
56
|
+
Install from PyPI using:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
pip install geoloop
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
For detailed setup instructions (including uv-based environments and development setup),
|
|
63
|
+
see the [Installation Guide](https://geoloop-8f7a36.ci.tno.nl/installation/install/).
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Requirements
|
|
68
|
+
|
|
69
|
+
Geoloop requires **Python 3.12 or higher**.
|
|
70
|
+
|
|
71
|
+
Core dependencies include:
|
|
72
|
+
- pygfunction
|
|
73
|
+
- matplotlib
|
|
74
|
+
- numpy
|
|
75
|
+
- scipy
|
|
76
|
+
- h5py
|
|
77
|
+
- xarray
|
|
78
|
+
- pandas
|
|
79
|
+
- seaborn
|
|
80
|
+
- tqdm
|
|
81
|
+
- netCDF4
|
|
82
|
+
- SecondaryCoolantProps
|
|
83
|
+
- openpyxl
|
|
84
|
+
- h5netcdf
|
|
85
|
+
- pathlib
|
|
86
|
+
- pydantic
|
|
87
|
+
- typer
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Quick Start
|
|
92
|
+
|
|
93
|
+
Explore the [Examples](docs/examples/) folder to get started quickly with Geoloop.
|
|
94
|
+
|
|
95
|
+
Read the full documenation [here](https://geoloop-8f7a36.ci.tno.nl/).
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## License
|
|
100
|
+
|
|
101
|
+
This project is licensed under the Apache 2.0 License.
|
|
102
|
+
See the [LICENSE.md](LICENSE.md) file for details.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Acknowledgments
|
|
107
|
+
|
|
108
|
+
Developed with the support of the Dutch funding agency **RVO**, in a consortium project with grant nr. MOOI322009.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Geoloop: A BHE Calculator for Python
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/geoloop/)
|
|
4
|
+
[](https://geoloop-8f7a36.ci.tno.nl/)
|
|
5
|
+
|
|
6
|
+
## What is **Geoloop**?
|
|
7
|
+
|
|
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
|
+
|
|
11
|
+
**Geoloop** incorporates (uncertainty in) depth-variations in subsurface thermal conductivity, subsurface temperature,
|
|
12
|
+
BHE design and diverse operational boundary conditions such as seasonal load variations or
|
|
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
|
+
studies in both research and practical applications.
|
|
16
|
+
|
|
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
|
|
22
|
+
finite volume approach.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Installation
|
|
27
|
+
|
|
28
|
+
Install from PyPI using:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
pip install geoloop
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
For detailed setup instructions (including uv-based environments and development setup),
|
|
35
|
+
see the [Installation Guide](https://geoloop-8f7a36.ci.tno.nl/installation/install/).
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Requirements
|
|
40
|
+
|
|
41
|
+
Geoloop requires **Python 3.12 or higher**.
|
|
42
|
+
|
|
43
|
+
Core dependencies include:
|
|
44
|
+
- pygfunction
|
|
45
|
+
- matplotlib
|
|
46
|
+
- numpy
|
|
47
|
+
- scipy
|
|
48
|
+
- h5py
|
|
49
|
+
- xarray
|
|
50
|
+
- pandas
|
|
51
|
+
- seaborn
|
|
52
|
+
- tqdm
|
|
53
|
+
- netCDF4
|
|
54
|
+
- SecondaryCoolantProps
|
|
55
|
+
- openpyxl
|
|
56
|
+
- h5netcdf
|
|
57
|
+
- pathlib
|
|
58
|
+
- pydantic
|
|
59
|
+
- typer
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Quick Start
|
|
64
|
+
|
|
65
|
+
Explore the [Examples](docs/examples/) folder to get started quickly with Geoloop.
|
|
66
|
+
|
|
67
|
+
Read the full documenation [here](https://geoloop-8f7a36.ci.tno.nl/).
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## License
|
|
72
|
+
|
|
73
|
+
This project is licensed under the Apache 2.0 License.
|
|
74
|
+
See the [LICENSE.md](LICENSE.md) file for details.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Acknowledgments
|
|
79
|
+
|
|
80
|
+
Developed with the support of the Dutch funding agency **RVO**, in a consortium project with grant nr. MOOI322009.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "geoloop"
|
|
7
|
+
version = "1.0.0b1"
|
|
8
|
+
description = "This is a Python package for simulation of (deep) Borehole Heat Exchanger (BHE) systems"
|
|
9
|
+
authors = [
|
|
10
|
+
{ name = "Zanne Korevaar", email = "zanne.korevaar@tno.nl" },
|
|
11
|
+
{ name = "Jan-Diederik van Wees", email = "jan_diederik.vanwees@tno.nl" }
|
|
12
|
+
]
|
|
13
|
+
readme = "README.md"
|
|
14
|
+
license = { text = "Apache 2.0" }
|
|
15
|
+
requires-python = ">=3.12,<3.14"
|
|
16
|
+
keywords = [
|
|
17
|
+
"borehole heat exchanger", "BHE", "geothermal", "ground-source heat pump",
|
|
18
|
+
"deep borehole heat exchanger"
|
|
19
|
+
]
|
|
20
|
+
dependencies = [
|
|
21
|
+
"pygfunction>=2.2.2",
|
|
22
|
+
"matplotlib>=3.10.1",
|
|
23
|
+
"numpy>=2.2.4",
|
|
24
|
+
"scipy>=1.7.3",
|
|
25
|
+
"h5py>=3.4.0",
|
|
26
|
+
"xarray>=2025.3.1",
|
|
27
|
+
"pandas>=2.2.3,<3",
|
|
28
|
+
"seaborn>=0.13.2",
|
|
29
|
+
"tqdm>=4.67.1",
|
|
30
|
+
"netCDF4>=1.7.2",
|
|
31
|
+
"SecondaryCoolantProps>=1.3",
|
|
32
|
+
"openpyxl>=3.1.5",
|
|
33
|
+
"h5netcdf>=1.7.3",
|
|
34
|
+
"pathlib>=1.0.1",
|
|
35
|
+
"pydantic>=2.12.4",
|
|
36
|
+
"typer>=0.20.0",
|
|
37
|
+
]
|
|
38
|
+
|
|
39
|
+
[dependency-groups]
|
|
40
|
+
dev = [
|
|
41
|
+
"ruff>=0.14.6",
|
|
42
|
+
"black",
|
|
43
|
+
"flake8",
|
|
44
|
+
"pytest>=8.4.2",
|
|
45
|
+
"mkdocs>=1.6.1",
|
|
46
|
+
"mkdocs-material>=9.6.23",
|
|
47
|
+
"mike>=2.1.3,<3",
|
|
48
|
+
"mkdocstrings>=0.30.1",
|
|
49
|
+
"mkdocstrings-python>=1.18.2",
|
|
50
|
+
"build>=1.3.0",
|
|
51
|
+
"twine>=6.2.0",
|
|
52
|
+
"wheel>=0.45.1",
|
|
53
|
+
"setuptools>=80.9.0",
|
|
54
|
+
]
|
|
55
|
+
|
|
56
|
+
[tool.setuptools.packages.find]
|
|
57
|
+
where = ["src"]
|
|
58
|
+
|
|
59
|
+
[project.scripts]
|
|
60
|
+
geoloop = "geoloop.cli.main:simulation"
|
|
61
|
+
|
|
62
|
+
[tool.uv.workspace]
|
|
63
|
+
members = [
|
|
64
|
+
"geoloop",
|
|
65
|
+
]
|
|
66
|
+
|
|
67
|
+
[tool.ruff]
|
|
68
|
+
line-length = 88
|
|
69
|
+
|
|
70
|
+
[tool.ruff.lint]
|
|
71
|
+
select = [
|
|
72
|
+
# pycodestyle (style guide violations)
|
|
73
|
+
"E",
|
|
74
|
+
# Pyflakes (bug detection)
|
|
75
|
+
"F",
|
|
76
|
+
# pyupgrade (modern Python syntax)
|
|
77
|
+
"UP",
|
|
78
|
+
# flake8-bugbear (common bugs and design issues)
|
|
79
|
+
"B",
|
|
80
|
+
# flake8-simplify (simplifiable constructs)
|
|
81
|
+
"SIM",
|
|
82
|
+
# isort (import sorting)
|
|
83
|
+
"I",
|
|
84
|
+
]
|