Ordering priorities allow users in Source to specify how shortfalls are prioritised between different demands in Source. Without a priority system enabled, Source will shortfall all demands equally within the model. The priority ordering system addresses situations encountered in water resource models such as the following:
- Supplying a minimum flow requirement in preference to upstream extractive water users,
- Supplying extractive water users in preference to meeting a downstream storage target,
- Where preference is given to the delivery of irrigation water over environmental water or vice versa.
Prioritisation influences how water is taken by water users and how a storage with multiple outlets prioritises releases down the different outlet paths.
Principal developers
Ordering priorities were implemented for the Victorian government Department of Environment, Water, Land and Planning by eWater with the assistance of Murray Darling Basin Authority and NSW Department of Primary Industries.
Version
Source full version 4.1.1
Assumptions and Dependencies
A rules based ordering system must be active in Source. For a rules based ordering system to operate in Source, the "New rules based ordering system" option must be selected as the ordering algorithm. At least one supply or demand node must be present in the system.
The current behaviour for sharing shortfalls in Source is maintained as the default behaviour (distribute shortfalls equally). This is reflected as all nodes receiving a priority of 1 initially in the priority table.
Priorities are assigned in levels of 0 to n, with the lower n level having the highest priority
A priority array is calculated during the order phase which shows the proportion of the total order for all defined priority levels (priority ratios). The sum of the priority ratios must always equal 1.
The priority array is calculated during the order phase for each elements' minimum order time
The priority array is kept for order times (0...min order time) at all elements.
The priority array at 0 time is used in the flow phase to determine whether a supply point can extract water or not.
It is assumed that losses and gains are shared in proportion to the priority ratios.
Variables
- n number of priorities specified
- pNode Node priority applies to things which can place orders
- dsOrder(min) ds order at a node at min flow time
- order(min) order propagated upstream at min flow time
- nPriority(n) output array of n priorities for the node
- dsPriority(n) array of n priorities being passed into the node
- sumDSPriorityG sum of dsPriority(n) where n < pNode
- sumDSPriorityGE sum of dsPriority(n) where n <= pNode
- sumDSPriorityL sum of dsPriority(n) where n > pNode
- sumDSPriorityLE sum of dsPriority(n) where n >= pNode
- sumnPriorityG sum of nPriority(n) where n < p
- MinFlowReq minimum flow requirement
- SupplyPointOrderOrder generated by water user and passed to supply point
- dsMainPriority(p) Priorities arriving at a splitter from the main branch
- dsMainOrder Order arriving at a splitter from the main branch
- dsEffPriority(p) Priorities arriving at a splitter from the effluent branch
- dsEffOrder Order arriving at a splitter from the effluent branch
Minimum Flow Node
The priority assigned to the minimum flow requirement can change the proportions of the priorities being passed upstream. There are essentially two scenarios that can occur
- The minimum flow requirement is a greater volume than the downstream order volume, the total upstream order is increased and priorities are reassigned based on the additional order required and the priorities of the downstream orders.
- The minimum flow requirement is less than or equal to the downstream order, so the total upstream order is not changed but the priorities are reassigned based on the priorities of the downstream orders and the priority of the minimum flow requirement. e.g. if the downstream orders have a lower priority that the minimum flow requirement, the lower priorities are replaced by the higher priority level for the order up to that of minimum flow requirement. Priorities will remain in place for anything above it.
Supply Point
There are essentially four scenarios in how a supply point node can be configured for the rules based-ordering, shown in Table 1. Note that if a Supply Point is selected as groundwater then it is not part of the ordering network i.e. it does not generate orders
As the Supply Point can extract water from the system it can affect both the order phase and the flow phase.
Table 1 Supply Point configuration
Scenario | Allow Order | Extract Water | Result |
1 | True | True | Standard case |
2 | True | False | Priorities have no effect on the flow phase. |
3 | False | True | Water will be extracted independently of the priorities |
4 | False | False | No effect |
Flow Phase
In the flow phase the shortfall priorities will inform the supply point on the volume of water it is able to extract. It tries to ensure that orders of higher priority are maintained and equalises access at the supply point's priority level.
Transfer of Ownership
The transfer of ownership has two options regarding ordering priorities
- Maintain downstream ratio
- Override ratios and assign to one priority level (re-prioritise orders - see user guide)
Storage
Two options at a storage node that have an impact on the prioritisation of orders
Pass Orders Through – simply sum the volumes at each priority level across all outlets and divide by total volume being passed up all outlets to get proportions.
sumOutletOrder = Sum the total order from all outlets
OutletOrders(p) += dsOrder(p) * OutletOrder
nPriority(p) = OutletOrders(p)/ sumOutletOrder
Re-regulating the orders
- Downstream orders
- Storage losses
- Different upstream min order time
- Operational targets being met
User needs to associate a priority level for supply priority (downstream priority) and operational priority
If (usOrder(min) <= dsOrder(min) )THEN
- Supply priority ratio = 1.0 at priority level
- operational priority ratio = 0 at priority level
If (usOrder(min) > dsOrder(min) )THEN Supply priority volume = usOrder(min) at priority level
- Supply priority ratio = DsOrder(min)/UsOrder(min) at priority level
- operational priority ratio = (USOrder(min) –DsOrder(min))/UsOrder(min) at priority level
Maximum Order
The maximum order can truncate orders being passed upstream to a specified value. If this is the case we try and preserve the highest priority volume of water being passed upstream. Therefore we need to adjust the ratios to reflect the change.
- If MaxOrder < dsOrder Then
- Loop on priorities p = 0 to n
- sumDSPriorityG = sum of dsPriority(n) where n < p
- If(sumDSPriorityG*dsOrder>MaxOrder,0,Min(MaxOrder - sumDSPriorityG*dsOrder, dsPriority(p)*dsOrder/MaxOrder))
- If MaxOrder > dsOrder Then…. For all p nPriority(p) = dsPriority(p)
Confluence
Possibly the most difficult one to address. As we are passing up the values at min order time, it is possible for a confluences regulated upstream branches to have different min travel times. At least one of those branches will have the same min travel time as
- Just split the ratios upstream
Controlled Splitter
Set the new upstream ratios as the weighted average of the orders from both branches
- Loop on priorities p = 0 to n
- nPriority(p) = (dsMainPriority(p)*dsMainOrder + dsEffPriority(p)*dsEffOrder)/( dsMainOrder+ dsEffOrder)
Bulk Licensing
??