...
Table 1. Assumptions and Constraints
No | Assumption/Constraint |
---|---|
1 | Owners cannot have a negative share of water in storage or in transit |
2 | The sum of all owners’ shares of flow in a node at each model time step equals the node’s total flow volume. |
3 | In the flow phase, the volume of each owner’s total downstream orders due to have arrived is known at every node and link. |
Theory
Inflows are modelled in Source by the inflow node and the confluence node is used to represent locations where two rivers (or a tributary and river) join to form a single river downstream. The ownership of water at inflow locations and confluences must be considered in Source when ownership is being modelled.
...
Yellow indicates the item is a method (function or procedure), items with no highlighting are variables.
Symbol | Purpose/Description | Units | Usage phase |
---|---|---|---|
conservedO(i) | Inflow/confluence node outflow for owner i when there are no downstream orders to consider. | volume | Flow |
Deficit(i) | The additional outflow volume owner i requires at this timestep to meet their total downstream orders. | volume | Flow |
DSOrder(i, t) | Total downstream order for owner i due to have arrived at the current node in time step t (for the order to be delivered on time). | volume | Flow |
DSTarget(i, t) | If there are any downstream orders due, this is the current node’s target outflow for owner i in time step t, which is DSOrder(i, t) limited by the owner’s share of any overall shortfall in outflow. | volume | Flow |
I1(i) | For owner i, their share of inflow from: -Inflow node: Upstream-Confluence node: The first inlet branch. | volume | Flow |
I2(i) | For owner i, its share of inflow from: -Inflow node: Additional inflow-Confluence node: The second inlet branch. | volume | Flow |
MassBalance(i) | Inflow or confluence node mass balance for owner i | volume | Flow |
O | Total outflow from a node in the current time step | volume | Flow |
O(i) | For owner i, their share of outflow from a node. | volume | Flow |
OwnerBorrowed(i) | The flow that owner i borrowed from other owners in order to meet its downstream orders. | volume | Flow |
OwnerLent(i) | The surplus flow that owner i lent to other owners. | volume | Flow |
owner% | Inflow node: Configured percentage of additional inflow to be assigned to an owner. | percentage | Configuration, Flow |
Surplus(i) | The outflow volume owner i has at this time-step in addition to that required to meet their total downstream orders. | volume | Flow |
TotalDSOrder | Total downstream order due to have arrived at the current node in the current time step. | volume | Flow |
fFlow(t) | Function that returns total additional inflow volume at an inflow node configured by time series or |
function | volume | Flow |
fInflow(t) | Function to return the additional inflow volume at an inflow node for owner in time step t. It uses a method dependent on configuration:
|
| volume | Flow |
Inflow node
At an inflow node, the modeller configures a ‘source’ of flow for each owner, that returns an additional volume of inflow to enter the river downstream of the node. There are three options:
- Fixed ratio: Each owner i receives a specified percentage of the additional inflow volume (as determined by the configured time series or function fFlow(t) in the current time step t): fInflow(i, t) = owner% × fFlow(t)
- Time series: The modeller specifies for every owner a time series of inflow (fInflow(t)).
- Expressionfunction: The modeller specifies an expression a function to calculate inflow for every owner o for each time step (fInflow(i, t)).
...
Headwater inflow node: This type of inflow node has no model components connected to its inlet, so the only flow leaving the node is that from the configured inflow source. Ownership is conserved, so at any time step, t, the outflow for owner i is:
Equation 1 Tributary inflow node: This type of inflow node has a link representing a river reach connected to its inlet, so the flow leaving the node is the total of the upstream inflow and that from the configured inflow source (additional inflow). Ownership of this total is conserved, so at any time step, t, the outflow for owner i is:
Equation 2
In an unregulated system, the owner’s final outflow from the node is always conservedO(i). In a regulated system, however, the ownership system attempts to assign each owner enough water to meet their total order downstream. If there is insufficient total outflow to meet total downstream orders due at the node, TotalDSOrder, the shortfall is shared between each owner to determine their ‘target’ flow DSTarget(i, t):
Equation 3 |
---|
The owner’s ‘conserved’ outflow (conservedO(i)) is compared to their ‘target’ volume, DSOrder(i, t), to determine whether they have a surplus or a deficit; i.e.:
Equation 4 |
---|
Equation 5 |
---|
Owner’s with a surplus lend water to those with a deficit, and the difference is recorded in a borrow and payback account. More detail on how this is done is given in Borrow and Payback - SRG. The volume of flow borrowed to meet owner requirements OwnerBorrowed(i) is added to their ‘conserved’ outflow, and the volume lent is subtracted:
Equation 6 |
---|
Confluence node
The confluence node behaves the same way as an inflow node in terms of ownership. The only (minor) difference is in the calculation of the ‘conserved’ outflow. For each owner i, this is simply the sum of their inflows on both inlet branches (b1, b2) :
Equation 7 |
---|
If there are downstream orders to consider (as in a regulated system), shortfall sharing and borrow and payback are applied in the same way as for an inflow node to determine the final outflow volume for each owner.
...
- Get each owner’s inflow to the node:
- Inflow node
Ib1(i) = upstream inlet link 1 O(i) (or zero if the node represents a headwater)
Ib2(i) = fInflow(i, t) - Confluence node
Ib1(i) = upstream inlet link 1 O(i)
Ib1(i) = upstream inlet link 2 O(i)
- Inflow node
Determine the conserved outflow per owner, which is the sum of all inflows:
Equation 8 Get from the ordering system each owner’s total ordered volume that due at this node in this time step DSOrder(i, t), and the total for all owners TotalDSOrder:
Equation 9 - Calculate the node’s outflow:
- If TotalDSOrder > 0, owners share the flow in order to best meet orders:
Calculate the ‘target’ owner outflow (to best meet downstream orders) as their total ordered volume due, limited by their share of any shortfall in outflow O:
Equation 10 Determine the volume of each owner’s outflow that is surplus or deficit to the target:
Equation 11 Equation 12 Use the ‘borrow and payback’ method to share outflow from owners with a surplus to those with a deficit (See Borrow and Payback - SRG).
Calculate each owner’s outflow as their conserved outflow plus borrow minus lending:
Equation 13
Otherwise, set each owner’s outflow to their conserved outflow:
Equation 14
- If TotalDSOrder > 0, owners share the flow in order to best meet orders:
Calculate the node’s mass balance for each owner:
Equation 15
Data
Input data
Details on data are provided in the Source User Guide.
...
Table 2. Inflow Node: Ownership Parameters
Parameter name | Parameter description | Unit type | No. of values | Allowable values & validation rules | Default Value(s) |
---|---|---|---|---|---|
Ownership system | Name of the ownership system the inflow node belongs to. | n/a | 1 | Any ownership system for the scenario. | Default ownership system. |
Sharing Method | Indicates how owner shares of flow are to be specified. | n/a | 1 | ‘Fixed percentage’ or ‘Owner flow function’ | ‘Fixed percentage’ |
Owner | Name of an owner in the node’s ownership system. | n/a | One per owner | Read only | n/a |
Owner Percentage, owner% | Percentage of the total ‘additional inflow’ to assign to the corresponding owner. | % | One per owner | Integer: 0-100. Sum for all owners = 100% | Equal for each owner |
Source Details (for fInflow(i, t)) | One set of parameters. |
Table 3. Confluence Node: Ownership Parameters
Parameter name | Parameter description | Unit type | No. of values | Allowable values & validation rules | Default Value(s) |
---|---|---|---|---|---|
Ownership system | Name of the ownership system the inflow node belongs to. | n/a | 1 | Any ownership system for the scenario. | Default ownership system. |
Owner | Name of an owner in the node’s ownership system. | n/a | One per owner | Read only | n/a |
Output data
Outputs of the model that can be viewed in the Recording Manager are summarised in Table 4, below.
Table 4. Recorded variables for Inflow and Confluence Nodes (reported by owner)
Model Element | Parameter | Units | Methodology variable | Frequency | Display format |
---|---|---|---|---|---|
Inflow Node - Owner | Upstream flow | Volume/time | Ib1(i)/dt | Time step | Displayed as: Graph, Table, Statistics (min, max, average over the modelled time period) |
Upstream flow volume | volume | Ib1(i) | |||
Inflow | Volume/time | Ib2(i)/dt | |||
Inflow volume | volume | Ib2(i) | |||
Downstream flow | Volume/time | O(i)/dt | |||
Downstream flow volume | volume | O(i) | |||
Downstream order due | volume | DSOrder(i, t) | |||
Mass balance | volume | MassBalance(i) | |||
Borrow and payback | volume | See Borrow and Payback - SRG | |||
Forecast volume | volume | See Rules-Based Ordering - SRG | |||
Confluence Node – each Owner | Upstream flow | Volume/time |
Time step | Displayed as: Graph, Table, Statistics (min, max, average over the modelled time period) | |
Upstream flow volume |
volume | Ib1(i) + Ib2(i) |
Downstream flow | Volume/time | O(i)/dt |
Downstream flow volume |
volume | O(i) |
Downstream order due |
volume | DSOrder(i, t) |
Mass balance |
volume | MassBalance(i) |
Borrow and payback |
volume | See Borrow and Payback - SRG | ||
Forecast volume |
volume | See Rules-Based Ordering - SRG |