modelGeometry
Information
1. Purpose of model
Wrapper model that builds the grid during initialization and exposes the resulting geometry arrays as accessible parameters. Provides a single shared geometry object that is referenced by AquiferL4 and ATES_confinedLayer.
Depending on the Setting flag optimized_grid, the initial equation chooses the grid source and then calls the Discretization function:
optimized_grid = true: the grid section vectors are generated automatically by the GridGenerator function from physical parameters (H_a, H_c, V_inj, r_0, domain_factor, N_r, N_z, N_z_c). N_r must be pre-computed with GridGenerator_SizeOnly.optimized_grid = false: the manual grid section vectors from the Setting record (R_GS_H, dx_GS, H_GS_VA, dz_GS_A, H_GS_VC, dz_GS_C) are used directly.
In both cases the selected section vectors are passed to Discretization, which returns the per-cell radii, heights, areas, and volumes.
2. Level of detail, physical effects considered, and physical insight
(Purely technical component without physical modeling.)
3. Limits of validity
- Geometry is fixed at initialization; no dynamic change of grid geometry.
- Relies on an embedded Setting record to define the grid.
4. Interfaces
No connectable ports. Geometry arrays are accessed by name from the enclosing ATES model.
5. Nomenclature
N_r |
total number of radial control volumes [-] | |
N_z |
total number of vertical aquifer control volumes [-] | |
r[N_r] |
outer edge radius of radial control volumes [m] | |
A_s[N_r, N_z] |
outer lateral surface area of aquifer control volumes [m²] | |
A_q[N_r] |
cross-sectional annular area [m²] | |
V[N_r, N_z] |
volume of aquifer control volumes [m³] |
6. Governing Equations
(no equations)
7. Remarks for Usage
Instantiate once at the top level of ATES_confinedLayer or AquiferL4. Pass the same Setting record to Geometry and to all sub-models to ensure a consistent grid.
When using the optimized grid (setting.optimized_grid = true), determine the required number of radial control volumes N_r beforehand with GridGenerator_SizeOnly (or the AutoConfigureN_r.mos script) and enter it into the Setting record. The geometry arrays are sized from N_r, N_z and N_z_c, which are structural parameters and therefore require re-translation when changed.
8. Validation
Tested in check model "ATES.Check.TestDiscretization"
9. References
(no remarks)
10. Version History
Model created by Markus Gillner (markus.gillner@tuhh.de), May 2026
Model revised by Markus Gillner (markus.gillner@tuhh.de), June 2026
- Documented the optimized vs. individual grid branch of the initial equation and removed nomenclature rows for the commented-out parameters R and H_a.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Real | C_w | volumetric heat capacity of fluid | |
| Real | C | volumetric heat capacity of aquifer | |
| Integer | N_r | if setting.optimized_grid then setting.N_r else sum(setting.R_GS_H) | number of radial control volumes |
| Integer | N_z | if setting.optimized_grid then setting.N_z else sum(setting.H_GS_VA) | number of vertical control volumes |
| Integer | N_z_c | if setting.optimized_grid then setting.N_z_c else sum(setting.H_GS_VC) | number of vertical control volumes for the confining layers |
| SI.Area[N_r,N_z] | A_s | outer surface area of control volumes | |
| SI.Area[N_r] | A_q | cross-section area of control volumes | |
| SI.Volume[N_r,N_z] | V | size of control volumes | |
| SI.Length[N_r] | r | radius of the outer edge of the control volumes to well | |
| SI.Length[N_r,N_z] | r_r | radius of the center of the control volumes to well | |
| SI.Area[N_r,N_z_c] | A_s_Cu | outer surface area of control volumes of upper aquitard | |
| SI.Volume[N_r,N_z_c] | V_Cu | size of control volumes of upper aquitard | |
| SI.Area[N_r,N_z_c] | A_s_Cd | outer surface area of control volumes of lower aquitard | |
| SI.Volume[N_r,N_z_c] | V_Cd | size of control volumes of lower aquitard | |
| SI.Length[N_r,N_z] | z_A | heights of control volumes in aquifer | |
| SI.Length[N_r,N_z_c] | z_Cu | heights of control volumes in upper layer aquitard | |
| SI.Length[N_r,N_z_c] | z_Cd | heights of control volumes in lower layer aquitard | |
| SI.Length[N_r,N_z_c] | r_r_c | radius of the center of the control volumes to well in aquitard | |
| Integer[N_r] | R_GS_H_opt | new calculated vector with lot of 1 | |
| SI.Length[N_r] | dx_GS_opt | vector of optimized radial discretization | |
| Integer[N_z] | H_GS_VA_opt | new calculated vector with lot of 1 | |
| SI.Length[N_z] | dz_GS_A_opt | vector of optimized vertical discretization | |
| Integer[N_z_c] | H_GS_VC_opt | new calculated vector with lot of 1 | |
| SI.Length[N_z_c] | dz_GS_C_opt | vector of vertical discretization in adjacend layers | |
| Records.Setting | setting |