Source code for monee.model.child

from .core import ChildModel, Const, Var, model


class NoVarChildModel(ChildModel):
    """
    No docstring provided.
    """

    def set(self, n, value):
        """
        No docstring provided.
        """
        user_attributes = [
            attr
            for attr in dir(self)
            if not attr.startswith("__") and (not callable(getattr(self, attr)))
        ]
        if n < 0 or n >= len(user_attributes):
            raise IndexError(f"No user-defined attribute at index {n}")
        attr_name = user_attributes[n]
        setattr(self, attr_name, value)

    def equations(self, grid, node, **kwargs):
        """
        No docstring provided.
        """
        return []


[docs] @model class PowerGenerator(NoVarChildModel): """ No docstring provided. """ def __init__(self, p_mw, q_mvar, **kwargs) -> None: super().__init__(**kwargs) self.p_mw = -p_mw self.q_mvar = -q_mvar
[docs] @model class ExtPowerGrid(NoVarChildModel): """ No docstring provided. """ def __init__(self, p_mw, q_mvar, vm_pu=1, va_degree=0, **kwargs) -> None: super().__init__(**kwargs) self.p_mw = Var(p_mw) self.q_mvar = Var(q_mvar) self.vm_pu = vm_pu self.va_degree = va_degree
[docs] def overwrite(self, node_model): """ No docstring provided. """ node_model.vm_pu = Const(self.vm_pu) node_model.va_degree = Const(self.va_degree)
[docs] @model class PowerLoad(NoVarChildModel): """ No docstring provided. """ def __init__(self, p_mw, q_mvar, **kwargs) -> None: super().__init__(**kwargs) self.p_mw = p_mw self.q_mvar = q_mvar
[docs] @model class Source(NoVarChildModel): """ No docstring provided. """ def __init__(self, mass_flow, t_k=359, **kwargs) -> None: super().__init__(**kwargs) self.mass_flow = -mass_flow
[docs] @model class ExtHydrGrid(NoVarChildModel): """ No docstring provided. """ def __init__(self, mass_flow=1, pressure_pa=1000000, t_k=359, **kwargs) -> None: super().__init__(**kwargs) self.mass_flow = Var(mass_flow) self.pressure_pa = pressure_pa self.t_k = t_k
[docs] def overwrite(self, node_model): """ No docstring provided. """ node_model.pressure_pa = Const(self.pressure_pa) node_model.t_k = Const(self.t_k)
[docs] @model class ConsumeHydrGrid(NoVarChildModel): """ No docstring provided. """ def __init__(self, mass_flow=0.1, pressure_pa=1000000, t_k=293, **kwargs) -> None: super().__init__(**kwargs) self.mass_flow = -mass_flow self.pressure_pa = pressure_pa self.t_k = t_k
[docs] def overwrite(self, node_model): """ No docstring provided. """ node_model.pressure_pa = Const(self.pressure_pa)
[docs] @model class Sink(NoVarChildModel): """ No docstring provided. """ def __init__(self, mass_flow, **kwargs) -> None: super().__init__(**kwargs) self.mass_flow = mass_flow