modelCheck_ValidityAnalysis

Check of the validity analysis function ValidityAnalysis with seven scenarios

Extends from TransiEnt.Basics.Icons.Checkmodel (Icon for check models).

Information

1. Purpose of model

Check model for the validity analysis function ValidityAnalysis. Seven scenarios are evaluated, which together trigger every status value of every criterion at least once. Scenarios 1 to 4 are taken from Gillner et al. (Auburn field experiment and ten-year study), scenarios 5 to 7 are synthetic.

2. Level of detail, physical effects considered, and physical insight

(Purely technical component without physical modeling.)

3. Limits of validity

- The function is evaluated once during initialization; there is no dynamic simulation.

- Scenario 1 uses the injected volume of the first cycle in Table 5 of Gillner et al. and the optimized grid with a first cell width of 1 m.

- Scenarios 5 to 7 are constructed to trigger specific status values and do not represent real sites.

4. Interfaces

(no elements — standalone check model)

5. Nomenclature

s status_* overall status of the scenarios (0 fulfilled, 1 warning, 2 violated) [-]
auburn, auburnNoBuoyancy, tenYears_HR020, tenYears_HR075, fineGravel, coarseGravel, thickLowPermeability result records of the scenarios (see Records.ValidityResult)

6. Governing Equations

(no equations — check model)

7. Remarks for Usage

