WRM web version: Diversion nodes
A WRM scenario can include any number of diversion nodes.
A diversion node is characterised by one inflow, and two or more outflows, splitting the inflow
according to different strategies or rules.
Diversion nodes can represent anything from a natural branching in the river to a pumped withdrawal
from the river; options include different strategies to split or allocate the flow,
with different allocation priorities bteween the target flows in the diversion
and main river branch.
Dynamic output time series:
A DiversionNode generates the following output time series:
 inflow (dynamic input)
 diversion flow (amount extracted);
 mainstream flow (remaining flow, after extractions).
 violation (mainstreamflow  mainstream target)
 shortfall (diversionflow  diversion target)
Reports, statistics:
for each individual time series:
Single flow time series; average, min, max, SD.
For diversion flow: % of total amount abstracted (sum of all diversions including
implicit in demand nodes).
Node Data:
name 
short, descriptive display name 
diversion rule 
Selects one of the following strategies:
 percentage split: the flow is split by a fixed percentage;
the diversion percentage is specified, the mainstream retains 100div%, i.e., the rest.
 diversion taget: an absolute amount (time series) to be withdrawn is specified;
this is supplied with priority over the mainstream or downstream flow, subject to
availability of sufficient inflow;
 downstream target: an absolute amount (time series) to remain in the mainstream is
specified as a constraints for the diversion flow, and supplied with priority
subject to availbility (inflow); whatever is available in excess of
that target is diverted;
 combined: both downstream and diversion target TS are specified; the downstream target is
satisfied with priority, subject to availability; in case of inflow exceeding the
SUM of the two targets,
excess water is routed downstream, i.e., the diversion target here acts as an UPPER LIMIT
on the diversion flow.
 demand, cond. (conditional): similar to combined above, but the percentage split
or diversion target TS is replaced
by a new target TS that guarantees that the demand of the next
downstream demand node (including the
conveiance losses) get satisfied subject to
 availability of sufficient inflow to the diversion node;
 satisfying any downstream target flow with priority.
 demand, uncond. (unconditrional): as above, but without regard to any downstream
(mainstream) flow targets.
Note: an error condition occurs (reported by the checker),
if there is a another diversion or confluence before the nearest
downstream DEMAND node for the demand target flow is supposed to be met.

diversion flow % 
specifies the diversion as a percentage of mainstream flow;
this parameter is only effective if the corresponding strategy is selected 
diversion target TS 
time series for target demand at the diversion. This will only be
used if one of the corresponding strategies is selected 
multiplier 
scaling factor used to convert demand file units 
downstream target TS 
time series of downstream target flow requirements in the main stream (reach definition);
these constraints have precedent over the diversion targets. 
multiplier 
scaling factor for the downstream target flow 
maximum flow 
a capacity contraint for the diversion flow 
Development Notes:
To specify the diversion target as exactly the DEMAND corrected for conveiance LOSSES
for a downstream DEMAND NODE, a parameter loss_correction equivalent
to the loss (in %) for the corresponding conveiance loss) can be specified:
this will increase the demand accordingly, useful in case of pipelines that can not
take any excees flow.
As an extension of this construct, an release (diversion) target type should be
implemented to support the piped network representations (e.g., for Aqaba):
The target release is defined as the sum of several (parallel) downstream demands.
the diversion branch then supplies several demand nodes pro rata; the basic allocation
rules between main and diversion branch (CASE: diversion_TS, explicit target diversion) still apply.
