Using the Plotting Module for Visualization
The input JSON file for the plotting module is directly used by the Plotmain module or the
plot command in the CLI (see Geoloop Interface). The module uses the HDF5 (.h5) file to load the input
parameters and results that are stored after a BHE simulation.
Configuration of the Plotting Module
In the configuration JSON, users can specify which types of plots and variables to visualize for each simulation, by setting flags and arguments in the following parameters:
| Parameter | Description | Unit | Type | Remark |
|---|---|---|---|---|
| base_dir | Path to folder that contains the folders created by simulations, with data files to plot | string | ||
| run_names | Name(s) of simulation(s) to plot | list | ||
| model_types | Model type(s) used for simulation(s) to plot | list | Options: ANALYTICAL or FINVOL | |
| run_types | Starting point for simulation(s) to plot | list | Options: POWER or TIN | |
| run_modes | Specifies single or stochastic simulation(s) to plot | list | Options: SR or MC; Note: only simulations of the same mode can be plotted together | |
| plot_names | Name(s) of simulation(s) that is used in the legend of the plot(s) | list | Optional | |
| plot_nPipes | Index of pipe for dataselection to plot | list | Used for crossplots and timeplots | |
| plot_layer_k_s | Index of thermal conductivity layer for dataselection of input parameters to plot | list | Used for crossplots | |
| plot_layer_Tg | Index of subsurface temperature layer for dataselection of input parameters to plot | list | Used for crossplots | |
| plot_layer_kg | Index of grout thermal conductivity layer for dataselection of input parameters to plot | list | Used for crossplots | |
| plot_nz | Index of depth layer for dataselection of results to plot | list | Used for crossplots and timeplots | |
| plot_ntime | Index of timestep for dataselection of results to plot | list | Used for crossplots | |
| plot_nzseg | Index of depth segment for dataselection of results to plot | list | Used for crossplots and timeplots | |
| newplot | Flag to plot the simulation(s) listed in run_names seperately or together | boolean | Only simulations with the same run_modes can be plot together | |
| plot_time_depth | Flag to plot time- and depthplots | boolean | Only compatible with single simulations | |
| plot_time_parameters | Parameters to plot in a timeseries plot | list | Optional. Only used if plot_time_depth is true. Options: dploop; qloop; flowrate; T_fi; T_fo; T_bave; Q_b; COP; Delta_T. With Delta_T = T_fo-T_fi and COP = Q_b/qloop |
|
| plot_depth_parameters | Parameters to plot in the depth plot | list | Optional. Only used if plot_time_depth is true. Options: T_b; Tg; T_f; Delta_T |
|
| plot_borehole_temp | List of depth-segment slice indices to plot borehole temperature for | list | Optional. Only used if plot_time_depth is true. index 0 always works |
|
| plot_times | Timesteps for which to create depthplots | hours | list | Only used if plot_time_depth is true |
| plot_crossplot_barplot | Flag to plot crossplots and tornadoplots | boolean | Only compatible with stochastic simulations | |
| crossplot_vars | Variable input parameters and results to target in crossplots and tornado plots | list | Only used if plot_crossplot_barplot is true |
|
| plot_temperature_field | Flag to plot the 3D temperature field calculated and stored by a simulation of the numericla model | boolean | Only used if model_type is FINVOL |
Types of Plots
The plotting module in Geoloop visualizes simulation results, together with input parameters. Visualization of the results in different types of plots is supported. These include continuous depth-plots and depth-slices, time-plots, scatter plots and tornado plots. For examples of these different plot types, see the Examples page. Each plot type can visualize different variables depending on the simulation context.
Depth plots can include:
- Fluid temperature —
T_f - Difference between inlet and outlet fluid temperatures —
Delta_T - Borehole wall temperature —
T_b - Subsurface temperature —
Tg
Time plots can include:
- Outlet temperature —
T_fo - Inlet temperature —
T_in - Temperature difference (inlet–outlet) —
Delta_T - Average borehole wall temperature —
T_bave - Flow rate in each pipe —
flowrate - Pumping pressure —
dploop - Generated thermal power —
Q_b - Pumping power —
qloop - Coefficient Of Performance (COP) of the circulation pump during the simulation period —
COP
Scatter and tornado plots can include the following variables:
- Scaling factor for subsurface thermal conductivity —
k_s_scale - Pipe thermal conductivity —
k_p - Maximum depth of pipe insulation —
insu_z - Fraction of pipe thickness that includes insulation —
insu_dr - The thermal conductivity of the insulating material —
insu_k - The flowrate —
m_flow - The inlet temperature —
Tin - The borehole length —
H - The pipe surface roughness —
epsilon - The subsurface thermal diffusivity —
alfa - The temperature gradient —
Tgrad - The heat load —
Q - The percentage of the working fluid mixed with water —
fluid_percent
For a numerical simulation, plots of the calculated 3D temperature grid can be produced for every simulated timestep. In addition, the time-depth slices of subsurface temperature, that are visualized by this, can be combined in a GIF.
For comparison between cases, the plotting module allows for plotting
the results of multiple simulations together. Therefore, the input JSON
file for the plotting module accepts simultaneous entry of plotting
preferences for multiple simulations. In addition, the plotting
configuration includes a flag newplot that allows
for individual plotting of the simulations specified in the input JSON.
- Plotting more than two simulations together is not optimally supported.
- Plotting together deterministic and stochastic simulations is not supported.
Outputs
The plots generated by Geoloop are stored in a fixed file-name format in the base directory of each simulation case.
📁 /jsondir/base_dir/casename/
For deterministic calculations, the following output plots are produced:
-
casename_borehole_temp_{timestep}_{segment}.png
Plot of the internal borehole temperature at a specified depth-slice and timestep. -
casename_temperature_depth_{timestep}.png
Continuous depth-plot showing fluid, borehole, and subsurface temperatures for a specified timestep. -
casename_heatflow_depth_{timestep}.png
Continuous depth-plot showing subsurface heat flow and thermal conductivity for a specified timestep. -
casename_timeplot_{data_variables}.png
Time-plot showing various input and result variables over the course of the simulation.
For stochastic simulations, additional statistical plots are created:
-
casename_{data_variable_y}vs{data_variable_x}_scat.png
Scatter plots showing the relationship between two input and/or result variables. -
casename_Sensitivity_{data_variable}.png
Tornado plots showing the sensitivity of one input or result variable relative to other simulation variables.
For simulation with the numerical finite volume model, plots of the 3D temperature field are produced:
Tfield_time/casename_T_field_{timestep}.pngTime-depth slice of the calculated subsurface temperature field.Tfield_time/Tfield_animation.gifGIF animation of the time-sequence of time-depth slices of the calculated subsurface temperature field.