Translate and simulate (StopTime = 1 s). The reports of all scenarios are printed to the log. Expected status values (Darcy's law / local thermal equilibrium / natural regional groundwater flow / buoyancy switch → overall):

ScenarioInputExpected key figuresStatus
1 auburnMolz1983, 19.36 kg/s, r_0 = 0.1 m, H_a = 21 m, V_inj = 25300 m³, 20 → 60 °C, t_cycle = 87 d, u = 9.6 m/aR_th ≈ 25.6 m, Re_d ≈ 1.8, E ≈ 2.8 %, Ra ≈ 79, q_0 ≈ 0.21 m/d, N = 0.12 ... 0.191/0/1/0 → 1
2 auburnNoBuoyancyas 1, buoyancy = falseRa > 4π², q_0 > 0.05 m/d1/0/1/2 → 2
3 tenYears_HR020Molz1983, 30 → 60 °C, 40 bar, 31.44 kg/s, V_inj = 420000 m³, u = 0R_th ≈ 104 m, E ≈ 3 %1/0/0/0 → 1
4 tenYears_HR075as 3, 2.24 kg/s, V_inj = 30000 m³E ≈ 0.2 %0/0/0/0 → 0
5 fineGravelas 3, d_50 = 10 mm, k = 1e-10 m², u = 9.6 m/aE ≈ 35 %, r_E ≈ 0.7 m, N_hi ≈ 0.161/1/1/0 → 1
6 coarseGraveld_50 = 25 mm, k = 1e-9 m², n = 0.3, V_inj = 231000 m³, u = 100 m/a, buoyancy = falseRe_d ≈ 85, r_E ≈ 1.9 m, r_LTNE ≈ 1.7 m, N_lo ≈ 1.72/2/2/2 → 2
7 thickLowPermeabilityH_a = 60 m, k = 2e-11 m², k_v = 1.2e-12 m², 5 kg/s, buoyancy = falseRa ≈ 27, q_0 ≈ 0.04 m/d0/0/0/1 → 1

An inner ClaRa.SimCenter must be present; its fluid1 is passed to the function for the property evaluation.

8. Validation

The expected values in section 7 were calculated independently with tabulated water properties. For scenario 1, the Rayleigh-Darcy number reproduces Ra = 79 reported by Gillner et al. for the Auburn experiment.

9. References

Gillner, M., Jin, Y., Speerforck, A.: System-level model for high-temperature aquifer thermal energy storage (HT-ATES) accounting for buoyancy-driven flow. Manuscript.

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.

10. Version History

Model created by Markus Gillner (markus.gillner@tuhh.de) on 01.10.2026

Parameters

TypeNameDefaultDescription
SI.Timet_year365*86400Duration of one year
Base.Records.ValidityResultauburnBase.Function.ValidityAnalysis(site = Base.Records.Molz1983(), setting = Base.Records.Setting(H_a = 21, H_c = 9, V_inj = 25300, r_0 = 0.1, buoyancy = true), m_flow_max = 19.36, T_inj = 333.15, t_cycle = 87*86400, u_amb = 9.6/t_year, vleFluidType = simCenter.fluid1)Scenario 1: Auburn field experiment, cycle 1
Base.Records.ValidityResultauburnNoBuoyancyBase.Function.ValidityAnalysis(site = Base.Records.Molz1983(), setting = Base.Records.Setting(H_a = 21, H_c = 9, V_inj = 25300, r_0 = 0.1, buoyancy = false), m_flow_max = 19.36, T_inj = 333.15, t_cycle = 87*86400, u_amb = 9.6/t_year, vleFluidType = simCenter.fluid1)Scenario 2: Auburn field experiment without buoyancy
Base.Records.ValidityResulttenYears_HR020Base.Function.ValidityAnalysis(site = Base.Records.Molz1983(T_initial = 303.15, p_initial = 40e5), setting = Base.Records.Setting(H_a = 21, H_c = 30, V_inj = 4.2e5, r_0 = 0.15, buoyancy = true), m_flow_max = 31.44, T_inj = 333.15, t_cycle = t_year, vleFluidType = simCenter.fluid1)Scenario 3: ten-year study, H_a/R_th = 0.2
Base.Records.ValidityResulttenYears_HR075Base.Function.ValidityAnalysis(site = Base.Records.Molz1983(T_initial = 303.15, p_initial = 40e5), setting = Base.Records.Setting(H_a = 21, H_c = 30, V_inj = 3.0e4, r_0 = 0.15, buoyancy = true), m_flow_max = 2.24, T_inj = 333.15, t_cycle = t_year, vleFluidType = simCenter.fluid1)Scenario 4: ten-year study, H_a/R_th = 0.75
Base.Records.ValidityResultfineGravelBase.Function.ValidityAnalysis(site = Base.Records.Molz1983(T_initial = 303.15, p_initial = 40e5, k = 1e-10, k_v = 1e-11), setting = Base.Records.Setting(H_a = 21, H_c = 30, V_inj = 4.2e5, r_0 = 0.15, buoyancy = true), m_flow_max = 31.44, T_inj = 333.15, t_cycle = t_year, d_50 = 0.010, u_amb = 9.6/t_year, vleFluidType = simCenter.fluid1)Scenario 5: synthetic fine gravel aquifer
Base.Records.ValidityResultcoarseGravelBase.Function.ValidityAnalysis(site = Base.Records.Molz1983(T_initial = 303.15, p_initial = 40e5, n = 0.3, k = 1e-9, k_v = 2e-10), setting = Base.Records.Setting(H_a = 21, H_c = 30, V_inj = 2.31e5, r_0 = 0.15, buoyancy = false), m_flow_max = 31.44, T_inj = 333.15, t_cycle = t_year, d_50 = 0.025, u_amb = 100/t_year, vleFluidType = simCenter.fluid1)Scenario 6: synthetic coarse gravel aquifer
Base.Records.ValidityResultthickLowPermeabilityBase.Function.ValidityAnalysis(site = Base.Records.Molz1983(T_initial = 303.15, p_initial = 40e5, k = 2e-11, k_v = 1.2e-12), setting = Base.Records.Setting(H_a = 60, H_c = 30, V_inj = 6.6e4, r_0 = 0.15, buoyancy = false), m_flow_max = 5, T_inj = 333.15, t_cycle = t_year, vleFluidType = simCenter.fluid1)Scenario 7: synthetic thick aquifer of low permeability

Components

TypeNameDefaultDescription
Integerstatus_auburnauburn.statusOverallOverall status of scenario 1 (expected 1)
Integerstatus_auburnNoBuoyancyauburnNoBuoyancy.statusOverallOverall status of scenario 2 (expected 2)
Integerstatus_tenYears_HR020tenYears_HR020.statusOverallOverall status of scenario 3 (expected 1)
Integerstatus_tenYears_HR075tenYears_HR075.statusOverallOverall status of scenario 4 (expected 0)
Integerstatus_fineGravelfineGravel.statusOverallOverall status of scenario 5 (expected 1)
Integerstatus_coarseGravelcoarseGravel.statusOverallOverall status of scenario 6 (expected 2)
Integerstatus_thickLowPermeabilitythickLowPermeability.statusOverallOverall status of scenario 7 (expected 1)
ClaRa.SimCentersimCenter