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.
Files changed (63) hide show
  1. geoloop-0.0.1/LICENSE → geoloop-1.0.0b1/LICENSE.md +2 -1
  2. geoloop-1.0.0b1/PKG-INFO +112 -0
  3. geoloop-1.0.0b1/README.md +84 -0
  4. geoloop-1.0.0b1/pyproject.toml +84 -0
  5. geoloop-1.0.0b1/src/geoloop/axisym/AxisymetricEL.py +751 -0
  6. geoloop-1.0.0b1/src/geoloop/axisym/__init__.py +3 -0
  7. geoloop-1.0.0b1/src/geoloop/bin/Flowdatamain.py +89 -0
  8. geoloop-1.0.0b1/src/geoloop/bin/Lithologymain.py +84 -0
  9. geoloop-1.0.0b1/src/geoloop/bin/Loadprofilemain.py +100 -0
  10. geoloop-1.0.0b1/src/geoloop/bin/Plotmain.py +250 -0
  11. geoloop-1.0.0b1/src/geoloop/bin/Runbatch.py +81 -0
  12. geoloop-1.0.0b1/src/geoloop/bin/Runmain.py +86 -0
  13. geoloop-1.0.0b1/src/geoloop/bin/SingleRunSim.py +928 -0
  14. geoloop-1.0.0b1/src/geoloop/bin/__init__.py +3 -0
  15. geoloop-1.0.0b1/src/geoloop/cli/batch.py +106 -0
  16. geoloop-1.0.0b1/src/geoloop/cli/main.py +105 -0
  17. geoloop-1.0.0b1/src/geoloop/configuration.py +946 -0
  18. geoloop-1.0.0b1/src/geoloop/constants.py +112 -0
  19. geoloop-1.0.0b1/src/geoloop/geoloopcore/CoaxialPipe.py +503 -0
  20. geoloop-1.0.0b1/src/geoloop/geoloopcore/CustomPipe.py +727 -0
  21. geoloop-1.0.0b1/src/geoloop/geoloopcore/__init__.py +3 -0
  22. geoloop-1.0.0b1/src/geoloop/geoloopcore/b2g.py +739 -0
  23. geoloop-1.0.0b1/src/geoloop/geoloopcore/b2g_ana.py +535 -0
  24. geoloop-1.0.0b1/src/geoloop/geoloopcore/boreholedesign.py +683 -0
  25. geoloop-1.0.0b1/src/geoloop/geoloopcore/getloaddata.py +112 -0
  26. geoloop-1.0.0b1/src/geoloop/geoloopcore/pyg_ana.py +280 -0
  27. geoloop-1.0.0b1/src/geoloop/geoloopcore/pygfield_ana.py +519 -0
  28. geoloop-1.0.0b1/src/geoloop/geoloopcore/simulationparameters.py +130 -0
  29. geoloop-1.0.0b1/src/geoloop/geoloopcore/soilproperties.py +152 -0
  30. geoloop-1.0.0b1/src/geoloop/geoloopcore/strat_interpolator.py +194 -0
  31. geoloop-1.0.0b1/src/geoloop/lithology/__init__.py +3 -0
  32. geoloop-1.0.0b1/src/geoloop/lithology/plot_lithology.py +277 -0
  33. geoloop-1.0.0b1/src/geoloop/lithology/process_lithology.py +697 -0
  34. geoloop-1.0.0b1/src/geoloop/loadflowdata/__init__.py +3 -0
  35. geoloop-1.0.0b1/src/geoloop/loadflowdata/flow_data.py +161 -0
  36. geoloop-1.0.0b1/src/geoloop/loadflowdata/loadprofile.py +325 -0
  37. geoloop-1.0.0b1/src/geoloop/plotting/__init__.py +3 -0
  38. geoloop-1.0.0b1/src/geoloop/plotting/create_plots.py +1137 -0
  39. geoloop-1.0.0b1/src/geoloop/plotting/load_data.py +432 -0
  40. geoloop-1.0.0b1/src/geoloop/utils/RunManager.py +164 -0
  41. geoloop-1.0.0b1/src/geoloop/utils/__init__.py +0 -0
  42. geoloop-1.0.0b1/src/geoloop/utils/helpers.py +841 -0
  43. geoloop-1.0.0b1/src/geoloop.egg-info/PKG-INFO +112 -0
  44. geoloop-1.0.0b1/src/geoloop.egg-info/SOURCES.txt +57 -0
  45. geoloop-1.0.0b1/src/geoloop.egg-info/entry_points.txt +2 -0
  46. geoloop-1.0.0b1/src/geoloop.egg-info/requires.txt +16 -0
  47. geoloop-1.0.0b1/test/test_b2g.py +147 -0
  48. geoloop-1.0.0b1/test/test_b2g_ana.py +192 -0
  49. geoloop-1.0.0b1/test/test_h5.py +97 -0
  50. geoloop-1.0.0b1/test/test_lithology.py +72 -0
  51. geoloop-1.0.0b1/test/test_loadflowdata.py +182 -0
  52. geoloop-1.0.0b1/test/test_plotting.py +201 -0
  53. geoloop-1.0.0b1/test/test_pyg_ana.py +133 -0
  54. geoloop-1.0.0b1/test/test_pygfield_ana.py +150 -0
  55. geoloop-0.0.1/PKG-INFO +0 -10
  56. geoloop-0.0.1/pyproject.toml +0 -16
  57. geoloop-0.0.1/src/geoloop.egg-info/PKG-INFO +0 -10
  58. geoloop-0.0.1/src/geoloop.egg-info/SOURCES.txt +0 -8
  59. {geoloop-0.0.1 → geoloop-1.0.0b1}/setup.cfg +0 -0
  60. {geoloop-0.0.1 → geoloop-1.0.0b1}/src/geoloop/__init__.py +0 -0
  61. /geoloop-0.0.1/README.md → /geoloop-1.0.0b1/src/geoloop/cli/__init__.py +0 -0
  62. {geoloop-0.0.1 → geoloop-1.0.0b1}/src/geoloop.egg-info/dependency_links.txt +0 -0
  63. {geoloop-0.0.1 → geoloop-1.0.0b1}/src/geoloop.egg-info/top_level.txt +0 -0
@@ -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.
@@ -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
+ [![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 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
+ [![PyPI](https://img.shields.io/pypi/v/geoloop.svg)](https://pypi.org/project/geoloop/)
4
+ [![Documentation](https://img.shields.io/badge/docs-latest-blue)](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
+ ]