def _block_rule(_b_, t, s1): m = _b_.model() b = Block() def _init(m, i, j): return j * 2 b.p1 = Param(m.s1, m.t, mutable=True, default=_init) b.v1 = Var(m.s1, m.t, initialize=5) b.v2 = Var(m.s2, m.t, initialize=2) b.v3 = Var(m.t, m.s2, initialize=1) def _con1(_b, si, ti): return _b.v1[si, ti] * _b.p1[si, ti] == _b.v1[si, t]**2 b.con1 = Constraint(m.s1, m.t, rule=_con1) def _con2(_b, i, j, ti): return _b.v2[i, j, ti] - _b.v3[ti, i, j] + _b.p1['A', ti] b.con2 = Expression(m.s2, m.t, rule=_con2) return b
def _block_rule(_b_, t): m = _b_.model() b = Block() b.s1 = Set(initialize=['A1', 'A2', 'A3']) def _init(m, j): return j * 2 b.p1 = Param(m.t, default=_init) b.v1 = Var(m.t, initialize=5) b.v2 = Var(m.t, initialize=2) b.v3 = Var(m.t, b.s1, initialize=1) def _con1(_b, ti): return _b.v1[ti] * _b.p1[ti] == _b.v1[t]**2 b.con1 = Constraint(m.t, rule=_con1) def _con2(_b, i, ti): return _b.v2[ti] - _b.v3[ti, i] + _b.p1[ti] b.con2 = Expression(b.s1, m.t, rule=_con2) return b