Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Ordering priorities allow users in Source to specify how shortfalls are prioritised between different demands in Source. Previously, Source tried to shortfall all demands equally within the model, this functionality provides a solution to address situations encountered in water resource models such as the following:

...

  • 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 minimum flow node needs to have a priority assigned to it (pNode) by the user. 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

...

  1. Loop on priorities p = 0 to n
  2. If the MinFlowReq >= dsOrder Then
    1. If p < pNode then nPriority(p) = dsPriority(p)*dsOrder/MinFlowReq
    2. If p = pNode then
      1. sumDSPriorityLE = sum of dsPriority(n) where n >= p
      2. nPriority(p) = ((MinFlowReq – dsOrder) + sumDSPriorityLE* dsOrder)/MinFlowReq
    3. If p > pNode then nPriority(p) = 0
  3. If the MinFlowReq < dsOrder Then
    1. sumDSPriorityGE = sum of dsPriority(n) where n <= p
    2. If p <= pNode then
      1. sumDSPriorityG = sum of dsPriority(n) where n < p
      2. nPriority(p) = sumDSPriorityGE*dsOrder >= MinFlowReq ? dsPriority(p)*dsOrder/usOrder : (MinFowReq- sumDSPriorityG *dsOrder)/usOrder
    3. If p > Node(p) then
      1. sumDSPriorityL = sum of dsPriority(thumbs down) where (n) where n > p
      2. nPriority(p) = nPrioirity(p)/ sumDSPriorityL*(1- sumDSPriorityGE)


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 should not be part of the ordering network i.e. it should not be allowed to generate orders (this does not appear to happen in the model, maybe more validation for that setting?)
As the Supply Point can extract water from the system we need to consider how the priorities affect both the order phase and the flow phase.


Anchor
_Ref411330922
_Ref411330922
Table 1 Supply Point configuration

Scenario

Allow Order

Extract Water

Notes

1

True

True

Standard case

2

True

False

Just restrict the extraction in the flow phase

3

False

True

Water will be extracted independently of the priorities

4

False

False

Nothing occurs

...

Environmental Demand Node

If Inclusive of Orders = True Then
It acts like a minimum flow node and we will need to adjust ratios
If Inclusive of Orders = False Then
It acts like a supply point and is generating an additional order

...

Transfer of Ownership
The transfer of ownership should have has two options regarding ordering priorities

  1. Maintain downstream ratio
  2. Override ratios and assign to one priority level

...

  1. (re-prioritise orders)


Storage
Two options at a storage node

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, assume evap/seepage does not effect storage ratios

 

Re-regulating the

...

orders 

    1. Downstream orders
    2. Storage losses
    3. Different upstream min order time
    4. Operational targets being met


Process

  1. If "PassThroughOrder" = true Then
    1. sumOutletOrder = Sum the total order from all outlets
    2. Loop on priorities p = 0 to n
      1. Loop on outlets
      2. OutletOrders(p) += dsOrder(p) * OutletOrder
      3. nPriority(p) = OutletOrders(p)/ sumOutletOrder

...