functionValidityAnalysis
Extends from TransiEnt.Basics.Icons.Function.
Information
1. Purpose of model
Pre-simulation validity analysis of the ATES_L4 model (ATES_confinedLayer) for a given site and operating scenario. The function checks whether the scenario lies within the limits of four model assumptions, returns a status per criterion (0 = fulfilled, 1 = warning, 2 = violated) together with the key figures, and prints a report to the log.
2. Level of detail, physical effects considered, and physical insight
Purely analytical component based on steady radial flow from the well screen. The following model assumptions are checked:
- Darcy's law: share E of the non-Darcy (Forchheimer) term in the pressure gradient, calculated with the Ergun equation at the well screen. As the Forchheimer number decreases with 1/r, the radius r_E up to which E exceeds E_Darcy_max is compared with the first radial control volume.
- Local thermal equilibrium: grain diameter and seepage velocity thresholds of Gossler et al. (2020), significant LTNE effects after Lee et al. (2025).
- Natural regional groundwater flow: displacement number N relating the displacement of the thermal plume during one cycle to the thermal radius, with bounds for the higher mobility of the hot water.
- Buoyancy switch: Rayleigh-Darcy number (Eq. 10 of Gillner et al.) and characteristic buoyancy flow velocity (Hellström et al. 1988) if buoyancy is switched off in the Setting record.
Physical insight: in radial flow with prescribed mass flow rate, the velocity field follows from continuity. Non-Darcy flow near the well therefore mainly affects the pressure drop of the well and hardly the temperature field. The hot water has a lower viscosity than the ambient water, so the regional groundwater flow is drawn into the thermal plume: by the factor 2M/(1+M) for a cylindrical plume over the full aquifer thickness and up to the factor M for a thin hot layer at the top of the aquifer after strong tilting of the thermal front.
3. Limits of validity
- All key figures are pre-simulation estimates for steady radial flow from a fully penetrating well with uniform inflow. Vertical buoyancy flow is not considered in the criteria on Darcy's law and local thermal equilibrium.
- Fluid properties are evaluated at the initial pressure p_initial (bottom of the aquifer) and at the temperatures T_0, T_inj and T_m = (T_0 + T_inj)/2.
- If no grain diameter is given, it is estimated from permeability and porosity (Kozeny-Carman form of the Ergun equation). This is an effective hydraulic diameter, which is usually smaller than d_50.
- The thresholds for the natural regional groundwater flow were determined for low-temperature ATES with annual cycles (Bloemendal and Hartog 2018; Tas et al. 2025). The generalization to arbitrary cycle durations and the warning threshold 0.1 are derived. The high-temperature effect is represented only by the bounds [2M/(1+M), M]. A tilting angle after Hellström et al. (1988) is not used, because the initial tilting rate strongly overestimates the tilting in dynamic operation (Auburn case: about 88° after 31 days of injection compared with 25° to 35° in the simulation; cf. Beernink et al. 2024). The drift of residual heat over several cycles is not considered, so the criterion on the natural regional groundwater flow tends to be optimistic for multi-year simulations.
- Not checked: thermal interference between hot and cold well (single-well model), permeability of the confining layers, dispersion, salinity of the formation water, geothermal gradient, grid resolution, heterogeneity of the aquifer, Brinkman term, radiation and viscous dissipation.
4. Interfaces
Inputs:
site — subsurface properties (Records.Subsurface_Basic or an extending record such as Records.Molz1983)
setting — grid, geometry and physics settings (Records.Setting); H_a, r_0, the width of the first radial control volume and the buoyancy switch are taken from this record
m_flow_max — maximum absolute mass flow rate during injection or production [kg/s]
T_inj — maximum injection temperature [K]
V_inj — volume injected per cycle, default setting.V_inj [m³]
t_cycle — duration of one storage cycle, default 1 year [s]
d_50 — representative grain diameter, default -1 (estimated) [m]
u_amb — Darcy flux of the natural regional groundwater flow at ambient temperature, default 0 [m/s]
thresholds — thresholds of the validity criteria (Records.ValidityThresholds)
vleFluidType — TILMedia fluid type for the property evaluation, default TILMedia_SplineWater
printReport — print a report to the log, default true
Output:
result — status per criterion and key figures (Records.ValidityResult)
5. Nomenclature
result.R_th |
thermal radius of the stored volume [m] | |
site.C_w |
volumetric heat capacity of water [J/(m³·K)] | |
site.C |
volumetric heat capacity of the aquifer [J/(m³·K)] | |
V_inj |
volume injected per cycle [m³] | |
H_a |
thickness of the aquifer [m] | |
m_flow_max |
maximum absolute mass flow rate during injection or production [kg/s] | |
r |
radial distance from the well axis [m] | |
setting.r_0 |
radius of the well screen [m] | |
dr_1 |
width of the first radial control volume (setting.dx_min or setting.dx_GS[1]) [m] | |
site.T_initial |
undisturbed aquifer temperature [K] | |
T_inj |
maximum injection temperature [K] | |
T_m |
mean temperature of undisturbed aquifer and injection [K] | |
rho_0 |
density of water at T_0 [kg/m³] | |
rho_inj |
density of water at T_inj [kg/m³] | |
rho_m |
density of water at T_m [kg/m³] | |
mu_0 |
dynamic viscosity of water at T_0 (DynamicViscosityWater) [Pa·s] | |
mu_inj |
dynamic viscosity of water at T_inj [Pa·s] | |
mu_m |
dynamic viscosity of water at T_m [Pa·s] | |
cp_m |
specific isobaric heat capacity of water at T_m [J/(kg·K)] | |
beta_m |
isobaric thermal expansion coefficient of water at T_m [1/K] | |
v_D_well |
Darcy velocity (evaluated at r_0 in the code) [m/s] | |
result.d_grain |
grain diameter, equal to d_50 if given [m] | |
site.k |
horizontal permeability of the aquifer [m²] | |
site.k_v |
vertical permeability of the aquifer [m²] | |
site.n |
porosity of the aquifer [-] | |
thresholds.c_Ergun_visc |
viscous coefficient of the Ergun equation [-] | |
thresholds.c_Ergun_inert |
inertial coefficient of the Ergun equation [-] | |
result.Re_well |
grain Reynolds number at the well screen [-] | |
Fo_well |
Forchheimer number at the well screen [-] | |
result.E_well |
non-Darcy share of the pressure gradient at the well screen [-] | |
thresholds.E_Darcy_max |
non-Darcy share above which Darcy's law is violated [-] | |
result.r_E |
radius up to which the non-Darcy share exceeds E_max [m] | |
result.r_LTE |
radius up to which the seepage velocity exceeds v_s,LTE [m] | |
thresholds.v_s_LTE |
seepage velocity up to which LTE holds for all grain diameters [m/s] | |
result.r_LTNE |
radius up to which the Darcy velocity exceeds q_LTNE [m] | |
thresholds.q_LTNE |
Darcy velocity from which significant LTNE effects were measured [m/s] | |
result.fV_LTE |
fraction of the thermal plume volume in which the seepage velocity exceeds v_s,LTE [-] | |
u_amb |
Darcy flux of the natural regional groundwater flow at ambient temperature [m/s] | |
t_cycle |
duration of one storage cycle [s] | |
result.M_mobility |
mobility ratio of the injected to the ambient water [-] | |
result.N_0 |
displacement number without high-temperature correction [-] | |
result.N_lo |
lower bound of the displacement number [-] | |
result.N_hi |
upper bound of the displacement number [-] | |
result.Ra |
Rayleigh-Darcy number of the aquifer [-] | |
g_n |
gravitational acceleration [m/s²] | |
site.lambda_a |
effective thermal conductivity of the aquifer [W/(m·K)] | |
result.q_0 |
characteristic buoyancy flow velocity [m/s] |
The thresholds (E_ok, d_LTE, d_LTNE, N_ok, N_max, Ra_crit, q_0,crit, f_warn) are listed in Records.ValidityThresholds.
6. Governing Equations
Thermal radius of the stored volume (Eq. 9 of Gillner et al.):

