pywr.nodes.VirtualStorage
- class pywr.nodes.VirtualStorage(*args, **kwargs)
A virtual storage unit
- Parameters:
- model: pywr.core.Model
- name: str
The name of the virtual node
- nodes: list of nodes
List of inflow/outflow 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, initial_volume_pcfloat (optional)
Specify initial volume in either absolute or proportional terms. Both are required if max_volume is a parameter because the parameter will not be evaluated at the first time-step. If both are given and max_volume is not a Parameter, then the absolute value is ignored.
- 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)
Methods
__init__
(model, name, nodes, **kwargs)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
finalise_load
()Finish loading a node by converting parameter name references to instance references.
finish
(self)get_all_cost
(self, double[)get_all_max_volume
(self, double[)get_all_min_volume
(self, double[)get_area
(self, ScenarioIndex scenario_index)get_cost
(self, ScenarioIndex scenario_index)Get the cost per unit flow at a given timestep
get_current_pc
(self, ...)Return the current proportion of full of the storage node.
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, ...)pre_load
(model, data)Create a node instance from data.
reset
(self)setup
(self, model)Called before the first run of the 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 proportion full.
domain
factors
flow
Total flow via this node in the current timestep
fully_qualified_name
has_fixed_cost
Returns true if cost is not a Parameter.
initial_volume
initial_volume_pc
level
max_volume
min_volume
model
The recorder for the node, e.g. a NumpyArrayRecorder.
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.
virtual
virtual: 'bool'
volume