Document History
Date | Author | Revision | Description of Change | |
| Linda Holz | 0.1 | First draft | |
Oct 2011 | Chris Wilson |
| Review comments provided by Chris Wilson | |
Apr 2012 | D Black | 0.2 | Extensively modified, using Specification version 0.8 as the basis but also incorporating feedback from Chris Wilson where possible. Needs reviewing again and further input by SMEs, especially as there is one code segment in it (from the specification) which needs to be converted into SRG description. | |
Mar 2015 | D Black | 0.3 | Incorporates feedback from Chris Wilson and some input from Geoff Podger re thresholds (Figs 1 and 2). | |
Apr 2015 | D Black | 0.4 | Incorporates 2nd round of feedback from Chris Wilson; 0.4a includes modified figs 1 and 2 incorporating feedback from Perlita | |
May 2015 | G. Podger | 0.5 | Review of methodology | |
Mar 2017 | G.Podger | 0.6 | Align method with code implementation in Source |
Overview
Description and rationale
...
Flow event triggers are based on flows exceeding flow thresholds at an OAN. These thresholds may be fixed numbers or a function and different thresholds can be specified for commencing and ending the off allocation event. The event triggers may be optionally constrained by a seasonal period and a maximum flow threshold, which may be a fixed number or function. The threshold can be configured to be based on total flow (Figure 1) or flow above orders (Figure 2). In the case where triggers are based on flow, the larger of orders and event trigger is adopted as the threshold. The off allocation volume may be determined as flow above threshold (Option 1 2 and 3 in respective Figures 1 and 2) or flow above orders (Option 2 1 and 4 in respective Figures 1 and 2).
...
Figure 1. Off-allocation thresholds based on total flow
|
Figure 2. Off-allocation thresholds based on orders |
...
Note that although Ownership is not configured directly for an off-allocation system, off-allocation flow sharing is always used in conjunction with a resource assessment system. When off-allocation sharing is configured for a scenario, it must be linked to an associated resource assessment system by the modeller. If ownership has been configured for the linked resource assessment system then that owner’s share of flow at the OAN is subject to owner shares of the off allocation volume.
Methodology
Variables Used
...
Symbol | Purpose/Description | Units | Usage | |
---|---|---|---|---|
a | A water user account at the OAN. | n/a | Initialisation, Flow | |
AccessRatio(a,owner) | Ratio of allocation to request volume for an account (representing a water user and owner). Indicates whether there is an excess to reallocate to other owners and/or water users. | n/a | Flow | |
Allocated | Total volume allocated to all accounts at the current priority level, p. | volume | Flow | |
Allocation(a) | The volume of water allocated to an account | volume | Flow | |
Balance(a,t) | Balance of a water user account in a time step, t. This is the volume of off-allocation water assigned to the associated water user and owner that is expected to arrive at the water user's location (e.g. Supply Point Node) in the time step. | volume | Flow | |
Cap(a) | Account cap for an account a – representing the maximum usage permitted for the account in the water year. | volume | Flow | |
Cap(type) | Cap at the OAN represented by the account type, type, representing the maximum off-allocation usage permitted at the OAN in the water year. | volume | Flow | |
Cap(system) | Cap for an off-allocation system, system , representing the maximum usage permitted for the off-allocation system in the water year. | volume | Flow | |
DeliveryEff(a) | Factor that represents the efficiency of delivery of water requested using water user account a. | n/a | Flow | |
Excess | Total volume allocated that is in excess of the system cap | volume | Flow | |
Flow | The volume of flow in the river at the OAN for the current time step | volume | Flow | |
InitialUsage(a) | The initial usage figure set by the user for the account a. | volume | Initialisation, Flow | |
LimitUsage(a) | Maximum remaining usage for the water user account a in the current time step. This may be the total remaining request. If the account's usage is capped, the remaining usage will be limited by the remaining usage under the cap. | volume | Flow | |
LimitUsage(system) | The maximum volume of water left to be allocated to accounts in the OAN's system in the current water year. This limitation only applies to systems with a usage cap. | volume | Flow | |
Loss(wu, owner | An owner's share of the estimated volume of loss that will be incurred in delivering a water user's request leaving the OAN this time step. | volume | Flow | |
MaxQ | Maximum flow threshold, used for defining off-allocation events (see Figures 1 and 2) | volume | Flow | |
MinRatio | Minimum usage ratio for all OAN accounts at the current priority level. | n/a | Flow | |
NextRatio | Next lowest usage ratio after the minimum for all accounts at the current priority level | n/a | Flow | |
OrderDue | Total volume of order due at the OAN in the current time step. | volume | Flow | |
OrderDue(owner) | Volume of order due at the OAN in the current time step for owner. | volume | Flow | |
OrigRequest(a) | The saved value of Request(a) before the allocation process begins. | volume | Flow | |
OrigRequest(a, owner) | The saved value of Request(a, owner) before the allocation process begins. | volume | Flow | |
owner | A water owner at the OAN | n/a | Configuration, Flow | |
other | A different water owner to owner at the OAN | n/a | Flow | |
p | The current priority level | n/a | Flow | |
Proportion | Proportion by which allocations at the current priority level in the current time step need to be reduced so that they fit within the system cap. | n/a | Flow | |
RatioOffAlloc(owner) | An owner's share of the total off-allocation volume remaining to be allocated this time step at the OAN. | n/a | Flow | |
Request(a) | The volume of off-allocation request placed for account a of water user wu up-scaled for loss to the total required at the OAN. | volume | Flow | |
Request(a,owner) | The volume of off-allocation request placed for a water user and owner up-scaled for loss to the total required at the OAN. | volume | Flow | |
RequestAtSource(a) | The volume of off-allocation request placed for account a of water user wu at its location (e.g. at a Supply Point Node). | volume | Flow | |
ReserveProp(type) | Configured proportion of off-allocation flow reserved (not available for allocation) at the OAN (represented by account type type ) | n/a | Configuration, Flow | |
sa | A water user account in a given off-allocation system | n/a | Flow | |
ShareVolume(a) | The volume of off-allocation water to be shared to account a in the current time step. |
| Flow | |
ShareVolumeAtSource(a) | The volume of off-allocation water to be shared to account a in the current time step, reduced for delivery efficiency so that it is the amount available at the water user's location (e.g. at a Supply Point Node). | volume | Flow | |
system | An off-allocation system | n/a | Configuration, Initialisation, Flow | |
t | Index of the current time step | n/a | Flow | |
tdelivery(a) | Estimated number of time steps to deliver water from the OAN to the water user's supply point for account a . | n/a | Flow | |
type | The account type which represents the OAN in the off-allocation system. | n/a | Flow | |
TotalUnitShare(p) | The total number of specified unit shares for all OAN accounts at a priority level p . | n/a | Configuration, Flow | |
UnitShare(a) | The number of specified unit shares for a water user's account a at the OAN. | n/a | Configuration, Flow | |
Usage(a) | The usage to date (in the water year) for a water user account which includes undelivered off-allocation water. This value is reset at the start of a water year. | volume | Flow | |
UsageRatio(a) | The usage to shares ratio for an account a - this is used to equalise allocations between accounts at the same priority level. | n/a | Flow | |
VolOffAlloc | Total volume of off-allocation water at the OAN remaining to be distributed in the current time step. | volume | Flow | |
VolOffAlloc(owner) | Volume of an owner's off-allocation water at the OAN remaining to be distributed in the current time step. | volume | Flow | |
wu | A water user with an account at the off-allocation node. | n/a | Configuration, Initialisation, Flow |
...
- The total usage for all the accounts associated with each OAN is initialised by adding the initial account usage volumes as defined by the modeller (Note: If the account holder is a downstream OAN then the initial usage for the account type is the sum of all water users which have accounts at that OAN account type.)
For each account a at the OAN (i.e. of its account type):Initialise usage for the account:
If usage at the OAN is capped, the account is assigned its share of the usage cap, and the remaining balance to be used is determined:
The system's usage limit (usage remaining under system cap level) is initialised:
If a system cap limit has been specified by the modeller, the remaining system cap is set, based on the cap and usages:
...
Save each owner's request for off-allocation water (the volume at the OAN; i.e. adjusted for losses).
- If ownership is enabled and there is more than one owner, the owner loss contribution, Loss(wu, owner), in meeting the request for each water user at the OAN, are determined. Determine the loss contribution of each owner describes how this is done.
- The volume of off-allocation water that is available, VolOffAlloc , is calculated. See Determine the off-allocation volume below for details.
- The off-allocation water is allocated. If ownership is not enabled or there is only one owner, the steps below are only performed once. When there are multiple owners, they are repeated until either there is no off-allocation water to share, or all requests are met, or the system's usage limit has been reached (if there is such a limit).
A check is made to see whether there is any off-allocation water to allocate, or not. If there is no off-allocation water (remaining) to share (ie. if VolOffAlloc = 0 or VolOffAlloc < lowest volume allocation level ), the allocation procedure stops here.
How much of the total requested volume at the OAN can be met/supplied is determined.
If met ≤ 0 , the allocation procedure stops here.
If there is a usage cap defined for the off-allocation system, a check is made to see if there is remaining usage capacity. This is calculated based on the current usages of all accounts a at every OAN in the off-allocation system:
If LimitUsage(system) = 0 , there is no remaining system cap to share, so the allocation procedure stops here.
The off-allocation delivery efficiency is determined for each account using the following equation:
where a is the account for a downstream water user. (Recall that each water user which requires off-allocation flow to be allocated to them from a particular OAN in the river system holds one off-allocation account at that node.)- Determine the maximum volume of a request remaining to be fulfilled for each off-allocation account a at downstream water users:
If there is a usage cap configured, it is the smaller of the request and the remaining usage cap
- Otherwise, it is the requested volume
- If no account has LimitUsage(a) > 0 , the allocation procedure stops here.
- Off-allocation water is allocated to accounts at the OAN. At every priority level, in order from highest to lowest, the following occurs:
- If the equalise shares option has been selected, account allocations/usages at a given priority level are equalised based on their usage to shares ratio. Equalise shares of off-allocation water describes how this is done.
- Remaining off-allocation water is allocated to accounts at the given priority level according to account shares. Allocate off-allocation water to accounts based on shares describes how this is done.
- If the equalise shares option has been selected, account allocations/usages at a given priority level are equalised based on their usage to shares ratio. Equalise shares of off-allocation water describes how this is done.
At this stage the OAN may have met each of the water user's owner requests and thus supplied more water than the water user requires – as the total request was placed for every owner. The steps that follow check for this and re-distribute any excess allocation – firstly to other water users of the same ownership, then to other water users. The process depends on how many owners there are:
If ownership is disabled or there is only one owner, usage is simply updated:
Otherwise (i.e. there is more than one owner):- Any excess is redistributed according to the method described in Re-distribute off-allocation excess.
- The usage for this round of allocation is updated
- Return to step 3. The next round will redistribute any losses met by other owners to water user accounts with insufficient water to meet requests.
- Any excess is redistributed according to the method described in Re-distribute off-allocation excess.
Account balances for every account at the OAN are updated
...
Limit the share volume for an account (Note that if LimitUsage(a) is not specified by the modeller its value defaults to a very big number):
- Reduce the volume of off-allocation water available to share
- Calculate the volume that this represents at the source
Calculate allocations for the account for each user and adjust the usage limits if required.
- If a system cap has been specified and would be exceeded by allocations in the current time step, then allocations are reduced to fit within cap (otherwise this step is skipped).
Sum the allocations for each user in the current priority level
Calculate the volume by which the system cap would be exceeded based on potential allocations
Calculate the proportion that each allocation would have to be reduced by to meet the system cap restriction
For each OAS node account at the current priority level allocations are adjusted so that they do not exceed the system cap, taking into account the efficiency factors, then the limits for the adjustment are updated:
...
The excess off-allocation volume available for re-distribution is initialised:
- For each water user, excess off-allocation water is redistributed:
The access ratio for each off-allocation account and the total of these account ratios for each water user are determined,
where a is the account for water user and owner owner.- The access ratio is checked to determine whether water in excess of the total request has been allocated:
If AccessRatio ≤ 1 , there is no excess to redistribute. The remaining request to be met is calculated as:
Skip to the next water user.- Otherwise processing continues in order to redistribute excess between owner accounts.
Assuming that a water user will try and maximise its access to off allocation water, Source uses each owner's off-allocation water on the basis of its allocation (an indication of licence priority), or its remaining capacity to receive water if accounts are capped. The account with the largest allocation has this adjusted first until it is the same as the next largest, and so on. This cycle is repeated until all the excess off allocation water is allocated or accounts have no remaining capacity to receive water. - The new allocation for each water user's off-allocation account is initialised:
If accounts are capped:
Otherwise
where a is the account for water user and owner owner.
- The owner accounts for each water user are ranked in order of allocation, newAlloc(owner), from highest to lowest.
Excess is allocated to owners in the ranked order until the total remaining request volume is met, but the allocation is equalised so that lower priority owners also get some water – the result is a new 'equalised' allocation, newAlloc(owner).
Code Block remvol= Requestwu do i= 2, nowner sum= 0 do j= 1, i-1 sum= sum +rembal(ptr(j)) end do vol= min(remvol,sum-rembal(ptr(j)*(i-1)) do j= 1, i-1 rembal(ptr(j))= rembal(ptr(j))-vol/(i-1) end do remvol= remvol - vol If( remvol <= 0 ) exit end do if( remvol > 0 ) then sum = 0 do j= 1, nowner sum= sum + rembal(ptr(j)) end do vol= min(remvol,sum) do j= 1, nowner rembal(ptr(j))=rembal(ptr(j))-vol/nowner end do remvol= remvol- vol end if
The allocation for this time step is updated for the re-distribution:
The remaining volume of off-allocation water not required by this water user is added to the total to be reallocated to other water users:
The off-allocation volumes are adjusted for losses met by other owners:
Every owner's ratio of the total off-allocation volume is calculated:
The loss met by every other owner is their loss volume (calculated in Step 2 under Flow Phase (Resource Assessment and Allocation)) multiplied by their share of the off-allocation volume. This means that for a given owner, the off-allocation volume adjusted for other owner losses is:
Indicate that the water user's request has been met:
Request(a,owner) = 0
Examples
Opportunistic requests in parallel systems
...
Each OAN processes the orders for its direct users downstream (including the next downstream OAN) and passes the combined orders up to the next OAN (if there is one). This means that it is possible to share off allocation water between multiple downstream reaches.
In the example illustrated in Figure 6, below, OAN3 has a share component in OAN2 which also has a share component in OAN1. This means that the off-allocation requirements of water user 3 and 4 are accumulated up the system and are reported as the off-allocation requirement of OAN2. This means that the allocation of off-allocation water to reach 1 takes into consideration the downstream requirements. It is possible to give priority access to downstream requirements by assigning the highest priority to OAN2 in the OAN1 allocation table.
Note that while OAN1 assigns a volume of off-allocation water to OAN2, the processing of OAN2 may result in a change in the volume of off-allocation water available to that reach as the rules specific to OAN2 are used to calculate the available water.
Figure 6 — Example of multiple off allocation reaches
Off allocation and storages
...
Environmental Conditions - The declaration of an off-allocation flow event may be dependent upon whether the taking of water will prevent the beneficial watering of an environmental value or asset. This can be replicated by developing a water user with an environmental demand model. The highest allocation priority should be assigned to the associated Supply Point. It should be noted that if this Supply Point is in a downstream off-allocation reach, the downstream OAN would have to be assigned highest priority when evaluating the current off-allocation reach. This also means that other off-allocation demands in the downstream reach, such as for irrigation, would get highest priority, which may not be desirable.
Data
Input data
Details on input data are provided in the Source User Guide.
...
Parameter Name | Parameter Description | Unit Type | Allowable values & validation rules | Default Value(s) | |||
---|---|---|---|---|---|---|---|
Owner | Display only, the owner associated with the resource assessment system | n/a | n/a | n/a | |||
Water year start date | Display only, day and month the water year starts as configured in the associated RAS | n/a | n/a | n/a | |||
Equalise shares | If the equalise shares option is selected, allocation of off-allocation flow is equalised across all users within a priority level | Boolean | Optional | False | |||
Annual System Cap activation | A check box to activate an annual system cap | Boolean | Optional | False | |||
Annual System Cap | A volumetric cap on usage for the OAS. | Volume | If annual system cap is activated | 0 | |||
Sum of Account Type Caps | Sum of account type caps as a proportion of the annual system cap | Percent | If annual system cap is activated | 0 | |||
Reset on Spill | An option which is used in conjunction with a storage/s in the scenario, when a selected storage spills in a time step the usages for all accounts (for all account types) across the off-allocation system are reset to zero | Boolean | Optional | False | |||
Spill Trigger | Specifies whether balances are reset on the first spill of a event or on every spill | Option | If reset on spill is activated | First spill | |||
Storage Trigger | Specifies whether all select storages or any selected storage is considered | Option | If reset on spill is activated | Any Storage | |||
Assigned storages | Displays a list of storages in the system to choose from | Option | If reset on spill is activated | False for all storages | |||
Assigned storages | Not sure why have this twice? |
|
|
|
Off-allocation Account Type Parameters
Parameters input by the modeller at the account type level affect all associated accounts.
Table 4 —Account Type Configuration - Parameters
Parameter Name | Parameter Description | Unit Type | Allowable values & validation rules | Default Value(s) |
---|---|---|---|---|
Off allocation | The off allocation reach that the account type is associated with | none | Mandatory | First off allocation node without an account type |
Annual Usage Limit activation | A check box to activate an annual usage limit | Boolean | Optional | False |
Annual Usage Limit | The annual usage limit for the account type | If the annual usage limit is activated | 0 |
...
Parameter Name | Parameter Description | Unit Type | Allowable values & validation rules | Default Value(s) |
---|---|---|---|---|
Trigger Method | A choice between total flow or flow above regulated requirements | Option | Radio button options for 'Total Flow' and 'Flow above regulated requirements' | Total Flow |
Volume Calculation Method | A choice between flow above threshold and flow above regulated requirements | Option | Radio button options for 'Flow above threshold' and 'Flow above regulated requirements' | Flow above threshold |
Start flow | Flow threshold to signal off allocation on the first time step of an event | Flow | Can be specified as a fixed value or a function | 0 |
End flow activation | A check box to activate the end flow threshold | Boolean | Optional | False |
End flow | Flow threshold to signal off allocation after the first time step of an event | Flow | If end flow is activated | 0 |
Maximum flow activation | A check box to activate the maximum flow threshold | Boolean | Optional | False |
Maximum flow | A flow threshold above which off allocation is not available | Flow | If maximum flow is activated | 0 |
Reserve Proportion | The proportion of off-allocation flow which cannot be allocated | Percent | Mandatory | 0 |
Threshold seasonal event | A check box to activate the event season | Boolean | Optional | False |
Season Start | Specifies the start date for the time period when the off-allocation flow event may occur | dd-mmm | If threshold seasonal event is activated | 01 Jan |
Season End | Specifies the end date for the time period when the off-allocation flow event may occur | dd-mmm | If threshold seasonal event is activated | 31 Dec |
Max Upstream Request activation | A check box to activate the Max upstream request | Boolean | Optional | False |
Max Upstream request | I assume this limits the request sent from the OAN to the next OAN | Flow | If the max upstream request is activated | 0 |
Output data
Table 7 — Recorded variables
Model Element | Parameter | Frequency | Notes |
---|---|---|---|
Off-allocation system | Remaining Capacity: Difference between system cap and system usage | time step | For each off- allocation system configured |
Off-allocation system | Usage: System usage | time step | For each off- allocation system configured |
Account Type | Remaining Capacity: Difference between account type cap and account type usage | time step | For each off- allocation system account type configured |
Account Type | Usage: Account type usage | time step | For each off- allocation system account type configured |
Accounts | Remaining Capacity: Difference between account limit and account usage | time step | For each account in an off- allocation system account type |
Accounts | Usage: Account usage | time step | For each account in an off- allocation system account type |
Water user/Account Holder | Allocation: No sure? | time step | For each account holder in an off- allocation system account type |
Water user/Account Holder | Constrained Order: Don't know? | time step | For each account holder in an off- allocation system account type |
Water user/Account Holder | Equalisation Ratio: Ratio between water user usage and total usage for the account type | time step | For each account holder in an off- allocation system account type |
Water user/Account Holder | Non Debit Balance: Don't know | time step | For each account holder in an off- allocation system account type |
Water user/Account Holder | Order Volume: Off allocation request volume for the current time step | time step | For each account holder in an off- allocation system account type |
Water user/Account Holder | Remaining Capacity: Difference between the water user off allocation limit and the water user usage | time step | For each account holder in an off- allocation system account type |
Water user/Account Holder | Total Volumetric Share: Off allocation share since the start of the water season | time step | For each account holder in an off- allocation system account type |
Water user/Account Holder | Usage: Accumulated off allocation use since the start of the water year | time step | For each account holder in an off- allocation system account type |
Water user/Account Holder | Usage Today: Off allocation volume used in the current time step | time step | For each account holder in an off- allocation system account type |
Water user/Account Holder | Volumetric Share: Share of off allocation volume | time step | For each account holder in an off- allocation system account type |
Off-allocation node | Borrow and Payback | time step | For all off allocation nodes |
Off-allocation node | Constituents | time step | For all off allocation nodes |
Off-allocation node | Downstream flow>Flow: Downstream flow | time step | For all off allocation nodes |
Off-allocation node | Downstream flow volume>Volume: Downstream volume | time step | For all off allocation nodes |
Off-allocation node | Mass balance | time step | For all off allocation nodes |
Off-allocation node | Off allocation Flow Volume>Volume: Volume of off allocation | time step | For all off allocation nodes |
Off-allocation node | Off Allocation Orders Volume | time step | For all off allocation nodes |
Off-allocation node | Ordering Network | time step | For all off allocation nodes |
Off-allocation node | Rules Based Orders | time step | For all off allocation nodes |
Off-allocation node | Storage Volume | time step | For all off allocation nodes |
Off-allocation node | Total Inflow Volume | time step | For all off allocation nodes |
Off-allocation node | Total Outflow Volume | time step | For all off allocation nodes |
Off-allocation node | Upstream flow>Flow: Upstream flow | time step | For all off allocation nodes |
Off-allocation node | Upstream flow volume>Volume: Upstream volume | time step | For all off allocation nodes |
Reference list
...