diff --git a/docs/examples/bhe_field_madrid/bore_field_madrid.md b/docs/examples/bhe_field_madrid/bore_field_madrid.md index 2bcc64b213b01116c536007c9c919f121c6c668e..0470ee7e0a255de0503e3ca6dba282d8c33fc22c 100644 --- a/docs/examples/bhe_field_madrid/bore_field_madrid.md +++ b/docs/examples/bhe_field_madrid/bore_field_madrid.md @@ -64,7 +64,7 @@ Fig. 3: Design of the double U-tubes in the boreholes in Madrid. Other results have been visualized by running the `Plotmain` command: -![Fig. 4](images/madrid_su_round_curved_P_P_SRtimeplot_T_bave_T_fo.png) +![Fig. 4](images/madrid_su_round_curved_P_P_SR_timeplot_T_bave_T_fo.png) /// caption Fig. 4: Timeseries plot of the circular borehole field with tilted boreholes; average borehole wall temperature and outlet temperature. diff --git a/docs/examples/bhe_field_madrid/images/madrid_su_round_curved_P_P_SRtimeplot_T_bave_T_fo.png b/docs/examples/bhe_field_madrid/images/madrid_su_round_curved_P_P_SR_timeplot_T_bave_T_fo.png similarity index 100% rename from docs/examples/bhe_field_madrid/images/madrid_su_round_curved_P_P_SRtimeplot_T_bave_T_fo.png rename to docs/examples/bhe_field_madrid/images/madrid_su_round_curved_P_P_SR_timeplot_T_bave_T_fo.png diff --git a/docs/examples/bhe_field_me/bore_field_me.md b/docs/examples/bhe_field_me/bore_field_me.md index a8f1e63c7dd73ddb8f887db42fbf88d9d8878ead..28a633fb793f0c291ccea50442e000f6b02304e0 100644 --- a/docs/examples/bhe_field_me/bore_field_me.md +++ b/docs/examples/bhe_field_me/bore_field_me.md @@ -73,10 +73,10 @@ Fig. 4: design of the double utubes in the boreholes for cooling in the Middle E Other results have been visualized by running the `Plotmain` command (Fig. 5). -![Fig. 5a](images/me_du_P_P_SRtimeplot_Q_b.png) -![Fig 5b](images/me_du_P_P_SRtimeplot_flowrate.png) -![Fig. 5c](images/me_du_P_P_SRtimeplot_T_bave_T_fi_T_fo.png) -![Fig. 5e](images/me_du_P_P_SRtimeplot_dploop_qploop.png) +![Fig. 5a](images/me_du_P_P_SR_timeplot_Q_b.png) +![Fig 5b](images/me_du_P_P_SR_timeplot_flowrate.png) +![Fig. 5c](images/me_du_P_P_SR_timeplot_T_bave_T_fi_T_fo.png) +![Fig. 5e](images/me_du_P_P_SR_timeplot_dploop_qploop.png) /// caption Fig. 5: Timeseries plot of the square bore field, ($Qb$) heat demand for each borehole in the field, ($flowrate$) mass diff --git a/examples/bore_field/ME_cooling/output/me_du/me_du_P_P_SRtimeplot_Q_b.png b/docs/examples/bhe_field_me/images/me_du_P_P_SR_timeplot_Q_b.png similarity index 100% rename from examples/bore_field/ME_cooling/output/me_du/me_du_P_P_SRtimeplot_Q_b.png rename to docs/examples/bhe_field_me/images/me_du_P_P_SR_timeplot_Q_b.png diff --git a/examples/bore_field/ME_cooling/output/me_du/me_du_P_P_SRtimeplot_T_bave_T_fi_T_fo.png b/docs/examples/bhe_field_me/images/me_du_P_P_SR_timeplot_T_bave_T_fi_T_fo.png similarity index 100% rename from examples/bore_field/ME_cooling/output/me_du/me_du_P_P_SRtimeplot_T_bave_T_fi_T_fo.png rename to docs/examples/bhe_field_me/images/me_du_P_P_SR_timeplot_T_bave_T_fi_T_fo.png diff --git a/examples/bore_field/ME_cooling/output/me_du/me_du_P_P_SRtimeplot_dploop_qploop.png b/docs/examples/bhe_field_me/images/me_du_P_P_SR_timeplot_dploop_qploop.png similarity index 100% rename from examples/bore_field/ME_cooling/output/me_du/me_du_P_P_SRtimeplot_dploop_qploop.png rename to docs/examples/bhe_field_me/images/me_du_P_P_SR_timeplot_dploop_qploop.png diff --git a/examples/bore_field/ME_cooling/output/me_du/me_du_P_P_SRtimeplot_flowrate.png b/docs/examples/bhe_field_me/images/me_du_P_P_SR_timeplot_flowrate.png similarity index 100% rename from examples/bore_field/ME_cooling/output/me_du/me_du_P_P_SRtimeplot_flowrate.png rename to docs/examples/bhe_field_me/images/me_du_P_P_SR_timeplot_flowrate.png diff --git a/docs/examples/bhe_field_me/images/me_du_P_P_SRtimeplot_Q_b.png b/docs/examples/bhe_field_me/images/me_du_P_P_SRtimeplot_Q_b.png deleted file mode 100644 index 5eb707ae038aa5a199a98413bba31482d3cda259..0000000000000000000000000000000000000000 Binary files a/docs/examples/bhe_field_me/images/me_du_P_P_SRtimeplot_Q_b.png and /dev/null differ diff --git a/docs/examples/bhe_field_me/images/me_du_P_P_SRtimeplot_T_bave_T_fi_T_fo.png b/docs/examples/bhe_field_me/images/me_du_P_P_SRtimeplot_T_bave_T_fi_T_fo.png deleted file mode 100644 index ea23b00720459176ae96f83aeb313f34a9d0ee3f..0000000000000000000000000000000000000000 Binary files a/docs/examples/bhe_field_me/images/me_du_P_P_SRtimeplot_T_bave_T_fi_T_fo.png and /dev/null differ diff --git a/docs/examples/bhe_field_me/images/me_du_P_P_SRtimeplot_dploop_qploop.png b/docs/examples/bhe_field_me/images/me_du_P_P_SRtimeplot_dploop_qploop.png deleted file mode 100644 index 53f9add0c7641c8b74762e9089f379c150892cde..0000000000000000000000000000000000000000 Binary files a/docs/examples/bhe_field_me/images/me_du_P_P_SRtimeplot_dploop_qploop.png and /dev/null differ diff --git a/docs/examples/bhe_field_me/images/me_du_P_P_SRtimeplot_flowrate.png b/docs/examples/bhe_field_me/images/me_du_P_P_SRtimeplot_flowrate.png deleted file mode 100644 index 54496845afbb535cb15d84f3ded0a1596aa37c4c..0000000000000000000000000000000000000000 Binary files a/docs/examples/bhe_field_me/images/me_du_P_P_SRtimeplot_flowrate.png and /dev/null differ diff --git a/docs/examples/bhe_roermond/lithology_Roermond.md b/docs/examples/bhe_roermond/lithology_Roermond.md index 9fb1635989385e1adcd89f5d5690f4f550337624..ea7fd8d91ae4dc3b445bc3f92ca2418c13757fe0 100644 --- a/docs/examples/bhe_roermond/lithology_Roermond.md +++ b/docs/examples/bhe_roermond/lithology_Roermond.md @@ -40,6 +40,9 @@ cd examples/lithology/roermond geoloop batch-run batch_Roermond.json ``` +!!! Note + This example has a significant run-time (>2h). + --- ## Results diff --git a/docs/examples/coax_optimization/Coaxial_BHE_optimization.md b/docs/examples/coax_optimization/Coaxial_BHE_optimization.md index cf8b41ef2e1bd3c0d7a25adffcd8a0c0d85932d5..1a9ac222d53bd2cf3812e78938e4f29ce98a49e0 100644 --- a/docs/examples/coax_optimization/Coaxial_BHE_optimization.md +++ b/docs/examples/coax_optimization/Coaxial_BHE_optimization.md @@ -57,40 +57,51 @@ and pipe insulation design. The power yield that follows from the simulation is shown in Fig. 3. -![Fig. 3](images/COAX_optimization_A_T_SRtimeplot_Q_b.png) +![Fig. 3](images/COAX_optimization_A_T_SR_timeplot_Q_b.png) /// caption Fig. 3: Power yield during a year of constant operation of the coaxial BHE with an optimized flow rate and pipe insulation design. /// +The COP of the fluid circulation pump during the simulated period is shown in Fig. 4. The last value of this time-variable +COP is used to test the COP constraint in the optimization process (see [Theory section](../../theory/theory.md)). + +![Fig. 4](images/COAX_optimization_A_T_SR_timeplot_COP.png) + +/// caption +Fig. 4: COP of the fluid circulation pump during a year of constant operation of the coaxial BHE with an optimized flow +rate and pipe insulation design. +/// + + ### Optimal flow rate and radius of the inner pipe In the second simulation, the radius of the inner pipe in the coaxial BHE is optimized for the maximum power yield, for which -the result is shown in Fig. 4. The inner pipe has a radius of 36 mm. +the result is shown in Fig. 5. The inner pipe has a radius of 36 mm. -![Fig. 4](images/COAX_optimization_rout_A_T_bhdesign.png){width="500"} +![Fig. 5](images/COAX_optimization_rout_A_T_bhdesign.png){width="500"} /// caption -Fig. 4: Cross-section of the BHE design in the second optimization simulation for maximum power yield of the system. +Fig. 5: Cross-section of the BHE design in the second optimization simulation for maximum power yield of the system. /// Here, the flow rate and the radius of the inner pipe are optimized under the condition of a minimum COP of the circulation pump of 20 and an imposed pumping pressure of 1.7 bar. The lack of insulation in the outlet is clearly reflected by the heat loss in the working fluid during upward transport -in the inner pipe of the BHE (see Fig. 5). +in the inner pipe of the BHE (see Fig. 6). -![Fig. 5](images/COAX_optimization_rout_A_T_SR_temperature_depth_4500.0.png) +![Fig. 6](images/COAX_optimization_rout_A_T_SR_temperature_depth_4500.0.png) /// caption -Fig. 5: Fluid and borehole wall temperatures after half a year of operation of the coaxial BHE with an optimized flow +Fig. 6: Fluid and borehole wall temperatures after half a year of operation of the coaxial BHE with an optimized flow rate and radius of the inner pipe. /// -The power yield that follows from the simulation is shown in Fig. 6. +The power yield that follows from the simulation is shown in Fig. 7. -![Fig. 6](images/COAX_optimization_rout_A_T_SRtimeplot_Q_b.png) +![Fig. 7](images/COAX_optimization_rout_A_T_SR_timeplot_Q_b.png) /// caption -Fig. 6: Power yield during a year of operation of the coaxial BHE with an optimized flow rate and radius of the inner pipe. +Fig. 7: Power yield during a year of operation of the coaxial BHE with an optimized flow rate and radius of the inner pipe. /// \ No newline at end of file diff --git a/docs/examples/coax_optimization/images/COAX_optimization_A_T_SR_timeplot_COP.png b/docs/examples/coax_optimization/images/COAX_optimization_A_T_SR_timeplot_COP.png new file mode 100644 index 0000000000000000000000000000000000000000..9f31daa59f0d27bb14c16b25d59a7d2de4487461 Binary files /dev/null and b/docs/examples/coax_optimization/images/COAX_optimization_A_T_SR_timeplot_COP.png differ diff --git a/examples/optimization/output/COAX_optimization/COAX_optimization_A_T_SRtimeplot_Q_b.png b/docs/examples/coax_optimization/images/COAX_optimization_A_T_SR_timeplot_Q_b.png similarity index 99% rename from examples/optimization/output/COAX_optimization/COAX_optimization_A_T_SRtimeplot_Q_b.png rename to docs/examples/coax_optimization/images/COAX_optimization_A_T_SR_timeplot_Q_b.png index 037d7802053c9274ddad764419b2739362270627..5c59964302ddc8d9f7674892e22490be22654dd6 100644 Binary files a/examples/optimization/output/COAX_optimization/COAX_optimization_A_T_SRtimeplot_Q_b.png and b/docs/examples/coax_optimization/images/COAX_optimization_A_T_SR_timeplot_Q_b.png differ diff --git a/examples/optimization/output/COAX_optimization_rout/COAX_optimization_rout_A_T_SRtimeplot_Q_b.png b/docs/examples/coax_optimization/images/COAX_optimization_rout_A_T_SR_timeplot_Q_b.png similarity index 99% rename from examples/optimization/output/COAX_optimization_rout/COAX_optimization_rout_A_T_SRtimeplot_Q_b.png rename to docs/examples/coax_optimization/images/COAX_optimization_rout_A_T_SR_timeplot_Q_b.png index 125d349064c8903bf3db5adcb36a1ef03c6c836e..1a047fa5a52ac82988990fc5f2eb5f7dbe1b71ac 100644 Binary files a/examples/optimization/output/COAX_optimization_rout/COAX_optimization_rout_A_T_SRtimeplot_Q_b.png and b/docs/examples/coax_optimization/images/COAX_optimization_rout_A_T_SR_timeplot_Q_b.png differ diff --git a/docs/examples/gfunc_benchmark/PYG_benchmark.md b/docs/examples/gfunc_benchmark/PYG_benchmark.md index f4ca80501c21265cdb6697dedcf9358cb925dfcb..dbd07691986b9635ccbcd84b0d4aa8787e8d8920 100644 --- a/docs/examples/gfunc_benchmark/PYG_benchmark.md +++ b/docs/examples/gfunc_benchmark/PYG_benchmark.md @@ -69,7 +69,7 @@ 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 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) +![Fig. 3](images/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SR_timeplot_T_bave_T_fi_T_fo.png) /// caption Fig. 3: Timeseries plot of inlet ($T_{in}$), outlet ($T_{out}$) and average borehole wall temperature ($T_{b,ave}$) for the Geoloop benchmark simulations of the single U-tube borehole design. @@ -94,7 +94,7 @@ is successful. However, there is a slight difference between the fluid and boreh the two models. This is caused by model the set-up with multiple depth-segments in the Geoloop model, and is also reflected in the calculated temperature field inside the borehole, as shown in Fig. 5 and 6. -![Fig. 3](images/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SRtimeplot_T_bave_T_fi_T_fo.png) +![Fig. 3](images/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SR_timeplot_T_bave_T_fi_T_fo.png) /// caption Fig. 3: Timeseries plot of inlet ($T_{in}$), outlet ($T_{out}$) and average borehole wall temperature ($T_{b,ave}$) for the diff --git a/docs/examples/gfunc_benchmark/images/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SRtimeplot_T_bave_T_fi_T_fo.png b/docs/examples/gfunc_benchmark/images/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SR_timeplot_T_bave_T_fi_T_fo.png similarity index 100% rename from docs/examples/gfunc_benchmark/images/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SRtimeplot_T_bave_T_fi_T_fo.png rename to docs/examples/gfunc_benchmark/images/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SR_timeplot_T_bave_T_fi_T_fo.png diff --git a/docs/examples/gfunc_benchmark/images/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SRtimeplot_T_bave_T_fi_T_fo.png b/docs/examples/gfunc_benchmark/images/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SR_timeplot_T_bave_T_fi_T_fo.png similarity index 100% rename from docs/examples/gfunc_benchmark/images/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SRtimeplot_T_bave_T_fi_T_fo.png rename to docs/examples/gfunc_benchmark/images/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SR_timeplot_T_bave_T_fi_T_fo.png diff --git a/docs/examples/numerical_benchmark/FINVOL_benchmark.md b/docs/examples/numerical_benchmark/FINVOL_benchmark.md index 1fa90b45e551a5febc740ef64097c86992587e79..27a0ee3aa2491fefc5c184aa8bdc9bad0a3cbbbf 100644 --- a/docs/examples/numerical_benchmark/FINVOL_benchmark.md +++ b/docs/examples/numerical_benchmark/FINVOL_benchmark.md @@ -62,7 +62,7 @@ model set-up and actually represents a more realistic short-term system performa several hours after initial system operation, the calculated power yield by the different models aligns. -![Fig. 2](images/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SRtimeplot_Q_b.png) +![Fig. 2](images/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR_timeplot_Q_b.png) /// caption Fig. 2: Timeseries plot of generated power ($Q$) for the Geoloop benchmark with the numerical model. @@ -73,7 +73,7 @@ As consistent with the time-evolution of the generated power from the simulated temperatures in the initial hours of system operation, compared to the analytical model. However, again, the models quickly align. -![Fig. 3](images/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SRtimeplot_T_bave_T_fo.png) +![Fig. 3](images/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR_timeplot_T_bave_T_fo.png) /// caption Fig. 3: Timeseries plot of outlet ($T_{out}$) and average borehole wall temperature ($T_{b,ave}$) for the Geoloop benchmark with diff --git a/docs/examples/numerical_benchmark/images/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SRtimeplot_Q_b.png b/docs/examples/numerical_benchmark/images/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR_timeplot_Q_b.png similarity index 100% rename from docs/examples/numerical_benchmark/images/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SRtimeplot_Q_b.png rename to docs/examples/numerical_benchmark/images/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR_timeplot_Q_b.png diff --git a/docs/examples/numerical_benchmark/images/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SRtimeplot_T_bave_T_fo.png b/docs/examples/numerical_benchmark/images/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR_timeplot_T_bave_T_fo.png similarity index 100% rename from docs/examples/numerical_benchmark/images/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SRtimeplot_T_bave_T_fo.png rename to docs/examples/numerical_benchmark/images/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR_timeplot_T_bave_T_fo.png diff --git a/docs/examples/simple_simulation/images/SU_100_A_T_SRtimeplot_Q_b.png b/docs/examples/simple_simulation/images/SU_100_A_T_SR_timeplot_Q_b.png similarity index 100% rename from docs/examples/simple_simulation/images/SU_100_A_T_SRtimeplot_Q_b.png rename to docs/examples/simple_simulation/images/SU_100_A_T_SR_timeplot_Q_b.png diff --git a/docs/examples/simple_simulation/images/SU_100_A_T_SRtimeplot_T_bave_T_fo.png b/docs/examples/simple_simulation/images/SU_100_A_T_SR_timeplot_T_bave_T_fo.png similarity index 100% rename from docs/examples/simple_simulation/images/SU_100_A_T_SRtimeplot_T_bave_T_fo.png rename to docs/examples/simple_simulation/images/SU_100_A_T_SR_timeplot_T_bave_T_fo.png diff --git a/docs/examples/simple_simulation/simple_simulation.md b/docs/examples/simple_simulation/simple_simulation.md index b834b192bbd5fe258d2955efc8b65ac6b15e5f2f..b1e5467edf2f85b1d763cc9c56ba2b8b43d8ac45 100644 --- a/docs/examples/simple_simulation/simple_simulation.md +++ b/docs/examples/simple_simulation/simple_simulation.md @@ -75,14 +75,14 @@ during constant system operation at a fixed inlet temperature. Please note that A refers to geoloop's semi-analytical depth-dependent model , T to inlet Temperature mode, and SR and MC to single run or monte carlo outcomes. see [Manual](../../manual/cli.md) for more detailed explanation. -![Fig. 2](images/SU_100_A_T_SRtimeplot_Q_b.png) +![Fig. 2](images/SU_100_A_T_SR_timeplot_Q_b.png) /// caption Fig. 2 Evolution of power extracted from the subsurface by the simulated single U-tube during simulated time. /// -![Fig. 3](images/SU_100_A_T_SRtimeplot_T_bave_T_fo.png) +![Fig. 3](images/SU_100_A_T_SR_timeplot_T_bave_T_fo.png) /// caption Fig. 3 Evolution of outlet, and average borehole wall temperature in the simulated single U-tube during simulated time. diff --git a/docs/examples/variable_flow_rate/images/DU_variable_flow_rate_A_T_SR_timeplot_COP.png b/docs/examples/variable_flow_rate/images/DU_variable_flow_rate_A_T_SR_timeplot_COP.png new file mode 100644 index 0000000000000000000000000000000000000000..e66bf0443612d9bfe4e3eff96477496e75c9ce9d Binary files /dev/null and b/docs/examples/variable_flow_rate/images/DU_variable_flow_rate_A_T_SR_timeplot_COP.png differ diff --git a/docs/examples/variable_flow_rate/images/DU_variable_flow_rate_A_T_SRtimeplot_T_bave_T_fi_T_fo.png b/docs/examples/variable_flow_rate/images/DU_variable_flow_rate_A_T_SR_timeplot_T_bave_T_fi_T_fo.png similarity index 99% rename from docs/examples/variable_flow_rate/images/DU_variable_flow_rate_A_T_SRtimeplot_T_bave_T_fi_T_fo.png rename to docs/examples/variable_flow_rate/images/DU_variable_flow_rate_A_T_SR_timeplot_T_bave_T_fi_T_fo.png index 24ce1861718e12762cbaa075484a171dd1401254..c4d1bc87ae27690c454f0f82521743c963b8684e 100644 Binary files a/docs/examples/variable_flow_rate/images/DU_variable_flow_rate_A_T_SRtimeplot_T_bave_T_fi_T_fo.png and b/docs/examples/variable_flow_rate/images/DU_variable_flow_rate_A_T_SR_timeplot_T_bave_T_fi_T_fo.png differ diff --git a/examples/variable_flow_rate/output/DU_variable_flow_rate/DU_variable_flow_rate_A_T_SRtimeplot_flowrate.png b/docs/examples/variable_flow_rate/images/DU_variable_flow_rate_A_T_SR_timeplot_flowrate.png similarity index 99% rename from examples/variable_flow_rate/output/DU_variable_flow_rate/DU_variable_flow_rate_A_T_SRtimeplot_flowrate.png rename to docs/examples/variable_flow_rate/images/DU_variable_flow_rate_A_T_SR_timeplot_flowrate.png index 5783308e84627d22aef30ecb9f9236d96e5c75d9..9137c178bf1df0e1adbef5c3bca5d6c81178b579 100644 Binary files a/examples/variable_flow_rate/output/DU_variable_flow_rate/DU_variable_flow_rate_A_T_SRtimeplot_flowrate.png and b/docs/examples/variable_flow_rate/images/DU_variable_flow_rate_A_T_SR_timeplot_flowrate.png differ diff --git a/docs/examples/variable_flow_rate/variable_flow_rate.md b/docs/examples/variable_flow_rate/variable_flow_rate.md index 643ab89efdf021e96ea7101e7928e57390baa649..bee867c58809a36e589d604ae3ebed11a4201d0d 100644 --- a/docs/examples/variable_flow_rate/variable_flow_rate.md +++ b/docs/examples/variable_flow_rate/variable_flow_rate.md @@ -33,7 +33,7 @@ geoloop batch-run batch_variable_flow_rate.json The time-profile of the flow rate used in the simulation is shown in Fig. 1. -![DU_variable_flow_rate_A_T_SRtimeplot_flowrate.png](images/DU_variable_flow_rate_A_T_SRtimeplot_flowrate.png) +![DU_variable_flow_rate_A_T_SRtimeplot_flowrate.png](images/DU_variable_flow_rate_A_T_SR_timeplot_flowrate.png) /// caption Fig 1: Daily-variable flow rate in each pipe of the double U-tube BHE over the simulated period. @@ -41,10 +41,18 @@ Fig 1: Daily-variable flow rate in each pipe of the double U-tube BHE over the s The inlet temperature and calculated outlet and borehole wall temperature are shown in Fig. 2. -![DU_variable_flow_rate_A_T_SRtimeplot_T_bave_T_fi_T_fo.png](images/DU_variable_flow_rate_A_T_SRtimeplot_T_bave_T_fi_T_fo.png) +![DU_variable_flow_rate_A_T_SRtimeplot_T_bave_T_fi_T_fo.png](images/DU_variable_flow_rate_A_T_SR_timeplot_T_bave_T_fi_T_fo.png) /// caption Fig. 2: Inlet, outlet and borehole wall temperature over the simulated period. /// +The Coefficient of Performance (COP) of the fluid circulation pump is shown in Fig. 3. + +![DU_variable_flow_rate_A_T_SR_timeplot_COP.png](images/DU_variable_flow_rate_A_T_SR_timeplot_COP.png) + +/// caption +Fig. 3: COP of the fluid circulation pump over the simulated period. +/// + diff --git a/docs/manual/plotting_configuration.md b/docs/manual/plotting_configuration.md index db158f4685477f8c1196dfe05b74877c59ad3a7d..d9166fbfe9e85034fd38413dbb58cee371cb5ca2 100644 --- a/docs/manual/plotting_configuration.md +++ b/docs/manual/plotting_configuration.md @@ -60,7 +60,7 @@ Time plots can include: - Pumping pressure — `dploop` - Generated thermal power — `Q_b` - Pumping power — `qloop` -- Mean Coefficient Of Performance (COP) of the circulation pump during the simulation period — `COP` +- Coefficient Of Performance (COP) of the circulation pump during the simulation period — `COP` Scatter and tornado plots can include the following variables: diff --git a/docs/manual/simulation_configuration.md b/docs/manual/simulation_configuration.md index 94b0b855b0534b9f89314e3edc021e648a106f6d..9263fc7f6a7f046e07477474285a469af76af7b1 100644 --- a/docs/manual/simulation_configuration.md +++ b/docs/manual/simulation_configuration.md @@ -101,54 +101,55 @@ For an example of a simple deterministic model simulation, see the example of a The main input JSON file includes the following parameters: -| Parameter | Description | Unit | Type | Remark | -|----------------------|------------------------------------------------------------------------|---------|----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| base_dir | Path to output folder | — | string | Creates folder if it does not exist | -| type | Type of BHE design | — | string | Options: UTUBE or COAXIAL for `model_type` ANALYTICAL and PYG and PYGFIELD; UTUBE for `model_type` FINVOL | -| H | Borehole length | m | scalar | — | -| D | Buried depth of the BHE | m | scalar | — | -| borefield | Path to configuration file for borehole field design | — | string | Optional; only used for `model_type` PYGFIELD | -| r_b | Borehole radius | m | scalar | — | -| pos | Positions of pipes in borehole | — | nested_list | `[x;y]*` coordinates of pipes; first position(s) are of inlet pipe(s); required if `type` is UTUBE, falls back to default of `[[0,0][0,0]]` if `type` is COAXIAL | -| r_out | Outer pipe radius | m | list | First position(s) are of inlet pipe(s) | -| SDR | SDR value of the pipes | — | scalar | Determines pipe thickness | -| k_p | Pipe thermal conductivity | W/mK | scalar | — | -| nInlets | Number of inlet pipes | — | scalar | Required if `type` is UTUBE, falls back to default of 1 if `type` is COAXIAL | -| insu_dr | Fraction of pipe thickness with insulating material | — | scalar | Range: 0–1 | -| insu_k | Thermal conductivity of insulating material | W/mK | scalar | — | -| insu_z | Maximum depth of insulating material | m | scalar | — | -| k_g | Grout thermal conductivity | W/mK | scalar or list | — | -| z_k_g | End depths of k_g values | m | list | Used only if `k_g` is a list | -| epsilon | Pipe surface roughness | m | scalar | — | -| fluid_str | Type of fluid mixed with water | — | string | Must be supported by `pygfunction` media module | -| fluid_percent | Fluid percentage | % | scalar | — | -| m_flow | Flow rate per pipe | kg/s | scalar | The total flow into the system is the sum of the flow rates for the nr. of inlet pipes. Used if `dploopcrit` and `flow_data` are not defined | -| litho_k_param | Path to lithology module configuration file | — | string | Optional | -| Tg | (Sub)surface temperature | °C | scalar or list | Represents surface temperature if scalar | -| Tgrad | Subsurface temperature gradient | °C/100m | scalar | Used only if `Tg` is scalar | -| z_Tg | End depths of Tg values | m | list | Used only if `Tg` is a list | -| k_s | Subsurface thermal conductivity | W/mK | scalar or list | Used only if `litho_k_param` is not defined | -| z_k_s | End depths of k_s values | m | list | Used only if `k_s` is a list and `litho_k_param` is not defined | -| k_s_scale | Scaling factor for subsurface thermal conductivity | — | scalar | Scales `k_s` values over depth | -| alfa | Subsurface thermal diffusivity | m²/s | scalar | — | -| model_type | Type of model used in simulation | — | string | Options: ANALYTICAL; FINVOL; PYG; PYGFIELD | -| run_type | Starting point for performance calculation | — | string | Options: POWER or TIN (depends on `model_type`) | -| nyear | Number of simulated years | year | scalar | — | -| nled | Number of hours per simulated timestep | hour | scalar | — | -| nsegments | Number of model segments over depth | — | scalar | — | -| nr | Number of grid cells in radial direction | — | scalar | Required only if `model_type` is FINVOL | -| r_sim | Maximum simulation radius | m | scalar | Required only if `model_type` is FINVOL | -| dploopcrit | Pumping power | bar | scalar | — | -| dooptimize | Enable optimization | — | boolean | true or false | -| copcrit | Minimum COP of circulation pump | — | scalar | Used only if `dooptimize` is true | -| optimize_keys | Parameters to optimize | — | list | Only variable parameters supported | -| optimize_keys_bounds | Bounds for optimized parameters | — | nested_list | `[[lower, upper]]` matching optimize_keys | -| loadprofile | Path to configuration file of the heat load profile | — | string | Optional | -| flow_data | Path to configuration file of the flow rate profile | - | string | Optional | -| Q | Power demand | W | scalar | Used if `run_type` is POWER and no `loadprofile` defined | -| Tin | Inlet temperature | °C | scalar | Used if `run_type` is TIN | -| variables_config | Path to stochastic simulation configuration file | — | string | Used for stochastic runs (RunMain module) | -| save_Tfield_res | Flag to save results of 3D temperature field in a numarical simulation | — | boolean | Only used if model_type is FINVOL | +| Parameter | Description | Unit | Type | Remark | +|----------------------|------------------------------------------------------------------------|---------|----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| base_dir | Path to output folder | — | string | Creates folder if it does not exist | +| type | Type of BHE design | — | string | Options: UTUBE or COAXIAL for `model_type` ANALYTICAL and PYG and PYGFIELD; UTUBE for `model_type` FINVOL | +| H | Borehole length | m | scalar | — | +| D | Buried depth of the BHE | m | scalar | — | +| borefield | Path to configuration file for borehole field design | — | string | Optional; only used for `model_type` PYGFIELD | +| r_b | Borehole radius | m | scalar | — | +| pos | Positions of pipes in borehole | — | nested_list | `[x;y]*` coordinates of pipes; first position(s) are of inlet pipe(s); required if `type` is UTUBE, falls back to default of `[[0,0][0,0]]` if `type` is COAXIAL | +| r_out | Outer pipe radius | m | list | First position(s) are of inlet pipe(s), Radii must be the same for inlet and outlet pipes respectively. | +| r_in | Inner pipe radius | m | list | Only used if `SDR` is not provided. First position(s) are of inlet pipe(s), Radii must be the same for inlet and outlet pipes respectively. | +| SDR | SDR value of the pipes | — | scalar | Only used if `r_in` is not provided. Determines pipe thickness through: thickness = (`r_out`*2) / `SDR`. | +| k_p | Pipe thermal conductivity | W/mK | scalar | — | +| nInlets | Number of inlet pipes | — | scalar | Required if `type` is UTUBE, falls back to default of 1 if `type` is COAXIAL | +| insu_dr | Fraction of pipe thickness with insulating material | — | scalar | Range: 0–1 | +| insu_k | Thermal conductivity of insulating material | W/mK | scalar | — | +| insu_z | Maximum depth of insulating material | m | scalar | — | +| k_g | Grout thermal conductivity | W/mK | scalar or list | — | +| z_k_g | End depths of k_g values | m | list | Used only if `k_g` is a list | +| epsilon | Pipe surface roughness | m | scalar | — | +| fluid_str | Type of fluid mixed with water | — | string | Must be supported by `pygfunction` media module | +| fluid_percent | Fluid percentage | % | scalar | — | +| m_flow | Total flow rate | kg/s | scalar | The total flow into the system is is equally divided between the sets of inlet and outlet pipes, with a negative value for the outlet flow. Used if `dploopcrit` and `flow_data` are not defined. | +| litho_k_param | Path to lithology module configuration file | — | string | Optional | +| Tg | (Sub)surface temperature | °C | scalar or list | Represents surface temperature if scalar | +| Tgrad | Subsurface temperature gradient | °C/100m | scalar | Used only if `Tg` is scalar | +| z_Tg | End depths of Tg values | m | list | Used only if `Tg` is a list | +| k_s | Subsurface thermal conductivity | W/mK | scalar or list | Used only if `litho_k_param` is not defined | +| z_k_s | End depths of k_s values | m | list | Used only if `k_s` is a list and `litho_k_param` is not defined | +| k_s_scale | Scaling factor for subsurface thermal conductivity | — | scalar | Scales `k_s` values over depth | +| alfa | Subsurface thermal diffusivity | m²/s | scalar | — | +| model_type | Type of model used in simulation | — | string | Options: ANALYTICAL; FINVOL; PYG; PYGFIELD | +| run_type | Starting point for performance calculation | — | string | Options: POWER or TIN (depends on `model_type`) | +| nyear | Number of simulated years | year | scalar | — | +| nled | Number of hours per simulated timestep | hour | scalar | — | +| nsegments | Number of model segments over depth | — | scalar | — | +| nr | Number of grid cells in radial direction | — | scalar | Required only if `model_type` is FINVOL | +| r_sim | Maximum simulation radius | m | scalar | Required only if `model_type` is FINVOL | +| dploopcrit | Pumping power | bar | scalar | — | +| dooptimize | Enable optimization | — | boolean | true or false | +| copcrit | Minimum COP of circulation pump | — | scalar | Used only if `dooptimize` is true | +| optimize_keys | Parameters to optimize | — | list | Only variable parameters supported | +| optimize_keys_bounds | Bounds for optimized parameters | — | nested_list | `[[lower, upper]]` matching optimize_keys | +| loadprofile | Path to configuration file of the heat load profile | — | string | Optional | +| flow_data | Path to configuration file of the flow rate profile | - | string | Optional | +| Q | Power demand | W | scalar | Used if `run_type` is POWER and no `loadprofile` defined | +| Tin | Inlet temperature | °C | scalar | Used if `run_type` is TIN | +| variables_config | Path to stochastic simulation configuration file | — | string | Used for stochastic runs (RunMain module) | +| save_Tfield_res | Flag to save results of 3D temperature field in a numarical simulation | — | boolean | Only used if model_type is FINVOL | The *pos* parameter includes: @@ -282,7 +283,7 @@ samples. | T_fo | Outlet temperature | C | time | | | Tg | (Sub)surface temperature | C | time or time; zseg | | | dploop | Pumping pressure | bar | time | | -| flowrate | Flowrate | kg/s | time | The flow rate in each pipe | +| flowrate | Flowrate | kg/s | time | Total flow rate | | hours | Simulation timesteps | hours | time | | | k_g | Grout thermal conductivity | W/mK | time or time; zseg | | | k_s | Subsurface thermal conductivity | W/mK | time or time; zseg | | diff --git a/docs/theory/images/optimization_scheme.png b/docs/theory/images/optimization_scheme.png new file mode 100644 index 0000000000000000000000000000000000000000..d11ec002715dea6d8602075ac9d847a287123ee3 Binary files /dev/null and b/docs/theory/images/optimization_scheme.png differ diff --git a/docs/theory/theory.md b/docs/theory/theory.md index 3af515a7545c0abaddb4f4252fde0de4ca5de634..97c5e68f1d2a078e809f598e3aef7684df4a0c80 100644 --- a/docs/theory/theory.md +++ b/docs/theory/theory.md @@ -85,7 +85,11 @@ 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 Korevaar & Van Wees (in prep.). -**insert flowchart** +![Fig. 1](images/optimization_scheme.png) + +/// caption +Fig. 1: General workflow of the optimization algorithm. +/// ## The subsurface model diff --git a/examples/benchmark/FINVOL_benchmark/output/ANALYTICAL_TU/ANALYTICAL_TU_A_T_bhdesign.png b/examples/benchmark/FINVOL_benchmark/output/ANALYTICAL_TU/ANALYTICAL_TU_A_T_bhdesign.png index e8fb45742caac9b9d86a26564d3f459c40e66f34..6ef38a047919b07bc7cea0b178237805ce9405fc 100644 Binary files a/examples/benchmark/FINVOL_benchmark/output/ANALYTICAL_TU/ANALYTICAL_TU_A_T_bhdesign.png and b/examples/benchmark/FINVOL_benchmark/output/ANALYTICAL_TU/ANALYTICAL_TU_A_T_bhdesign.png differ diff --git a/examples/benchmark/FINVOL_benchmark/output/combined_plots/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR_temperature_depth_720.0.png b/examples/benchmark/FINVOL_benchmark/output/combined_plots/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR_temperature_depth_720.0.png index 70842b4cd3d0c8548690772d3e95748b0900fcb7..318ae9d8ca78dd44b862fc225339eb273aaebec9 100644 Binary files a/examples/benchmark/FINVOL_benchmark/output/combined_plots/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR_temperature_depth_720.0.png and b/examples/benchmark/FINVOL_benchmark/output/combined_plots/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR_temperature_depth_720.0.png differ diff --git a/examples/benchmark/FINVOL_benchmark/output/combined_plots/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR_timeplot_Q_b.png b/examples/benchmark/FINVOL_benchmark/output/combined_plots/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR_timeplot_Q_b.png new file mode 100644 index 0000000000000000000000000000000000000000..0262d081a10df722360ba61c2e5ead2a4636eeb4 Binary files /dev/null and b/examples/benchmark/FINVOL_benchmark/output/combined_plots/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR_timeplot_Q_b.png differ diff --git a/examples/benchmark/FINVOL_benchmark/output/combined_plots/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR_timeplot_T_bave_T_fo.png b/examples/benchmark/FINVOL_benchmark/output/combined_plots/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR_timeplot_T_bave_T_fo.png new file mode 100644 index 0000000000000000000000000000000000000000..3d877fa7ea54fc985b10db62a3b657265ef7aa3a Binary files /dev/null and b/examples/benchmark/FINVOL_benchmark/output/combined_plots/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR_timeplot_T_bave_T_fo.png differ diff --git a/examples/benchmark/FINVOL_benchmark/output/combined_plots/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SRtimeplot_Q_b.png b/examples/benchmark/FINVOL_benchmark/output/combined_plots/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SRtimeplot_Q_b.png deleted file mode 100644 index 6adf1dd7d475cc541ac2ffa97541f18535c6fe46..0000000000000000000000000000000000000000 Binary files a/examples/benchmark/FINVOL_benchmark/output/combined_plots/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SRtimeplot_Q_b.png and /dev/null differ diff --git a/examples/benchmark/FINVOL_benchmark/output/combined_plots/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SRtimeplot_T_bave_T_fo.png b/examples/benchmark/FINVOL_benchmark/output/combined_plots/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SRtimeplot_T_bave_T_fo.png deleted file mode 100644 index 447a8516fdbfacc2330e2c972321014ccd62570e..0000000000000000000000000000000000000000 Binary files a/examples/benchmark/FINVOL_benchmark/output/combined_plots/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SR/FINVOL_TU_F_T_SR_ANALYTICAL_TU_A_T_SRtimeplot_T_bave_T_fo.png and /dev/null differ diff --git a/examples/benchmark/PYG_benchmark/output/ANALYTICAL_DU/ANALYTICAL_DU_A_P_SR_borehole_temp_4500.0_seg0.png b/examples/benchmark/PYG_benchmark/output/ANALYTICAL_DU/ANALYTICAL_DU_A_P_SR_borehole_temp_4500.0_seg0.png index 7050e818da98a01d54df6b38d978a791a2ef75d1..f0470dfeb3ec9deefcfcdbf3a21b345804cc6e72 100644 Binary files a/examples/benchmark/PYG_benchmark/output/ANALYTICAL_DU/ANALYTICAL_DU_A_P_SR_borehole_temp_4500.0_seg0.png and b/examples/benchmark/PYG_benchmark/output/ANALYTICAL_DU/ANALYTICAL_DU_A_P_SR_borehole_temp_4500.0_seg0.png differ diff --git a/examples/benchmark/PYG_benchmark/output/ANALYTICAL_DU/ANALYTICAL_DU_A_P_bhdesign.png b/examples/benchmark/PYG_benchmark/output/ANALYTICAL_DU/ANALYTICAL_DU_A_P_bhdesign.png index 392d05b4582d5392c4cce263e977b10c43cc82bd..d8db93af01cafbea6d114c8991d3dd7d23d92122 100644 Binary files a/examples/benchmark/PYG_benchmark/output/ANALYTICAL_DU/ANALYTICAL_DU_A_P_bhdesign.png and b/examples/benchmark/PYG_benchmark/output/ANALYTICAL_DU/ANALYTICAL_DU_A_P_bhdesign.png differ diff --git a/examples/benchmark/PYG_benchmark/output/ANALYTICAL_SU/ANALYTICAL_SU_A_P_bhdesign.png b/examples/benchmark/PYG_benchmark/output/ANALYTICAL_SU/ANALYTICAL_SU_A_P_bhdesign.png index 37cb36c2bbb120a0fc2e21e58c7f21198313f732..2136b623a022264c6ab111fd127a98dd1dfa9b34 100644 Binary files a/examples/benchmark/PYG_benchmark/output/ANALYTICAL_SU/ANALYTICAL_SU_A_P_bhdesign.png and b/examples/benchmark/PYG_benchmark/output/ANALYTICAL_SU/ANALYTICAL_SU_A_P_bhdesign.png differ diff --git a/examples/benchmark/PYG_benchmark/output/PYG_DU/PYG_DU_P_P_SR_borehole_temp_4500.0_seg0.png b/examples/benchmark/PYG_benchmark/output/PYG_DU/PYG_DU_P_P_SR_borehole_temp_4500.0_seg0.png index 361d9c92a258f60bc0c0434ea32e0e94ebaed2fa..fc702e7a03ae41925ba00cd364e698c869c6fc1c 100644 Binary files a/examples/benchmark/PYG_benchmark/output/PYG_DU/PYG_DU_P_P_SR_borehole_temp_4500.0_seg0.png and b/examples/benchmark/PYG_benchmark/output/PYG_DU/PYG_DU_P_P_SR_borehole_temp_4500.0_seg0.png differ diff --git a/examples/benchmark/PYG_benchmark/output/PYG_DU/PYG_DU_P_P_bhdesign.png b/examples/benchmark/PYG_benchmark/output/PYG_DU/PYG_DU_P_P_bhdesign.png index 392d05b4582d5392c4cce263e977b10c43cc82bd..d8db93af01cafbea6d114c8991d3dd7d23d92122 100644 Binary files a/examples/benchmark/PYG_benchmark/output/PYG_DU/PYG_DU_P_P_bhdesign.png and b/examples/benchmark/PYG_benchmark/output/PYG_DU/PYG_DU_P_P_bhdesign.png differ diff --git a/examples/benchmark/PYG_benchmark/output/PYG_SU/PYG_SU_P_P_bhdesign.png b/examples/benchmark/PYG_benchmark/output/PYG_SU/PYG_SU_P_P_bhdesign.png index 37cb36c2bbb120a0fc2e21e58c7f21198313f732..2136b623a022264c6ab111fd127a98dd1dfa9b34 100644 Binary files a/examples/benchmark/PYG_benchmark/output/PYG_SU/PYG_SU_P_P_bhdesign.png and b/examples/benchmark/PYG_benchmark/output/PYG_SU/PYG_SU_P_P_bhdesign.png differ diff --git a/examples/benchmark/PYG_benchmark/output/combined_plots/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SR/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SR_temperature_depth_8000.0.png b/examples/benchmark/PYG_benchmark/output/combined_plots/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SR/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SR_temperature_depth_8000.0.png index e0594dd30eedd659f074c7c7bacc0d8ac7d3dfcb..8d91f9a1b27a55d34809bf0a6ca8da70c36316b4 100644 Binary files a/examples/benchmark/PYG_benchmark/output/combined_plots/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SR/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SR_temperature_depth_8000.0.png and b/examples/benchmark/PYG_benchmark/output/combined_plots/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SR/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SR_temperature_depth_8000.0.png differ diff --git a/examples/benchmark/PYG_benchmark/output/combined_plots/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SR/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SRtimeplot_T_bave_T_fi_T_fo.png b/examples/benchmark/PYG_benchmark/output/combined_plots/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SR/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SR_timeplot_T_bave_T_fi_T_fo.png similarity index 99% rename from examples/benchmark/PYG_benchmark/output/combined_plots/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SR/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SRtimeplot_T_bave_T_fi_T_fo.png rename to examples/benchmark/PYG_benchmark/output/combined_plots/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SR/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SR_timeplot_T_bave_T_fi_T_fo.png index 2ae3b586719024bae1d127b3701b43494c1133ab..56735be4f19c4051f9b98417255b260266ced400 100644 Binary files a/examples/benchmark/PYG_benchmark/output/combined_plots/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SR/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SRtimeplot_T_bave_T_fi_T_fo.png and b/examples/benchmark/PYG_benchmark/output/combined_plots/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SR/PYG_DU_P_P_SR_ANALYTICAL_DU_A_P_SR_timeplot_T_bave_T_fi_T_fo.png differ diff --git a/examples/benchmark/PYG_benchmark/output/combined_plots/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SR/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SR_temperature_depth_8000.0.png b/examples/benchmark/PYG_benchmark/output/combined_plots/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SR/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SR_temperature_depth_8000.0.png index 294d81f62b28989061f04844d737bd7cef50c4af..7e4a5fbbc35876a54eb397a540cf7cd40903a86d 100644 Binary files a/examples/benchmark/PYG_benchmark/output/combined_plots/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SR/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SR_temperature_depth_8000.0.png and b/examples/benchmark/PYG_benchmark/output/combined_plots/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SR/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SR_temperature_depth_8000.0.png differ diff --git a/examples/benchmark/PYG_benchmark/output/combined_plots/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SR/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SRtimeplot_T_bave_T_fi_T_fo.png b/examples/benchmark/PYG_benchmark/output/combined_plots/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SR/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SR_timeplot_T_bave_T_fi_T_fo.png similarity index 99% rename from examples/benchmark/PYG_benchmark/output/combined_plots/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SR/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SRtimeplot_T_bave_T_fi_T_fo.png rename to examples/benchmark/PYG_benchmark/output/combined_plots/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SR/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SR_timeplot_T_bave_T_fi_T_fo.png index 729b620413345fba0264f81850977e9f123be67b..514585dc9415a421111bf2af1122a225e6ab24a3 100644 Binary files a/examples/benchmark/PYG_benchmark/output/combined_plots/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SR/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SRtimeplot_T_bave_T_fi_T_fo.png and b/examples/benchmark/PYG_benchmark/output/combined_plots/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SR/PYG_SU_P_P_SR_ANALYTICAL_SU_A_P_SR_timeplot_T_bave_T_fi_T_fo.png differ diff --git a/examples/bore_field/ME_cooling/output/me_du/me_du_P_P_SR_timeplot_Q_b.png b/examples/bore_field/ME_cooling/output/me_du/me_du_P_P_SR_timeplot_Q_b.png new file mode 100644 index 0000000000000000000000000000000000000000..1b50249cec3d62e1196a10059b7560dba29ed7a4 Binary files /dev/null and b/examples/bore_field/ME_cooling/output/me_du/me_du_P_P_SR_timeplot_Q_b.png differ diff --git a/examples/bore_field/ME_cooling/output/me_du/me_du_P_P_SR_timeplot_T_bave_T_fi_T_fo.png b/examples/bore_field/ME_cooling/output/me_du/me_du_P_P_SR_timeplot_T_bave_T_fi_T_fo.png new file mode 100644 index 0000000000000000000000000000000000000000..fc5df283785158f63a24e509cb85f13153117337 Binary files /dev/null and b/examples/bore_field/ME_cooling/output/me_du/me_du_P_P_SR_timeplot_T_bave_T_fi_T_fo.png differ diff --git a/examples/bore_field/ME_cooling/output/me_du/me_du_P_P_SR_timeplot_dploop_qploop.png b/examples/bore_field/ME_cooling/output/me_du/me_du_P_P_SR_timeplot_dploop_qploop.png new file mode 100644 index 0000000000000000000000000000000000000000..9f598c4fa3b0d222711d7e7478867d34fbbdcf22 Binary files /dev/null and b/examples/bore_field/ME_cooling/output/me_du/me_du_P_P_SR_timeplot_dploop_qploop.png differ diff --git a/examples/bore_field/ME_cooling/output/me_du/me_du_P_P_SR_timeplot_flowrate.png b/examples/bore_field/ME_cooling/output/me_du/me_du_P_P_SR_timeplot_flowrate.png new file mode 100644 index 0000000000000000000000000000000000000000..8e1bc44c2e0ace8003718d246e8a15cf2a4ff187 Binary files /dev/null and b/examples/bore_field/ME_cooling/output/me_du/me_du_P_P_SR_timeplot_flowrate.png differ diff --git a/examples/bore_field/madrid/output/madrid_su_round_curved/madrid_su_round_curved_P_P_SRtimeplot_T_bave_T_fo.png b/examples/bore_field/madrid/output/madrid_su_round_curved/madrid_su_round_curved_P_P_SR_timeplot_T_bave_T_fo.png similarity index 100% rename from examples/bore_field/madrid/output/madrid_su_round_curved/madrid_su_round_curved_P_P_SRtimeplot_T_bave_T_fo.png rename to examples/bore_field/madrid/output/madrid_su_round_curved/madrid_su_round_curved_P_P_SR_timeplot_T_bave_T_fo.png diff --git a/examples/bore_field/madrid/output/madrid_su_round_curved/me_du_P_P_SR_timeplot_Q_b.png b/examples/bore_field/madrid/output/madrid_su_round_curved/me_du_P_P_SR_timeplot_Q_b.png new file mode 100644 index 0000000000000000000000000000000000000000..1b50249cec3d62e1196a10059b7560dba29ed7a4 Binary files /dev/null and b/examples/bore_field/madrid/output/madrid_su_round_curved/me_du_P_P_SR_timeplot_Q_b.png differ diff --git a/examples/bore_field/madrid/output/madrid_su_round_curved/me_du_P_P_SR_timeplot_T_bave_T_fi_T_fo.png b/examples/bore_field/madrid/output/madrid_su_round_curved/me_du_P_P_SR_timeplot_T_bave_T_fi_T_fo.png new file mode 100644 index 0000000000000000000000000000000000000000..fc5df283785158f63a24e509cb85f13153117337 Binary files /dev/null and b/examples/bore_field/madrid/output/madrid_su_round_curved/me_du_P_P_SR_timeplot_T_bave_T_fi_T_fo.png differ diff --git a/examples/bore_field/madrid/output/madrid_su_round_curved/me_du_P_P_SR_timeplot_dploop_qploop.png b/examples/bore_field/madrid/output/madrid_su_round_curved/me_du_P_P_SR_timeplot_dploop_qploop.png new file mode 100644 index 0000000000000000000000000000000000000000..9f598c4fa3b0d222711d7e7478867d34fbbdcf22 Binary files /dev/null and b/examples/bore_field/madrid/output/madrid_su_round_curved/me_du_P_P_SR_timeplot_dploop_qploop.png differ diff --git a/examples/bore_field/madrid/output/madrid_su_round_curved/me_du_P_P_SR_timeplot_flowrate.png b/examples/bore_field/madrid/output/madrid_su_round_curved/me_du_P_P_SR_timeplot_flowrate.png new file mode 100644 index 0000000000000000000000000000000000000000..8e1bc44c2e0ace8003718d246e8a15cf2a4ff187 Binary files /dev/null and b/examples/bore_field/madrid/output/madrid_su_round_curved/me_du_P_P_SR_timeplot_flowrate.png differ diff --git a/examples/optimization/output/COAX_optimization/COAX_optimization_A_T_SR_timeplot_COP.png b/examples/optimization/output/COAX_optimization/COAX_optimization_A_T_SR_timeplot_COP.png new file mode 100644 index 0000000000000000000000000000000000000000..9f31daa59f0d27bb14c16b25d59a7d2de4487461 Binary files /dev/null and b/examples/optimization/output/COAX_optimization/COAX_optimization_A_T_SR_timeplot_COP.png differ diff --git a/docs/examples/coax_optimization/images/COAX_optimization_A_T_SRtimeplot_Q_b.png b/examples/optimization/output/COAX_optimization/COAX_optimization_A_T_SR_timeplot_Q_b.png similarity index 99% rename from docs/examples/coax_optimization/images/COAX_optimization_A_T_SRtimeplot_Q_b.png rename to examples/optimization/output/COAX_optimization/COAX_optimization_A_T_SR_timeplot_Q_b.png index 037d7802053c9274ddad764419b2739362270627..5c59964302ddc8d9f7674892e22490be22654dd6 100644 Binary files a/docs/examples/coax_optimization/images/COAX_optimization_A_T_SRtimeplot_Q_b.png and b/examples/optimization/output/COAX_optimization/COAX_optimization_A_T_SR_timeplot_Q_b.png differ diff --git a/examples/optimization/output/COAX_optimization/COAX_optimization_A_T_bhdesign.png b/examples/optimization/output/COAX_optimization/COAX_optimization_A_T_bhdesign.png index 83f101a510d93515798281bfe713cf17415bd283..020b090e7fc73d304eaee20d717ce6ea7684f3c3 100644 Binary files a/examples/optimization/output/COAX_optimization/COAX_optimization_A_T_bhdesign.png and b/examples/optimization/output/COAX_optimization/COAX_optimization_A_T_bhdesign.png differ diff --git a/docs/examples/coax_optimization/images/COAX_optimization_rout_A_T_SRtimeplot_Q_b.png b/examples/optimization/output/COAX_optimization_rout/COAX_optimization_rout_A_T_SR_timeplot_Q_b.png similarity index 99% rename from docs/examples/coax_optimization/images/COAX_optimization_rout_A_T_SRtimeplot_Q_b.png rename to examples/optimization/output/COAX_optimization_rout/COAX_optimization_rout_A_T_SR_timeplot_Q_b.png index 125d349064c8903bf3db5adcb36a1ef03c6c836e..1a047fa5a52ac82988990fc5f2eb5f7dbe1b71ac 100644 Binary files a/docs/examples/coax_optimization/images/COAX_optimization_rout_A_T_SRtimeplot_Q_b.png and b/examples/optimization/output/COAX_optimization_rout/COAX_optimization_rout_A_T_SR_timeplot_Q_b.png differ diff --git a/examples/optimization/output/COAX_optimization_rout/COAX_optimization_rout_A_T_bhdesign.png b/examples/optimization/output/COAX_optimization_rout/COAX_optimization_rout_A_T_bhdesign.png index b9f432311d53c6f19788ce93c8a7749f8e0df701..b90fc6efae76a892b0e15d0838559c46c0f7a1e9 100644 Binary files a/examples/optimization/output/COAX_optimization_rout/COAX_optimization_rout_A_T_bhdesign.png and b/examples/optimization/output/COAX_optimization_rout/COAX_optimization_rout_A_T_bhdesign.png differ diff --git a/examples/simple_simulation/output/SU_100/SU_100_A_T_SRtimeplot_Q_b.png b/examples/simple_simulation/output/SU_100/SU_100_A_T_SR_timeplot_Q_b.png similarity index 100% rename from examples/simple_simulation/output/SU_100/SU_100_A_T_SRtimeplot_Q_b.png rename to examples/simple_simulation/output/SU_100/SU_100_A_T_SR_timeplot_Q_b.png diff --git a/examples/simple_simulation/output/SU_100/SU_100_A_T_SRtimeplot_T_bave_T_fo.png b/examples/simple_simulation/output/SU_100/SU_100_A_T_SR_timeplot_T_bave_T_fo.png similarity index 100% rename from examples/simple_simulation/output/SU_100/SU_100_A_T_SRtimeplot_T_bave_T_fo.png rename to examples/simple_simulation/output/SU_100/SU_100_A_T_SR_timeplot_T_bave_T_fo.png diff --git a/examples/variable_flow_rate/output/DU_variable_flow_rate/DU_variable_flow_rate_A_T_SR_timeplot_COP.png b/examples/variable_flow_rate/output/DU_variable_flow_rate/DU_variable_flow_rate_A_T_SR_timeplot_COP.png new file mode 100644 index 0000000000000000000000000000000000000000..e66bf0443612d9bfe4e3eff96477496e75c9ce9d Binary files /dev/null and b/examples/variable_flow_rate/output/DU_variable_flow_rate/DU_variable_flow_rate_A_T_SR_timeplot_COP.png differ diff --git a/examples/variable_flow_rate/output/DU_variable_flow_rate/DU_variable_flow_rate_A_T_SRtimeplot_T_bave_T_fi_T_fo.png b/examples/variable_flow_rate/output/DU_variable_flow_rate/DU_variable_flow_rate_A_T_SR_timeplot_T_bave_T_fi_T_fo.png similarity index 99% rename from examples/variable_flow_rate/output/DU_variable_flow_rate/DU_variable_flow_rate_A_T_SRtimeplot_T_bave_T_fi_T_fo.png rename to examples/variable_flow_rate/output/DU_variable_flow_rate/DU_variable_flow_rate_A_T_SR_timeplot_T_bave_T_fi_T_fo.png index 24ce1861718e12762cbaa075484a171dd1401254..c4d1bc87ae27690c454f0f82521743c963b8684e 100644 Binary files a/examples/variable_flow_rate/output/DU_variable_flow_rate/DU_variable_flow_rate_A_T_SRtimeplot_T_bave_T_fi_T_fo.png and b/examples/variable_flow_rate/output/DU_variable_flow_rate/DU_variable_flow_rate_A_T_SR_timeplot_T_bave_T_fi_T_fo.png differ diff --git a/docs/examples/variable_flow_rate/images/DU_variable_flow_rate_A_T_SRtimeplot_flowrate.png b/examples/variable_flow_rate/output/DU_variable_flow_rate/DU_variable_flow_rate_A_T_SR_timeplot_flowrate.png similarity index 99% rename from docs/examples/variable_flow_rate/images/DU_variable_flow_rate_A_T_SRtimeplot_flowrate.png rename to examples/variable_flow_rate/output/DU_variable_flow_rate/DU_variable_flow_rate_A_T_SR_timeplot_flowrate.png index 5783308e84627d22aef30ecb9f9236d96e5c75d9..9137c178bf1df0e1adbef5c3bca5d6c81178b579 100644 Binary files a/docs/examples/variable_flow_rate/images/DU_variable_flow_rate_A_T_SRtimeplot_flowrate.png and b/examples/variable_flow_rate/output/DU_variable_flow_rate/DU_variable_flow_rate_A_T_SR_timeplot_flowrate.png differ diff --git a/src/geoloop/configuration.py b/src/geoloop/configuration.py index fec5dd212af3f2910e8d7339e260f5c22f847872..248615ba0ec699f639e64ed912d38f091c844df6 100644 --- a/src/geoloop/configuration.py +++ b/src/geoloop/configuration.py @@ -399,7 +399,7 @@ class SingleRunConfig(BaseModel, extra="allow"): fluid_percent : float or int Mixture percentage for the fluid dissolved in water. m_flow : float - Mass flow rate per pipe [kg/s]. + Mass flow rate [kg/s]. epsilon : float Pipe roughness [m]. r_in : list of float, optional diff --git a/src/geoloop/geoloopcore/b2g_ana.py b/src/geoloop/geoloopcore/b2g_ana.py index 98dff1330de801dafdf4b265826ee1cfe3554899..c48be36975945e2019e912d2b2f86e38c3e76285 100644 --- a/src/geoloop/geoloopcore/b2g_ana.py +++ b/src/geoloop/geoloopcore/b2g_ana.py @@ -110,28 +110,9 @@ class B2G_ana: for k in range(nsegments): la = gt.load_aggregation.ClaessonJaved(sim_params.dt, sim_params.tmax) LoadAgg.append(la) - # TODO: JD: the workaround below was not reuired anymore? + # The field contains only one borehole - # boreField = [gt.boreholes.Borehole(custom_pipe.b.H, custom_pipe.b.D, custom_pipe.b.r_b, x=0., y=0.)] - # The field contains only one borehole, but needs one extra at very large distance to be correct, ie. gfunc plateaus at 6.7) - boreField = [ - gt.boreholes.Borehole( - custom_pipe.b.H, - custom_pipe.b.D, - custom_pipe.b.r_b, - x=0.0, - y=0.0, - tilt=np.radians(0.1), - ), - gt.boreholes.Borehole( - custom_pipe.b.H, - custom_pipe.b.D, - custom_pipe.b.r_b, - x=1000.0, - y=0.0, - tilt=np.radians(0.1), - ), - ] + boreField = [gt.boreholes.Borehole(custom_pipe.b.H, custom_pipe.b.D, custom_pipe.b.r_b, x=0., y=0.)] # Get time values needed for g-function evaluation time_req = LoadAgg[0].get_times_for_simulation() diff --git a/src/geoloop/lithology/process_lithology.py b/src/geoloop/lithology/process_lithology.py index c2779c3228cbc3ca7be59c39741ac3d1db60c640..74e91c2198920834a4e61bae87abf067b84deb28 100644 --- a/src/geoloop/lithology/process_lithology.py +++ b/src/geoloop/lithology/process_lithology.py @@ -9,8 +9,6 @@ from geoloop.configuration import LithologyConfig from geoloop.constants import lithology_properties_xlsx from geoloop.geoloopcore.strat_interpolator import TgInterpolator -# TODO: save the config paramters (error and scaling factors) in the thermcon h5 file that now only stores the results - class ThermalConductivityCalculator: """ diff --git a/src/geoloop/plotting/create_plots.py b/src/geoloop/plotting/create_plots.py index 962ca2d656caff0d025bcc54f6be95ff96dabd2a..d6d4cee879f1920c66b9a20e7de9ee951627eaea 100644 --- a/src/geoloop/plotting/create_plots.py +++ b/src/geoloop/plotting/create_plots.py @@ -199,7 +199,7 @@ class PlotResults: ------- None """ - out_path_prefix = out_path.with_name(out_path.name + "timeplot") + out_path_prefix = out_path.with_name(out_path.name + "_timeplot") # Ensure results_dfs is a list of dataframes if isinstance(results_dfs, pd.DataFrame): @@ -237,12 +237,7 @@ class PlotResults: and "Q_b" in df.columns and "qloop" in df.columns ): - mean_Q = df["Q_b"].mean() - mean_q = df["qloop"].mean() - mean_COP = mean_Q / mean_q - df["COP"] = mean_COP # abs(df['Q_b'] / df['qloop']) - # df['COP'] = abs(df['Q_b']) / df['qloop'] - # print(df["COP"].min()) + df['COP'] = abs(df['Q_b']) / df['qloop'] if ( "Delta_T" in plot_parameters and "T_fi" in df.columns @@ -253,7 +248,7 @@ class PlotResults: plots = [ ("Q_b", "Heat Load [W]", "Q_b", None, None), ("flowrate", "Flowrate [kg/s]", "flowrate", None, None), - ("COP", "Coefficient of Performance", "COP", None, None), + ("COP", "Coefficient of Performance", "COP", None, None) ] plotted_params = [] @@ -281,11 +276,12 @@ class PlotResults: ax.legend(loc=(-0.07, -0.35)) - ax_twin = ax.twinx() - ax_twin.set_ylabel("Pump Power [W]") - for idx, df in enumerate(results_dfs): if "qloop" in plot_parameters and "qloop" in df.columns: + + ax_twin = ax.twinx() + ax_twin.set_ylabel("Pump Power [W]") + color = next(color_iter) # Plot the line @@ -319,7 +315,7 @@ class PlotResults: ax_twin.grid(axis="both") file_name = out_path.with_name( - out_path.name + f"timeplot_{'_'.join(sorted(set(plotted_params)))}.png" + out_path.name + f"_timeplot_{'_'.join(sorted(set(plotted_params)))}.png" ) fig.tight_layout() @@ -473,6 +469,15 @@ class PlotResults: label=labels[idx][param], color=next(color_iter), ) + if param=="COP": + if param == "COP": + ax.text( + 0.7, 0.9, # 2% from left and bottom of the axes + f"mean COP: {df['COP'].mean():.2f}", + transform=ax.transAxes, + bbox=dict(boxstyle="round,pad=0.3", facecolor="white", alpha=0.7), + fontsize=12 + ) ax.legend(loc=(-0.07, -0.17 - (0.08 * len(results_dfs)))) ax.grid()