Darcy velocity in radial flow from the well screen:

Darcy's law: grain Reynolds number, Forchheimer number from the Ergun equation and non-Darcy share of the pressure gradient (Zeng and Grigg 2006). If no grain diameter is given, it is estimated from the viscous term of the Ergun equation:




Local thermal equilibrium: radii up to which the seepage velocity exceeds v_s,LTE and the Darcy velocity exceeds q_LTNE, and fraction of the plume volume with seepage velocities above v_s,LTE:


Natural regional groundwater flow: displacement number, mobility ratio and high-temperature bounds (Bloemendal and Hartog 2018; Wheatcraft and Winterberg 1985):


Buoyancy switch: Rayleigh-Darcy number (Eq. 10 of Gillner et al.) and characteristic buoyancy flow velocity (Hellström et al. 1988; Beernink et al. 2024):


Classification (r_1 = r_0 + Δr_1 is the outer radius of the first radial control volume):
| Criterion | 0 fulfilled | 1 warning | 2 violated |
| Darcy's law | E(r_0) ≤ E_ok | E(r_0) > E_ok and r_E ≤ r_1 | r_E > r_1 |
| Local thermal equilibrium | d ≤ d_LTE or r_LTE ≤ r_1 | otherwise | d ≥ d_LTNE and r_LTNE > r_1 |
| Natural regional groundwater flow | N_hi ≤ N_ok | N_hi > N_ok and N_lo ≤ N_max | N_lo > N_max |
| Buoyancy switch | buoyancy = true, or Ra < f_warn·Ra_crit and q_0 < f_warn·q_0,crit | buoyancy = false and Ra ≥ f_warn·Ra_crit or q_0 ≥ f_warn·q_0,crit | buoyancy = false and Ra ≥ Ra_crit or q_0 ≥ q_0,crit |
The overall status is the maximum of the four status values.
7. Remarks for Usage
Call the function before setting up a simulation, either from the Dymola command line or in a model as parameter binding:
parameter Records.ValidityResult validity = Function.ValidityAnalysis( site = Parameters, setting = setting, m_flow_max = 20, T_inj = 333.15, t_cycle = 365*86400, u_amb = 3e-7, vleFluidType = simCenter.fluid1);
Use the same Subsurface_Basic and Setting records as in ATES_confinedLayer. m_flow_max is the largest absolute mass flow rate of injection or production. V_inj defaults to setting.V_inj; set it explicitly if an individual grid (optimized_grid = false) is used. A measured grain diameter d_50 should be given if available, because the estimate from permeability and porosity is uncertain. u_amb is the Darcy flux of the regional groundwater flow (hydraulic conductivity times hydraulic gradient), not the seepage velocity.
Status 1 (warning) indicates that the assumption is partly violated or that the threshold is uncertain (see section 3); the report states the reason. Status 2 means that the scenario is outside the validity of the model.
8. Validation
Tested in check model "TransiEnt.Storage.Heat.ATES_L4.Check.Check_ValidityAnalysis". For the Auburn field experiment (Molz et al. 1983), the function reproduces the Rayleigh-Darcy number Ra = 79 reported by Gillner et al.
9. References
Bear, J., 1972: Dynamics of Fluids in Porous Media. American Elsevier, New York.
Beernink, S., Hartog, N., Vardon, P. J., Bloemendal, M., 2024: Heat losses in ATES systems: The impact of processes, storage geometry and temperature. Geothermics 117, 102889, https://doi.org/10.1016/j.geothermics.2023.102889.
Bloemendal, M., Hartog, N., 2018: Analysis of the impact of storage conditions on the thermal recovery efficiency of low-temperature ATES systems. Geothermics 71, 306–319, https://doi.org/10.1016/j.geothermics.2017.10.009.
Collignon, M., Klemetsdal, Ø. S., Møyner, O., Alcanié, M., Rinaldi, A. P., Nilsen, H. M., Lupi, M., 2020: Evaluating thermal losses and storage capacity in high-temperature aquifer thermal energy storage (HT-ATES) systems with well operating limits: insights from a study-case in the Greater Geneva Basin, Switzerland. Geothermics 85, 101773, https://doi.org/10.1016/j.geothermics.2019.101773.
Ergun, S., 1952: Fluid flow through packed columns. Chemical Engineering Progress 48, 89–94.
Gillner, M., Jin, Y., Speerforck, A.: System-level model for high-temperature aquifer thermal energy storage (HT-ATES) accounting for buoyancy-driven flow. Manuscript.
Gossler, M. A., Bayer, P., Rau, G. C., Einsiedl, F., Zosseder, K., 2020: On the limitations and implications of modeling heat transport in porous aquifers by assuming local thermal equilibrium. Water Resources Research 56, e2020WR027772.
Hellström, G., Tsang, C.-F., Claesson, J., 1988: Buoyancy flow at a two-fluid interface in a porous medium: analytical studies. Water Resources Research 24, 493–506, https://doi.org/10.1029/WR024i004p00493.
Lee, H., Gossler, M., Zosseder, K., Blum, P., Bayer, P., Rau, G. C., 2025: Laboratory heat transport experiments reveal grain-size- and flow-velocity-dependent local thermal non-equilibrium effects. Hydrology and Earth System Sciences 29, 1359–1378, https://doi.org/10.5194/hess-29-1359-2025.
Molz, F. J., Melville, J. G., Parr, A. D., King, D. A., Hopf, M. T., 1983: Aquifer thermal energy storage: a well doublet experiment at increased temperatures. Water Resources Research 19, 149–160.
Nield, D. A., Bejan, A., 2017: Convection in Porous Media. 5th edition. Springer, New York, https://doi.org/10.1007/978-3-319-49562-0.
Tas, L., et al., 2025: Efficiency and heat transport processes of low-temperature aquifer thermal energy storage systems: new insights from global sensitivity analyses. Geothermal Energy 13, 2, https://doi.org/10.1186/s40517-024-00326-1.
Wheatcraft, S. W., Winterberg, F., 1985: Steady state flow passing through a cylinder of permeability different from the surrounding medium. Water Resources Research 21, 1923–1929, https://doi.org/10.1029/WR021i012p01923.
Zeng, Z., Grigg, R., 2006: A criterion for non-Darcy flow in porous media. Transport in Porous Media 63, 57–69, https://doi.org/10.1007/s11242-005-2720-3.
10. Version History
Function created by Markus Gillner (markus.gillner@tuhh.de) on 01.10.2026
Inputs
| Type | Name | Default | Description |
|---|---|---|---|
| TransiEnt.Storage.Heat.ATES_L4.Base.Records.Subsurface_Basic | site | Subsurface properties, same record as ATES_confinedLayer.Parameters | |
| TransiEnt.Storage.Heat.ATES_L4.Base.Records.Setting | setting | Grid, geometry and physics settings, same record as ATES_confinedLayer.setting | |
| SI.MassFlowRate | m_flow_max | Maximum absolute mass flow rate during injection or production | |
| SI.Temperature | T_inj | Maximum injection temperature | |
| SI.Volume | V_inj | setting.V_inj | Volume injected per cycle (default: value of the setting record) |
| SI.Time | t_cycle | 365*86400 | Duration of one storage cycle (injection, storage, production and rest) |
| SI.Length | d_50 | -1 | Representative grain diameter (d_50 <= 0: estimated from permeability and porosity) |
| SI.Velocity | u_amb | 0 | Darcy flux of the natural regional groundwater flow at ambient temperature |
| TransiEnt.Storage.Heat.ATES_L4.Base.Records.ValidityThresholds | thresholds | TransiEnt.Storage.Heat.ATES_L4.Base.Records.ValidityThresholds() | Thresholds of the validity criteria |
| TILMedia.VLEFluidTypes.BaseVLEFluid | vleFluidType | TILMedia.VLEFluidTypes.TILMedia_SplineWater() | Fluid type for the property evaluation, should equal simCenter.fluid1 |
| Boolean | printReport | true | Print a report of the validity analysis to the log |
Outputs
| Type | Name | Default | Description |
|---|---|---|---|
| TransiEnt.Storage.Heat.ATES_L4.Base.Records.ValidityResult | result | Status and key figures of the validity analysis |