Source code for pymt.services.constant.constant

import numpy as np
import yaml


[docs]class ConstantScalars: """Service component that returns scalars."""
[docs] def initialize(self, filename): """Initialize the component from a file. Parameters ---------- filename : str Name of initialization file. """ with open(filename) as opened: scalar_vars = yaml.safe_load(opened.read()) self._vars = {} for name, value in scalar_vars.items(): self._vars[name] = np.array(value, dtype=float) self._shape = (1,) self._spacing = (1.0,) self._origin = (0.0,) self._input_exchange_items = [] self._output_exchange_items = list(self._vars.keys()) self._start_time = 0.0 self._end_time = np.inf self._time = 0.0
[docs] def update(self, time): """Update one time step.""" self._time = time
[docs] def update_until(self, time): """Update until a time.""" self._time = time
[docs] def finalize(self): """Clean up.""" pass
[docs] def get_start_time(self): """Component start time.""" return self._start_time
[docs] def get_end_time(self): """Component stop time.""" return self._end_time
[docs] def get_current_time(self): """Component current time.""" return self._time
[docs] def get_input_var_names(self): """Input variable names.""" return self._input_exchange_items
[docs] def get_output_var_names(self): """Output variable names.""" return self._output_exchange_items
[docs] def get_var_grid(self, var): """Grid identifier for a variable. Parameters ---------- var : str Name of grid variable. Returns ------- int Grid identifier. """ if var in self._vars: return 0 else: raise KeyError(var)
[docs] def get_grid_shape(self, grid_id): """Shape of grid. Parameters ---------- grid_id : int Grid identifier. Returns ------- shape : tuple Shape of the grid. """ if grid_id == 0: return self._shape else: raise KeyError(0)
[docs] def get_grid_spacing(self, grid_id): """Spacing of grid. Parameters ---------- grid_id : int Grid identifier. Returns ------- spacing : tuple Spacing of nodes in each dimension. """ if grid_id == 0: return self._spacing else: raise KeyError(0)
[docs] def get_grid_origin(self, grid_id): """Origin of grid. Parameters ---------- grid_id : int Grid identifier. Returns ------- origin : tuple Origin of nodes in each dimension. """ if grid_id == 0: return self._origin else: raise KeyError(0)
[docs] def get_value(self, name): """Values on nodes of a grid. Parameters ---------- var : str Name of grid variable. Returns ------- values : ndarray Values of the nodes of a grid. """ return self._vars[name]
[docs]class River(ConstantScalars): pass