Marker routing (Particle tracking) - SRG
Source requires functionality to model the movement of conservative constituents (eg. salt) along a river channel network, including exchange of constituent fluxes between floodplains, wetlands, irrigation areas and groundwater.
This functionality is required in Source to satisfy legislative requirements that exist in the Murray-Darling Basin. The MDBA’s Basin Salinity Management Strategy (BSMS) requires that the MDBA, state governments and the federal government contribute to reducing dryland and river salinity through land-use measures, salt interception schemes etc. To evaluate the impacts of these activities a reliable salinity modelling framework is required.
Model elements that require conservative constituent functionality include:
- Link
- Inflow node
- Splitter node (Regulated and unregulated)
- Confluence node
- Minimum flow node (used to generate orders for dilution flows)
- Storage node (These model reservoirs and can connect to wetlands)
- Supply point node
- Water user node and associated demand models
- Loss Node
- Gauge Node
- Wetland Hydraulic Connector Node
- Weirs (flows are routed through weirs using the same methodology as storage routing links)
This section describes the generic model for routing conservative constituents through links available in Source. It is based on a marker tracking method (Close, 1996).
"Markers" are established at the upstream end of the model and their movement downstream is modelled. The marker travels at the average speed of water in the river reach, thus is dependent on the routing of flow (inflow, outflow, storage, losses and gains for each division). The impact of inflows, evaporation and losses on the solute concentration of the marker is also described.
The method is appropriate for modelling the transport of most conservative constituents within stream channels. The method is inherently stable and is not affected by sudden changes in either concentration or flow.
The model will maintain a conservative constituent balance, even when a reach division ceases to flow and the dead storage evaporates, by allowing the modeller to maintain a small nominal storage volume in the division at all times.
Scale
Conservative constituent routing operates at the same spatial scale as link routing and operates at every model time-step when it is activated.
Principal developer
eWater CRC
Scientific provenance
The principles of the marker tracking method are described by Close (1996). Marker tracking has previously been implemented in BigMod.
Version
Source version 2.19
Dependencies
Each link where conservative constituent routing is activated requires a node at its upstream end to define constituent inputs, and a node at the downstream end to process constituent outputs as appropriate. It is also dependent on the routing of flow (inflow, outflow, storage, losses and gains for each division).
Assumptions and constraints
The parameters for particle tracking are summarised in to Table 1. Definitions of variables used in equations in following sections are listed in Table 2.
Table 1. Assumptions and Constraints
No | Assumption/Constraint |
---|---|
1 | Rainfall, evaporation, diversions and inflows and outflows occurs uniformly over the model time-step. |
2 | Salinity concentration output at a node is the time weighted average of the marker concentrations that pass through that node over the model time-step. To obtain the load of salt passing through this point for the time-step, the time weighted average concentration is multiplied by the inflow to the node. |
3 | Constituent routing depends on flow properties in each division. Specifically, flow routing must be finalised for the division so that the inflow, outflow, change in storage and losses for the link over the time-step are known before constituent routing calculations start. It is assumed that the rates of inflow, outflow and losses for any link are constant over the time-step so that the storage in the link varies linearly over the time-step. |
4 | The marker routing method applies to weirs as well as river channel reaches. |
5 | Storages and wetlands are fully mixed. |
6 | Rainfall is assumed to contain no salt. |
7 | If a reach or a storage that is in dead storage evaporates fully, then it is possible for a mass of constituent to be left behind in the reach or storage. This mass of constituent is assumed to disappear from the system. |
Table 2. Equation variables - definitions
Variable | Definition | Units |
---|---|---|
A | The cross-sectional area of the division at any given time t* during the model time-step dt. | m2 |
a | Rate of change in cross-sectional area of the division over the model time-step. | m2/s |
At+1 | Cross-sectional area of division at end of model time-step | m2 |
At | Cross-sectional area of division at start of model time-step | m2 |
c | The concentration of a marker in a division, or the average | g/m3 |
c0 | The concentration of a marker in a division at a given time of t0* | g/m3 |
c1 | The concentration of a marker in a division at a given time of t1* | g/m3 |
cEv | A factor to apply to the marker concentration, c0 to account for the effects of evaporation over time dt* | - |
cLoad | A variable used to account for the change in concentration of a marker as a result of extra load being applied to a reach. | (m3/s)-1 |
dc | Change in concentration of a section of the division over a nominated time | g/m3/s |
dt | Model time-step | s |
dt* | Marker travel time-step within a division (t1* - t0*) | s |
dx | Change in marker position during dt* as a fraction of the division length | - |
Ev | The rate of evaporation loss in the division over the model time-step | m3/s |
fd | A nominal marker’s location relative to its downstream marker as a fraction of the time or distance between its upstream and downstream markers fd + fu = 1 | |
fu | A nominal marker’s location relative to its upstream marker as a fraction of the time or distance between its upstream and downstream marker fd + fu = 1 | |
fcd/s | An identifier to assign properties to the downstream face of a marker | |
fcu/s | An identifier to assign properties to the upstream face of a marker | |
Fradd | The additional inflow as a fraction of the total inflow at an inflow node | |
Fru/s | The upstream inflow as a fraction of the total inflow at an inflow node | |
gapd | A variable used to store the distance or time between a marker and its downstream marker | |
gapu | A variable used to store the distance or time between a marker and its upstream marker | |
gLD | A global load switch which is either turned on or off | |
I | Inflow to the division | m3/s |
Iadd | The additional inflow at an inflow node | m3/s |
Ic | The load of solute inflow distributed over the division in the model time-step. That is c(g/m3)•vol(m3) ÷ RL(m) ÷ dt(s).This value can be attributed to the concentration of groundwater inflow or a nominal mass of solute entered to get a satisfactory calibration. | g/m/s |
Iu/s | The upstream inflow at an inflow node | m3/s |
Intp | A flag to determine whether a marker is interpolated by time or position | |
Intpvol | The value used to interpolate between existing markers | |
Ls | Net loss from the division where loss is defined as water leaving the division other than outflow from the end of the division.-Includes net-evaporation, seepage/infiltration, highflow losses and any other outflows from the division eg. distributed diversions. | m3/s |
Lo | Net loss from the division other than net-evaporation ie. Lo = Ls - Ev | m3/s |
Load | The load of the solute in a division at any point within the model time-step. It is calculated based on the location of markers within the division and their respective concentrations. | g |
m | An identification for a nominal marker | |
md/s | An identification of the marker immediately downstream of marker m | |
mu/s | An identification of the marker immediately upstream of marker m | |
MAge | A value used to store a markers age ie how long since it was created | |
nc | Number of constituents being modelled | |
RL | Length of link | m |
s | Rate of change in storage volume over the model time-step | m3/s |
Division storage at time t1* | m3 | |
Division storage at time t0* | m3 | |
St+1 | Division storage at end of model time-step | m3 |
St | Division storage at start of model time-step | m3 |
Sepmin | The minimum seperation of markers specified by the user as a fraction of either the time-step and distance between markers. eg. If Sepmin = 0.2 then markers that are located within 0.2 • dt or within distance fraction 0.2 are merged | |
t* | Elapsed time within a model time-step (s), t* = 0 at the beginning of a model time-step; and t* = dt at the end of a model time-step. | s |
t0* | The elapsed time (t*) within a model time-step when a marker enters a division (0 ≤ t0* ≤ dt), or the start of the model time-step t0* = 0. | s |
t1* | The elapsed time (t*) within a model time-step when a marker enters a division (0 ≤ t1* ≤ dt), or the start of the model time-step t1* = dt. | s |
x | Position of marker, expressed as a proportion of the total length of division, at time t*, (0 ≤ x ≤ 1) | |
x0 | Position of marker at t0* (0 ≤ x0 ≤ 1), as a proportion of total length of division. | |
x1 | Position of marker at t1* (0 ≤ x1 ≤ 1), as a proportion of total length of division. |
Definitions
The following definitions supplement those in the eWater Glossary:
Concentration
The mass of dissolved constituent per unit volume at a particular location at a particular point in time.
Division
Part of a link. Each division in a link has the same length.
Face
Side of a marker, ie. upstream or downstream.
Load
The mass of constituent entering the river reach laterally.
Marker
Point in the river network at which conservative constituent concentration, marker age and load factors are calculated. Markers move during the model simulation at the average flow velocity of the river.
Marker travel time-step
Proportion of the model time-step that the marker resides within the current division.
Overview
The movement of conservative constituents in stream channels (links in Source) is modelled by tracking the movement of markers of water within the river.
Conservative constituents such as salt move through the river system in slugs. To model such discontinuities in concentration, each marker has a concentration recorded for two faces (or sides) - upstream and downstream.
In Source, links are divided into divisions for routing purposes. Initially, the model starts with a marker at the end of each division in every link. Every time-step, a new marker is created for each division, to mark the concentration at the end of that division at the end of the time-step. Markers travel through the river network until they are either merged with adjoining markers, or leave the river network.
The concentrations of conservative constituents such as salt at each marker changes as the marker moves within a link as a result of evaporation, groundwater inflows/losses and rainfall. To allow for this, each marker’s constituent concentrations as well as its position are tracked within the link over each model time-step.
The concentrations of markers are also changed at nodes in the river model to account for:
- Inflows;
- Confluences;
- Storages and wetlands (Storage node), and
- Weirs
Hence, in Source, marker concentration is set or recalculated at nodes used to model the items in the list above. In addition, there is the option for the modeller to set concentrations at gauge nodes.
Tracking the movement of a marker within a link
The marker methodology is executed for each link routing division immediately following the flow routing phase and before processing the flow phase of the next downstream division or node. The distance a marker moves is driven by the velocity in the division over the current time-step. While the flow rate is assumed constant over the time-step, the velocity within the division will change as a result of change in reach storage and cross sectional area.
A key point is that the residence time of a marker within a division is typically different to the model time-step. Therefore, the concept of a marker travel time-step is introduced. The marker travel time-step represents the proportion of the model time-step that the marker resides within the current division. Each marker is likely to have a different marker travel time in each division and for subsequent model time-steps. There are four potential trajectories a marker can follow within a model time-step.
- A marker starts the model time-step within the division and its final position at the end of the model time-step is within the same division;
- A marker is in the upstream division (n-1) at the start of the model time-step, moves into the division (n) part way through the model time-step, and finishes within division (n) at the end of the model time-step;
- A marker is in division n at the start of the model time-step and moves to division (n+1) part way through the model time-step; and
- A marker is in division (n-1) at the start of the model time-step, moves into division (n) part way through the model time-step, and moves into division (n+1) prior to the end of the model time-step.
These scenarios are illustrated in Figure 1 (t is time at start of model time-step, dt =model time-step, RL = reach length, t* = elapsed time since start of model time-step, x = distance from start of division), where x is used to define the marker position within the division. t* is the elapsed time since the start of the model time-step and is used to track the time that markers enter and leave the division.
A marker moves at average water velocity. Inflow to the division upstream of where the marker is located, losses upstream of the marker or change in reach storage will cause a change in marker position.
The distance a marker of water moves within a model division over dt* can be calculated from the water balance in the portion of the division upstream of the marker. The volume upstream of the marker in the division after dt* is equal to the volume upstream of the marker at the start of the marker travel time-step, plus inflows to the division over dt*, less net losses (Ls) from the division upstream of the marker (see Equation 1).
Equation 1 |
---|
Expanding Equation 1 yields Equation 2:
Equation 2 |
---|
Cancelling RL•A•x terms on each side of Equation 2 and assuming RL•A•dx•dt* ≈ 0 leads to Equation 3:
Equation 3 |
---|
Equation 3 may then be rearranged to give Equation 4:
Equation 4 |
---|
Rearranging Equation 4 in terms of dx results in Equation 5:
Equation 5 |
---|
Creating the two following values, g0 and g1, which are constant over the model time-step:
and substituting these into Equation 5, allows dx to be expressed in terms of Equation 6 and Equation 7:
Equation 6 |
---|
Equation 7 |
---|
The storage volume of the link at any given time can be given as RL•A = RL•(At+a•t*). This allows Equation 7 to be rewritten as Equation 8:
Equation 8 |
---|
Then Equation 8 may be rearranged so that the integral of dx and dt* is calculated as shown in Equation 9:
Equation 9 |
---|
Integrating Equation 9 will lead to a value of x1 shown in Equation 14 that gives the location of the marker in the division at time t1* = dt; ie. the location of the marker at the end of the model time-step. The following equations show the integration process to arrive at Equation 14:
Equation 10 |
---|
Equation 11 |
---|
Equation 12 |
---|
Equation 13 |
---|
The storage volumes in the division at two specific times, t0* and t1*,are represented by the following relationships:
The term a is calculated by assuming that the rate of change in cross sectional area is constant through-out the model time-step. As reach length is constant, the change in cross sectional area can be expressed in terms of the reach storage at the start and end of the model time-step and is equivalent to the term s, the rate of change of the storage over the model time-step.
When t1* = dt:
Substituting the above into Equation 13 gives Equation 14 which defines the location of the marker, x1, within the division at the end of the model time-step:
Equation 14 |
---|
If the calculated value of x1 in Equation 14 is greater than 1 then the marker has exited the division within the model time-step. Therefore, the time at which the marker exits the division needs to be defined. This time can be calculated by rearranging Equation 12 in the form shown.
Equation 15 |
---|
Time t1* can be determined from Equation 15, where t1* is the time at which the marker will arrive at the end of the division.
Equation 16 |
---|
As the marker has arrived at the end of the division, therefore x1 = 1, and by substituting in the relationships between area and storage, Equation 16 becomes Equation 17.
Equation 17 |
---|
Alternative formulations
Equation 14 is the primary equation that defines the location of a marker, x1, in a division when t1* = dt, while Equation 17 defines the time a marker exits a division, t1*, when x1 > 1. However, these equations are not defined for the following conditions:
- s ≠ 0 and Ls = -s; therefore g0 = 0 and g1 is undefined;
- s = 0 and Ls ≠ 0; and
- s = 0 and Ls = 0; therefore g0 = 0 and g1 is undefined
The next sections detail how x1 and t1* are calculated for the the above conditions.
Formulation for when s ≠ 0 and Ls = -s
From Equation 14 and using the established relationship of A = At + a • t*, the following relationship is obtained.
However as Ls = -s this leads to Equation 18:
Equation 18 |
---|
Equation 18 may be then arranged in terms of dx and dt* as shown in Equation 19 so that the integrals may be taken to arrive at a value of x1 in Equation 21 through the steps outlined next:
Equation 19 |
---|
Equation 20 |
---|
Recalling that
And that when t1* = dt then:
Equation 21 |
---|
If the value of x1 calculated in Equation 21 is greater than 1, then the marker has exited the division during the model time-step. The time elapsed when a marker exits the division (x1 = 1) can be calculated using Equation 20 and can be expressed in terms of t1* in Equation 24 through the process outlined next:
Equation 22 |
---|
Equation 23 |
---|
Equation 24 |
---|
Formulation for when s = 0 and Ls ≠ 0.
For the case where s = 0 and Ls ≠ 0 the formulation starts from Equation 9 which then becomes:
Equation 25 |
---|
In this case, g0 = Ls and g1 = I/Ls and therefore x1 may be expressed as shown in Equation 28 following the calculation process described next:
Equation 26 |
---|
Equation 27 |
---|
Equation 28 |
---|
If the value of x1 calculated in Equation 28 is greater than 1, then the marker has exited the division during the model time-step. The time elapsed when a marker exits the division (x1 = 1) can be calculated using Equation 26 and can be expressed in terms of t1* in Equation 31 through the process outlined next:
Equation 29 |
---|
Equation 30 |
---|
Equation 31 |
---|
Formulation for when s = 0 and Ls = 0
For the case where s = 0 and Ls = 0 the formulation starts from Equation 4 which then becomes:
Equation 32 |
---|
Equation 32 may then be arranged in terms of dx and dt* as shown in Equation 33 so that the integrals may be taken to arrive at a value of x1 in Equation 35 through the steps outlined next:
Equation 33 |
---|
Equation 34 |
---|
Equation 35 |
---|
If the value of x1 calculated in Equation 35 is greater than 1, then the marker has exited the division during the model time-step. The time elapsed when a marker exits the division (x1 = 1) can be calculated using Equation 35 and can be expressed in terms of t1* in Equation 36, shown next:
Equation 36 |
---|
Summaries of equations
Table 3 summarises the key equations that define the location of a marker of water in the division at the end of the model time-step. The conditions for the use of each formula are also contained in the table. It defines marker location (x1) at the end of the model time-step (t1* = dt) for conditions of s and Ls.
Table 3. Summary of equations (location)
Equation | Conditions | Equation Reference |
---|---|---|
When s = 0 and s ≠ -Ls | Equation 14 | |
When s ≠ 0 and s = -Ls | Equation 21 | |
When s = 0 and Ls ≠ 0 | Equation 28 | |
When s = 0 and Ls = 0 | Equation 35 |
Table 4 summarises the key equations that define the time that a marker of water leaves the division. The conditions for the use of each formula are also contained in the table. It defines the time (t1*) when a marker exits a division within the model time-step (x1 > 1 and t1*< dt) for conditions of s and Ls.
Table 4. Summary of equations (time)
Equation | Conditions | Equation reference |
---|---|---|
When s = 0 and s ≠ -Ls | Equation 17 | |
When s ≠ 0 and s = -Ls | Equation 24 | |
When s = 0 and Ls ≠ 0 | Equation 31 | |
When s = 0 and Ls = 0 | Equation 36 |
Change in marker concentration within a division
The following section considers the change in concentration of a marker as it travels within a division. Changes in concentration of a marker as a result of additional inflow at the beginning of a division, such as from an inflow, are processed at the inflow node. This section deals with the interactions that occur within a division that affect marker concentration such as net evaporation, diversions, seepage/infiltration and groundwater interactions.
If a small fraction of the division, dx, is considered, then the load (mass) of solute in dx at any point in time can be defined as:
Equation 37 |
---|
The load of solute in the division section dx after time dt* can then be expressed by taking into account the initial load, the additional solute inflow and the losses other than from net evaporation (Lo) that occur. This is expressed in Equation 38.
Equation 38 |
---|
The volume of water in the division section of length x after time dt*is as shown in Equation 39.
Equation 39 |
---|
The final concentration of division section dx is equal to c+dc; ie. the load in division section after time dx divided by the volume of water in division section dx after time dt* as shown below in Equation 40.
Equation 40 |
---|
Equation 40 can be rearranged in terms of dc as follows:
Which can then be simplified to give Equation 41 and Equation 42:
Equation 41 |
---|
Equation 42 |
---|
A limit exists as dt*→0 of and A = At+a•t* as was established previously so Equation 42 then becomes:
Equation 43 |
---|
Using the relationships established previously when defining the location of the marker:
then Equation 43 can then be rearranged as follows and integrated:
Equation 44 |
---|
Equation 45 |
---|
Integrating Equation 45 gives Equation 48 below through the following calculations, where Equation 48 defines c1.
Equation 46 |
---|
Equation 47 |
---|
Equation 48 |
---|
By defining the following:
Equation 48 becomes:
And can be expressed as:
Equation 49 |
---|
where:
Alternative Formulations
Equation 49 is the primary equation that defines the concentration of a marker, c1, at time t1*. However this equation is not valid for the following conditions:
- s = 0 and Ev = 0;
- s = 0 and Ev ≠ 0; and
- s ≠ 0 and Ev = 0.
The formulation for these conditions is contained in the sections below.
Formulation for when s = 0 and Ev = 0
When both s = 0 and Ev = 0, the concentration of the marker, c1, at time t1* may be calculated by adjusting Equation 44 as below:
Which leads to Equation 50, expressed in the same form as Equation 49.
Equation 50 |
---|
Therefore:
Formulation for when s = 0 and Ev ≠ 0
When s = 0 and Ev ≠ 0, the concentration of the marker, c1, at time t1* may be calculated by adjusting Equation 44
Equation 51 |
---|
Equation 52 |
---|
Integrating Equation 51 leads to Equation 54 following the calculation steps shown next:
Equation 53 |
---|
Equation 54 |
---|
Therefore:
Formulation for when s ≠ 0 and Ev = 0
When s ≠ 0 and Ev = 0, the concentration of the marker, c1, at time t1* may be calculated by adjusting Equation 44 as follows:
Equation 55 |
---|
Equation 56 |
---|
Equation 57 |
---|
Which leads to Equation 58 (shown next), expressed in the same form as Equation 49.
Equation 58 |
---|
Therefore:
Summaries of equations
Using the standard equation (Equation 49, reproduced below) to define c1 as shown below:
We are able to calculate values of c1 by using the values of cev and cLoad, used to define marker concentration (c1) at time (t1*) defined for conditions of s and Ev in Table 5 and Table 6, respectively.
Table 5. Summary of equations to evaluate cev
cev Value | Conditions | Equation reference |
---|---|---|
When s ≠ 0 and Ev ≠ 0 | Equation 49 | |
When s = 0 and Ev ≠ 0 | Equation 54 | |
When s = 0 and Ev = 0 | Equation 50 |
Table 86. Summary of equations to evaluate cLoad
cLoad Value | Conditions | Equation reference |
---|---|---|
Whens ≠ 0 and Ev ≠ 0 | Equation 49 | |
When s ≠ 0 and Ev = 0 | Equation 58 | |
When s = 0 and Ev = 0 | Equation 50 |
Note about the algorithm change during the period from v5.0 to v5.30:
- Marker merge functionality for distance did not have brackets in the right place before, and this reduced the number of markers being merged. Now this is revised, and the revised equation is one for the parameter of usGap.
- The confluence condition in the CanMerge function (in Marker.cs) is now shifted, so it allows the merging of markers arriving with the start time of beginning (0) to occur; it was not hitting this condition and setting it to false.
- The merge functionality at the confluence constituent provider is updated such as Constituent Interpolation Type is changed from Distance to Time.
- In the algorithm for the storage mass in a division (divisionOutput.StoredMass), the minimum value for the division storage now is 0.00001 instead of the previous zero.
Marker routing interaction with instream processing
From Source version 5.1, the functionality was updated to allow interaction between the Marker routing process and the instream water quality process models. Core models such as decay are supported as well as external plug-in models.
The approach of interacting the Marker Routing with the instream processing models is as follows:
- Perform the constituent marker routing as per normal in Source
- Determine the mass within the division level of Source stream (/link)
- Provide the mass from Source to the instream processing model
- The plug-in model will return a modified mass to Source
- Adjust the 'faces' of the markers in that division proportionally to the change in mass.
Marker routing in Weirs
To ensure the mass balance of constituents within a weir, the conveyance flux and constituent mass is considered as:
1) when inflowing into a weir, it is added as an inflow into the upstream end of the weir's most downstream division
2) when outflowing from a weir it is treated as an outflow from the downstream end of the weir's most downstream division
This facilitates calculating the inflowing mass and outflowing mass since the model is adjusting markers at a point, not across the division within the timestep.
Note about the algorithm change in Weirs during the period from v5.0 to v5.30 :
- Weir used division.conveyanceflux in calculations before. Now this has been changed to only include conveyance inflows, and the adjusted calculation equations include those for the flow and fraction add, conveyance inflow concentration and conveyance mass.
- Weir was creating inflow markers under certain conditions, but it was not wiping the inflow marker flag after the processing was happening. Now all inflow marker flags are resetting as false after the processing.
Marker Age in Storages
The calculation of the marker age in a storage considers three sources of the constituents: (a) in the storage, (b) in upstream inflow and (c) in the conveyance flux. The fully mixed status is assumed in the storage. When multiple constituents are existed, only the marker age for one constituent is calculated and the marker ages of all remaining constituents are same as that of the calculated constituent.
The calculation can be expressed by the follow equation:
Where:
MAgeStorage,t: | The marker age of the storage at time step t. |
MAgeStorageVol,t: | The marker age of the constituent only from the storage volume at time step t and it is equal to 1 plus the marker age of the storage at time step t-1. |
StorageVolt-1: | The storage volume at the beginning of time step t. |
MAgeUSFlowVol,t | The marker age of the constituent only from the upstream inflow to the storage at time step t. |
USFlowVolt: | The volume of the upstream inflow to the storage at time step t. |
MAgeConveyVol,t: | The marker age of the constituent only from the conveyance flux to the storage at time step t. |
ConveyVolt: | The volume of the conveyance flux to the storage at time step t. |
Note that if the sum volume (i.e., StorageVolt-1 + USFlowVolt + ConveyVolt) in the equation is less than the required minimum storage volume at step t, the sum value will use the required minimum storage volume.
Input data:
Details on data are provided in the Source User Guide.
Output data
Outputs can be viewed in the Recording Manager; details are provided in the User Guide.
Reference list
Close, A.F. (1996) A New Daily Model of Flow and Solute Transport in the River Murray, 23rd Hydrology and Water Resources Symposium, Institution of Engineers, Australia, Canberra, pp 173-178.