From 74195aac1558ada2ef8168dbf2d2d50b6e1bbda1 Mon Sep 17 00:00:00 2001 From: korevaarzer Date: Mon, 22 Dec 2025 14:31:33 +0100 Subject: [PATCH 1/7] Update venv install command in installation manual. --- docs/installation/install.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/installation/install.md b/docs/installation/install.md index bc12f83..d84bf19 100644 --- a/docs/installation/install.md +++ b/docs/installation/install.md @@ -31,7 +31,7 @@ If you prefer to use [uv](https://docs.astral.sh/uv/getting-started/) for enviro 2. Install the environment: ```bash - uv sync --extra dev + uv sync --group dev ``` uv will install all dependencies defined in `pyproject.toml` in a clean, isolated environment. -- GitLab From aba3057e35f49e2936a09dd218c764263d312888 Mon Sep 17 00:00:00 2001 From: korevaarzer Date: Mon, 22 Dec 2025 14:33:48 +0100 Subject: [PATCH 2/7] Edit text pyg benchmark example -> in perfect agreement. --- docs/examples/gfunc_benchmark/PYG_benchmark.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/examples/gfunc_benchmark/PYG_benchmark.md b/docs/examples/gfunc_benchmark/PYG_benchmark.md index b72e06c..ceb2e7a 100644 --- a/docs/examples/gfunc_benchmark/PYG_benchmark.md +++ b/docs/examples/gfunc_benchmark/PYG_benchmark.md @@ -65,8 +65,8 @@ outlet and average borehole wall temperatures over time and Fig. 4 shows the flu after one year of operation. In all plots, the results of both simulations are plotted together, by setting the `newplot` flag in the plotting configuration to `false` (see [Manual](../../manual/cli.md)). -The curves from the semi-analytical depth-dependent model in Geoloop and the standard implementation of g-functions directly -overlap in the plots. +The curves from the semi-analytical depth-dependent model in Geoloop and the standard implementation of g-functions are in perfect +agreement in the plots. ![Fig. 3](images/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SRtimeplot_T_bave_T_fi_T_fo.png) -- GitLab From 05c4f61e591c62f91521d26917b922be56927f81 Mon Sep 17 00:00:00 2001 From: korevaarzer Date: Mon, 22 Dec 2025 14:34:16 +0100 Subject: [PATCH 3/7] Fix geloop typos in docs. --- docs/manual/cli.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/manual/cli.md b/docs/manual/cli.md index 861a451..c112f21 100644 --- a/docs/manual/cli.md +++ b/docs/manual/cli.md @@ -38,13 +38,13 @@ Runs one complete BHE simulation. ### Stochastic (Monte Carlo) Simulation ```bash -geloop stochastic-run CONFIG.json +geoloop stochastic-run CONFIG.json ``` ### Process Lithology ```bash -geloop process-lithology LITHOLOGY_CONFIG.json +geoloop process-lithology LITHOLOGY_CONFIG.json ``` Computes and plots depth-dependent thermal subsurface properties. @@ -52,7 +52,7 @@ Computes and plots depth-dependent thermal subsurface properties. ### Compute Heat Load Profile ```bash -geloop calculate-loadprofile LOADPROFILE_CONFIG.json +geoloop calculate-loadprofile LOADPROFILE_CONFIG.json ``` Generates and plots a time-profile of heat extraction and/or injection rates. @@ -60,7 +60,7 @@ Generates and plots a time-profile of heat extraction and/or injection rates. ### Compute Flow Rate Profile ```bash -geloop calculate-flowdata FLOWDATA_CONFIG.json +geoloop calculate-flowdata FLOWDATA_CONFIG.json ``` Generates and plots a time-profile of flow rates. @@ -68,7 +68,7 @@ Generates and plots a time-profile of flow rates. ### Plot Simulation Results ```bash -geloop stochastic-run CONFIG.json +geoloop stochastic-run CONFIG.json ``` Creates plots of simulation results (e.g. temperature-depth profiles, time-plots of system variables) -- GitLab From 6c37054699aed1829370ac6b71646dadf6c0d1d5 Mon Sep 17 00:00:00 2001 From: korevaarzer Date: Mon, 22 Dec 2025 14:45:26 +0100 Subject: [PATCH 4/7] Update CLI manual with with statement for batch run command from the simulation directory. --- docs/manual/cli.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/manual/cli.md b/docs/manual/cli.md index c112f21..dc5a8f8 100644 --- a/docs/manual/cli.md +++ b/docs/manual/cli.md @@ -71,7 +71,7 @@ Generates and plots a time-profile of flow rates. geoloop stochastic-run CONFIG.json ``` -Creates plots of simulation results (e.g. temperature-depth profiles, time-plots of system variables) +Creates plots of simulation results (e.g. temperature-depth profiles, time-plots of system variables). --- @@ -87,6 +87,9 @@ geoloop batch --help Geoloop batch provides commands to build batch configuration JSON files and to execute the batch script. Note: all batch commands come with their own --help method. +The batch commands should be executed from the directory where the batch configuration JSON and linked configuration commands +are stored. For an example, see [Simple Simulation](../examples/simple_simulation/simple_simulation.md). + ## Creating batch Configuration Files ### A. Using `batch create` @@ -95,11 +98,10 @@ This method generates a batch JSON by specifying steps explicitly, for example: ```bash geoloop batch create batch.json \ - --process-lithology path/to/lithology.json \ - --calculate-loadprofile path/to/loadprofile.json \ - --single-run path/to/simulation.json \ - --plot path/to/plot.json - + --process-lithology lithology.json \ + --calculate-loadprofile loadprofile.json \ + --single-run simulation.json \ + --plot plot.json ``` Each flag adds a new step. -- GitLab From 949cb759376bd9824cca007a0f4fafc48716982c Mon Sep 17 00:00:00 2001 From: korevaarzer Date: Mon, 22 Dec 2025 14:55:22 +0100 Subject: [PATCH 5/7] Update theroy section (not finished) --- docs/theory/theory.md | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/docs/theory/theory.md b/docs/theory/theory.md index 136d5c6..3af515a 100644 --- a/docs/theory/theory.md +++ b/docs/theory/theory.md @@ -2,7 +2,7 @@ Geoloop is a Python package that provides API access to different models and tools for performance calculations of borehole heat exchanger (BHE) systems. It includes two models that consider depth-dependency in subsurface thermal properties, in -a semi-analytical model (**insert ref to journal paper**) and a numerical finite volume method based on the model from +a semi-analytical model (Korevaar & Van Wees, in prep.) and a numerical finite volume method based on the model from Cazorla-MarĂ­n et al. (2019; 2020; 2021). In addition, use of the *pygfunction* Python package, developed by Cimmino & Cook (2022), is integrated in the geoloop interface, including simulation of borehole fields. @@ -17,9 +17,9 @@ thermal properties. Geoloop includes a semi-analytical model that uses the thermal response factors - or *g*-functions - from *pygfunction* to calculate system performance of -a single BHE, in a stacked approach, to include -depth-variation in the soil temperature, the borehole design and the -thermal conductivities of the soil. In addition, the model uses the +a single BHE, in a stacked approach. This approach facilitates +depth-variation in the subsurface temperature, borehole design and +subsurface thermal conductivity. In addition, the model uses the multipole-method in calculation of the thermal resistivity network for the borehole interior from *pygfunction*, based on dimensions and materials used for the tubing and grout. Nodes in the thermal resistance @@ -39,8 +39,7 @@ heat load on the BHE, to calculate the system performance. It is well suited for location-dependent optimization of the BHE design and investigating the influence of variable subsurface thermal properties on the system performance. -For a detailed explanation of the semi-analytical depth-dependent modelling principle, please refer to -the accessory journal paper **insert reference to paper**. +For a detailed explanation of the semi-analytical depth-dependent modelling principle, please refer to Korevaar & Van Wees (in prep.). ### The numerical finite volume method @@ -64,11 +63,11 @@ to calculate the short-term performance of the BHE system. The geoloop interface also supports the use of the standard functionality of the *pygfunction* Python package by Cimmino & Cook (2022). The model in this package uses a similar configuration interface as the analytical -model in Geoloop, but does thus not include depth-dependent subsurface -or system design properties. +model in Geoloop, but with depth-uniform subsurface +and system design properties. This model is well suited for doing fast calculations of first order -indications of system performance or for locations with homogeneous +indications of system performance, for BHE performance estimations at locations with homogeneous geology or for shallow BHE systems. ## Simulating (curved) borehole fields @@ -81,10 +80,10 @@ Geoloop builds upon this functionality, in a model for simulating fields of BHE ## The optimization algorithm A simple optimization algorithm can be deployed for optimization of the simulated BHE system design and/or operation, -to obtain the maximum power yield from the system with respect to a user-defined boundary conditions in the pumping +to obtain the maximum power yield from the system with respect to a user-defined boundary condition in the pumping pressure or coefficient of performance (COP) of the fluid circulation pump. The flowchart in Fig. 1 represents the optimization process and the algorithm is explained in more detail in -**insert reference to geoloop paper**. +Korevaar & Van Wees (in prep.). **insert flowchart** @@ -95,8 +94,7 @@ borehole data and a porosity-depth model. The bulk thermal conductivity is calculated conform the method described in Limberger et al. (2018). For a mix of lithologies (max. 2), properties are combined in the geometric mean, based on relative lithological fractions. These fractions, as a function -of depth, are provided in the table with lithological information from -the borehole. +of depth, are provided in a table with lithological borehole information. To account for uncertainty in the relative lithology fractions and porosity over depth, an error can be applied to the porosity and -- GitLab From 3b3daa5862e085b3c18e5cacc951d3789c424253 Mon Sep 17 00:00:00 2001 From: korevaarzer Date: Mon, 22 Dec 2025 14:55:46 +0100 Subject: [PATCH 6/7] Update pyproject.toml for beta publication on pypi. --- pyproject.toml | 4 ++-- uv.lock | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 73859c6..6755fd0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,14 +4,14 @@ build-backend = "setuptools.build_meta" [project] name = "geoloop" -version = "1.0.0" +version = "1.0.0b1" description = "This is a Python package for simulation of (deep) Borehole Heat Exchanger (BHE) systems" authors = [ { name = "Zanne Korevaar", email = "zanne.korevaar@tno.nl" }, { name = "Jan-Diederik van Wees", email = "jan_diederik.vanwees@tno.nl" } ] readme = "README.md" -license = { file = "Apache 2.0" } +license = { text = "Apache 2.0" } requires-python = ">=3.12,<3.14" keywords = [ "borehole heat exchanger", "BHE", "geothermal", "ground-source heat pump", diff --git a/uv.lock b/uv.lock index e4e9a41..a340098 100644 --- a/uv.lock +++ b/uv.lock @@ -338,7 +338,7 @@ wheels = [ [[package]] name = "geoloop" -version = "1.0.0" +version = "1.0.0b1" source = { editable = "." } dependencies = [ { name = "h5netcdf" }, -- GitLab From f4f258fc8620db8302f1395a164c564df82913ca Mon Sep 17 00:00:00 2001 From: korevaarzer Date: Mon, 22 Dec 2025 14:57:35 +0100 Subject: [PATCH 7/7] Add underscores in names of timeplots and sensitivity plots . --- src/geoloop/plotting/create_plots.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/geoloop/plotting/create_plots.py b/src/geoloop/plotting/create_plots.py index bb7ad17..962ca2d 100644 --- a/src/geoloop/plotting/create_plots.py +++ b/src/geoloop/plotting/create_plots.py @@ -440,7 +440,7 @@ class PlotResults: file_name = out_path.with_name( out_path.name - + "timeplot_" + + "_timeplot_" + "_".join(sorted(set(plotted_params))) + ".png" ) @@ -984,7 +984,7 @@ class PlotResults: bbox_to_anchor=(0, -0.1), loc="upper left" ) # Adjust legend position if needed - save_path = outpath.with_name(outpath.name + f"Sensitivity_{y_variable}") + save_path = outpath.with_name(outpath.name + f"_sensitivity_{y_variable}") plt.savefig(save_path, bbox_inches="tight") plt.close() else: -- GitLab