- 02 May 2024
- 6 Minutes to read
- Print
Mass Balance Calculations
- Updated on 02 May 2024
- 6 Minutes to read
- Print
Why?
The volume of water fed into a simulation should equal the volume of water out plus any volume stored in the system. However, this is not always exactly the case for the following reasons:
Approximation of numerical solution
Approximation of volume calculations
Model problems
Some variation in the first two points is perfectly natural and, if small, not necessarily something to worry about. However, large variations, which could be due to #3 are indicative of a poorly-performing model.
Thus, the volume discrepancy is calculated as being the difference between the cumulative net inflow volume (total inflow – total outflow) and the increase in storage in the model (current volume, i.e. stored in channels and reservoirs, less initial volume).
What is output?
During simulation
% error : This is calculated as the volume discrepancy relative to the current maximum storage volume, e.g. if your current difference between net inflow and storage increase is 1m, and the storage volume is 100mat is greatest during the simulation, then this equates to a 1% mass error. (Therefore, if the initial system volume is relatively large, this may give an overoptimistic mass error value; hence the individual values are given in the summary as well, as an alternative measure – as a proportion of the boundary inflow volume - in order to inform the user).
Summary
| Units: metric (US) | Description |
Mass balance calculated every | s | Frequency at which mass balance is calculated. Includes calculations of system volume and Muskingum routing flows; should have little effect on accuracy – inflows (other than Muskingum routing) are accumulated every timestep. Defaults to the model save interval. |
Initial volume | m^{3} (ft^{3}) | Volume within 1D model at the beginning of the simulation; calculated by: ∑(Mean wetted area × distance between) for each cross section pair, and The sum of all reservoir volumes |
Final volume | m^{3} (ft^{3}) | As above, but at the end of the simulation |
Total boundary inflow | m^{3} (ft^{3}) | Cumulative sum of (all flows into the model) × timestep, via boundaries (QT-type or HT-type) over all timesteps, i.e. includes “negative outflow” via HT boundaries |
(...of which linked) | m^{3} (ft^{3}) | If the model contains 2D links via HTBDYs, any inflow through them is given here. The “Total boundary inflow” figure above includes this volume |
Total routing inflow | m^{3} (ft^{3}) | Cumulative sum of (all flows into Muskingum routing reaches) × timestep, over all timesteps. Includes internal reaches, i.e. not necessarily boundaries. |
Total routing outflow | m^{3} (ft^{3}) | Cumulative sum of (all flows out of Muskingum routing reaches) × timestep, over all timesteps. Includes internal reaches, i.e. not necessarily boundaries. |
Total inflow (HD) | m^{3} (ft^{3}) | Total model inflow into hydrodynamic units, i.e. not routing sections. Can be via boundaries or outflow from a routing section. = Total boundary inflow + Total routing outflow - Total routing inflow |
Total boundary outflow | m^{3} (ft^{3}) | Cumulative sum of (all flows out of the model) × timestep, via boundaries (QT-type, HT-type or QH-type) over all timesteps, i.e. includes “negative inflow” via QT boundaries |
(...of which linked) | m^{3} (ft^{3}) | If the model contains 2D links via HTBDYs, any outflow through them is given here. The “Total boundary outflow” figure above includes this volume |
Total lat. link inflow | m^{3} (ft^{3}) | Cumulative sum of (all flows into the 1D model) × timestep, via lateral links (Flood Modeller 2D H-links; TUFLOW HX links or OpenMI) over all timesteps |
Total lat. link outflow | m^{3} (ft^{3}) | Cumulative sum of (all flows out of the 1D model) × timestep, via lateral links (Flood Modeller 2D H-links; TUFLOW HX links or OpenMI) over all timesteps |
Max. system volume | m^{3} (ft^{3}) | The maximum volume contained within the 1D model during the simulation (as calculated every mass balance interval) |
Max. |volume| increase | m^{3} (ft^{3}) | The maximum volume increase (or decrease) relative to the initial volume within the 1D model during the simulation (as calculated every mass balance interval) |
Max. boundary inflow | m^{3}/s (ft^{3}/s) | The maximum inflow rate (summed over all inflow boundaries) at any time during the simulation |
Max. boundary outflow | m^{3}/s (ft^{3}/s) | The maximum outflow rate (summed over all outflow boundaries) at any time during the simulation |
Net increase in volume | m^{3} (ft^{3}) | Difference between the final (or current) system volume and the initial volume of the 1D model |
Net inflow volume / Net HD inflow volume | m^{3} (ft^{3}) | Difference between the total boundary and lateral link inflow and outflow volumes. If the model contains routing sections, this is adjusted by the net routing outflow (i.e. + total routing outflow – total routing inflow) |
Volume discrepancy | m^{3} (ft^{3}) | Net inflow volume – net increase in volume. In an ideal model, this will be zero. |
Mass balance error | % | …of max system volume increase. The -volume discrepancy as a percentage of Max. system volume. |
Mass balance error [2] | % | …of boundary inflow volume. The -volume discrepancy as a percentage of the sum of Total boundary inflow and Total lat. link inflow. |
Note: Items in grey are only output when the model contains routing sections or 2D Q/SX links, as appropriate.
Constraints
The volume for Muskingum (Routing) sections are not calculated explicitly – usually, routing sections are parameterised with no reference to cross-sectional area – and therefore these are excluded from the volume calculations. Thus, the mass balance calculations only apply to fully hydrodynamic sections of the model. As such, any inflow into a Routing reach is excluded, although any outflow from a routing reach is included.
Volumes stored in rivers, conduits (culverts) and reservoirs/ponds are included in the volume calculations. Flow volumes passing through boundaries are included, as well as any flow exchange with any dynamically-linked external model, e.g. Flood Modeller's urban solver, Flood Modeller's 2D solvers, TUFLOW.
Note: the maximum system volume will increase up to a point … therefore the % error may be larger on the rising limb.
Why are two values of % error given?
Sometimes expressing a volume discrepancy with respect to the maximum volume can give misleading % errors (e.g. for a dynamic steady simulation, there should be little or no increase in system volume, but volume discrepancies can accumulate due to the numerical approximations, which would lead to an unrealistically high % error value). In some cases, it may be more realistically expressed as a proportion of the total cumulative inflow volume [AK1] . In either case, the user is advised to look at the total volume discrepancy, to inform whether the difference is within acceptable limits.
Limitations and improvements
Temporal and spatial approximations. Volume is calculated as A.dx for each river section [pair], where A is the average wetted area, and dx is the longitudinal distance between them. (Reservoirs are similar, though A is surface area and dx is measured in the vertical sense; volume is summed over each segment in the data table). Therefore, refining the distance resolution will improve the accuracy of calculations.
Flow volumes are calculated every timestep; therefore, a finer resolution of the timestep will lead to increased accuracy.
What model parameters affect mass balance?
Alpha – this is inherently mass non-conservative for a dynamic model if less than 1 (since it weights the final solution towards the previous calculation); therefore, increasing towards one will improve mass conservation.
Minitr – if increasing alpha is not an option, increasing the minimum number of iterations dilutes the effects stated above, i.e. the more iterations performed, the less the solution becomes weighted towards the previous.
Timestep – smaller timestep => increased resolution of numerical calculations (simulation and mass balance).
Model convergence – if the model is non-convergent, or the convergence tolerances are set too high, this can adversely affect the mass balance.
“Glass wall” exceedance – if the modelled water level exceeds the section data by more than the “glass wall” height (dflood), this is again inherently non-mass conservative (since the river volume will not increase). By default, this will cause a fatal model error, although can be overridden. If so, this is a sign that something is wrong with the model and needs addressing, or if appropriate, increase the value of dflood.
_{[AK1]}Conversely, this may give an overly optimistic view of the result, e.g. you could have a tidal model which increases the WL 0.2m each cycle … as a proportion of inflow, the %error remains constant, but the actual error accumulates