pywr.nodes.RollingVirtualStorage

class pywr.nodes.RollingVirtualStorage(*args, **kwargs)

A rolling virtual storage node useful for implementing rolling licences.

Parameters
model: pywr.core.Model
name: str

The name of the virtual node

nodes: list of nodes

List of inflow/out flow nodes that affect the storage volume

factors: list of floats

List of factors to multiply node flow by. Positive factors remove water from the storage, negative factors remove it.

min_volume: float or parameter

The minimum volume the storage is allowed to reach.

max_volume: float or parameter

The maximum volume of the storage.

initial_volume: float

The initial storage volume.

timestepsint

The number of timesteps to apply to the rolling storage over.

daysint

The number of days to apply the rolling storage over. Specifying a number of days (instead of a number of timesteps) is only valid with models running a timestep of daily frequency.

cost: float or parameter

The cost of flow into/outfrom the storage.

Notes

TODO: The cost property is not currently respected. See issue #242.

__init__(model, name, nodes, **kwargs)

Initialize self. See help(type(self)) for accurate signature.

Methods

__init__(model, name, nodes, **kwargs)

Initialize self.

after(self, Timestep ts, double[)

before(self, Timestep ts)

Called at the beginning of the timestep

check(self)

commit(self, int scenario_index, double value)

Called once for each route the node is a member of

commit_all(self, double[)

Called once for each route the node is a member of

finish(self)

get_area(self, ScenarioIndex scenario_index)

get_cost(self, ScenarioIndex scenario_index)

Get the cost per unit flow at a given timestep

get_initial_pc(self)

Returns the initial volume as a proportion.

get_initial_volume(self)

Returns the absolute initial volume.

get_level(self, ScenarioIndex scenario_index)

get_max_volume(self, …)

get_min_volume(self, …)

load(data, model)

reset(self)

setup(self, model)

Attributes

active

active: ‘bool’

allow_isolated

A property to flag whether this Node can be unconnected in a network.

area

comment

comment: basestring

component_attrs

components

Generator that returns all of the Components attached to the Node

cost

The cost per unit increased in volume stored

current_pc

Current percentage full

domain

factors

flow

Total flow via this node in the current timestep

fully_qualified_name

initial_volume

initial_volume_pc

level

max_volume

min_volume

model

The recorder for the node, e.g.

name

Name of the node.

nodes

parent

The parent Node/Storage of this object.

prev_flow

Total flow via this node in the previous timestep

recorders

Returns a list of pywr.recorders.Recorder objects attached to this node.

timesteps

timesteps: ‘int’

virtual

virtual: ‘bool’

volume