Source code for wntr.sim.models.var

"""Functions to add variables to the WNTRSimulator model."""

import logging
from wntr.sim import aml

logger = logging.getLogger(__name__)


[docs] def demand_var(m, wn, index_over=None): """ Add a demand variable to the model Parameters ---------- m: wntr.aml.aml.aml.Model wn: wntr.network.model.WaterNetworkModel index_over: list of str list of junction names """ if not hasattr(m, 'demand'): m.demand = aml.VarDict() if index_over is None: index_over = wn.junction_name_list demand_multiplier = wn.options.hydraulic.demand_multiplier pattern_start = wn.options.time.pattern_start for node_name in index_over: node = wn.get_node(node_name) m.demand[node_name] = aml.Var(node.demand_timeseries_list.at(wn.sim_time+pattern_start, multiplier=demand_multiplier))
[docs] def flow_var(m, wn, index_over=None): """ Add a flow variable to the model Parameters ---------- m: wntr.aml.aml.aml.Model wn: wntr.network.model.WaterNetworkModel index_over: list of str list of link names """ if not hasattr(m, 'flow'): m.flow = aml.VarDict() if index_over is None: index_over = wn.link_name_list for link_name in index_over: link = wn.get_link(link_name) m.flow[link_name] = aml.Var(0.001)
[docs] def head_var(m, wn, index_over=None): """ Add a head variable to the model Parameters ---------- m: wntr.aml.aml.aml.Model wn: wntr.network.model.WaterNetworkModel index_over: list of str list of junction names """ if not hasattr(m, 'head'): m.head = aml.VarDict() if index_over is None: index_over = wn.junction_name_list for node_name in index_over: node = wn.get_node(node_name) m.head[node_name] = aml.Var(node.elevation)
[docs] def leak_rate_var(m, wn, index_over=None): """ Add a variable to the model for leak flow rate Parameters ---------- m: wntr.aml.aml.aml.Model wn: wntr.network.model.WaterNetworkModel index_over: list of str list of junction/tank names """ if not hasattr(m, 'leak_rate'): m.leak_rate = aml.VarDict() if index_over is None: index_over = wn.junction_name_list + wn.tank_name_list for node_name in index_over: m.leak_rate[node_name] = aml.Var(0)