diff --git a/.github/workflows/tox_pytests.yml b/.github/workflows/tox_pytests.yml index 48f4845a8..44c8d09c9 100644 --- a/.github/workflows/tox_pytests.yml +++ b/.github/workflows/tox_pytests.yml @@ -34,7 +34,7 @@ jobs: run: tox - name: Check test coverage - run: coverage report -m --fail-under=${{ matrix.vcs == 'bzr' && 89 || 90 }} + run: coverage report -m --fail-under=${{ matrix.vcs == 'bzr' && 84 || 85 }} - name: Report to coveralls run: coveralls diff --git a/src/oemof/solph/__init__.py b/src/oemof/solph/__init__.py index b242a6f27..ab45cf3e6 100644 --- a/src/oemof/solph/__init__.py +++ b/src/oemof/solph/__init__.py @@ -8,8 +8,8 @@ from . import processing from . import views from ._energy_system import EnergySystem -from ._energy_system import create_time_index from ._groupings import GROUPINGS +from ._helpers import create_time_index from ._models import Model from ._options import Investment from ._options import NonConvex diff --git a/src/oemof/solph/_console_scripts.py b/src/oemof/solph/_console_scripts.py index da0d66a78..ecc15c77b 100644 --- a/src/oemof/solph/_console_scripts.py +++ b/src/oemof/solph/_console_scripts.py @@ -18,7 +18,7 @@ from oemof import solph -def check_oemof_installation(silent=False): +def _check_oemof_installation(solvers): logging.disable(logging.CRITICAL) date_time_index = pd.date_range("1/1/2012", periods=6, freq="h") @@ -48,22 +48,38 @@ def check_oemof_installation(silent=False): om = solph.Model(energysystem) # check solvers - solver = dict() - for s in ["cbc", "glpk", "gurobi", "cplex"]: + solver_status = dict() + for s in solvers: try: om.solve(solver=s) - solver[s] = "working" + solver_status[s] = True except Exception: - solver[s] = "not working" - - if not silent: - print() - print("*****************************") - print("Solver installed with oemof:") - print() - for s, t in solver.items(): - print("{0}: {1}".format(s, t)) - print() - print("*****************************") - print("oemof successfully installed.") - print("*****************************") + solver_status[s] = False + + return solver_status + + +def check_oemof_installation(): + + solvers_to_test = ["cbc", "glpk", "gurobi", "cplex"] + + solver_status = _check_oemof_installation(solvers_to_test) + + print_text = ( + "***********************************\n" + "Solver installed with oemof.solph:\n" + "\n" + ) + for solver, works in solver_status.items(): + if works: + print_text += f"{solver}: installed and working\n" + else: + print_text += f"{solver}: not installed/ not working\n" + print_text += ( + "\n" + "***********************************\n" + "oemof.solph successfully installed.\n" + "***********************************\n" + ) + + print(print_text) diff --git a/src/oemof/solph/_energy_system.py b/src/oemof/solph/_energy_system.py index 79681ad04..74a220f79 100644 --- a/src/oemof/solph/_energy_system.py +++ b/src/oemof/solph/_energy_system.py @@ -14,8 +14,6 @@ """ -import calendar -import datetime import warnings import numpy as np @@ -244,71 +242,3 @@ def get_period_duration(self, period): - self.periods[period].min().year + 1 ) - - -def create_time_index( - year: int = None, - interval: float = 1, - number: int = None, - start: datetime.datetime or datetime.date = None, -): - """ - Create a datetime index for one year. - - Notes - ----- - To create 8760 hourly intervals for a non leap year a datetime index with - 8761 time points need to be created. So the number of time steps is always - the number of intervals plus one. - - Parameters - ---------- - year : int, datetime - The year of the index. If number and start is set the year parameter is - ignored. - interval : float - The time interval in hours e.g. 0.5 for 30min or 2 for a two hour - interval (default: 1). - number : int - The number of time intervals. By default number is calculated to create - an index of one year. For a shorter or longer period the number of - intervals can be set by the user. - start : datetime.datetime or datetime.date - Optional start time. If start is not set, 00:00 of the first day of - the given year is the start time. - - Examples - -------- - >>> len(create_time_index(2014)) - 8761 - >>> len(create_time_index(2012)) # leap year - 8785 - >>> len(create_time_index(2014, interval=0.5)) - 17521 - >>> len(create_time_index(2014, interval=0.5, number=10)) - 11 - >>> len(create_time_index(2014, number=10)) - 11 - >>> str(create_time_index(2014, interval=0.5, number=10)[-1]) - '2014-01-01 05:00:00' - >>> str(create_time_index(2014, interval=2, number=10)[-1]) - '2014-01-01 20:00:00' - """ - if number is None: - if calendar.isleap(year): - hoy = 8784 - else: - hoy = 8760 - number = round(hoy / interval) - if start is None: - start = f"1/1/{year}" - try: - time_index = pd.date_range( - start, periods=number + 1, freq=f"{interval}h" - ) - except ValueError: - # Pandas <2.2 compatibility - time_index = pd.date_range( - start, periods=number + 1, freq=f"{interval}H" - ) - return time_index diff --git a/src/oemof/solph/_helpers.py b/src/oemof/solph/_helpers.py index fc245aca2..b3d0f0e73 100644 --- a/src/oemof/solph/_helpers.py +++ b/src/oemof/solph/_helpers.py @@ -15,8 +15,11 @@ """ +import calendar +import datetime from warnings import warn +import pandas as pd from oemof.tools import debugging @@ -45,3 +48,76 @@ def warn_if_missing_attribute(obj, attribute): msg.format(attribute, obj.label, type(obj)), debugging.SuspiciousUsageWarning, ) + + +def create_time_index( + year: int = None, + interval: float = 1, + number: int = None, + start: datetime.date = None, +): + """ + Create a datetime index for one year. + + Notes + ----- + To create 8760 hourly intervals for a non leap year a datetime index with + 8761 time points need to be created. So the number of time steps is always + the number of intervals plus one. + + Parameters + ---------- + year : int, datetime + The year of the index. + Used to automatically set start and number for the specific year. + interval : float + The time interval in hours e.g. 0.5 for 30min or 2 for a two hour + interval (default: 1). + number : int + The number of time intervals. By default number is calculated to create + an index of one year. For a shorter or longer period the number of + intervals can be set by the user. + start : datetime.datetime or datetime.date + Optional start time. If start is not set, 00:00 of the first day of + the given year is the start time. + + Examples + -------- + >>> len(create_time_index(2014)) + 8761 + >>> len(create_time_index(2012)) # leap year + 8785 + >>> len(create_time_index(2014, interval=0.5)) + 17521 + >>> len(create_time_index(2014, interval=0.5, number=10)) + 11 + >>> len(create_time_index(2014, number=10)) + 11 + >>> str(create_time_index(2014, interval=0.5, number=10)[-1]) + '2014-01-01 05:00:00' + >>> str(create_time_index(2014, interval=2, number=10)[-1]) + '2014-01-01 20:00:00' + """ + if number is None: + if calendar.isleap(year): + hours_in_year = 8784 + else: + hours_in_year = 8760 + number = round(hours_in_year / interval) + if start is not None: + if year is not None: + raise ValueError( + "Arguments 'start' and 'year' are mutually exclusive." + ) + else: + start = f"1/1/{year}" + try: + time_index = pd.date_range( + start, periods=number + 1, freq=f"{interval}h" + ) + except ValueError: + # Pandas <2.2 compatibility + time_index = pd.date_range( + start, periods=number + 1, freq=f"{interval}H" + ) + return time_index diff --git a/src/oemof/solph/_models.py b/src/oemof/solph/_models.py index 6d647b300..5ecbbd474 100644 --- a/src/oemof/solph/_models.py +++ b/src/oemof/solph/_models.py @@ -40,17 +40,21 @@ class LoggingError(BaseException): pass -class BaseModel(po.ConcreteModel): - """The BaseModel for other solph-models (Model) +class Model(po.ConcreteModel): + """An energy system model for operational and/or investment + optimization. Parameters ---------- energysystem : EnergySystem object Object that holds the nodes of an oemof energy system graph. - constraint_groups : list (optional) + constraint_groups : list Solph looks for these groups in the given energy system and uses them to create the constraints of the optimization problem. - Defaults to `Model.CONSTRAINTS` + Defaults to `Model.CONSTRAINT_GROUPS` + discount_rate : float or None + The rate used for discounting in a multi-period model. + A 2% discount rate needs to be defined as 0.02. objective_weighting : array like (optional) Weights used for temporal objective function expressions. If nothing is passed, `timeincrement` will be used which @@ -79,15 +83,58 @@ class BaseModel(po.ConcreteModel): Store the dual variables of the model if pyomo suffix is set to IMPORT rc : `pyomo.core.base.suffix.Suffix` or None Store the reduced costs of the model if pyomo suffix is set to IMPORT + + Note + ---- + + * The discount rate is only applicable for a multi-period model. + * If you want to work with costs data in nominal terms, + you should specify a discount rate. + * By default, there is a discount rate of 2% in a multi-period model. + * If you want to provide your costs data in real terms, + just specify `discount_rate = 0`, i.e. effectively there will be + no discounting. + + + **The following basic sets are created**: + + NODES + A set with all nodes of the given energy system. + + TIMESTEPS + A set with all timesteps of the given time horizon. + + PERIODS + A set with all investment periods of the given time horizon. + + TIMEINDEX + A set with all time indices of the given time horizon, whereby + time indices are defined as a tuple consisting of the period and the + timestep. E.g. (2, 10) would be timestep 10 (which is exactly the same + as in the TIMESTEPS set) and which is in period 2. + + FLOWS + A 2 dimensional set with all flows. Index: `(source, target)` + + **The following basic variables are created**: + + flow + Flow from source to target indexed by FLOWS, TIMEINDEX. + Note: Bounds of this variable are set depending on attributes of + the corresponding flow object. + """ - # The default list of constraint groups to be used for a model - CONSTRAINT_GROUPS = [] + CONSTRAINT_GROUPS = [ + BusBlock, + ConverterBlock, + InvestmentFlowBlock, + SimpleFlowBlock, + NonConvexFlowBlock, + InvestNonConvexFlowBlock, + ] - def __init__(self, energysystem, **kwargs): - """Initialize a BaseModel, using its energysystem as well as - optional kwargs for specifying the timeincrement, objective_weighting - and constraint_groups.""" + def __init__(self, energysystem, discount_rate=None, **kwargs): super().__init__() # Check root logger. Due to a problem with pyomo the building of the @@ -113,7 +160,14 @@ def __init__(self, energysystem, **kwargs): self.name = kwargs.get("name", type(self).__name__) self.es = energysystem - self.timeincrement = kwargs.get("timeincrement", self.es.timeincrement) + + if kwargs.get("timeincrement"): + msg = "Resetting timeincrement from EnergySystem in Model." + warnings.warn(msg, debugging.SuspiciousUsageWarning) + + self.timeincrement = kwargs.get("timeincrement") + else: + self.timeincrement = self.es.timeincrement self.objective_weighting = kwargs.get( "objective_weighting", self.timeincrement @@ -136,11 +190,18 @@ def __init__(self, energysystem, **kwargs): self.dual = None self.rc = None + if discount_rate is not None: + self.discount_rate = discount_rate + elif energysystem.periods is not None: + self._set_discount_rate_with_warning() + else: + pass + if kwargs.get("auto_construct", True): self._construct() def _construct(self): - """Construct a BaseModel by adding parent block sets and variables + """Construct a Model by adding parent block sets and variables as well as child blocks and variables to it. """ self._add_parent_block_sets() @@ -148,217 +209,6 @@ def _construct(self): self._add_child_blocks() self._add_objective() - def _add_parent_block_sets(self): - """Method to create all sets located at the parent block, i.e. in the - model itself, as they are to be shared across all model components. - See the class :py:class:~oemof.solph._models.Model - for the sets created. - """ - pass - - def _add_parent_block_variables(self): - """Method to create all variables located at the parent block, - i.e. the model itself as these variables are to be shared across - all model components. - See the class :py:class:~oemof.solph._models.Model - for the `flow` variable created. - """ - pass - - def _add_child_blocks(self): - """Method to add the defined child blocks for components that have - been grouped in the defined constraint groups. This collects all the - constraints from the buses, components and flows blocks - and adds them to the model. - """ - for group in self._constraint_groups: - # create instance for block - block = group() - # Add block to model - self.add_component(str(block), block) - # create constraints etc. related with block for all nodes - # in the group - block._create(group=self.es.groups.get(group)) - - def _add_objective(self, sense=po.minimize, update=False): - """Method to sum up all objective expressions from the child blocks - that have been created. This method looks for `_objective_expression` - attribute in the block definition and will call this method to add - their return value to the objective function. - """ - if update: - self.del_component("objective") - - expr = 0 - - for block in self.component_data_objects(): - if hasattr(block, "_objective_expression"): - expr += block._objective_expression() - - self.objective = po.Objective(sense=sense, expr=expr) - - def receive_duals(self): - """Method sets solver suffix to extract information about dual - variables from solver. Shadow prices (duals) and reduced costs (rc) are - set as attributes of the model. - """ - # shadow prices - self.dual = po.Suffix(direction=po.Suffix.IMPORT) - # reduced costs - self.rc = po.Suffix(direction=po.Suffix.IMPORT) - - def results(self): - """Returns a nested dictionary of the results of this optimization. - See the processing module for more information on results extraction. - """ - return processing.results(self) - - def solve(self, solver="cbc", solver_io="lp", **kwargs): - r"""Takes care of communication with solver to solve the model. - - Parameters - ---------- - solver : string - solver to be used e.g. "cbc", "glpk", "gurobi", "cplex" - solver_io : string - pyomo solver interface file format: "lp", "python", "nl", etc. - \**kwargs : keyword arguments - Possible keys can be set see below: - - Other Parameters - ---------------- - solve_kwargs : dict - Other arguments for the pyomo.opt.SolverFactory.solve() method - Example : {"tee":True} - cmdline_options : dict - Dictionary with command line options for solver e.g. - {"mipgap":"0.01"} results in "--mipgap 0.01" - \{"interior":" "} results in "--interior" - \Gurobi solver takes numeric parameter values such as - {"method": 2} - """ - solve_kwargs = kwargs.get("solve_kwargs", {}) - solver_cmdline_options = kwargs.get("cmdline_options", {}) - - opt = SolverFactory(solver, solver_io=solver_io) - # set command line options - options = opt.options - for k in solver_cmdline_options: - options[k] = solver_cmdline_options[k] - - solver_results = opt.solve(self, **solve_kwargs) - - status = solver_results["Solver"][0]["Status"] - termination_condition = solver_results["Solver"][0][ - "Termination condition" - ] - - if status == "ok" and termination_condition == "optimal": - logging.info("Optimization successful...") - else: - msg = ( - "Optimization ended with status {0} and termination " - "condition {1}" - ) - warnings.warn( - msg.format(status, termination_condition), UserWarning - ) - self.es.results = solver_results - self.solver_results = solver_results - - return solver_results - - def relax_problem(self): - """Relaxes integer variables to reals of optimization model self.""" - relaxer = RelaxIntegrality() - relaxer._apply_to(self) - - return self - - -class Model(BaseModel): - """An energy system model for operational and/or investment - optimization. - - Parameters - ---------- - energysystem : EnergySystem object or (experimental) list - Object that holds the nodes of an oemof energy system graph. - constraint_groups : list - Solph looks for these groups in the given energy system and uses them - to create the constraints of the optimization problem. - Defaults to `Model.CONSTRAINT_GROUPS` - discount_rate : float or None - The rate used for discounting in a multi-period model. - A 2% discount rate needs to be defined as 0.02. - - Note - ---- - - * The discount rate is only applicable for a multi-period model. - * If you want to work with costs data in nominal terms, - you should specify a discount rate. - * By default, there is a discount rate of 2% in a multi-period model. - * If you want to provide your costs data in real terms, - just specify `discount_rate = 0`, i.e. effectively there will be - no discounting. - - - **The following basic sets are created**: - - NODES - A set with all nodes of the given energy system. - - TIMESTEPS - A set with all timesteps of the given time horizon. - - PERIODS - A set with all investment periods of the given time horizon. - - TIMEINDEX - A set with all time indices of the given time horizon, whereby - time indices are defined as a tuple consisting of the period and the - timestep. E.g. (2, 10) would be timestep 10 (which is exactly the same - as in the TIMESTEPS set) and which is in period 2. - - FLOWS - A 2 dimensional set with all flows. Index: `(source, target)` - - **The following basic variables are created**: - - flow - Flow from source to target indexed by FLOWS, TIMEINDEX. - Note: Bounds of this variable are set depending on attributes of - the corresponding flow object. - - """ - - CONSTRAINT_GROUPS = [ - BusBlock, - ConverterBlock, - InvestmentFlowBlock, - SimpleFlowBlock, - NonConvexFlowBlock, - InvestNonConvexFlowBlock, - ] - - def __init__(self, energysystem, discount_rate=None, **kwargs): - if discount_rate is not None: - self.discount_rate = discount_rate - elif ( - not isinstance(energysystem, list) - and energysystem.periods is not None - ): - self._set_discount_rate_with_warning() - elif ( - isinstance(energysystem, list) - and energysystem[0].periods is not None - ): - self._set_discount_rate_with_warning() - else: - pass - super().__init__(energysystem, **kwargs) - def _set_discount_rate_with_warning(self): """ Sets the discount rate to the standard value and raises a warning. @@ -491,3 +341,112 @@ def _add_parent_block_variables(self): if (o, i) in self.UNIDIRECTIONAL_FLOWS: for t in self.TIMESTEPS: self.flow[o, i, t].setlb(0) + + def _add_child_blocks(self): + """Method to add the defined child blocks for components that have + been grouped in the defined constraint groups. This collects all the + constraints from the buses, components and flows blocks + and adds them to the model. + """ + for group in self._constraint_groups: + block = group() + self.add_component(str(block), block) + + # create constraints etc. related with block for all nodes + # in the group + block._create(group=self.es.groups.get(group)) + + def _add_objective(self, sense=po.minimize, update=False): + """Method to sum up all objective expressions from the child blocks + that have been created. This method looks for `_objective_expression` + attribute in the block definition and will call this method to add + their return value to the objective function. + """ + if update: + self.del_component("objective") + + expr = 0 + + for block in self.component_data_objects(): + if hasattr(block, "_objective_expression"): + expr += block._objective_expression() + + self.objective = po.Objective(sense=sense, expr=expr) + + def receive_duals(self): + """Method sets solver suffix to extract information about dual + variables from solver. Shadow prices (duals) and reduced costs (rc) are + set as attributes of the model. + """ + # shadow prices + self.dual = po.Suffix(direction=po.Suffix.IMPORT) + # reduced costs + self.rc = po.Suffix(direction=po.Suffix.IMPORT) + + def results(self): + """Returns a nested dictionary of the results of this optimization. + See the processing module for more information on results extraction. + """ + return processing.results(self) + + def solve(self, solver="cbc", solver_io="lp", **kwargs): + r"""Takes care of communication with solver to solve the model. + + Parameters + ---------- + solver : string + solver to be used e.g. "cbc", "glpk", "gurobi", "cplex" + solver_io : string + pyomo solver interface file format: "lp", "python", "nl", etc. + \**kwargs : keyword arguments + Possible keys can be set see below: + + Other Parameters + ---------------- + solve_kwargs : dict + Other arguments for the pyomo.opt.SolverFactory.solve() method + Example : {"tee":True} + cmdline_options : dict + Dictionary with command line options for solver e.g. + {"mipgap":"0.01"} results in "--mipgap 0.01" + \{"interior":" "} results in "--interior" + \Gurobi solver takes numeric parameter values such as + {"method": 2} + """ + solve_kwargs = kwargs.get("solve_kwargs", {}) + solver_cmdline_options = kwargs.get("cmdline_options", {}) + + opt = SolverFactory(solver, solver_io=solver_io) + # set command line options + options = opt.options + for k in solver_cmdline_options: + options[k] = solver_cmdline_options[k] + + solver_results = opt.solve(self, **solve_kwargs) + + status = solver_results["Solver"][0]["Status"] + termination_condition = solver_results["Solver"][0][ + "Termination condition" + ] + + if status == "ok" and termination_condition == "optimal": + logging.info("Optimization successful...") + else: + msg = ( + "Optimization ended with status {0} and termination " + "condition {1}" + ) + warnings.warn( + msg.format(status, termination_condition), UserWarning + ) + self.es.results = solver_results + self.solver_results = solver_results + + return solver_results + + def relax_problem(self): + """Relaxes integer variables to reals of optimization model self.""" + relaxer = RelaxIntegrality() + relaxer._apply_to(self) + + return self diff --git a/src/oemof/solph/components/_generic_storage.py b/src/oemof/solph/components/_generic_storage.py index 211c11a60..62a04dc87 100644 --- a/src/oemof/solph/components/_generic_storage.py +++ b/src/oemof/solph/components/_generic_storage.py @@ -564,7 +564,7 @@ def _balanced_storage_rule(block, n): self.STORAGES_BALANCED, rule=_balanced_storage_rule ) - def _power_coupled(block): + def _power_coupled(_): """ Rule definition for constraint to connect the input power and output power @@ -597,9 +597,6 @@ def _objective_expression(self): """ m = self.parent_block() - if not hasattr(self, "STORAGES"): - return 0 - fixed_costs = 0 if m.es.periods is not None: @@ -647,12 +644,12 @@ class GenericInvestmentStorageBlock(ScalarBlock): * :math:`P_i(p, t)` Inflow of the storage - (created in :class:`oemof.solph.models.BaseModel`). + (created in :class:`oemof.solph.models.Model`). * :math:`P_o(p, t)` Outflow of the storage - (created in :class:`oemof.solph.models.BaseModel`). + (created in :class:`oemof.solph.models.Model`). * :math:`E(t)` @@ -1115,11 +1112,9 @@ class GenericInvestmentStorageBlock(ScalarBlock): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - def _create(self, group=None): + def _create(self, group): """Create a storage block for investment modeling""" m = self.parent_block() - if group is None: - return None # ########################## CHECKS ################################### if m.es.periods is not None: @@ -1216,16 +1211,16 @@ def _create(self, group=None): # ######################### Variables ################################ self.storage_content = Var( - self.INVESTSTORAGES, m.TIMESTEPS, within=NonNegativeReals + self.INVESTSTORAGES, m.TIMEPOINTS, within=NonNegativeReals ) - def _storage_investvar_bound_rule(block, n, p): + def _storage_investvar_bound_rule(_, n, p): """ Rule definition to bound the invested storage capacity `invest`. """ if n in self.CONVEX_INVESTSTORAGES: return n.investment.minimum[p], n.investment.maximum[p] - elif n in self.NON_CONVEX_INVESTSTORAGES: + else: # n in self.NON_CONVEX_INVESTSTORAGES return 0, n.investment.maximum[p] self.invest = Var( @@ -1273,8 +1268,6 @@ def _storage_investvar_bound_rule(block, n, p): i = {n: [i for i in n.inputs][0] for n in group} o = {n: [o for o in n.outputs][0] for n in group} - reduced_periods_timeindex = [(p, t) for (p, t) in m.TIMEINDEX if t > 0] - # Handle unit lifetimes def _total_storage_capacity_rule(block): """Rule definition for determining total installed @@ -1464,7 +1457,7 @@ def _old_storage_capacity_rule(block): self.old_rule_build = BuildAction(rule=_old_storage_capacity_rule) - def _initially_empty_rule(block): + def _initially_empty_rule(_): """Ensure storage to be empty initially""" for n in self.INVESTSTORAGES: expr = self.storage_content[n, 0] == 0 @@ -1495,7 +1488,9 @@ def _inv_storage_init_content_max_rule(block, n): def _inv_storage_init_content_fix_rule(block, n): """Constraint for a fixed initial storage capacity.""" - return block.init_content[n] == n.initial_storage_level * ( + return block.storage_content[ + n, 0 + ] == n.initial_storage_level * ( n.investment.existing + block.invest[n, 0] ) @@ -1504,44 +1499,15 @@ def _inv_storage_init_content_fix_rule(block, n): rule=_inv_storage_init_content_fix_rule, ) - def _storage_balance_first_rule(block, n): - """ - Rule definition for the storage balance of every storage n - for the first time step. - """ - expr = 0 - expr += block.storage_content[n, 0] - expr += ( - -block.init_content[n] - * (1 - n.loss_rate[0]) ** m.timeincrement[0] - ) - expr += ( - n.fixed_losses_relative[0] - * (n.investment.existing + self.invest[n, 0]) - * m.timeincrement[0] - ) - expr += n.fixed_losses_absolute[0] * m.timeincrement[0] - expr += ( - -m.flow[i[n], n, 0] * n.inflow_conversion_factor[0] - ) * m.timeincrement[0] - expr += ( - m.flow[n, o[n], 0] / n.outflow_conversion_factor[0] - ) * m.timeincrement[0] - return expr == 0 - - self.balance_first = Constraint( - self.INVESTSTORAGES, rule=_storage_balance_first_rule - ) - def _storage_balance_rule(block, n, p, t): """ - Rule definition for the storage balance of every storage n - for every time step but the first. + Rule definition for the storage balance of every storage n and + every timestep. """ expr = 0 - expr += block.storage_content[n, t] + expr += block.storage_content[n, t + 1] expr += ( - -block.storage_content[n, t - 1] + -block.storage_content[n, t] * (1 - n.loss_rate[t]) ** m.timeincrement[t] ) expr += ( @@ -1560,7 +1526,7 @@ def _storage_balance_rule(block, n, p, t): self.balance = Constraint( self.INVESTSTORAGES, - reduced_periods_timeindex, + m.TIMEINDEX, rule=_storage_balance_rule, ) @@ -1640,40 +1606,7 @@ def _storage_capacity_outflow_invest_rule(block): rule=_storage_capacity_outflow_invest_rule ) - def _max_storage_content_invest_rule(block, n, p, t): - """ - Rule definition for upper bound constraint for the - storage content. - """ - expr = ( - self.storage_content[n, t] - <= self.total[n, p] * n.max_storage_level[t] - ) - return expr - - self.max_storage_content = Constraint( - self.INVESTSTORAGES, - m.TIMEINDEX, - rule=_max_storage_content_invest_rule, - ) - - def _min_storage_content_invest_rule(block, n, p, t): - """ - Rule definition of lower bound constraint for the - storage content. - """ - expr = ( - self.storage_content[n, t] - >= self.total[n, p] * n.min_storage_level[t] - ) - return expr - - # Set the lower bound of the storage content if the attribute exists - self.min_storage_content = Constraint( - self.MIN_INVESTSTORAGES, - m.TIMEINDEX, - rule=_min_storage_content_invest_rule, - ) + self._add_storage_limit_constraints() def maximum_invest_limit(block, n, p): """ @@ -1747,13 +1680,83 @@ def _overall_minimum_investflow_rule(block): rule=_overall_minimum_investflow_rule ) + def _add_storage_limit_constraints(self): + m = self.parent_block() + if m.es.periods is None: + + def _max_storage_content_invest_rule(_, n, t): + """ + Rule definition for upper bound constraint for the + storage content. + """ + expr = ( + self.storage_content[n, t] + <= self.total[n, 0] * n.max_storage_level[t] + ) + return expr + + self.max_storage_content = Constraint( + self.INVESTSTORAGES, + m.TIMEPOINTS, + rule=_max_storage_content_invest_rule, + ) + + def _min_storage_content_invest_rule(_, n, t): + """ + Rule definition of lower bound constraint for the + storage content. + """ + expr = ( + self.storage_content[n, t] + >= self.total[n, 0] * n.min_storage_level[t] + ) + return expr + + self.min_storage_content = Constraint( + self.MIN_INVESTSTORAGES, + m.TIMEPOINTS, + rule=_min_storage_content_invest_rule, + ) + else: + + def _max_storage_content_invest_rule(_, n, p, t): + """ + Rule definition for upper bound constraint for the + storage content. + """ + expr = ( + self.storage_content[n, t] + <= self.total[n, p] * n.max_storage_level[t] + ) + return expr + + self.max_storage_content = Constraint( + self.INVESTSTORAGES, + m.TIMEINDEX, + rule=_max_storage_content_invest_rule, + ) + + def _min_storage_content_invest_rule(_, n, p, t): + """ + Rule definition of lower bound constraint for the + storage content. + """ + expr = ( + self.storage_content[n, t] + >= self.total[n, p] * n.min_storage_level[t] + ) + return expr + + self.min_storage_content = Constraint( + self.MIN_INVESTSTORAGES, + m.TIMEINDEX, + rule=_min_storage_content_invest_rule, + ) + def _objective_expression(self): """Objective expression with fixed and investment costs.""" m = self.parent_block() - if not hasattr(self, "INVESTSTORAGES"): - return 0 - investment_costs = 0 period_investment_costs = {p: 0 for p in m.PERIODS} fixed_costs = 0 diff --git a/src/oemof/solph/constraints/integral_limit.py b/src/oemof/solph/constraints/integral_limit.py index 16258d37e..0544226db 100644 --- a/src/oemof/solph/constraints/integral_limit.py +++ b/src/oemof/solph/constraints/integral_limit.py @@ -51,7 +51,13 @@ def emission_limit_per_period(om, flows=None, limit=None): def generic_integral_limit( - om, keyword, flows=None, upper_limit=None, lower_limit=None, limit=None + om, + keyword, + flows=None, + upper_limit=None, + lower_limit=None, + limit=None, + limit_name=None, ): r"""Set a global limit for flows weighted by attribute named keyword. The attribute named keyword has to be added @@ -72,6 +78,9 @@ def generic_integral_limit( used. keyword : string attribute to consider + limit_name : string + Unique name for the constraint, + Defaults to "integral_limit_{keyword}". upper_limit : numeric Absolute upper limit of keyword attribute for the energy system. lower_limit : numeric @@ -128,10 +137,11 @@ def generic_integral_limit( >>> model = solph.Model(energysystem) >>> flow_with_keyword = {(src1, bel): flow1, } >>> model = solph.constraints.generic_integral_limit( - ... model, "my_factor", flow_with_keyword, limit=777) + ... model, "my_factor", flow_with_keyword, upper_limit=777) """ flows = _check_and_set_flows(om, flows, keyword) - limit_name = "integral_limit_" + keyword + if limit_name is None: + limit_name = "integral_limit_" + keyword if limit is not None: msg = ( diff --git a/src/oemof/solph/flows/_investment_flow_block.py b/src/oemof/solph/flows/_investment_flow_block.py index 99efec0dc..e77ec40b5 100644 --- a/src/oemof/solph/flows/_investment_flow_block.py +++ b/src/oemof/solph/flows/_investment_flow_block.py @@ -178,7 +178,7 @@ def _create_variables(self, _): * :math:`P(p, t)` Actual flow value - (created in :class:`oemof.solph.models.BaseModel`), + (created in :class:`oemof.solph.models.Model`), indexed by tuple of periods p and timestep t * :math:`P_{invest}(p)` diff --git a/src/oemof/solph/flows/_non_convex_flow_block.py b/src/oemof/solph/flows/_non_convex_flow_block.py index aa1cf457c..88eb76850 100644 --- a/src/oemof/solph/flows/_non_convex_flow_block.py +++ b/src/oemof/solph/flows/_non_convex_flow_block.py @@ -325,24 +325,13 @@ def _startup_costs(self): if self.STARTUPFLOWS: m = self.parent_block() - if m.es.periods is None: - for i, o in self.STARTUPFLOWS: - if m.flows[i, o].nonconvex.startup_costs[0] is not None: - startup_costs += sum( - self.startup[i, o, t] - * m.flows[i, o].nonconvex.startup_costs[t] - for t in m.TIMESTEPS - ) - else: - for i, o in self.STARTUPFLOWS: - if m.flows[i, o].nonconvex.startup_costs[0] is not None: - startup_costs += sum( - self.startup[i, o, t] - * m.flows[i, o].nonconvex.startup_costs[t] - * m.objective_weighting[t] - * ((1 + m.discount_rate) ** -m.es.periods_years[p]) - for p, t in m.TIMEINDEX - ) + for i, o in self.STARTUPFLOWS: + if m.flows[i, o].nonconvex.startup_costs[0] is not None: + startup_costs += sum( + self.startup[i, o, t] + * m.flows[i, o].nonconvex.startup_costs[t] + for t in m.TIMESTEPS + ) self.startup_costs = Expression(expr=startup_costs) @@ -359,24 +348,13 @@ def _shutdown_costs(self): if self.SHUTDOWNFLOWS: m = self.parent_block() - if m.es.periods is None: - for i, o in self.SHUTDOWNFLOWS: - if m.flows[i, o].nonconvex.shutdown_costs[0] is not None: - shutdown_costs += sum( - self.shutdown[i, o, t] - * m.flows[i, o].nonconvex.shutdown_costs[t] - for t in m.TIMESTEPS - ) - else: - for i, o in self.SHUTDOWNFLOWS: - if m.flows[i, o].nonconvex.shutdown_costs[0] is not None: - shutdown_costs += sum( - self.shutdown[i, o, t] - * m.flows[i, o].nonconvex.shutdown_costs[t] - * m.objective_weighting[t] - * ((1 + m.discount_rate) ** -m.es.periods_years[p]) - for p, t in m.TIMEINDEX - ) + for i, o in self.SHUTDOWNFLOWS: + if m.flows[i, o].nonconvex.shutdown_costs[0] is not None: + shutdown_costs += sum( + self.shutdown[i, o, t] + * m.flows[i, o].nonconvex.shutdown_costs[t] + for t in m.TIMESTEPS + ) self.shutdown_costs = Expression(expr=shutdown_costs) @@ -393,24 +371,13 @@ def _activity_costs(self): if self.ACTIVITYCOSTFLOWS: m = self.parent_block() - if m.es.periods is None: - for i, o in self.ACTIVITYCOSTFLOWS: - if m.flows[i, o].nonconvex.activity_costs[0] is not None: - activity_costs += sum( - self.status[i, o, t] - * m.flows[i, o].nonconvex.activity_costs[t] - for t in m.TIMESTEPS - ) - else: - for i, o in self.ACTIVITYCOSTFLOWS: - if m.flows[i, o].nonconvex.activity_costs[0] is not None: - activity_costs += sum( - self.status[i, o, t] - * m.flows[i, o].nonconvex.activity_costs[t] - * m.objective_weighting[t] - * ((1 + m.discount_rate) ** -m.es.periods_years[p]) - for p, t in m.TIMEINDEX - ) + for i, o in self.ACTIVITYCOSTFLOWS: + if m.flows[i, o].nonconvex.activity_costs[0] is not None: + activity_costs += sum( + self.status[i, o, t] + * m.flows[i, o].nonconvex.activity_costs[t] + for t in m.TIMESTEPS + ) self.activity_costs = Expression(expr=activity_costs) @@ -427,24 +394,13 @@ def _inactivity_costs(self): if self.INACTIVITYCOSTFLOWS: m = self.parent_block() - if m.es.periods is None: - for i, o in self.INACTIVITYCOSTFLOWS: - if m.flows[i, o].nonconvex.inactivity_costs[0] is not None: - inactivity_costs += sum( - (1 - self.status[i, o, t]) - * m.flows[i, o].nonconvex.inactivity_costs[t] - for t in m.TIMESTEPS - ) - else: - for i, o in self.INACTIVITYCOSTFLOWS: - if m.flows[i, o].nonconvex.inactivity_costs[0] is not None: - inactivity_costs += sum( - (1 - self.status[i, o, t]) - * m.flows[i, o].nonconvex.inactivity_costs[t] - * m.objective_weighting[t] - * ((1 + m.discount_rate) ** -m.es.periods_years[p]) - for p, t in m.TIMEINDEX - ) + for i, o in self.INACTIVITYCOSTFLOWS: + if m.flows[i, o].nonconvex.inactivity_costs[0] is not None: + inactivity_costs += sum( + (1 - self.status[i, o, t]) + * m.flows[i, o].nonconvex.inactivity_costs[t] + for t in m.TIMESTEPS + ) self.inactivity_costs = Expression(expr=inactivity_costs) diff --git a/src/oemof/solph/flows/_simple_flow_block.py b/src/oemof/solph/flows/_simple_flow_block.py index 7cf21bced..dc893592b 100644 --- a/src/oemof/solph/flows/_simple_flow_block.py +++ b/src/oemof/solph/flows/_simple_flow_block.py @@ -231,7 +231,7 @@ def _flow_full_load_time_max_rule(model): rule=_flow_full_load_time_max_rule ) - def _flow_full_load_time_min_rule(model): + def _flow_full_load_time_min_rule(_): """Rule definition for build action of min. sum flow constraint.""" for inp, out in self.FULL_LOAD_TIME_MIN_FLOWS: lhs = sum( @@ -251,7 +251,7 @@ def _flow_full_load_time_min_rule(model): rule=_flow_full_load_time_min_rule ) - def _positive_gradient_flow_rule(model): + def _positive_gradient_flow_rule(_): """Rule definition for positive gradient constraint.""" for inp, out in self.POSITIVE_GRADIENT_FLOWS: for index in range(1, len(m.TIMESTEPS) + 1): diff --git a/src/oemof/solph/processing.py b/src/oemof/solph/processing.py index 6623aa5be..86e31744a 100644 --- a/src/oemof/solph/processing.py +++ b/src/oemof/solph/processing.py @@ -218,7 +218,7 @@ def results(model, remove_last_time_point=False): Parameters ---------- - model : oemof.solph.BaseModel + model : oemof.solph.Model A solved oemof.solph model. remove_last_time_point : bool The last time point of all TIMEPOINT variables is removed to get the diff --git a/tests/constraint_tests.py b/tests/constraint_tests.py deleted file mode 100644 index e93e7dc0f..000000000 --- a/tests/constraint_tests.py +++ /dev/null @@ -1,2040 +0,0 @@ -# -*- coding: utf-8 - - -"""Test the created constraints against approved constraints. - -This file is part of project oemof (github.com/oemof/oemof). It's copyrighted -by the contributors recorded in the version control history of the file, -available from its original location oemof/tests/constraint_tests.py - -SPDX-License-Identifier: MIT -""" - -import logging -import re -from os import path as ospath - -import pandas as pd -import pytest -from pyomo.repn.tests.lp_diff import lp_diff - -from oemof import solph - -logging.disable(logging.INFO) - - -class TestsConstraint: - @classmethod - def setup_class(cls): - cls.objective_pattern = re.compile( - r"^objective.*(?=s\.t\.)", re.DOTALL | re.MULTILINE - ) - - cls.date_time_index = pd.date_range("1/1/2012", periods=3, freq="h") - - cls.tmppath = solph.helpers.extend_basic_path("tmp") - logging.info(cls.tmppath) - - def setup_method(self): - self.energysystem = solph.EnergySystem( - groupings=solph.GROUPINGS, - timeindex=self.date_time_index, - infer_last_interval=True, - ) - - def get_om(self): - return solph.Model( - self.energysystem, timeindex=self.energysystem.timeindex - ) - - def compare_lp_files(self, filename, ignored=None, my_om=None): - r"""Compare lp-files to check constraints generated within solph. - - An lp-file is being generated automatically when the tests are - executed. Make sure that you create an empty file first and - transfer the content from the one that has been created automatically - into this one afterwards. Please ensure that the content is being - checked carefully. Otherwise, errors are included within the code base. - """ - if my_om is None: - om = self.get_om() - else: - om = my_om - tmp_filename = filename.replace(".lp", "") + "_tmp.lp" - new_filename = ospath.join(self.tmppath, tmp_filename) - om.write(new_filename, io_options={"symbolic_solver_labels": True}) - logging.info("Comparing with file: {0}".format(filename)) - with open(ospath.join(self.tmppath, tmp_filename)) as generated_file: - with open( - ospath.join( - ospath.dirname(ospath.realpath(__file__)), - "lp_files", - filename, - ) - ) as expected_file: - exp = expected_file.read() - gen = generated_file.read() - - # lp_diff returns two arrays of strings with cleaned lp syntax - # It automatically prints the diff - exp_diff, gen_diff = lp_diff(exp, gen) - - # sometimes, 0.0 is printed, sometimes 0, harmonise that - exp_diff = [ - line + " ".replace(" 0.0 ", " 0 ") for line in exp_diff - ] - gen_diff = [ - line + " ".replace(" 0.0 ", " 0 ") for line in gen_diff - ] - - assert len(exp_diff) == len(gen_diff) - - # Created the LP files do not have a reproducible - # order of the lines. Thus, we sort the lines. - for exp, gen in zip(sorted(exp_diff), sorted(gen_diff)): - assert ( - exp == gen - ), "Failed matching expected with generated lp file." - - def test_linear_converter(self): - """Constraint test of a Converter without Investment.""" - bgas = solph.buses.Bus(label="gas") - - bel = solph.buses.Bus(label="electricity") - - converter = solph.components.Converter( - label="powerplantGas", - inputs={bgas: solph.flows.Flow()}, - outputs={ - bel: solph.flows.Flow(nominal_value=10e10, variable_costs=50) - }, - conversion_factors={bel: 0.58}, - ) - self.energysystem.add(bgas, bel, converter) - - self.compare_lp_files("linear_converter.lp") - - def test_linear_converter_invest(self): - """Constraint test of a Converter with Investment.""" - - bgas = solph.buses.Bus(label="gas") - - bel = solph.buses.Bus(label="electricity") - - converter = solph.components.Converter( - label="powerplant_gas", - inputs={bgas: solph.flows.Flow()}, - outputs={ - bel: solph.flows.Flow( - variable_costs=50, - nominal_value=solph.Investment(maximum=1000, ep_costs=20), - ) - }, - conversion_factors={bel: 0.58}, - ) - self.energysystem.add(bgas, bel, converter) - - self.compare_lp_files("linear_converter_invest.lp") - - def test_nonconvex_invest_converter(self): - """Non-convex invest flow with offset, without minimum.""" - bfuel = solph.buses.Bus(label="fuelBus") - bel = solph.buses.Bus(label="electricityBus") - - converter = solph.components.Converter( - label="converter_nonconvex_invest", - inputs={bfuel: solph.flows.Flow()}, - outputs={ - bel: solph.flows.Flow( - variable_costs=25, - min=0.25, - max=0.5, - nominal_value=solph.Investment( - ep_costs=500, - maximum=1234, - ), - nonconvex=solph.NonConvex(), - ) - }, - conversion_factors={bel: 0.5}, - ) - self.energysystem.add(bfuel, bel, converter) - self.compare_lp_files("flow_nonconvex_invest_bounded_converter.lp") - - def test_max_source_min_sink(self): - """ """ - bel = solph.buses.Bus(label="electricityBus") - - wind = solph.components.Source( - label="wind", - outputs={ - bel: solph.flows.Flow(nominal_value=54, max=(0.85, 0.95, 0.61)) - }, - ) - - demand = solph.components.Sink( - label="minDemand", - inputs={ - bel: solph.flows.Flow( - nominal_value=54, min=(0.84, 0.94, 0.59), variable_costs=14 - ) - }, - ) - self.energysystem.add(bel, wind, demand) - self.compare_lp_files("max_source_min_sink.lp") - - def test_fixed_source_variable_sink(self): - """Constraint test with a fixed source and a variable sink.""" - - bel = solph.buses.Bus(label="electricityBus") - - wind = solph.components.Source( - label="wind", - outputs={ - bel: solph.flows.Flow( - fix=[0.43, 0.72, 0.29], nominal_value=1e6 - ) - }, - ) - - excess = solph.components.Sink( - label="excess", inputs={bel: solph.flows.Flow(variable_costs=40)} - ) - - self.energysystem.add(bel, wind, excess) - self.compare_lp_files("fixed_source_variable_sink.lp") - - def test_nominal_value_to_zero(self): - """If the nominal value is set to zero nothing should happen.""" - bel = solph.buses.Bus(label="electricityBus") - - s1 = solph.components.Source( - label="s1", outputs={bel: solph.flows.Flow(nominal_value=0)} - ) - self.energysystem.add(bel, s1) - self.compare_lp_files("nominal_value_to_zero.lp") - - def test_fixed_source_invest_sink(self): - """ - Wrong constraints for fixed source + invest sink w. - `full_load_time_max`. - """ - - bel = solph.buses.Bus(label="electricityBus") - - wind = solph.components.Source( - label="wind", - outputs={ - bel: solph.flows.Flow(fix=[12, 16, 14], nominal_value=1e6) - }, - ) - - excess = solph.components.Sink( - label="excess", - inputs={ - bel: solph.flows.Flow( - full_load_time_max=2.3, - variable_costs=25, - max=0.8, - nominal_value=solph.Investment( - ep_costs=500, maximum=1e6, existing=50 - ), - ) - }, - ) - self.energysystem.add(bel, wind, excess) - self.compare_lp_files("fixed_source_invest_sink.lp") - - def test_invest_source_fixed_sink(self): - """Constraint test with a fixed sink and a dispatch invest source.""" - - bel = solph.buses.Bus(label="electricityBus") - - pv = solph.components.Source( - label="pv", - outputs={ - bel: solph.flows.Flow( - max=[45, 83, 65], - variable_costs=13, - nominal_value=solph.Investment(ep_costs=123), - ) - }, - ) - - excess = solph.components.Sink( - label="excess", - inputs={ - bel: solph.flows.Flow(fix=[0.5, 0.8, 0.3], nominal_value=1e5) - }, - ) - self.energysystem.add(bel, pv, excess) - self.compare_lp_files("invest_source_fixed_sink.lp") - - def test_storage(self): - """ """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage_no_invest", - inputs={ - bel: solph.flows.Flow(nominal_value=16667, variable_costs=56) - }, - outputs={ - bel: solph.flows.Flow(nominal_value=16667, variable_costs=24) - }, - nominal_storage_capacity=1e5, - loss_rate=0.13, - storage_costs=[0.1, 0.2, 0.3, 0.4], - inflow_conversion_factor=0.97, - outflow_conversion_factor=0.86, - initial_storage_level=0.4, - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage.lp") - - def test_storage_invest_1(self): - """All invest variables are coupled. The invest variables of the Flows - will be created during the initialisation of the storage e.g. battery - """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage1", - inputs={bel: solph.flows.Flow(variable_costs=56)}, - outputs={bel: solph.flows.Flow(variable_costs=24)}, - nominal_storage_capacity=solph.Investment( - ep_costs=145, maximum=234 - ), - loss_rate=0.13, - max_storage_level=0.9, - min_storage_level=0.1, - invest_relation_input_capacity=1 / 6, - invest_relation_output_capacity=1 / 6, - inflow_conversion_factor=0.97, - outflow_conversion_factor=0.86, - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_1.lp") - - def test_storage_invest_2(self): - """All can be free extended to their own cost.""" - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage2", - inputs={ - bel: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=99) - ) - }, - outputs={ - bel: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=9) - ) - }, - nominal_storage_capacity=solph.Investment(ep_costs=145), - initial_storage_level=0.5, - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_2.lp") - - def test_storage_invest_3(self): - """The storage capacity is fixed, but the Flows can be extended. - e.g. PHES with a fixed basin but the pump and the turbine can be - adapted - """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage3", - inputs={ - bel: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=99) - ) - }, - outputs={ - bel: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=9) - ) - }, - nominal_storage_capacity=5000, - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_3.lp") - - def test_storage_invest_4(self): - """Only the storage capacity can be extended.""" - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage4", - inputs={bel: solph.flows.Flow(nominal_value=80)}, - outputs={bel: solph.flows.Flow(nominal_value=100)}, - nominal_storage_capacity=solph.Investment( - ep_costs=145, maximum=500 - ), - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_4.lp") - - def test_storage_invest_5(self): - """The storage capacity is fixed, but the Flows can be extended. - e.g. PHES with a fixed basin but the pump and the turbine can be - adapted. The installed capacity of the pump is 10 % bigger than the - the capacity of the turbine due to 'invest_relation_input_output=1.1'. - """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage5", - inputs={ - bel: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=99, existing=110) - ) - }, - outputs={ - bel: solph.flows.Flow( - nominal_value=solph.Investment(existing=100) - ) - }, - invest_relation_input_output=1.1, - nominal_storage_capacity=10000, - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_5.lp") - - def test_storage_invest_6(self): - """Like test_storage_invest_5 but there can also be an investment in - the basin. - """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage6", - inputs={ - bel: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=99, existing=110) - ) - }, - outputs={ - bel: solph.flows.Flow( - nominal_value=solph.Investment(existing=100) - ) - }, - invest_relation_input_output=1.1, - nominal_storage_capacity=solph.Investment( - ep_costs=145, existing=10000 - ), - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_6.lp") - - def test_storage_minimum_invest(self): - """All invest variables are coupled. The invest variables of the Flows - will be created during the initialisation of the storage e.g. battery - """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage1", - inputs={bel: solph.flows.Flow()}, - outputs={bel: solph.flows.Flow()}, - nominal_storage_capacity=solph.Investment( - ep_costs=145, minimum=100, maximum=200 - ), - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_minimum.lp") - - def test_storage_unbalanced(self): - """Testing a unbalanced storage (e.g. battery).""" - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage1", - inputs={bel: solph.flows.Flow()}, - outputs={bel: solph.flows.Flow()}, - nominal_storage_capacity=1111, - initial_storage_level=None, - balanced=False, - invest_relation_input_capacity=1, - invest_relation_output_capacity=1, - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_unbalanced.lp") - - def test_storage_invest_unbalanced(self): - """Testing a unbalanced storage (e.g. battery).""" - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage1", - inputs={bel: solph.flows.Flow()}, - outputs={bel: solph.flows.Flow()}, - initial_storage_level=0.5, - balanced=False, - invest_relation_input_capacity=1, - invest_relation_output_capacity=1, - nominal_storage_capacity=solph.Investment(ep_costs=145), - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_unbalanced.lp") - - def test_storage_fixed_losses(self): - """ """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage_no_invest", - inputs={ - bel: solph.flows.Flow(nominal_value=16667, variable_costs=56) - }, - outputs={ - bel: solph.flows.Flow(nominal_value=16667, variable_costs=24) - }, - nominal_storage_capacity=1e5, - loss_rate=0.13, - fixed_losses_relative=0.01, - fixed_losses_absolute=3, - inflow_conversion_factor=0.97, - outflow_conversion_factor=0.86, - initial_storage_level=0.4, - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_fixed_losses.lp") - - def test_storage_invest_1_fixed_losses(self): - """All invest variables are coupled. The invest variables of the Flows - will be created during the initialisation of the storage e.g. battery - """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage1", - inputs={bel: solph.flows.Flow(variable_costs=56)}, - outputs={bel: solph.flows.Flow(variable_costs=24)}, - loss_rate=0.13, - fixed_losses_relative=0.01, - fixed_losses_absolute=3, - max_storage_level=0.9, - min_storage_level=0.1, - invest_relation_input_capacity=1 / 6, - invest_relation_output_capacity=1 / 6, - inflow_conversion_factor=0.97, - outflow_conversion_factor=0.86, - nominal_storage_capacity=solph.Investment( - ep_costs=145, minimum=1, maximum=234 - ), - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_1_fixed_losses.lp") - - def test_converter(self): - """Constraint test of a LinearN1Converter without Investment.""" - bgas = solph.buses.Bus(label="gasBus") - bbms = solph.buses.Bus(label="biomassBus") - bel = solph.buses.Bus(label="electricityBus") - bth = solph.buses.Bus(label="thermalBus") - - converter = solph.components.Converter( - label="powerplantGasBiomass", - inputs={bbms: solph.flows.Flow(), bgas: solph.flows.Flow()}, - outputs={ - bel: solph.flows.Flow(variable_costs=50), - bth: solph.flows.Flow(nominal_value=5e10, variable_costs=20), - }, - conversion_factors={bgas: 0.4, bbms: 0.1, bel: 0.3, bth: 0.5}, - ) - - self.energysystem.add(bgas, bbms, bel, bth, converter) - - self.compare_lp_files("converter.lp") - - def test_converter_invest(self): - """Constraint test of a LinearN1Converter with Investment.""" - - bgas = solph.buses.Bus(label="gasBus") - bcoal = solph.buses.Bus(label="coalBus") - bel = solph.buses.Bus(label="electricityBus") - bth = solph.buses.Bus(label="thermalBus") - - converter = solph.components.Converter( - label="powerplant_gas_coal", - inputs={bgas: solph.flows.Flow(), bcoal: solph.flows.Flow()}, - outputs={ - bel: solph.flows.Flow( - variable_costs=50, - nominal_value=solph.Investment(maximum=1000, ep_costs=20), - ), - bth: solph.flows.Flow(variable_costs=20), - }, - conversion_factors={bgas: 0.58, bcoal: 0.2, bel: 0.3, bth: 0.5}, - ) - self.energysystem.add(bgas, bcoal, bel, bth, converter) - - self.compare_lp_files("converter_invest.lp") - - def test_converter_invest_with_existing(self): - """Constraint test of a LinearN1Converter with Investment.""" - - bgas = solph.buses.Bus(label="gasBus") - bcoal = solph.buses.Bus(label="coalBus") - bel = solph.buses.Bus(label="electricityBus") - bth = solph.buses.Bus(label="thermalBus") - - converter = solph.components.Converter( - label="powerplant_gas_coal", - inputs={bgas: solph.flows.Flow(), bcoal: solph.flows.Flow()}, - outputs={ - bel: solph.flows.Flow( - variable_costs=50, - nominal_value=solph.Investment( - maximum=1000, ep_costs=20, existing=200 - ), - ), - bth: solph.flows.Flow(variable_costs=20), - }, - conversion_factors={bgas: 0.58, bcoal: 0.2, bel: 0.3, bth: 0.5}, - ) - self.energysystem.add(bgas, bcoal, bel, bth, converter) - - self.compare_lp_files("converter_invest_with_existing.lp") - - def test_linear_converter_chp(self): - """ - Constraint test of a Converter without Investment (two outputs). - """ - bgas = solph.buses.Bus(label="gasBus") - bheat = solph.buses.Bus(label="heatBus") - bel = solph.buses.Bus(label="electricityBus") - - converter = solph.components.Converter( - label="CHPpowerplantGas", - inputs={ - bgas: solph.flows.Flow(nominal_value=1e11, variable_costs=50) - }, - outputs={bel: solph.flows.Flow(), bheat: solph.flows.Flow()}, - conversion_factors={bel: 0.4, bheat: 0.5}, - ) - self.energysystem.add(bgas, bheat, bel, converter) - - self.compare_lp_files("linear_converter_chp.lp") - - def test_linear_converter_chp_invest(self): - """Constraint test of a Converter with Investment (two outputs).""" - - bgas = solph.buses.Bus(label="gasBus") - bheat = solph.buses.Bus(label="heatBus") - bel = solph.buses.Bus(label="electricityBus") - - converter = solph.components.Converter( - label="chp_powerplant_gas", - inputs={ - bgas: solph.flows.Flow( - variable_costs=50, - nominal_value=solph.Investment(maximum=1000, ep_costs=20), - ) - }, - outputs={bel: solph.flows.Flow(), bheat: solph.flows.Flow()}, - conversion_factors={bel: 0.4, bheat: 0.5}, - ) - self.energysystem.add(bgas, bheat, bel, converter) - - self.compare_lp_files("linear_converter_chp_invest.lp") - - def test_link(self): - """Constraint test of a Link.""" - bus_el_1 = solph.buses.Bus(label="el1") - bus_el_2 = solph.buses.Bus(label="el2") - - link = solph.components.Link( - label="link", - inputs={ - bus_el_1: solph.flows.Flow(nominal_value=4), - bus_el_2: solph.flows.Flow(nominal_value=2), - }, - outputs={ - bus_el_1: solph.flows.Flow(), - bus_el_2: solph.flows.Flow(), - }, - conversion_factors={ - (bus_el_1, bus_el_2): 0.75, - (bus_el_2, bus_el_1): 0.5, - }, - ) - self.energysystem.add(bus_el_1, bus_el_2, link) - self.compare_lp_files("link.lp") - - def test_variable_chp(self): - """Test ExctractionTurbineCHP basic functionality""" - bel = solph.buses.Bus(label="electricityBus") - bth = solph.buses.Bus(label="heatBus") - bgas = solph.buses.Bus(label="commodityBus") - - chp1 = solph.components.ExtractionTurbineCHP( - label="variable_chp_gas1", - inputs={bgas: solph.flows.Flow(nominal_value=100)}, - outputs={bel: solph.flows.Flow(), bth: solph.flows.Flow()}, - conversion_factors={bel: 0.3, bth: 0.5}, - conversion_factor_full_condensation={bel: 0.5}, - ) - - chp2 = solph.components.ExtractionTurbineCHP( - label="variable_chp_gas2", - inputs={bgas: solph.flows.Flow(nominal_value=100)}, - outputs={bel: solph.flows.Flow(), bth: solph.flows.Flow()}, - conversion_factors={bel: 0.3, bth: 0.5}, - conversion_factor_full_condensation={bel: 0.5}, - ) - self.energysystem.add(bel, bth, bgas, chp1, chp2) - self.compare_lp_files("variable_chp.lp") - - def test_generic_invest_limit(self): - """Test a generic keyword investment limit""" - bus = solph.buses.Bus(label="bus_1") - - source_0 = solph.components.Source( - label="source_0", - outputs={ - bus: solph.flows.Flow( - nominal_value=solph.Investment( - ep_costs=50, - custom_attributes={"space": 4}, - ) - ) - }, - ) - - source_1 = solph.components.Source( - label="source_1", - outputs={ - bus: solph.flows.Flow( - nominal_value=solph.Investment( - ep_costs=100, custom_attributes={"space": 1} - ), - ) - }, - ) - - source_2 = solph.components.Source( - label="source_2", - outputs={ - bus: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=75) - ) - }, - ) - - self.energysystem.add(bus, source_0, source_1, source_2) - - om = self.get_om() - - om = solph.constraints.additional_investment_flow_limit( - om, "space", limit=20 - ) - - self.compare_lp_files("generic_invest_limit.lp", my_om=om) - - def test_emission_constraints(self): - """Test emissions constraint""" - bel = solph.buses.Bus(label="electricityBus") - - source1 = solph.components.Source( - label="source1", - outputs={ - bel: solph.flows.Flow( - nominal_value=100, - custom_attributes={"emission_factor": [0.5, -1.0, 2.0]}, - ) - }, - ) - source2 = solph.components.Source( - label="source2", - outputs={ - bel: solph.flows.Flow( - nominal_value=100, - custom_attributes={"emission_factor": 3.5}, - ) - }, - ) - - # Should be ignored because the emission attribute is not defined. - source3 = solph.components.Source( - label="source3", outputs={bel: solph.flows.Flow(nominal_value=100)} - ) - - self.energysystem.add(bel, source1, source2, source3) - - om = self.get_om() - - solph.constraints.emission_limit(om, limit=777) - - self.compare_lp_files("emission_limit.lp", my_om=om) - - def test_flow_count_limit(self): - """Test limiting the count of nonconvex flows""" - bel = solph.buses.Bus(label="electricityBus") - - source1 = solph.components.Source( - label="source1", - outputs={ - bel: solph.flows.Flow( - nonconvex=solph.NonConvex(), - nominal_value=100, - custom_attributes={"emission_factor": [0.5, -1.0, 2.0]}, - ) - }, - ) - source2 = solph.components.Source( - label="source2", - outputs={ - bel: solph.flows.Flow( - nonconvex=solph.NonConvex(), - nominal_value=100, - custom_attributes={"emission_factor": 3.5}, - ) - }, - ) - - # Should be ignored because emission_factor is not defined. - source3 = solph.components.Source( - label="source3", - outputs={ - bel: solph.flows.Flow( - nonconvex=solph.NonConvex(), nominal_value=100 - ) - }, - ) - - # Should be ignored because it is not NonConvex. - source4 = solph.components.Source( - label="source4", - outputs={ - bel: solph.flows.Flow( - min=0.3, - nominal_value=100, - custom_attributes={"emission_factor": 1.5}, - ) - }, - ) - - self.energysystem.add(bel, source1, source2, source3, source4) - - om = self.get_om() - - # one of the two flows has to be active - solph.constraints.limit_active_flow_count_by_keyword( - om, "emission_factor", lower_limit=1, upper_limit=2 - ) - - self.compare_lp_files("flow_count_limit.lp", my_om=om) - - def test_shared_limit(self): - """Test an overall limit shared among components""" - b1 = solph.buses.Bus(label="bus") - - storage1 = solph.components.GenericStorage( - label="storage1", - nominal_storage_capacity=5, - inputs={b1: solph.flows.Flow()}, - outputs={b1: solph.flows.Flow()}, - ) - storage2 = solph.components.GenericStorage( - label="storage2", - nominal_storage_capacity=5, - inputs={b1: solph.flows.Flow()}, - outputs={b1: solph.flows.Flow()}, - ) - - self.energysystem.add(b1, storage1, storage2) - - model = self.get_om() - - components = [storage1, storage2] - - solph.constraints.shared_limit( - model, - model.GenericStorageBlock.storage_content, - "limit_storage", - components, - [0.5, 1.25], - upper_limit=7, - ) - - self.compare_lp_files("shared_limit.lp", my_om=model) - - def test_flow_without_emission_for_emission_constraint(self): - """Test AttributeError if passed flow misses emission attribute""" - with pytest.raises(AttributeError): - bel = solph.buses.Bus(label="electricityBus") - source1 = solph.components.Source( - label="source1", - outputs={ - bel: solph.flows.Flow( - nominal_value=100, - custom_attributes={"emission_factor": 0.8}, - ) - }, - ) - source2 = solph.components.Source( - label="source2", - outputs={bel: solph.flows.Flow(nominal_value=100)}, - ) - self.energysystem.add(bel, source1, source2) - om = self.get_om() - solph.constraints.emission_limit(om, om.flows, limit=777) - - def test_flow_without_emission_for_emission_constraint_no_error(self): - """Test that no error is thrown if no flows are explicitly passed""" - bel = solph.buses.Bus(label="electricityBus") - source1 = solph.components.Source( - label="source1", - outputs={ - bel: solph.flows.Flow( - nominal_value=100, - custom_attributes={"emission_factor": 0.8}, - ) - }, - ) - source2 = solph.components.Source( - label="source2", outputs={bel: solph.flows.Flow(nominal_value=100)} - ) - self.energysystem.add(bel, source1, source2) - om = self.get_om() - solph.constraints.emission_limit(om, limit=777) - - self.compare_lp_files("emission_limit_no_error.lp", my_om=om) - - def test_flow_without_emission_for_emission_constraint_lower(self): - """Test that no error is thrown if no flows are explicitly passed""" - bel = solph.buses.Bus(label="electricityBus") - source1 = solph.components.Source( - label="source1", - outputs={ - bel: solph.flows.Flow( - nominal_value=100, - custom_attributes={"emission_factor": 0.8}, - ) - }, - ) - source2 = solph.components.Source( - label="source2", outputs={bel: solph.flows.Flow(nominal_value=100)} - ) - self.energysystem.add(bel, source1, source2) - om = self.get_om() - solph.constraints.generic_integral_limit( - om, keyword="emission_factor", lower_limit=777 - ) - - self.compare_lp_files("emission_limit_lower.lp", my_om=om) - - def test_equate_variables_constraint(self): - """Testing the equate_variables function in the constraint module.""" - bus1 = solph.buses.Bus(label="Bus1") - storage = solph.components.GenericStorage( - label="storage", - invest_relation_input_capacity=0.2, - invest_relation_output_capacity=0.2, - inputs={bus1: solph.flows.Flow()}, - outputs={bus1: solph.flows.Flow()}, - nominal_storage_capacity=solph.Investment(ep_costs=145), - ) - sink = solph.components.Sink( - label="Sink", - inputs={ - bus1: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=500) - ) - }, - ) - source = solph.components.Source( - label="Source", - outputs={ - bus1: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=123) - ) - }, - ) - self.energysystem.add(bus1, storage, sink, source) - om = self.get_om() - solph.constraints.equate_variables( - om, - om.InvestmentFlowBlock.invest[source, bus1, 0], - om.InvestmentFlowBlock.invest[bus1, sink, 0], - 2, - ) - solph.constraints.equate_variables( - om, - om.InvestmentFlowBlock.invest[source, bus1, 0], - om.GenericInvestmentStorageBlock.invest[storage, 0], - ) - - self.compare_lp_files("connect_investment.lp", my_om=om) - - def test_equate_flows_constraint(self): - """Testing the equate_flows function in the constraint module.""" - bus1 = solph.buses.Bus(label="Bus1") - sink = solph.components.Sink( - label="Sink", - inputs={ - bus1: solph.flows.Flow( - nominal_value=300, - variable_costs=2, - custom_attributes={"outgoing_flow": True}, - ) - }, - ) - source1 = solph.components.Source( - label="Source1", - outputs={ - bus1: solph.flows.Flow( - nominal_value=400, - variable_costs=2, - custom_attributes={"incoming_flow": True}, - ) - }, - ) - source2 = solph.components.Source( - label="Source2", - outputs={ - bus1: solph.flows.Flow( - nominal_value=200, - variable_costs=10, - custom_attributes={"incoming_flow": True}, - ) - }, - ) - self.energysystem.add(bus1, sink, source1, source2) - om = self.get_om() - solph.constraints.equate_flows_by_keyword( - om, - "incoming_flow", - "outgoing_flow", - 2, - ) - self.compare_lp_files("equate_flows.lp", my_om=om) - - def test_gradient(self): - """Testing gradient constraints""" - bel = solph.buses.Bus(label="electricityBus") - - pp = solph.components.Source( - label="powerplant", - outputs={ - bel: solph.flows.Flow( - nominal_value=999, - variable_costs=23, - positive_gradient_limit=0.03, - negative_gradient_limit=0.05, - ) - }, - ) - self.energysystem.add(bel, pp) - self.compare_lp_files("source_with_gradient.lp") - - def test_nonconvex_gradient(self): - """Testing gradient constraints""" - bel = solph.buses.Bus(label="electricityBus") - - pp = solph.components.Source( - label="powerplant", - outputs={ - bel: solph.flows.Flow( - nominal_value=999, - variable_costs=23, - nonconvex=solph.NonConvex( - positive_gradient_limit=0.03, - negative_gradient_limit=0.05, - ), - ) - }, - ) - self.energysystem.add(bel, pp) - self.compare_lp_files("source_with_nonconvex_gradient.lp") - - def test_nonconvex_positive_gradient_error(self): - """Testing nonconvex positive gradient error.""" - msg = ( - "You specified a positive gradient in your nonconvex " - "option. This cannot be combined with a positive or a " - "negative gradient for a standard flow!" - ) - - with pytest.raises(ValueError, match=msg): - solph.flows.Flow( - nonconvex=solph.NonConvex( - positive_gradient_limit=0.03, - ), - positive_gradient_limit=0.03, - ) - - def test_nonconvex_negative_gradient_error(self): - """Testing nonconvex positive gradient error.""" - msg = ( - "You specified a negative gradient in your nonconvex " - "option. This cannot be combined with a positive or a " - "negative gradient for a standard flow!" - ) - - with pytest.raises(ValueError, match=msg): - solph.flows.Flow( - nonconvex=solph.NonConvex( - negative_gradient_limit=0.03, - ), - negative_gradient_limit=0.03, - ) - - def test_investment_limit(self): - """Testing the investment_limit function in the constraint module.""" - bus1 = solph.buses.Bus(label="Bus1") - storage = solph.components.GenericStorage( - label="storage_invest_limit", - invest_relation_input_capacity=0.2, - invest_relation_output_capacity=0.2, - inputs={bus1: solph.flows.Flow()}, - outputs={bus1: solph.flows.Flow()}, - nominal_storage_capacity=solph.Investment(ep_costs=145), - ) - source = solph.components.Source( - label="Source", - outputs={ - bus1: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=123) - ) - }, - ) - self.energysystem.add(bus1, storage, source) - om = self.get_om() - solph.constraints.investment_limit(om, limit=900) - - self.compare_lp_files("investment_limit.lp", my_om=om) - - def test_investment_limit_with_dsm1(self): - """Testing the investment_limit function in the constraint module.""" - bus1 = solph.buses.Bus(label="Bus1") - source = solph.components.Source( - label="Source", - outputs={ - bus1: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=123) - ) - }, - ) - dsm = solph.components.experimental.SinkDSM( - label="sink_dsm_DIW", - approach="DIW", - inputs={bus1: solph.flows.Flow()}, - demand=[1] * 3, - capacity_up=[0.5] * 3, - capacity_down=[0.5] * 3, - max_demand=[1] * 3, - delay_time=1, - cost_dsm_down_shift=0.5, - cost_dsm_up=0.5, - shed_eligibility=False, - investment=solph.Investment( - ep_costs=100, existing=50, minimum=33, maximum=100 - ), - ) - self.energysystem.add(bus1, source, dsm) - om = self.get_om() - solph.constraints.investment_limit(om, limit=900) - - self.compare_lp_files("investment_limit_with_dsm_DIW.lp", my_om=om) - - def test_investment_limit_with_dsm2(self): - """Testing the investment_limit function in the constraint module.""" - bus1 = solph.buses.Bus(label="Bus1") - source = solph.components.Source( - label="Source", - outputs={ - bus1: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=123) - ) - }, - ) - dsm = solph.components.experimental.SinkDSM( - label="sink_dsm_DLR", - approach="DLR", - inputs={bus1: solph.flows.Flow()}, - demand=[1] * 3, - capacity_up=[0.5] * 3, - capacity_down=[0.5] * 3, - max_demand=[1] * 3, - delay_time=1, - shift_time=1, - cost_dsm_down_shift=0.5, - cost_dsm_up=0.5, - shed_eligibility=False, - investment=solph.Investment( - ep_costs=100, existing=50, minimum=33, maximum=100 - ), - ) - self.energysystem.add(bus1, source, dsm) - om = self.get_om() - solph.constraints.investment_limit(om, limit=900) - - self.compare_lp_files("investment_limit_with_dsm_DLR.lp", my_om=om) - - def test_investment_limit_with_dsm3(self): - """Testing the investment_limit function in the constraint module.""" - bus1 = solph.buses.Bus(label="Bus1") - source = solph.components.Source( - label="Source", - outputs={ - bus1: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=123) - ) - }, - ) - dsm = solph.components.experimental.SinkDSM( - label="sink_dsm_oemof", - approach="oemof", - inputs={bus1: solph.flows.Flow()}, - demand=[1] * 3, - capacity_up=[0.5] * 3, - capacity_down=[0.5] * 3, - max_demand=[1] * 3, - delay_time=1, - shift_interval=2, - cost_dsm_down_shift=0.5, - cost_dsm_up=0.5, - shed_eligibility=False, - investment=solph.Investment( - ep_costs=100, existing=50, minimum=33, maximum=100 - ), - ) - self.energysystem.add(bus1, source, dsm) - om = self.get_om() - solph.constraints.investment_limit(om, limit=900) - - self.compare_lp_files("investment_limit_with_dsm_oemof.lp", my_om=om) - - def test_investment_limit_per_period_error_no_multi_period(self): - """Test error being thrown if model is not a multi-period model""" - bus1 = solph.buses.Bus(label="Bus1") - solph.components.GenericStorage( - label="storage_invest_limit", - invest_relation_input_capacity=0.2, - invest_relation_output_capacity=0.2, - inputs={bus1: solph.flows.Flow()}, - outputs={bus1: solph.flows.Flow()}, - nominal_storage_capacity=solph.Investment(ep_costs=145), - ) - solph.components.Source( - label="Source", - outputs={ - bus1: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=123) - ) - }, - ) - om = self.get_om() - - msg = ( - "investment_limit_per_period is only applicable " - "for multi-period models.\nIn order to create such a model, " - "explicitly set attribute `periods` of your energy system." - ) - with pytest.raises(ValueError, match=msg): - solph.constraints.investment_limit_per_period(om, limit=900) - - def test_min_max_runtime(self): - """Testing min and max runtimes for nonconvex flows.""" - bus_t = solph.buses.Bus(label="Bus_T") - pp = solph.components.Source( - label="cheap_plant_min_down_constraints", - outputs={ - bus_t: solph.flows.Flow( - nominal_value=10, - min=0.5, - max=1.0, - variable_costs=10, - nonconvex=solph.NonConvex( - minimum_downtime=4, - minimum_uptime=2, - initial_status=1, - startup_costs=5, - shutdown_costs=7, - ), - ) - }, - ) - - self.energysystem.add(bus_t, pp) - self.compare_lp_files("min_max_runtime.lp") - - def test_activity_costs(self): - """Testing activity_costs attribute for nonconvex flows.""" - bus_t = solph.buses.Bus(label="Bus_C") - pp = solph.components.Source( - label="cheap_plant_activity_costs", - outputs={ - bus_t: solph.flows.Flow( - nominal_value=10, - min=0.5, - max=1.0, - variable_costs=10, - nonconvex=solph.NonConvex(activity_costs=2), - ) - }, - ) - - self.energysystem.add(bus_t, pp) - self.compare_lp_files("activity_costs.lp") - - def test_inactivity_costs(self): - """Testing inactivity_costs attribute for nonconvex flows.""" - bus_t = solph.buses.Bus(label="Bus_C") - pp = solph.components.Source( - label="cheap_plant_inactivity_costs", - outputs={ - bus_t: solph.flows.Flow( - nominal_value=10, - min=0.5, - max=1.0, - variable_costs=10, - nonconvex=solph.NonConvex(inactivity_costs=2), - ) - }, - ) - - self.energysystem.add(bus_t, pp) - self.compare_lp_files("inactivity_costs.lp") - - def test_piecewise_linear_converter_cc(self): - """Testing PiecewiseLinearConverter using CC formulation.""" - bgas = solph.buses.Bus(label="gasBus") - bel = solph.buses.Bus(label="electricityBus") - - pwlcw = solph.components.experimental.PiecewiseLinearConverter( - label="pwltf", - inputs={ - bgas: solph.flows.Flow(nominal_value=100, variable_costs=1) - }, - outputs={bel: solph.flows.Flow()}, - in_breakpoints=[0, 25, 50, 75, 100], - conversion_function=lambda x: x**2, - pw_repn="CC", - ) - self.energysystem.add(bgas, bel, pwlcw) - self.compare_lp_files("piecewise_linear_converter_cc.lp") - - def test_piecewise_linear_converter_dcc(self): - """Testing PiecewiseLinearConverter using DCC formulation.""" - bgas = solph.buses.Bus(label="gasBus") - bel = solph.buses.Bus(label="electricityBus") - - pwlcw = solph.components.experimental.PiecewiseLinearConverter( - label="pwltf", - inputs={ - bgas: solph.flows.Flow(nominal_value=100, variable_costs=1) - }, - outputs={bel: solph.flows.Flow()}, - in_breakpoints=[0, 25, 50, 75, 100], - conversion_function=lambda x: x**2, - pw_repn="DCC", - ) - self.energysystem.add(bgas, bel, pwlcw) - self.compare_lp_files("piecewise_linear_converter_dcc.lp") - - def test_maximum_startups(self): - """Testing maximum_startups attribute for nonconvex flows.""" - bus_t = solph.buses.Bus(label="Bus_C") - pp = solph.components.Source( - label="cheap_plant_maximum_startups", - outputs={ - bus_t: solph.flows.Flow( - nominal_value=10, - min=0.5, - max=1.0, - variable_costs=10, - nonconvex=solph.NonConvex(maximum_startups=2), - ) - }, - ) - self.energysystem.add(bus_t, pp) - self.compare_lp_files("maximum_startups.lp") - - def test_maximum_shutdowns(self): - """Testing maximum_shutdowns attribute for nonconvex flows.""" - bus_t = solph.buses.Bus(label="Bus_C") - pp = solph.components.Source( - label="cheap_plant_maximum_shutdowns", - outputs={ - bus_t: solph.flows.Flow( - nominal_value=10, - min=0.5, - max=1.0, - variable_costs=10, - nonconvex=solph.NonConvex(maximum_shutdowns=2), - ) - }, - ) - self.energysystem.add(bus_t, pp) - self.compare_lp_files("maximum_shutdowns.lp") - - def test_offsetconverter_nonconvex(self): - """Constraint test of an OffsetConverter only with NonConvex - attribute.""" - b_diesel = solph.buses.Bus(label="bus_diesel") - b_el = solph.buses.Bus(label="bus_electricity") - - min = 0.2 - eta_at_nom = 0.4 - eta_at_min = 0.35 - - slope, offset = solph.components.slope_offset_from_nonconvex_output( - 1, min, eta_at_nom, eta_at_min - ) - - diesel_genset = solph.components.OffsetConverter( - label="diesel_genset", - inputs={ - b_diesel: solph.flows.Flow(), - }, - outputs={ - b_el: solph.flows.Flow( - nonconvex=solph.NonConvex(), - nominal_value=100, - min=min, - ) - }, - conversion_factors={b_diesel: slope}, - normed_offsets={b_diesel: offset}, - ) - self.energysystem.add(b_diesel, b_el, diesel_genset) - - self.compare_lp_files("offsetconverter_nonconvex.lp") - - def test_offsetconverter_nonconvex_investment(self): - """Constraint test of an OffsetConverter with both NonConvex and - Investment attributes.""" - b_diesel = solph.buses.Bus(label="bus_diesel") - b_el = solph.buses.Bus(label="bus_electricity") - - min = 0.2 - eta_at_nom = 0.4 - eta_at_min = 0.35 - - slope, offset = solph.components.slope_offset_from_nonconvex_output( - 1, min, eta_at_nom, eta_at_min - ) - - diesel_genset = solph.components.OffsetConverter( - label="diesel_genset", - inputs={b_diesel: solph.flows.Flow()}, - outputs={ - b_el: solph.flows.Flow( - min=min, - nonconvex=solph.NonConvex(), - nominal_value=solph.Investment( - ep_costs=100, - maximum=1234, - ), - ) - }, - conversion_factors={b_diesel: slope}, - normed_offsets={b_diesel: offset}, - ) - self.energysystem.add(b_diesel, b_el, diesel_genset) - - self.compare_lp_files("offsetconverter_nonconvex_investment.lp") - - def test_dsm_module_DIW(self): - """Constraint test of SinkDSM with approach=DLR""" - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1] * 3, - capacity_up=[0.5] * 3, - capacity_down=[0.5] * 3, - approach="DIW", - max_demand=1, - max_capacity_up=1, - max_capacity_down=1, - delay_time=1, - cost_dsm_down_shift=2, - shed_eligibility=False, - ) - - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files("dsm_module_DIW.lp") - - def test_dsm_module_DLR(self): - """Constraint test of SinkDSM with approach=DLR""" - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1] * 3, - capacity_up=[0.5] * 3, - capacity_down=[0.5] * 3, - approach="DLR", - max_demand=1, - max_capacity_up=1, - max_capacity_down=1, - delay_time=2, - shift_time=1, - cost_dsm_down_shift=2, - shed_eligibility=False, - ) - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files("dsm_module_DLR.lp") - - def test_dsm_module_oemof(self): - """Constraint test of SinkDSM with approach=oemof""" - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1] * 3, - capacity_up=[0.5, 0.4, 0.5], - capacity_down=[0.5, 0.4, 0.5], - approach="oemof", - max_demand=1, - max_capacity_up=1, - max_capacity_down=1, - shift_interval=2, - cost_dsm_down_shift=2, - shed_eligibility=False, - ) - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files("dsm_module_oemof.lp") - - def test_dsm_module_DIW_extended(self): - """Constraint test of SinkDSM with approach=DLR - - Test all possible parameters and constraints - """ - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1, 0.9, 0.8], - capacity_up=[0.5, 0.4, 0.5], - capacity_down=[0.3, 0.3, 0.4], - approach="DIW", - max_demand=1, - max_capacity_up=1, - max_capacity_down=1, - delay_time=1, - cost_dsm_down_shift=1, - cost_dsm_up=1, - cost_dsm_down_shed=100, - efficiency=0.99, - recovery_time_shift=2, - recovery_time_shed=2, - shed_time=2, - ) - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files("dsm_module_DIW_extended.lp") - - def test_dsm_module_DLR_extended(self): - """Constraint test of SinkDSM with approach=DLR""" - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1, 0.9, 0.8], - capacity_up=[0.5, 0.4, 0.5], - capacity_down=[0.3, 0.3, 0.4], - approach="DLR", - max_demand=1, - max_capacity_up=1, - max_capacity_down=1, - delay_time=2, - shift_time=1, - cost_dsm_down_shift=1, - cost_dsm_up=1, - cost_dsm_down_shed=100, - efficiency=0.99, - recovery_time_shed=2, - ActivateYearLimit=True, - ActivateDayLimit=True, - n_yearLimit_shift=100, - n_yearLimit_shed=50, - t_dayLimit=3, - addition=False, - fixes=False, - shed_time=2, - ) - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files("dsm_module_DLR_extended.lp") - - def test_dsm_module_oemof_extended(self): - """Constraint test of SinkDSM with approach=oemof""" - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1, 0.9, 0.8], - capacity_up=[0.5, 0.4, 0.5], - capacity_down=[0.3, 0.3, 0.4], - approach="oemof", - shift_interval=2, - max_demand=1, - max_capacity_up=1, - max_capacity_down=1, - delay_time=2, - cost_dsm_down_shift=1, - cost_dsm_up=1, - cost_dsm_down_shed=100, - efficiency=0.99, - recovery_time_shed=2, - shed_time=2, - ) - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files("dsm_module_oemof_extended.lp") - - def test_dsm_module_DIW_invest(self): - """Constraint test of SinkDSM with approach=DLR and investments""" - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1] * 3, - capacity_up=[0.5] * 3, - capacity_down=[0.5] * 3, - approach="DIW", - max_demand=1, - delay_time=1, - cost_dsm_down_shift=1, - cost_dsm_up=1, - cost_dsm_down_shed=100, - shed_eligibility=True, - recovery_time_shed=2, - shed_time=2, - investment=solph.Investment( - existing=50, - minimum=33, - maximum=100, - custom_attributes={"ep_cost": 100}, - ), - ) - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files("dsm_module_DIW_invest.lp") - - def test_dsm_module_DLR_invest(self): - """Constraint test of SinkDSM with approach=DLR and investments""" - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1] * 3, - capacity_up=[0.5] * 3, - capacity_down=[0.5] * 3, - approach="DLR", - max_demand=1, - delay_time=2, - shift_time=1, - cost_dsm_down_shift=1, - cost_dsm_up=1, - cost_dsm_down_shed=100, - shed_eligibility=True, - recovery_time_shed=2, - shed_time=2, - n_yearLimit_shed=50, - investment=solph.Investment( - existing=50, - minimum=33, - maximum=100, - custom_attributes={"ep_cost": 100}, - ), - ) - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files("dsm_module_DLR_invest.lp") - - def test_dsm_module_oemof_invest(self): - """Constraint test of SinkDSM with approach=oemof and investments""" - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1] * 3, - capacity_up=[0.5, 0.4, 0.5], - capacity_down=[0.5, 0.4, 0.5], - approach="oemof", - max_demand=1, - shift_interval=2, - cost_dsm_down_shift=1, - cost_dsm_up=1, - cost_dsm_down_shed=100, - shed_eligibility=True, - recovery_time_shed=2, - shed_time=2, - investment=solph.Investment( - existing=50, - minimum=33, - maximum=100, - custom_attributes={"ep_cost": 100}, - ), - ) - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files("dsm_module_oemof_invest.lp") - - def test_dsm_module_DLR_delay_time(self): - """Constraint test of SinkDSM with approach=DLR; - testing for passing an iterable for delay_time""" - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1] * 3, - capacity_up=[0.5] * 3, - capacity_down=[0.5] * 3, - approach="DLR", - max_demand=1, - max_capacity_up=1, - max_capacity_down=1, - delay_time=[1, 3], - shift_time=1, - cost_dsm_down_shift=2, - shed_eligibility=False, - ) - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files("dsm_module_DLR_delay_time.lp") - - def test_invest_non_convex_flow(self): - """Invest into a non-convex Flow""" - b1 = solph.buses.Bus(label="b1") - b2 = solph.buses.Bus( - label="b2", - inputs={ - b1: solph.Flow( - variable_costs=8, - min=0.25, - max=0.5, - nominal_value=solph.Investment( - ep_costs=0.75, - maximum=10, - ), - nonconvex=solph.NonConvex(), - ) - }, - outputs={b1: solph.Flow()}, - ) - self.energysystem.add(b1, b2) - self.compare_lp_files("invest_non_convex_flow.lp") - - def test_nonconvex_investment_storage_without_offset(self): - """All invest variables are coupled. The invest variables of the Flows - will be created during the initialisation of the storage e.g. battery - """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage_non_convex", - inputs={bel: solph.flows.Flow(variable_costs=56)}, - outputs={bel: solph.flows.Flow(variable_costs=24)}, - loss_rate=0.13, - max_storage_level=0.9, - min_storage_level=0.1, - invest_relation_input_capacity=1 / 6, - invest_relation_output_capacity=1 / 6, - inflow_conversion_factor=0.97, - outflow_conversion_factor=0.86, - nominal_storage_capacity=solph.Investment( - ep_costs=141, maximum=244, minimum=12, nonconvex=True - ), - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_without_offset.lp") - - def test_nonconvex_investment_storage_with_offset(self): - """All invest variables are coupled. The invest variables of the Flows - will be created during the initialisation of the storage e.g. battery - """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage_non_convex", - inputs={bel: solph.flows.Flow(variable_costs=56)}, - outputs={bel: solph.flows.Flow(variable_costs=24)}, - loss_rate=0.13, - max_storage_level=0.9, - min_storage_level=0.1, - invest_relation_input_capacity=1 / 6, - invest_relation_output_capacity=1 / 6, - inflow_conversion_factor=0.97, - outflow_conversion_factor=0.86, - nominal_storage_capacity=solph.Investment( - ep_costs=145, - minimum=19, - offset=5, - nonconvex=True, - maximum=1454, - ), - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_with_offset.lp") - - def test_nonconvex_invest_storage_all_nonconvex(self): - """All invest variables are free and nonconvex.""" - b1 = solph.buses.Bus(label="bus1") - - storage = solph.components.GenericStorage( - label="storage_all_nonconvex", - inputs={ - b1: solph.flows.Flow( - nominal_value=solph.Investment( - nonconvex=True, - minimum=5, - offset=10, - maximum=30, - ep_costs=10, - ) - ) - }, - outputs={ - b1: solph.flows.Flow( - nominal_value=solph.Investment( - nonconvex=True, - minimum=8, - offset=15, - ep_costs=10, - maximum=20, - ) - ) - }, - nominal_storage_capacity=solph.Investment( - nonconvex=True, ep_costs=20, offset=30, minimum=20, maximum=100 - ), - ) - self.energysystem.add(b1, storage) - self.compare_lp_files("storage_invest_all_nonconvex.lp") - - def test_nonconvex_invest_sink_without_offset(self): - """Non-convex invest flow without offset, with minimum.""" - bel = solph.buses.Bus(label="electricityBus") - - sink = solph.components.Sink( - label="sink_nonconvex_invest", - inputs={ - bel: solph.flows.Flow( - full_load_time_max=2.3, - variable_costs=25, - max=0.8, - nominal_value=solph.Investment( - ep_costs=500, minimum=15, nonconvex=True, maximum=172 - ), - ) - }, - ) - self.energysystem.add(bel, sink) - self.compare_lp_files("flow_invest_without_offset.lp") - - def test_nonconvex_invest_source_with_offset(self): - """Non-convex invest flow with offset, with minimum.""" - bel = solph.buses.Bus(label="electricityBus") - - source = solph.components.Source( - label="source_nonconvex_invest", - outputs={ - bel: solph.flows.Flow( - full_load_time_max=2.3, - variable_costs=25, - max=0.8, - nominal_value=solph.Investment( - ep_costs=500, - minimum=15, - maximum=20, - offset=34, - nonconvex=True, - ), - ) - }, - ) - self.energysystem.add(bel, source) - self.compare_lp_files("flow_invest_with_offset.lp") - - def test_nonconvex_invest_source_with_offset_no_minimum(self): - """Non-convex invest flow with offset, without minimum.""" - bel = solph.buses.Bus(label="electricityBus") - - source = solph.components.Source( - label="source_nonconvex_invest", - outputs={ - bel: solph.flows.Flow( - full_load_time_max=2.3, - variable_costs=25, - max=0.8, - nominal_value=solph.Investment( - ep_costs=500, maximum=1234, offset=34, nonconvex=True - ), - ) - }, - ) - self.energysystem.add(bel, source) - self.compare_lp_files("flow_invest_with_offset_no_minimum.lp") - - def test_integral_limit_error_no_multi_period(self): - """Test error being thrown if model is not a multi-period model""" - bel = solph.buses.Bus(label="electricityBus") - - source = solph.components.Source( - label="pv_source", - outputs={ - bel: solph.flows.Flow( - nominal_value=100, - variable_costs=20, - fix=[0.3, 0.5, 0.8], - custom_attributes={"space": 40}, - ) - }, - ) - self.energysystem.add(bel, source) - om = self.get_om() - msg = ( - "generic_periodical_integral_limit is only applicable\n" - "for multi-period models.\nFor standard models, use " - "generic_integral_limit instead." - ) - with pytest.raises(ValueError, match=msg): - solph.constraints.generic_periodical_integral_limit( - om, keyword="space" - ) - - def test_full_load_time_min_max_source(self): - """Constraints test full_load_time_min and _max attribute of flow""" - - bel = solph.buses.Bus(label="electricityBus") - - sink = solph.components.Sink( - label="excess", - inputs={ - bel: solph.flows.Flow( - full_load_time_min=3, - full_load_time_max=100, - variable_costs=25, - max=0.8, - nominal_value=10, - ) - }, - ) - self.energysystem.add(bel, sink) - self.compare_lp_files("summed_min_source.lp") - - def test_integer_flow_source(self): - """Test source with integer output""" - bel = solph.buses.Bus(label="electricityBus") - - sink = solph.components.Sink( - label="excess", - inputs={ - bel: solph.flows.Flow( - variable_costs=25, max=1, nominal_value=10, integer=True - ) - }, - ) - self.energysystem.add(bel, sink) - self.compare_lp_files("integer_source.lp") - - def test_nonequidistant_storage(self): - """Constraint test of an energy system - with non-equidistant time index - """ - idxh = pd.date_range("1/1/2017", periods=3, freq="h") - idx2h = pd.date_range("1/1/2017 03:00:00", periods=2, freq="2H") - idx30m = pd.date_range("1/1/2017 07:00:00", periods=4, freq="30min") - timeindex = idxh.append([idx2h, idx30m]) - es = solph.EnergySystem(timeindex=timeindex, infer_last_interval=False) - b_gas = solph.Bus(label="gas") - b_th = solph.Bus(label="heat") - boiler = solph.components.Converter( - label="boiler", - inputs={b_gas: solph.Flow(variable_costs=100)}, - outputs={b_th: solph.Flow(nominal_value=200)}, - ) - storage = solph.components.GenericStorage( - label="storage", - inputs={b_th: solph.Flow(nominal_value=100, variable_costs=56)}, - outputs={b_th: solph.Flow(nominal_value=100, variable_costs=24)}, - nominal_storage_capacity=300, - loss_rate=0.1, - initial_storage_level=1, - ) - es.add(b_gas, b_th, boiler, storage) - om = solph.Model(es) - self.compare_lp_files("nonequidistant_timeindex.lp", my_om=om) - - def test_storage_level_constraint(self): - """Constraint test of an energy system - with storage_level_constraint - """ - es = solph.EnergySystem( - timeindex=pd.date_range("2022-01-01", freq="h", periods=2), - infer_last_interval=True, - ) - - multiplexer = solph.Bus( - label="multiplexer", - ) - - storage = solph.components.GenericStorage( - label="storage", - nominal_storage_capacity=4, - initial_storage_level=1, - balanced=True, - loss_rate=0.25, - inputs={multiplexer: solph.Flow()}, - outputs={multiplexer: solph.Flow()}, - ) - - es.add(multiplexer, storage) - - in_0 = solph.components.Source( - label="in_0", - outputs={ - multiplexer: solph.Flow(nominal_value=0.5, variable_costs=0.25) - }, - ) - es.add(in_0) - - in_1 = solph.components.Source( - label="in_1", - outputs={multiplexer: solph.Flow(nominal_value=0.125)}, - ) - es.add(in_1) - - out_0 = solph.components.Sink( - label="out_0", - inputs={ - multiplexer: solph.Flow( - nominal_value=0.25, variable_costs=-0.125 - ) - }, - ) - es.add(out_0) - - out_1 = solph.components.Sink( - label="out_1", - inputs={ - multiplexer: solph.Flow( - nominal_value=0.125, variable_costs=-0.125 - ) - }, - ) - es.add(out_1) - - om = solph.Model(es) - - solph.constraints.storage_level_constraint( - model=om, - name="multiplexer", - storage_component=storage, - multiplexer_bus=multiplexer, - input_levels={in_1: 1 / 4}, # in_0 is always active - output_levels={out_0: 1 / 8, out_1: 1 / 2}, - ) - self.compare_lp_files("storage_level_constraint.lp", my_om=om) diff --git a/tests/lp_files/activity_costs.lp b/tests/lp_files/activity_costs.lp deleted file mode 100644 index 5e10fb48a..000000000 --- a/tests/lp_files/activity_costs.lp +++ /dev/null @@ -1,85 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+10 flow(cheap_plant_activity_costs_Bus_C_0) -+10 flow(cheap_plant_activity_costs_Bus_C_1) -+10 flow(cheap_plant_activity_costs_Bus_C_2) -+2 NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_0) -+2 NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_1) -+2 NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_2) - -s.t. - -c_e_BusBlock_balance(Bus_C_0)_: -+1 flow(cheap_plant_activity_costs_Bus_C_0) -= 0 - -c_e_BusBlock_balance(Bus_C_1)_: -+1 flow(cheap_plant_activity_costs_Bus_C_1) -= 0 - -c_e_BusBlock_balance(Bus_C_2)_: -+1 flow(cheap_plant_activity_costs_Bus_C_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_activity_costs_Bus_C_0)_: --10 NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_0) -+1 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_0) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_activity_costs_Bus_C_1)_: --10 NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_1) -+1 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_1) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_activity_costs_Bus_C_2)_: --10 NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_2) -+1 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_2) -= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_activity_costs_Bus_C_0)_: --1 flow(cheap_plant_activity_costs_Bus_C_0) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_0) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_activity_costs_Bus_C_1)_: --1 flow(cheap_plant_activity_costs_Bus_C_1) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_1) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_activity_costs_Bus_C_2)_: --1 flow(cheap_plant_activity_costs_Bus_C_2) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_2) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_activity_costs_Bus_C_0)_: -+1 flow(cheap_plant_activity_costs_Bus_C_0) --1 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_0) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_activity_costs_Bus_C_1)_: -+1 flow(cheap_plant_activity_costs_Bus_C_1) --1 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_1) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_activity_costs_Bus_C_2)_: -+1 flow(cheap_plant_activity_costs_Bus_C_2) --1 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_2) -<= 0 - -bounds - 0 <= flow(cheap_plant_activity_costs_Bus_C_0) <= 10.0 - 0 <= flow(cheap_plant_activity_costs_Bus_C_1) <= 10.0 - 0 <= flow(cheap_plant_activity_costs_Bus_C_2) <= 10.0 - 0 <= NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_0) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_1) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_2) <= 1 - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_0) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_1) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_2) <= +inf -binary - NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_0) - NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_1) - NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_2) -end diff --git a/tests/lp_files/activity_costs_multi_period.lp b/tests/lp_files/activity_costs_multi_period.lp deleted file mode 100644 index ee364020e..000000000 --- a/tests/lp_files/activity_costs_multi_period.lp +++ /dev/null @@ -1,160 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+10 flow(cheap_plant_activity_costs_Bus_C_0) -+10 flow(cheap_plant_activity_costs_Bus_C_1) -+9.80392156862745 flow(cheap_plant_activity_costs_Bus_C_2) -+9.80392156862745 flow(cheap_plant_activity_costs_Bus_C_3) -+9.611687812379854 flow(cheap_plant_activity_costs_Bus_C_4) -+9.611687812379854 flow(cheap_plant_activity_costs_Bus_C_5) -+2 NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_0) -+2 NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_1) -+1.9607843137254901 NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_2) -+1.9607843137254901 NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_3) -+1.9223375624759707 NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_4) -+1.9223375624759707 NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_5) - -s.t. - -c_e_BusBlock_balance(Bus_C_0)_: -+1 flow(cheap_plant_activity_costs_Bus_C_0) -= 0 - -c_e_BusBlock_balance(Bus_C_1)_: -+1 flow(cheap_plant_activity_costs_Bus_C_1) -= 0 - -c_e_BusBlock_balance(Bus_C_2)_: -+1 flow(cheap_plant_activity_costs_Bus_C_2) -= 0 - -c_e_BusBlock_balance(Bus_C_3)_: -+1 flow(cheap_plant_activity_costs_Bus_C_3) -= 0 - -c_e_BusBlock_balance(Bus_C_4)_: -+1 flow(cheap_plant_activity_costs_Bus_C_4) -= 0 - -c_e_BusBlock_balance(Bus_C_5)_: -+1 flow(cheap_plant_activity_costs_Bus_C_5) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_activity_costs_Bus_C_0)_: --10 NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_0) -+1 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_0) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_activity_costs_Bus_C_1)_: --10 NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_1) -+1 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_1) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_activity_costs_Bus_C_2)_: --10 NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_2) -+1 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_activity_costs_Bus_C_3)_: --10 NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_3) -+1 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_3) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_activity_costs_Bus_C_4)_: --10 NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_4) -+1 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_4) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_activity_costs_Bus_C_5)_: --10 NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_5) -+1 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_5) -= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_activity_costs_Bus_C_0)_: --1 flow(cheap_plant_activity_costs_Bus_C_0) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_0) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_activity_costs_Bus_C_1)_: --1 flow(cheap_plant_activity_costs_Bus_C_1) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_1) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_activity_costs_Bus_C_2)_: --1 flow(cheap_plant_activity_costs_Bus_C_2) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_2) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_activity_costs_Bus_C_3)_: --1 flow(cheap_plant_activity_costs_Bus_C_3) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_3) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_activity_costs_Bus_C_4)_: --1 flow(cheap_plant_activity_costs_Bus_C_4) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_4) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_activity_costs_Bus_C_5)_: --1 flow(cheap_plant_activity_costs_Bus_C_5) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_5) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_activity_costs_Bus_C_0)_: -+1 flow(cheap_plant_activity_costs_Bus_C_0) --1 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_0) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_activity_costs_Bus_C_1)_: -+1 flow(cheap_plant_activity_costs_Bus_C_1) --1 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_1) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_activity_costs_Bus_C_2)_: -+1 flow(cheap_plant_activity_costs_Bus_C_2) --1 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_2) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_activity_costs_Bus_C_3)_: -+1 flow(cheap_plant_activity_costs_Bus_C_3) --1 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_3) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_activity_costs_Bus_C_4)_: -+1 flow(cheap_plant_activity_costs_Bus_C_4) --1 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_4) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_activity_costs_Bus_C_5)_: -+1 flow(cheap_plant_activity_costs_Bus_C_5) --1 NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_5) -<= 0 - -bounds - 0 <= flow(cheap_plant_activity_costs_Bus_C_0) <= 10.0 - 0 <= flow(cheap_plant_activity_costs_Bus_C_1) <= 10.0 - 0 <= flow(cheap_plant_activity_costs_Bus_C_2) <= 10.0 - 0 <= flow(cheap_plant_activity_costs_Bus_C_3) <= 10.0 - 0 <= flow(cheap_plant_activity_costs_Bus_C_4) <= 10.0 - 0 <= flow(cheap_plant_activity_costs_Bus_C_5) <= 10.0 - 0 <= NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_0) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_1) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_2) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_3) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_4) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_5) <= 1 - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_0) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_1) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_2) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_3) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_4) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_activity_costs_Bus_C_5) <= +inf -binary - NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_0) - NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_1) - NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_2) - NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_3) - NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_4) - NonConvexFlowBlock_status(cheap_plant_activity_costs_Bus_C_5) -end diff --git a/tests/lp_files/connect_investment.lp b/tests/lp_files/connect_investment.lp deleted file mode 100644 index 0f6b8e97d..000000000 --- a/tests/lp_files/connect_investment.lp +++ /dev/null @@ -1,210 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+123 InvestmentFlowBlock_invest(Source_Bus1_0) -+500 InvestmentFlowBlock_invest(Bus1_Sink_0) -+145 GenericInvestmentStorageBlock_invest(storage_0) - -s.t. - -c_e__equate_InvestmentFlowBlock_invest(Source_Bus1_0)_InvestmentFlowBlock_invest(Bus1_Sink_0)__: -+2 InvestmentFlowBlock_invest(Source_Bus1_0) --1 InvestmentFlowBlock_invest(Bus1_Sink_0) -= 0 - -c_e__equate_InvestmentFlowBlock_invest(Source_Bus1_0)_GenericInvestmentStorageBlock_invest(storage_0)__: -+1 InvestmentFlowBlock_invest(Source_Bus1_0) --1 GenericInvestmentStorageBlock_invest(storage_0) -= 0 - -c_e_BusBlock_balance(Bus1_0)_: --1 flow(Bus1_storage_0) --1 flow(Bus1_Sink_0) -+1 flow(storage_Bus1_0) -+1 flow(Source_Bus1_0) -= 0 - -c_e_BusBlock_balance(Bus1_1)_: --1 flow(Bus1_storage_1) --1 flow(Bus1_Sink_1) -+1 flow(storage_Bus1_1) -+1 flow(Source_Bus1_1) -= 0 - -c_e_BusBlock_balance(Bus1_2)_: --1 flow(Bus1_storage_2) --1 flow(Bus1_Sink_2) -+1 flow(storage_Bus1_2) -+1 flow(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_Bus1_0)_: --1 InvestmentFlowBlock_invest(storage_Bus1_0) -+1 InvestmentFlowBlock_total(storage_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Source_Bus1_0)_: --1 InvestmentFlowBlock_invest(Source_Bus1_0) -+1 InvestmentFlowBlock_total(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Bus1_Sink_0)_: --1 InvestmentFlowBlock_invest(Bus1_Sink_0) -+1 InvestmentFlowBlock_total(Bus1_Sink_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Bus1_storage_0)_: --1 InvestmentFlowBlock_invest(Bus1_storage_0) -+1 InvestmentFlowBlock_total(Bus1_storage_0) -= 0 - -c_u_InvestmentFlowBlock_max(storage_Bus1_0_0)_: -+1 flow(storage_Bus1_0) --1 InvestmentFlowBlock_total(storage_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_Bus1_0_1)_: -+1 flow(storage_Bus1_1) --1 InvestmentFlowBlock_total(storage_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_Bus1_0_2)_: -+1 flow(storage_Bus1_2) --1 InvestmentFlowBlock_total(storage_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_0)_: -+1 flow(Source_Bus1_0) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_1)_: -+1 flow(Source_Bus1_1) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_2)_: -+1 flow(Source_Bus1_2) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_Sink_0_0)_: -+1 flow(Bus1_Sink_0) --1 InvestmentFlowBlock_total(Bus1_Sink_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_Sink_0_1)_: -+1 flow(Bus1_Sink_1) --1 InvestmentFlowBlock_total(Bus1_Sink_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_Sink_0_2)_: -+1 flow(Bus1_Sink_2) --1 InvestmentFlowBlock_total(Bus1_Sink_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_storage_0_0)_: -+1 flow(Bus1_storage_0) --1 InvestmentFlowBlock_total(Bus1_storage_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_storage_0_1)_: -+1 flow(Bus1_storage_1) --1 InvestmentFlowBlock_total(Bus1_storage_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_storage_0_2)_: -+1 flow(Bus1_storage_2) --1 InvestmentFlowBlock_total(Bus1_storage_0) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_0)_: --1 GenericInvestmentStorageBlock_invest(storage_0) -+1 GenericInvestmentStorageBlock_total(storage_0) -= 0 - -c_u_GenericInvestmentStorageBlock_init_content_limit(storage)_: --1 GenericInvestmentStorageBlock_invest(storage_0) -+1 GenericInvestmentStorageBlock_init_content(storage) -<= 0 - -c_e_GenericInvestmentStorageBlock_balance_first(storage)_: --1 flow(Bus1_storage_0) -+1 flow(storage_Bus1_0) --1 GenericInvestmentStorageBlock_init_content(storage) -+1 GenericInvestmentStorageBlock_storage_content(storage_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_0_1)_: --1 flow(Bus1_storage_1) -+1 flow(storage_Bus1_1) --1 GenericInvestmentStorageBlock_storage_content(storage_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_0_2)_: --1 flow(Bus1_storage_2) -+1 flow(storage_Bus1_2) --1 GenericInvestmentStorageBlock_storage_content(storage_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balanced_cstr(storage)_: --1 GenericInvestmentStorageBlock_init_content(storage) -+1 GenericInvestmentStorageBlock_storage_content(storage_2) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_0)_: -+1 InvestmentFlowBlock_total(Bus1_storage_0) --0.2 GenericInvestmentStorageBlock_total(storage_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_0)_: -+1 InvestmentFlowBlock_total(storage_Bus1_0) --0.2 GenericInvestmentStorageBlock_total(storage_0) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_0_0)_: --1 GenericInvestmentStorageBlock_total(storage_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_0_1)_: --1 GenericInvestmentStorageBlock_total(storage_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_0_2)_: --1 GenericInvestmentStorageBlock_total(storage_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_2) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(storage_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_invest(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_invest(Bus1_Sink_0) <= +inf - 0 <= InvestmentFlowBlock_invest(Bus1_storage_0) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_0) <= +inf - 0 <= flow(Bus1_storage_0) <= +inf - 0 <= flow(Bus1_storage_1) <= +inf - 0 <= flow(Bus1_storage_2) <= +inf - 0 <= flow(Bus1_Sink_0) <= +inf - 0 <= flow(Bus1_Sink_1) <= +inf - 0 <= flow(Bus1_Sink_2) <= +inf - 0 <= flow(storage_Bus1_0) <= +inf - 0 <= flow(storage_Bus1_1) <= +inf - 0 <= flow(storage_Bus1_2) <= +inf - 0 <= flow(Source_Bus1_0) <= +inf - 0 <= flow(Source_Bus1_1) <= +inf - 0 <= flow(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_total(storage_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_total(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_total(Bus1_Sink_0) <= +inf - 0 <= InvestmentFlowBlock_total(Bus1_storage_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_0) <= +inf - 0 <= GenericInvestmentStorageBlock_init_content(storage) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_2) <= +inf -end diff --git a/tests/lp_files/connect_investment_multi_period.lp b/tests/lp_files/connect_investment_multi_period.lp deleted file mode 100644 index c4e944198..000000000 --- a/tests/lp_files/connect_investment_multi_period.lp +++ /dev/null @@ -1,699 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+123.0 InvestmentFlowBlock_invest(Source_Bus1_0) -+81.1854659521629 InvestmentFlowBlock_invest(Source_Bus1_1) -+40.19082472879356 InvestmentFlowBlock_invest(Source_Bus1_2) -+499.99999999999994 InvestmentFlowBlock_invest(Bus1_Sink_0) -+330.02221931773533 InvestmentFlowBlock_invest(Bus1_Sink_1) -+163.37733629590875 InvestmentFlowBlock_invest(Bus1_Sink_2) -+144.99999999999997 GenericInvestmentStorageBlock_invest(storage_0) -+95.70644360214325 GenericInvestmentStorageBlock_invest(storage_1) -+47.37942752581354 GenericInvestmentStorageBlock_invest(storage_2) - -s.t. - -c_e__equate_InvestmentFlowBlock_invest(Source_Bus1_0)_InvestmentFlowBlock_invest(Bus1_Sink_0)__: -+2 InvestmentFlowBlock_invest(Source_Bus1_0) --1 InvestmentFlowBlock_invest(Bus1_Sink_0) -= 0 - -c_e__equate_InvestmentFlowBlock_invest(Source_Bus1_0)_GenericInvestmentStorageBlock_invest(storage_0)__: -+1 InvestmentFlowBlock_invest(Source_Bus1_0) --1 GenericInvestmentStorageBlock_invest(storage_0) -= 0 - -c_e_BusBlock_balance(Bus1_0)_: --1 flow(Bus1_storage_0) --1 flow(Bus1_Sink_0) -+1 flow(storage_Bus1_0) -+1 flow(Source_Bus1_0) -= 0 - -c_e_BusBlock_balance(Bus1_1)_: --1 flow(Bus1_storage_1) --1 flow(Bus1_Sink_1) -+1 flow(storage_Bus1_1) -+1 flow(Source_Bus1_1) -= 0 - -c_e_BusBlock_balance(Bus1_2)_: --1 flow(Bus1_storage_2) --1 flow(Bus1_Sink_2) -+1 flow(storage_Bus1_2) -+1 flow(Source_Bus1_2) -= 0 - -c_e_BusBlock_balance(Bus1_3)_: --1 flow(Bus1_storage_3) --1 flow(Bus1_Sink_3) -+1 flow(storage_Bus1_3) -+1 flow(Source_Bus1_3) -= 0 - -c_e_BusBlock_balance(Bus1_4)_: --1 flow(Bus1_storage_4) --1 flow(Bus1_Sink_4) -+1 flow(storage_Bus1_4) -+1 flow(Source_Bus1_4) -= 0 - -c_e_BusBlock_balance(Bus1_5)_: --1 flow(Bus1_storage_5) --1 flow(Bus1_Sink_5) -+1 flow(storage_Bus1_5) -+1 flow(Source_Bus1_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_Bus1_0)_: --1 InvestmentFlowBlock_invest(storage_Bus1_0) -+1 InvestmentFlowBlock_total(storage_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_Bus1_1)_: --1 InvestmentFlowBlock_invest(storage_Bus1_1) --1 InvestmentFlowBlock_total(storage_Bus1_0) -+1 InvestmentFlowBlock_total(storage_Bus1_1) -+1 InvestmentFlowBlock_old(storage_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_Bus1_2)_: --1 InvestmentFlowBlock_invest(storage_Bus1_2) --1 InvestmentFlowBlock_total(storage_Bus1_1) -+1 InvestmentFlowBlock_total(storage_Bus1_2) -+1 InvestmentFlowBlock_old(storage_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Source_Bus1_0)_: --1 InvestmentFlowBlock_invest(Source_Bus1_0) -+1 InvestmentFlowBlock_total(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Source_Bus1_1)_: --1 InvestmentFlowBlock_invest(Source_Bus1_1) --1 InvestmentFlowBlock_total(Source_Bus1_0) -+1 InvestmentFlowBlock_total(Source_Bus1_1) -+1 InvestmentFlowBlock_old(Source_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Source_Bus1_2)_: --1 InvestmentFlowBlock_invest(Source_Bus1_2) --1 InvestmentFlowBlock_total(Source_Bus1_1) -+1 InvestmentFlowBlock_total(Source_Bus1_2) -+1 InvestmentFlowBlock_old(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Bus1_Sink_0)_: --1 InvestmentFlowBlock_invest(Bus1_Sink_0) -+1 InvestmentFlowBlock_total(Bus1_Sink_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Bus1_Sink_1)_: --1 InvestmentFlowBlock_invest(Bus1_Sink_1) --1 InvestmentFlowBlock_total(Bus1_Sink_0) -+1 InvestmentFlowBlock_total(Bus1_Sink_1) -+1 InvestmentFlowBlock_old(Bus1_Sink_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Bus1_Sink_2)_: --1 InvestmentFlowBlock_invest(Bus1_Sink_2) --1 InvestmentFlowBlock_total(Bus1_Sink_1) -+1 InvestmentFlowBlock_total(Bus1_Sink_2) -+1 InvestmentFlowBlock_old(Bus1_Sink_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Bus1_storage_0)_: --1 InvestmentFlowBlock_invest(Bus1_storage_0) -+1 InvestmentFlowBlock_total(Bus1_storage_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Bus1_storage_1)_: --1 InvestmentFlowBlock_invest(Bus1_storage_1) --1 InvestmentFlowBlock_total(Bus1_storage_0) -+1 InvestmentFlowBlock_total(Bus1_storage_1) -+1 InvestmentFlowBlock_old(Bus1_storage_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Bus1_storage_2)_: --1 InvestmentFlowBlock_invest(Bus1_storage_2) --1 InvestmentFlowBlock_total(Bus1_storage_1) -+1 InvestmentFlowBlock_total(Bus1_storage_2) -+1 InvestmentFlowBlock_old(Bus1_storage_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_Bus1_0)_: -+1 InvestmentFlowBlock_old_end(storage_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_Bus1_1)_: -+1 InvestmentFlowBlock_old_end(storage_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_Bus1_2)_: -+1 InvestmentFlowBlock_old_end(storage_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Source_Bus1_0)_: -+1 InvestmentFlowBlock_old_end(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Source_Bus1_1)_: -+1 InvestmentFlowBlock_old_end(Source_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Source_Bus1_2)_: -+1 InvestmentFlowBlock_old_end(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Bus1_Sink_0)_: -+1 InvestmentFlowBlock_old_end(Bus1_Sink_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Bus1_Sink_1)_: -+1 InvestmentFlowBlock_old_end(Bus1_Sink_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Bus1_Sink_2)_: -+1 InvestmentFlowBlock_old_end(Bus1_Sink_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Bus1_storage_0)_: -+1 InvestmentFlowBlock_old_end(Bus1_storage_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Bus1_storage_1)_: -+1 InvestmentFlowBlock_old_end(Bus1_storage_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Bus1_storage_2)_: -+1 InvestmentFlowBlock_old_end(Bus1_storage_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_Bus1_0)_: -+1 InvestmentFlowBlock_old_exo(storage_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_Bus1_1)_: -+1 InvestmentFlowBlock_old_exo(storage_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_Bus1_2)_: -+1 InvestmentFlowBlock_old_exo(storage_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Source_Bus1_0)_: -+1 InvestmentFlowBlock_old_exo(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Source_Bus1_1)_: -+1 InvestmentFlowBlock_old_exo(Source_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Source_Bus1_2)_: -+1 InvestmentFlowBlock_old_exo(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Bus1_Sink_0)_: -+1 InvestmentFlowBlock_old_exo(Bus1_Sink_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Bus1_Sink_1)_: -+1 InvestmentFlowBlock_old_exo(Bus1_Sink_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Bus1_Sink_2)_: -+1 InvestmentFlowBlock_old_exo(Bus1_Sink_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Bus1_storage_0)_: -+1 InvestmentFlowBlock_old_exo(Bus1_storage_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Bus1_storage_1)_: -+1 InvestmentFlowBlock_old_exo(Bus1_storage_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Bus1_storage_2)_: -+1 InvestmentFlowBlock_old_exo(Bus1_storage_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_Bus1_0)_: -+1 InvestmentFlowBlock_old(storage_Bus1_0) --1 InvestmentFlowBlock_old_end(storage_Bus1_0) --1 InvestmentFlowBlock_old_exo(storage_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_Bus1_1)_: -+1 InvestmentFlowBlock_old(storage_Bus1_1) --1 InvestmentFlowBlock_old_end(storage_Bus1_1) --1 InvestmentFlowBlock_old_exo(storage_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_Bus1_2)_: -+1 InvestmentFlowBlock_old(storage_Bus1_2) --1 InvestmentFlowBlock_old_end(storage_Bus1_2) --1 InvestmentFlowBlock_old_exo(storage_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Source_Bus1_0)_: -+1 InvestmentFlowBlock_old(Source_Bus1_0) --1 InvestmentFlowBlock_old_end(Source_Bus1_0) --1 InvestmentFlowBlock_old_exo(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Source_Bus1_1)_: -+1 InvestmentFlowBlock_old(Source_Bus1_1) --1 InvestmentFlowBlock_old_end(Source_Bus1_1) --1 InvestmentFlowBlock_old_exo(Source_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Source_Bus1_2)_: -+1 InvestmentFlowBlock_old(Source_Bus1_2) --1 InvestmentFlowBlock_old_end(Source_Bus1_2) --1 InvestmentFlowBlock_old_exo(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Bus1_Sink_0)_: -+1 InvestmentFlowBlock_old(Bus1_Sink_0) --1 InvestmentFlowBlock_old_end(Bus1_Sink_0) --1 InvestmentFlowBlock_old_exo(Bus1_Sink_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Bus1_Sink_1)_: -+1 InvestmentFlowBlock_old(Bus1_Sink_1) --1 InvestmentFlowBlock_old_end(Bus1_Sink_1) --1 InvestmentFlowBlock_old_exo(Bus1_Sink_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Bus1_Sink_2)_: -+1 InvestmentFlowBlock_old(Bus1_Sink_2) --1 InvestmentFlowBlock_old_end(Bus1_Sink_2) --1 InvestmentFlowBlock_old_exo(Bus1_Sink_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Bus1_storage_0)_: -+1 InvestmentFlowBlock_old(Bus1_storage_0) --1 InvestmentFlowBlock_old_end(Bus1_storage_0) --1 InvestmentFlowBlock_old_exo(Bus1_storage_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Bus1_storage_1)_: -+1 InvestmentFlowBlock_old(Bus1_storage_1) --1 InvestmentFlowBlock_old_end(Bus1_storage_1) --1 InvestmentFlowBlock_old_exo(Bus1_storage_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Bus1_storage_2)_: -+1 InvestmentFlowBlock_old(Bus1_storage_2) --1 InvestmentFlowBlock_old_end(Bus1_storage_2) --1 InvestmentFlowBlock_old_exo(Bus1_storage_2) -= 0 - -c_u_InvestmentFlowBlock_max(storage_Bus1_0_0)_: -+1 flow(storage_Bus1_0) --1 InvestmentFlowBlock_total(storage_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_Bus1_0_1)_: -+1 flow(storage_Bus1_1) --1 InvestmentFlowBlock_total(storage_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_Bus1_1_2)_: -+1 flow(storage_Bus1_2) --1 InvestmentFlowBlock_total(storage_Bus1_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_Bus1_1_3)_: -+1 flow(storage_Bus1_3) --1 InvestmentFlowBlock_total(storage_Bus1_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_Bus1_2_4)_: -+1 flow(storage_Bus1_4) --1 InvestmentFlowBlock_total(storage_Bus1_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_Bus1_2_5)_: -+1 flow(storage_Bus1_5) --1 InvestmentFlowBlock_total(storage_Bus1_2) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_0)_: -+1 flow(Source_Bus1_0) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_1)_: -+1 flow(Source_Bus1_1) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_1_2)_: -+1 flow(Source_Bus1_2) --1 InvestmentFlowBlock_total(Source_Bus1_1) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_1_3)_: -+1 flow(Source_Bus1_3) --1 InvestmentFlowBlock_total(Source_Bus1_1) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_2_4)_: -+1 flow(Source_Bus1_4) --1 InvestmentFlowBlock_total(Source_Bus1_2) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_2_5)_: -+1 flow(Source_Bus1_5) --1 InvestmentFlowBlock_total(Source_Bus1_2) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_Sink_0_0)_: -+1 flow(Bus1_Sink_0) --1 InvestmentFlowBlock_total(Bus1_Sink_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_Sink_0_1)_: -+1 flow(Bus1_Sink_1) --1 InvestmentFlowBlock_total(Bus1_Sink_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_Sink_1_2)_: -+1 flow(Bus1_Sink_2) --1 InvestmentFlowBlock_total(Bus1_Sink_1) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_Sink_1_3)_: -+1 flow(Bus1_Sink_3) --1 InvestmentFlowBlock_total(Bus1_Sink_1) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_Sink_2_4)_: -+1 flow(Bus1_Sink_4) --1 InvestmentFlowBlock_total(Bus1_Sink_2) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_Sink_2_5)_: -+1 flow(Bus1_Sink_5) --1 InvestmentFlowBlock_total(Bus1_Sink_2) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_storage_0_0)_: -+1 flow(Bus1_storage_0) --1 InvestmentFlowBlock_total(Bus1_storage_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_storage_0_1)_: -+1 flow(Bus1_storage_1) --1 InvestmentFlowBlock_total(Bus1_storage_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_storage_1_2)_: -+1 flow(Bus1_storage_2) --1 InvestmentFlowBlock_total(Bus1_storage_1) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_storage_1_3)_: -+1 flow(Bus1_storage_3) --1 InvestmentFlowBlock_total(Bus1_storage_1) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_storage_2_4)_: -+1 flow(Bus1_storage_4) --1 InvestmentFlowBlock_total(Bus1_storage_2) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_storage_2_5)_: -+1 flow(Bus1_storage_5) --1 InvestmentFlowBlock_total(Bus1_storage_2) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_0)_: --1 GenericInvestmentStorageBlock_invest(storage_0) -+1 GenericInvestmentStorageBlock_total(storage_0) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_1)_: --1 GenericInvestmentStorageBlock_invest(storage_1) --1 GenericInvestmentStorageBlock_total(storage_0) -+1 GenericInvestmentStorageBlock_total(storage_1) -+1 GenericInvestmentStorageBlock_old(storage_1) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_2)_: --1 GenericInvestmentStorageBlock_invest(storage_2) --1 GenericInvestmentStorageBlock_total(storage_1) -+1 GenericInvestmentStorageBlock_total(storage_2) -+1 GenericInvestmentStorageBlock_old(storage_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_0)_: -+1 GenericInvestmentStorageBlock_old_end(storage_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_1)_: -+1 GenericInvestmentStorageBlock_old_end(storage_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_2)_: -+1 GenericInvestmentStorageBlock_old_end(storage_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_0)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_1)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_2)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_0)_: -+1 GenericInvestmentStorageBlock_old(storage_0) --1 GenericInvestmentStorageBlock_old_end(storage_0) --1 GenericInvestmentStorageBlock_old_exo(storage_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_1)_: -+1 GenericInvestmentStorageBlock_old(storage_1) --1 GenericInvestmentStorageBlock_old_end(storage_1) --1 GenericInvestmentStorageBlock_old_exo(storage_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_2)_: -+1 GenericInvestmentStorageBlock_old(storage_2) --1 GenericInvestmentStorageBlock_old_end(storage_2) --1 GenericInvestmentStorageBlock_old_exo(storage_2) -= 0 - -c_e_GenericInvestmentStorageBlock_initially_empty(storage_0)_: -+1 GenericInvestmentStorageBlock_storage_content(storage_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_0_1)_: --1 flow(Bus1_storage_1) -+1 flow(storage_Bus1_1) --1 GenericInvestmentStorageBlock_storage_content(storage_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_1_2)_: --1 flow(Bus1_storage_2) -+1 flow(storage_Bus1_2) --1 GenericInvestmentStorageBlock_storage_content(storage_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_1_3)_: --1 flow(Bus1_storage_3) -+1 flow(storage_Bus1_3) --1 GenericInvestmentStorageBlock_storage_content(storage_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_3) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_2_4)_: --1 flow(Bus1_storage_4) -+1 flow(storage_Bus1_4) --1 GenericInvestmentStorageBlock_storage_content(storage_3) -+1 GenericInvestmentStorageBlock_storage_content(storage_4) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_2_5)_: --1 flow(Bus1_storage_5) -+1 flow(storage_Bus1_5) --1 GenericInvestmentStorageBlock_storage_content(storage_4) -+1 GenericInvestmentStorageBlock_storage_content(storage_5) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_0)_: -+1 InvestmentFlowBlock_total(Bus1_storage_0) --0.2 GenericInvestmentStorageBlock_total(storage_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_1)_: -+1 InvestmentFlowBlock_total(Bus1_storage_1) --0.2 GenericInvestmentStorageBlock_total(storage_1) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_2)_: -+1 InvestmentFlowBlock_total(Bus1_storage_2) --0.2 GenericInvestmentStorageBlock_total(storage_2) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_0)_: -+1 InvestmentFlowBlock_total(storage_Bus1_0) --0.2 GenericInvestmentStorageBlock_total(storage_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_1)_: -+1 InvestmentFlowBlock_total(storage_Bus1_1) --0.2 GenericInvestmentStorageBlock_total(storage_1) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_2)_: -+1 InvestmentFlowBlock_total(storage_Bus1_2) --0.2 GenericInvestmentStorageBlock_total(storage_2) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_0_0)_: --1 GenericInvestmentStorageBlock_total(storage_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_0_1)_: --1 GenericInvestmentStorageBlock_total(storage_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_1_2)_: --1 GenericInvestmentStorageBlock_total(storage_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_1_3)_: --1 GenericInvestmentStorageBlock_total(storage_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_2_4)_: --1 GenericInvestmentStorageBlock_total(storage_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_2_5)_: --1 GenericInvestmentStorageBlock_total(storage_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_5) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(storage_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_invest(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_invest(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_invest(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_invest(Bus1_Sink_0) <= +inf - 0 <= InvestmentFlowBlock_invest(Bus1_Sink_1) <= +inf - 0 <= InvestmentFlowBlock_invest(Bus1_Sink_2) <= +inf - 0 <= InvestmentFlowBlock_invest(Bus1_storage_0) <= +inf - 0 <= InvestmentFlowBlock_invest(Bus1_storage_1) <= +inf - 0 <= InvestmentFlowBlock_invest(Bus1_storage_2) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_0) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_1) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_2) <= +inf - 0 <= flow(Bus1_storage_0) <= +inf - 0 <= flow(Bus1_storage_1) <= +inf - 0 <= flow(Bus1_storage_2) <= +inf - 0 <= flow(Bus1_storage_3) <= +inf - 0 <= flow(Bus1_storage_4) <= +inf - 0 <= flow(Bus1_storage_5) <= +inf - 0 <= flow(Bus1_Sink_0) <= +inf - 0 <= flow(Bus1_Sink_1) <= +inf - 0 <= flow(Bus1_Sink_2) <= +inf - 0 <= flow(Bus1_Sink_3) <= +inf - 0 <= flow(Bus1_Sink_4) <= +inf - 0 <= flow(Bus1_Sink_5) <= +inf - 0 <= flow(storage_Bus1_0) <= +inf - 0 <= flow(storage_Bus1_1) <= +inf - 0 <= flow(storage_Bus1_2) <= +inf - 0 <= flow(storage_Bus1_3) <= +inf - 0 <= flow(storage_Bus1_4) <= +inf - 0 <= flow(storage_Bus1_5) <= +inf - 0 <= flow(Source_Bus1_0) <= +inf - 0 <= flow(Source_Bus1_1) <= +inf - 0 <= flow(Source_Bus1_2) <= +inf - 0 <= flow(Source_Bus1_3) <= +inf - 0 <= flow(Source_Bus1_4) <= +inf - 0 <= flow(Source_Bus1_5) <= +inf - 0 <= InvestmentFlowBlock_total(storage_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_total(storage_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_total(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_total(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_total(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_total(Bus1_Sink_0) <= +inf - 0 <= InvestmentFlowBlock_total(Bus1_Sink_1) <= +inf - 0 <= InvestmentFlowBlock_total(Bus1_Sink_2) <= +inf - 0 <= InvestmentFlowBlock_total(Bus1_storage_0) <= +inf - 0 <= InvestmentFlowBlock_total(Bus1_storage_1) <= +inf - 0 <= InvestmentFlowBlock_total(Bus1_storage_2) <= +inf - 0 <= InvestmentFlowBlock_old(storage_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old(storage_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old(storage_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old(Bus1_Sink_0) <= +inf - 0 <= InvestmentFlowBlock_old(Bus1_Sink_1) <= +inf - 0 <= InvestmentFlowBlock_old(Bus1_Sink_2) <= +inf - 0 <= InvestmentFlowBlock_old(Bus1_storage_0) <= +inf - 0 <= InvestmentFlowBlock_old(Bus1_storage_1) <= +inf - 0 <= InvestmentFlowBlock_old(Bus1_storage_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(Bus1_Sink_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(Bus1_Sink_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(Bus1_Sink_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(Bus1_storage_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(Bus1_storage_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(Bus1_storage_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Bus1_Sink_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Bus1_Sink_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Bus1_Sink_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Bus1_storage_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Bus1_storage_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Bus1_storage_2) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_1) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_3) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_4) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_5) <= +inf -end diff --git a/tests/lp_files/converter.lp b/tests/lp_files/converter.lp deleted file mode 100644 index f72f22c7d..000000000 --- a/tests/lp_files/converter.lp +++ /dev/null @@ -1,135 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+50 flow(powerplantGasBiomass_electricityBus_0) -+50 flow(powerplantGasBiomass_electricityBus_1) -+50 flow(powerplantGasBiomass_electricityBus_2) -+20 flow(powerplantGasBiomass_thermalBus_0) -+20 flow(powerplantGasBiomass_thermalBus_1) -+20 flow(powerplantGasBiomass_thermalBus_2) - -s.t. - -c_e_BusBlock_balance(biomassBus_0)_: -+1 flow(biomassBus_powerplantGasBiomass_0) -= 0 - -c_e_BusBlock_balance(biomassBus_1)_: -+1 flow(biomassBus_powerplantGasBiomass_1) -= 0 - -c_e_BusBlock_balance(biomassBus_2)_: -+1 flow(biomassBus_powerplantGasBiomass_2) -= 0 - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(powerplantGasBiomass_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(powerplantGasBiomass_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(powerplantGasBiomass_electricityBus_2) -= 0 - -c_e_BusBlock_balance(gasBus_0)_: -+1 flow(gasBus_powerplantGasBiomass_0) -= 0 - -c_e_BusBlock_balance(gasBus_1)_: -+1 flow(gasBus_powerplantGasBiomass_1) -= 0 - -c_e_BusBlock_balance(gasBus_2)_: -+1 flow(gasBus_powerplantGasBiomass_2) -= 0 - -c_e_BusBlock_balance(thermalBus_0)_: -+1 flow(powerplantGasBiomass_thermalBus_0) -= 0 - -c_e_BusBlock_balance(thermalBus_1)_: -+1 flow(powerplantGasBiomass_thermalBus_1) -= 0 - -c_e_BusBlock_balance(thermalBus_2)_: -+1 flow(powerplantGasBiomass_thermalBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_gasBus_electricityBus_0)_: -+0.3 flow(gasBus_powerplantGasBiomass_0) --0.4 flow(powerplantGasBiomass_electricityBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_biomassBus_electricityBus_0)_: -+0.3 flow(biomassBus_powerplantGasBiomass_0) --0.1 flow(powerplantGasBiomass_electricityBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_gasBus_thermalBus_0)_: -+0.5 flow(gasBus_powerplantGasBiomass_0) --0.4 flow(powerplantGasBiomass_thermalBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_biomassBus_thermalBus_0)_: -+0.5 flow(biomassBus_powerplantGasBiomass_0) --0.1 flow(powerplantGasBiomass_thermalBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_gasBus_electricityBus_1)_: -+0.3 flow(gasBus_powerplantGasBiomass_1) --0.4 flow(powerplantGasBiomass_electricityBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_biomassBus_electricityBus_1)_: -+0.3 flow(biomassBus_powerplantGasBiomass_1) --0.1 flow(powerplantGasBiomass_electricityBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_gasBus_thermalBus_1)_: -+0.5 flow(gasBus_powerplantGasBiomass_1) --0.4 flow(powerplantGasBiomass_thermalBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_biomassBus_thermalBus_1)_: -+0.5 flow(biomassBus_powerplantGasBiomass_1) --0.1 flow(powerplantGasBiomass_thermalBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_gasBus_electricityBus_2)_: -+0.3 flow(gasBus_powerplantGasBiomass_2) --0.4 flow(powerplantGasBiomass_electricityBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_biomassBus_electricityBus_2)_: -+0.3 flow(biomassBus_powerplantGasBiomass_2) --0.1 flow(powerplantGasBiomass_electricityBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_gasBus_thermalBus_2)_: -+0.5 flow(gasBus_powerplantGasBiomass_2) --0.4 flow(powerplantGasBiomass_thermalBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_biomassBus_thermalBus_2)_: -+0.5 flow(biomassBus_powerplantGasBiomass_2) --0.1 flow(powerplantGasBiomass_thermalBus_2) -= 0 - -bounds - 0 <= flow(gasBus_powerplantGasBiomass_0) <= +inf - 0 <= flow(gasBus_powerplantGasBiomass_1) <= +inf - 0 <= flow(gasBus_powerplantGasBiomass_2) <= +inf - 0 <= flow(biomassBus_powerplantGasBiomass_0) <= +inf - 0 <= flow(biomassBus_powerplantGasBiomass_1) <= +inf - 0 <= flow(biomassBus_powerplantGasBiomass_2) <= +inf - 0 <= flow(powerplantGasBiomass_electricityBus_0) <= +inf - 0 <= flow(powerplantGasBiomass_electricityBus_1) <= +inf - 0 <= flow(powerplantGasBiomass_electricityBus_2) <= +inf - 0.0 <= flow(powerplantGasBiomass_thermalBus_0) <= 50000000000.0 - 0.0 <= flow(powerplantGasBiomass_thermalBus_1) <= 50000000000.0 - 0.0 <= flow(powerplantGasBiomass_thermalBus_2) <= 50000000000.0 -end diff --git a/tests/lp_files/converter_invest.lp b/tests/lp_files/converter_invest.lp deleted file mode 100644 index 149ac8d30..000000000 --- a/tests/lp_files/converter_invest.lp +++ /dev/null @@ -1,158 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+20 InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_0) -+50 flow(powerplant_gas_coal_electricityBus_0) -+50 flow(powerplant_gas_coal_electricityBus_1) -+50 flow(powerplant_gas_coal_electricityBus_2) -+20 flow(powerplant_gas_coal_thermalBus_0) -+20 flow(powerplant_gas_coal_thermalBus_1) -+20 flow(powerplant_gas_coal_thermalBus_2) - -s.t. - -c_e_BusBlock_balance(coalBus_0)_: -+1 flow(coalBus_powerplant_gas_coal_0) -= 0 - -c_e_BusBlock_balance(coalBus_1)_: -+1 flow(coalBus_powerplant_gas_coal_1) -= 0 - -c_e_BusBlock_balance(coalBus_2)_: -+1 flow(coalBus_powerplant_gas_coal_2) -= 0 - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(powerplant_gas_coal_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(powerplant_gas_coal_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(powerplant_gas_coal_electricityBus_2) -= 0 - -c_e_BusBlock_balance(gasBus_0)_: -+1 flow(gasBus_powerplant_gas_coal_0) -= 0 - -c_e_BusBlock_balance(gasBus_1)_: -+1 flow(gasBus_powerplant_gas_coal_1) -= 0 - -c_e_BusBlock_balance(gasBus_2)_: -+1 flow(gasBus_powerplant_gas_coal_2) -= 0 - -c_e_BusBlock_balance(thermalBus_0)_: -+1 flow(powerplant_gas_coal_thermalBus_0) -= 0 - -c_e_BusBlock_balance(thermalBus_1)_: -+1 flow(powerplant_gas_coal_thermalBus_1) -= 0 - -c_e_BusBlock_balance(thermalBus_2)_: -+1 flow(powerplant_gas_coal_thermalBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_electricityBus_0)_: -+0.3 flow(coalBus_powerplant_gas_coal_0) --0.2 flow(powerplant_gas_coal_electricityBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_electricityBus_0)_: -+0.3 flow(gasBus_powerplant_gas_coal_0) --0.58 flow(powerplant_gas_coal_electricityBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_thermalBus_0)_: -+0.5 flow(coalBus_powerplant_gas_coal_0) --0.2 flow(powerplant_gas_coal_thermalBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_thermalBus_0)_: -+0.5 flow(gasBus_powerplant_gas_coal_0) --0.58 flow(powerplant_gas_coal_thermalBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_electricityBus_1)_: -+0.3 flow(coalBus_powerplant_gas_coal_1) --0.2 flow(powerplant_gas_coal_electricityBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_electricityBus_1)_: -+0.3 flow(gasBus_powerplant_gas_coal_1) --0.58 flow(powerplant_gas_coal_electricityBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_thermalBus_1)_: -+0.5 flow(coalBus_powerplant_gas_coal_1) --0.2 flow(powerplant_gas_coal_thermalBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_thermalBus_1)_: -+0.5 flow(gasBus_powerplant_gas_coal_1) --0.58 flow(powerplant_gas_coal_thermalBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_electricityBus_2)_: -+0.3 flow(coalBus_powerplant_gas_coal_2) --0.2 flow(powerplant_gas_coal_electricityBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_electricityBus_2)_: -+0.3 flow(gasBus_powerplant_gas_coal_2) --0.58 flow(powerplant_gas_coal_electricityBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_thermalBus_2)_: -+0.5 flow(coalBus_powerplant_gas_coal_2) --0.2 flow(powerplant_gas_coal_thermalBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_thermalBus_2)_: -+0.5 flow(gasBus_powerplant_gas_coal_2) --0.58 flow(powerplant_gas_coal_thermalBus_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(powerplant_gas_coal_electricityBus_0)_: --1 InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_0) -+1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_0) -= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_coal_electricityBus_0_0)_: -+1 flow(powerplant_gas_coal_electricityBus_0) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_coal_electricityBus_0_1)_: -+1 flow(powerplant_gas_coal_electricityBus_1) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_coal_electricityBus_0_2)_: -+1 flow(powerplant_gas_coal_electricityBus_2) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_0) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_0) <= 1000 - 0 <= flow(gasBus_powerplant_gas_coal_0) <= +inf - 0 <= flow(gasBus_powerplant_gas_coal_1) <= +inf - 0 <= flow(gasBus_powerplant_gas_coal_2) <= +inf - 0 <= flow(coalBus_powerplant_gas_coal_0) <= +inf - 0 <= flow(coalBus_powerplant_gas_coal_1) <= +inf - 0 <= flow(coalBus_powerplant_gas_coal_2) <= +inf - 0 <= flow(powerplant_gas_coal_electricityBus_0) <= +inf - 0 <= flow(powerplant_gas_coal_electricityBus_1) <= +inf - 0 <= flow(powerplant_gas_coal_electricityBus_2) <= +inf - 0 <= flow(powerplant_gas_coal_thermalBus_0) <= +inf - 0 <= flow(powerplant_gas_coal_thermalBus_1) <= +inf - 0 <= flow(powerplant_gas_coal_thermalBus_2) <= +inf - 0 <= InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_0) <= +inf -end diff --git a/tests/lp_files/converter_invest_multi_period.lp b/tests/lp_files/converter_invest_multi_period.lp deleted file mode 100644 index 2f618d1bf..000000000 --- a/tests/lp_files/converter_invest_multi_period.lp +++ /dev/null @@ -1,370 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+32.94298610923851 InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_0) -+21.74383477344849 InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_1) -+10.764274640321037 InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_2) -+50 flow(powerplant_gas_coal_electricityBus_0) -+50 flow(powerplant_gas_coal_electricityBus_1) -+49.01960784313725 flow(powerplant_gas_coal_electricityBus_2) -+49.01960784313725 flow(powerplant_gas_coal_electricityBus_3) -+48.058439061899264 flow(powerplant_gas_coal_electricityBus_4) -+48.058439061899264 flow(powerplant_gas_coal_electricityBus_5) -+20 flow(powerplant_gas_coal_thermalBus_0) -+20 flow(powerplant_gas_coal_thermalBus_1) -+19.6078431372549 flow(powerplant_gas_coal_thermalBus_2) -+19.6078431372549 flow(powerplant_gas_coal_thermalBus_3) -+19.223375624759708 flow(powerplant_gas_coal_thermalBus_4) -+19.223375624759708 flow(powerplant_gas_coal_thermalBus_5) - -s.t. - -c_e_BusBlock_balance(coalBus_0)_: -+1 flow(coalBus_powerplant_gas_coal_0) -= 0 - -c_e_BusBlock_balance(coalBus_1)_: -+1 flow(coalBus_powerplant_gas_coal_1) -= 0 - -c_e_BusBlock_balance(coalBus_2)_: -+1 flow(coalBus_powerplant_gas_coal_2) -= 0 - -c_e_BusBlock_balance(coalBus_3)_: -+1 flow(coalBus_powerplant_gas_coal_3) -= 0 - -c_e_BusBlock_balance(coalBus_4)_: -+1 flow(coalBus_powerplant_gas_coal_4) -= 0 - -c_e_BusBlock_balance(coalBus_5)_: -+1 flow(coalBus_powerplant_gas_coal_5) -= 0 - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(powerplant_gas_coal_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(powerplant_gas_coal_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(powerplant_gas_coal_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(powerplant_gas_coal_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(powerplant_gas_coal_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(powerplant_gas_coal_electricityBus_5) -= 0 - -c_e_BusBlock_balance(gasBus_0)_: -+1 flow(gasBus_powerplant_gas_coal_0) -= 0 - -c_e_BusBlock_balance(gasBus_1)_: -+1 flow(gasBus_powerplant_gas_coal_1) -= 0 - -c_e_BusBlock_balance(gasBus_2)_: -+1 flow(gasBus_powerplant_gas_coal_2) -= 0 - -c_e_BusBlock_balance(gasBus_3)_: -+1 flow(gasBus_powerplant_gas_coal_3) -= 0 - -c_e_BusBlock_balance(gasBus_4)_: -+1 flow(gasBus_powerplant_gas_coal_4) -= 0 - -c_e_BusBlock_balance(gasBus_5)_: -+1 flow(gasBus_powerplant_gas_coal_5) -= 0 - -c_e_BusBlock_balance(thermalBus_0)_: -+1 flow(powerplant_gas_coal_thermalBus_0) -= 0 - -c_e_BusBlock_balance(thermalBus_1)_: -+1 flow(powerplant_gas_coal_thermalBus_1) -= 0 - -c_e_BusBlock_balance(thermalBus_2)_: -+1 flow(powerplant_gas_coal_thermalBus_2) -= 0 - -c_e_BusBlock_balance(thermalBus_3)_: -+1 flow(powerplant_gas_coal_thermalBus_3) -= 0 - -c_e_BusBlock_balance(thermalBus_4)_: -+1 flow(powerplant_gas_coal_thermalBus_4) -= 0 - -c_e_BusBlock_balance(thermalBus_5)_: -+1 flow(powerplant_gas_coal_thermalBus_5) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_electricityBus_0)_: -+0.3 flow(coalBus_powerplant_gas_coal_0) --0.2 flow(powerplant_gas_coal_electricityBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_electricityBus_0)_: -+0.3 flow(gasBus_powerplant_gas_coal_0) --0.58 flow(powerplant_gas_coal_electricityBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_thermalBus_0)_: -+0.5 flow(coalBus_powerplant_gas_coal_0) --0.2 flow(powerplant_gas_coal_thermalBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_thermalBus_0)_: -+0.5 flow(gasBus_powerplant_gas_coal_0) --0.58 flow(powerplant_gas_coal_thermalBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_electricityBus_1)_: -+0.3 flow(coalBus_powerplant_gas_coal_1) --0.2 flow(powerplant_gas_coal_electricityBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_electricityBus_1)_: -+0.3 flow(gasBus_powerplant_gas_coal_1) --0.58 flow(powerplant_gas_coal_electricityBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_thermalBus_1)_: -+0.5 flow(coalBus_powerplant_gas_coal_1) --0.2 flow(powerplant_gas_coal_thermalBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_thermalBus_1)_: -+0.5 flow(gasBus_powerplant_gas_coal_1) --0.58 flow(powerplant_gas_coal_thermalBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_electricityBus_2)_: -+0.3 flow(coalBus_powerplant_gas_coal_2) --0.2 flow(powerplant_gas_coal_electricityBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_electricityBus_2)_: -+0.3 flow(gasBus_powerplant_gas_coal_2) --0.58 flow(powerplant_gas_coal_electricityBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_thermalBus_2)_: -+0.5 flow(coalBus_powerplant_gas_coal_2) --0.2 flow(powerplant_gas_coal_thermalBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_thermalBus_2)_: -+0.5 flow(gasBus_powerplant_gas_coal_2) --0.58 flow(powerplant_gas_coal_thermalBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_electricityBus_3)_: -+0.3 flow(coalBus_powerplant_gas_coal_3) --0.2 flow(powerplant_gas_coal_electricityBus_3) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_electricityBus_3)_: -+0.3 flow(gasBus_powerplant_gas_coal_3) --0.58 flow(powerplant_gas_coal_electricityBus_3) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_thermalBus_3)_: -+0.5 flow(coalBus_powerplant_gas_coal_3) --0.2 flow(powerplant_gas_coal_thermalBus_3) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_thermalBus_3)_: -+0.5 flow(gasBus_powerplant_gas_coal_3) --0.58 flow(powerplant_gas_coal_thermalBus_3) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_electricityBus_4)_: -+0.3 flow(coalBus_powerplant_gas_coal_4) --0.2 flow(powerplant_gas_coal_electricityBus_4) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_electricityBus_4)_: -+0.3 flow(gasBus_powerplant_gas_coal_4) --0.58 flow(powerplant_gas_coal_electricityBus_4) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_thermalBus_4)_: -+0.5 flow(coalBus_powerplant_gas_coal_4) --0.2 flow(powerplant_gas_coal_thermalBus_4) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_thermalBus_4)_: -+0.5 flow(gasBus_powerplant_gas_coal_4) --0.58 flow(powerplant_gas_coal_thermalBus_4) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_electricityBus_5)_: -+0.3 flow(coalBus_powerplant_gas_coal_5) --0.2 flow(powerplant_gas_coal_electricityBus_5) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_electricityBus_5)_: -+0.3 flow(gasBus_powerplant_gas_coal_5) --0.58 flow(powerplant_gas_coal_electricityBus_5) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_thermalBus_5)_: -+0.5 flow(coalBus_powerplant_gas_coal_5) --0.2 flow(powerplant_gas_coal_thermalBus_5) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_thermalBus_5)_: -+0.5 flow(gasBus_powerplant_gas_coal_5) --0.58 flow(powerplant_gas_coal_thermalBus_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(powerplant_gas_coal_electricityBus_0)_: --1 InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_0) -+1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(powerplant_gas_coal_electricityBus_1)_: --1 InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_1) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_0) -+1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_1) -+1 InvestmentFlowBlock_old(powerplant_gas_coal_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(powerplant_gas_coal_electricityBus_2)_: --1 InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_2) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_1) -+1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_2) -+1 InvestmentFlowBlock_old(powerplant_gas_coal_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(powerplant_gas_coal_electricityBus_0)_: -+1 InvestmentFlowBlock_old_end(powerplant_gas_coal_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(powerplant_gas_coal_electricityBus_1)_: -+1 InvestmentFlowBlock_old_end(powerplant_gas_coal_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(powerplant_gas_coal_electricityBus_2)_: -+1 InvestmentFlowBlock_old_end(powerplant_gas_coal_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(powerplant_gas_coal_electricityBus_0)_: -+1 InvestmentFlowBlock_old_exo(powerplant_gas_coal_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(powerplant_gas_coal_electricityBus_1)_: -+1 InvestmentFlowBlock_old_exo(powerplant_gas_coal_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(powerplant_gas_coal_electricityBus_2)_: -+1 InvestmentFlowBlock_old_exo(powerplant_gas_coal_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(powerplant_gas_coal_electricityBus_0)_: -+1 InvestmentFlowBlock_old(powerplant_gas_coal_electricityBus_0) --1 InvestmentFlowBlock_old_end(powerplant_gas_coal_electricityBus_0) --1 InvestmentFlowBlock_old_exo(powerplant_gas_coal_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(powerplant_gas_coal_electricityBus_1)_: -+1 InvestmentFlowBlock_old(powerplant_gas_coal_electricityBus_1) --1 InvestmentFlowBlock_old_end(powerplant_gas_coal_electricityBus_1) --1 InvestmentFlowBlock_old_exo(powerplant_gas_coal_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(powerplant_gas_coal_electricityBus_2)_: -+1 InvestmentFlowBlock_old(powerplant_gas_coal_electricityBus_2) --1 InvestmentFlowBlock_old_end(powerplant_gas_coal_electricityBus_2) --1 InvestmentFlowBlock_old_exo(powerplant_gas_coal_electricityBus_2) -= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_coal_electricityBus_0_0)_: -+1 flow(powerplant_gas_coal_electricityBus_0) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_coal_electricityBus_0_1)_: -+1 flow(powerplant_gas_coal_electricityBus_1) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_coal_electricityBus_1_2)_: -+1 flow(powerplant_gas_coal_electricityBus_2) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_coal_electricityBus_1_3)_: -+1 flow(powerplant_gas_coal_electricityBus_3) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_coal_electricityBus_2_4)_: -+1 flow(powerplant_gas_coal_electricityBus_4) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_coal_electricityBus_2_5)_: -+1 flow(powerplant_gas_coal_electricityBus_5) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_2) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_0) <= 1000 - 0 <= InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_1) <= 1000 - 0 <= InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_2) <= 1000 - 0 <= flow(gasBus_powerplant_gas_coal_0) <= +inf - 0 <= flow(gasBus_powerplant_gas_coal_1) <= +inf - 0 <= flow(gasBus_powerplant_gas_coal_2) <= +inf - 0 <= flow(gasBus_powerplant_gas_coal_3) <= +inf - 0 <= flow(gasBus_powerplant_gas_coal_4) <= +inf - 0 <= flow(gasBus_powerplant_gas_coal_5) <= +inf - 0 <= flow(coalBus_powerplant_gas_coal_0) <= +inf - 0 <= flow(coalBus_powerplant_gas_coal_1) <= +inf - 0 <= flow(coalBus_powerplant_gas_coal_2) <= +inf - 0 <= flow(coalBus_powerplant_gas_coal_3) <= +inf - 0 <= flow(coalBus_powerplant_gas_coal_4) <= +inf - 0 <= flow(coalBus_powerplant_gas_coal_5) <= +inf - 0 <= flow(powerplant_gas_coal_electricityBus_0) <= +inf - 0 <= flow(powerplant_gas_coal_electricityBus_1) <= +inf - 0 <= flow(powerplant_gas_coal_electricityBus_2) <= +inf - 0 <= flow(powerplant_gas_coal_electricityBus_3) <= +inf - 0 <= flow(powerplant_gas_coal_electricityBus_4) <= +inf - 0 <= flow(powerplant_gas_coal_electricityBus_5) <= +inf - 0 <= flow(powerplant_gas_coal_thermalBus_0) <= +inf - 0 <= flow(powerplant_gas_coal_thermalBus_1) <= +inf - 0 <= flow(powerplant_gas_coal_thermalBus_2) <= +inf - 0 <= flow(powerplant_gas_coal_thermalBus_3) <= +inf - 0 <= flow(powerplant_gas_coal_thermalBus_4) <= +inf - 0 <= flow(powerplant_gas_coal_thermalBus_5) <= +inf - 0 <= InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old(powerplant_gas_coal_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old(powerplant_gas_coal_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old(powerplant_gas_coal_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(powerplant_gas_coal_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(powerplant_gas_coal_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(powerplant_gas_coal_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(powerplant_gas_coal_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(powerplant_gas_coal_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(powerplant_gas_coal_electricityBus_2) <= +inf -end diff --git a/tests/lp_files/converter_invest_with_existing.lp b/tests/lp_files/converter_invest_with_existing.lp deleted file mode 100644 index 03b081632..000000000 --- a/tests/lp_files/converter_invest_with_existing.lp +++ /dev/null @@ -1,158 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+20 InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_0) -+50 flow(powerplant_gas_coal_electricityBus_0) -+50 flow(powerplant_gas_coal_electricityBus_1) -+50 flow(powerplant_gas_coal_electricityBus_2) -+20 flow(powerplant_gas_coal_thermalBus_0) -+20 flow(powerplant_gas_coal_thermalBus_1) -+20 flow(powerplant_gas_coal_thermalBus_2) - -s.t. - -c_e_BusBlock_balance(coalBus_0)_: -+1 flow(coalBus_powerplant_gas_coal_0) -= 0 - -c_e_BusBlock_balance(coalBus_1)_: -+1 flow(coalBus_powerplant_gas_coal_1) -= 0 - -c_e_BusBlock_balance(coalBus_2)_: -+1 flow(coalBus_powerplant_gas_coal_2) -= 0 - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(powerplant_gas_coal_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(powerplant_gas_coal_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(powerplant_gas_coal_electricityBus_2) -= 0 - -c_e_BusBlock_balance(gasBus_0)_: -+1 flow(gasBus_powerplant_gas_coal_0) -= 0 - -c_e_BusBlock_balance(gasBus_1)_: -+1 flow(gasBus_powerplant_gas_coal_1) -= 0 - -c_e_BusBlock_balance(gasBus_2)_: -+1 flow(gasBus_powerplant_gas_coal_2) -= 0 - -c_e_BusBlock_balance(thermalBus_0)_: -+1 flow(powerplant_gas_coal_thermalBus_0) -= 0 - -c_e_BusBlock_balance(thermalBus_1)_: -+1 flow(powerplant_gas_coal_thermalBus_1) -= 0 - -c_e_BusBlock_balance(thermalBus_2)_: -+1 flow(powerplant_gas_coal_thermalBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_electricityBus_0)_: -+0.3 flow(coalBus_powerplant_gas_coal_0) --0.2 flow(powerplant_gas_coal_electricityBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_electricityBus_0)_: -+0.3 flow(gasBus_powerplant_gas_coal_0) --0.58 flow(powerplant_gas_coal_electricityBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_thermalBus_0)_: -+0.5 flow(coalBus_powerplant_gas_coal_0) --0.2 flow(powerplant_gas_coal_thermalBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_thermalBus_0)_: -+0.5 flow(gasBus_powerplant_gas_coal_0) --0.58 flow(powerplant_gas_coal_thermalBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_electricityBus_1)_: -+0.3 flow(coalBus_powerplant_gas_coal_1) --0.2 flow(powerplant_gas_coal_electricityBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_electricityBus_1)_: -+0.3 flow(gasBus_powerplant_gas_coal_1) --0.58 flow(powerplant_gas_coal_electricityBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_thermalBus_1)_: -+0.5 flow(coalBus_powerplant_gas_coal_1) --0.2 flow(powerplant_gas_coal_thermalBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_thermalBus_1)_: -+0.5 flow(gasBus_powerplant_gas_coal_1) --0.58 flow(powerplant_gas_coal_thermalBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_electricityBus_2)_: -+0.3 flow(coalBus_powerplant_gas_coal_2) --0.2 flow(powerplant_gas_coal_electricityBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_electricityBus_2)_: -+0.3 flow(gasBus_powerplant_gas_coal_2) --0.58 flow(powerplant_gas_coal_electricityBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_thermalBus_2)_: -+0.5 flow(coalBus_powerplant_gas_coal_2) --0.2 flow(powerplant_gas_coal_thermalBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_thermalBus_2)_: -+0.5 flow(gasBus_powerplant_gas_coal_2) --0.58 flow(powerplant_gas_coal_thermalBus_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(powerplant_gas_coal_electricityBus_0)_: --1 InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_0) -+1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_0) -= 200 - -c_u_InvestmentFlowBlock_max(powerplant_gas_coal_electricityBus_0_0)_: -+1 flow(powerplant_gas_coal_electricityBus_0) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_coal_electricityBus_0_1)_: -+1 flow(powerplant_gas_coal_electricityBus_1) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_coal_electricityBus_0_2)_: -+1 flow(powerplant_gas_coal_electricityBus_2) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_0) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_0) <= 1000 - 0 <= flow(gasBus_powerplant_gas_coal_0) <= +inf - 0 <= flow(gasBus_powerplant_gas_coal_1) <= +inf - 0 <= flow(gasBus_powerplant_gas_coal_2) <= +inf - 0 <= flow(coalBus_powerplant_gas_coal_0) <= +inf - 0 <= flow(coalBus_powerplant_gas_coal_1) <= +inf - 0 <= flow(coalBus_powerplant_gas_coal_2) <= +inf - 0 <= flow(powerplant_gas_coal_electricityBus_0) <= +inf - 0 <= flow(powerplant_gas_coal_electricityBus_1) <= +inf - 0 <= flow(powerplant_gas_coal_electricityBus_2) <= +inf - 0 <= flow(powerplant_gas_coal_thermalBus_0) <= +inf - 0 <= flow(powerplant_gas_coal_thermalBus_1) <= +inf - 0 <= flow(powerplant_gas_coal_thermalBus_2) <= +inf - 0 <= InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_0) <= +inf -end diff --git a/tests/lp_files/converter_invest_with_existing_multi_period.lp b/tests/lp_files/converter_invest_with_existing_multi_period.lp deleted file mode 100644 index 1af877c80..000000000 --- a/tests/lp_files/converter_invest_with_existing_multi_period.lp +++ /dev/null @@ -1,371 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+20.0 InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_0) -+19.6078431372549 InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_1) -+9.706853038245011 InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_2) -+50 flow(powerplant_gas_coal_electricityBus_0) -+50 flow(powerplant_gas_coal_electricityBus_1) -+49.01960784313725 flow(powerplant_gas_coal_electricityBus_2) -+49.01960784313725 flow(powerplant_gas_coal_electricityBus_3) -+48.058439061899264 flow(powerplant_gas_coal_electricityBus_4) -+48.058439061899264 flow(powerplant_gas_coal_electricityBus_5) -+20 flow(powerplant_gas_coal_thermalBus_0) -+20 flow(powerplant_gas_coal_thermalBus_1) -+19.6078431372549 flow(powerplant_gas_coal_thermalBus_2) -+19.6078431372549 flow(powerplant_gas_coal_thermalBus_3) -+19.223375624759708 flow(powerplant_gas_coal_thermalBus_4) -+19.223375624759708 flow(powerplant_gas_coal_thermalBus_5) - -s.t. - -c_e_BusBlock_balance(coalBus_0)_: -+1 flow(coalBus_powerplant_gas_coal_0) -= 0 - -c_e_BusBlock_balance(coalBus_1)_: -+1 flow(coalBus_powerplant_gas_coal_1) -= 0 - -c_e_BusBlock_balance(coalBus_2)_: -+1 flow(coalBus_powerplant_gas_coal_2) -= 0 - -c_e_BusBlock_balance(coalBus_3)_: -+1 flow(coalBus_powerplant_gas_coal_3) -= 0 - -c_e_BusBlock_balance(coalBus_4)_: -+1 flow(coalBus_powerplant_gas_coal_4) -= 0 - -c_e_BusBlock_balance(coalBus_5)_: -+1 flow(coalBus_powerplant_gas_coal_5) -= 0 - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(powerplant_gas_coal_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(powerplant_gas_coal_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(powerplant_gas_coal_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(powerplant_gas_coal_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(powerplant_gas_coal_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(powerplant_gas_coal_electricityBus_5) -= 0 - -c_e_BusBlock_balance(gasBus_0)_: -+1 flow(gasBus_powerplant_gas_coal_0) -= 0 - -c_e_BusBlock_balance(gasBus_1)_: -+1 flow(gasBus_powerplant_gas_coal_1) -= 0 - -c_e_BusBlock_balance(gasBus_2)_: -+1 flow(gasBus_powerplant_gas_coal_2) -= 0 - -c_e_BusBlock_balance(gasBus_3)_: -+1 flow(gasBus_powerplant_gas_coal_3) -= 0 - -c_e_BusBlock_balance(gasBus_4)_: -+1 flow(gasBus_powerplant_gas_coal_4) -= 0 - -c_e_BusBlock_balance(gasBus_5)_: -+1 flow(gasBus_powerplant_gas_coal_5) -= 0 - -c_e_BusBlock_balance(thermalBus_0)_: -+1 flow(powerplant_gas_coal_thermalBus_0) -= 0 - -c_e_BusBlock_balance(thermalBus_1)_: -+1 flow(powerplant_gas_coal_thermalBus_1) -= 0 - -c_e_BusBlock_balance(thermalBus_2)_: -+1 flow(powerplant_gas_coal_thermalBus_2) -= 0 - -c_e_BusBlock_balance(thermalBus_3)_: -+1 flow(powerplant_gas_coal_thermalBus_3) -= 0 - -c_e_BusBlock_balance(thermalBus_4)_: -+1 flow(powerplant_gas_coal_thermalBus_4) -= 0 - -c_e_BusBlock_balance(thermalBus_5)_: -+1 flow(powerplant_gas_coal_thermalBus_5) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_electricityBus_0)_: -+0.3 flow(coalBus_powerplant_gas_coal_0) --0.2 flow(powerplant_gas_coal_electricityBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_electricityBus_0)_: -+0.3 flow(gasBus_powerplant_gas_coal_0) --0.58 flow(powerplant_gas_coal_electricityBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_thermalBus_0)_: -+0.5 flow(coalBus_powerplant_gas_coal_0) --0.2 flow(powerplant_gas_coal_thermalBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_thermalBus_0)_: -+0.5 flow(gasBus_powerplant_gas_coal_0) --0.58 flow(powerplant_gas_coal_thermalBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_electricityBus_1)_: -+0.3 flow(coalBus_powerplant_gas_coal_1) --0.2 flow(powerplant_gas_coal_electricityBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_electricityBus_1)_: -+0.3 flow(gasBus_powerplant_gas_coal_1) --0.58 flow(powerplant_gas_coal_electricityBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_thermalBus_1)_: -+0.5 flow(coalBus_powerplant_gas_coal_1) --0.2 flow(powerplant_gas_coal_thermalBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_thermalBus_1)_: -+0.5 flow(gasBus_powerplant_gas_coal_1) --0.58 flow(powerplant_gas_coal_thermalBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_electricityBus_2)_: -+0.3 flow(coalBus_powerplant_gas_coal_2) --0.2 flow(powerplant_gas_coal_electricityBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_electricityBus_2)_: -+0.3 flow(gasBus_powerplant_gas_coal_2) --0.58 flow(powerplant_gas_coal_electricityBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_thermalBus_2)_: -+0.5 flow(coalBus_powerplant_gas_coal_2) --0.2 flow(powerplant_gas_coal_thermalBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_thermalBus_2)_: -+0.5 flow(gasBus_powerplant_gas_coal_2) --0.58 flow(powerplant_gas_coal_thermalBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_electricityBus_3)_: -+0.3 flow(coalBus_powerplant_gas_coal_3) --0.2 flow(powerplant_gas_coal_electricityBus_3) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_electricityBus_3)_: -+0.3 flow(gasBus_powerplant_gas_coal_3) --0.58 flow(powerplant_gas_coal_electricityBus_3) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_thermalBus_3)_: -+0.5 flow(coalBus_powerplant_gas_coal_3) --0.2 flow(powerplant_gas_coal_thermalBus_3) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_thermalBus_3)_: -+0.5 flow(gasBus_powerplant_gas_coal_3) --0.58 flow(powerplant_gas_coal_thermalBus_3) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_electricityBus_4)_: -+0.3 flow(coalBus_powerplant_gas_coal_4) --0.2 flow(powerplant_gas_coal_electricityBus_4) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_electricityBus_4)_: -+0.3 flow(gasBus_powerplant_gas_coal_4) --0.58 flow(powerplant_gas_coal_electricityBus_4) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_thermalBus_4)_: -+0.5 flow(coalBus_powerplant_gas_coal_4) --0.2 flow(powerplant_gas_coal_thermalBus_4) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_thermalBus_4)_: -+0.5 flow(gasBus_powerplant_gas_coal_4) --0.58 flow(powerplant_gas_coal_thermalBus_4) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_electricityBus_5)_: -+0.3 flow(coalBus_powerplant_gas_coal_5) --0.2 flow(powerplant_gas_coal_electricityBus_5) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_electricityBus_5)_: -+0.3 flow(gasBus_powerplant_gas_coal_5) --0.58 flow(powerplant_gas_coal_electricityBus_5) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_coalBus_thermalBus_5)_: -+0.5 flow(coalBus_powerplant_gas_coal_5) --0.2 flow(powerplant_gas_coal_thermalBus_5) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_coal_gasBus_thermalBus_5)_: -+0.5 flow(gasBus_powerplant_gas_coal_5) --0.58 flow(powerplant_gas_coal_thermalBus_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(powerplant_gas_coal_electricityBus_0)_: --1 InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_0) -+1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_0) -= 200 - -c_e_InvestmentFlowBlock_total_rule(powerplant_gas_coal_electricityBus_1)_: --1 InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_1) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_0) -+1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_1) -+1 InvestmentFlowBlock_old(powerplant_gas_coal_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(powerplant_gas_coal_electricityBus_2)_: --1 InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_2) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_1) -+1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_2) -+1 InvestmentFlowBlock_old(powerplant_gas_coal_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(powerplant_gas_coal_electricityBus_0)_: -+1 InvestmentFlowBlock_old_end(powerplant_gas_coal_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(powerplant_gas_coal_electricityBus_1)_: -+1 InvestmentFlowBlock_old_end(powerplant_gas_coal_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(powerplant_gas_coal_electricityBus_2)_: --1 InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_0) -+1 InvestmentFlowBlock_old_end(powerplant_gas_coal_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(powerplant_gas_coal_electricityBus_0)_: -+1 InvestmentFlowBlock_old_exo(powerplant_gas_coal_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(powerplant_gas_coal_electricityBus_1)_: -+1 InvestmentFlowBlock_old_exo(powerplant_gas_coal_electricityBus_1) -= 200 - -c_e_InvestmentFlowBlock_old_rule_exo(powerplant_gas_coal_electricityBus_2)_: -+1 InvestmentFlowBlock_old_exo(powerplant_gas_coal_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(powerplant_gas_coal_electricityBus_0)_: -+1 InvestmentFlowBlock_old(powerplant_gas_coal_electricityBus_0) --1 InvestmentFlowBlock_old_end(powerplant_gas_coal_electricityBus_0) --1 InvestmentFlowBlock_old_exo(powerplant_gas_coal_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(powerplant_gas_coal_electricityBus_1)_: -+1 InvestmentFlowBlock_old(powerplant_gas_coal_electricityBus_1) --1 InvestmentFlowBlock_old_end(powerplant_gas_coal_electricityBus_1) --1 InvestmentFlowBlock_old_exo(powerplant_gas_coal_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(powerplant_gas_coal_electricityBus_2)_: -+1 InvestmentFlowBlock_old(powerplant_gas_coal_electricityBus_2) --1 InvestmentFlowBlock_old_end(powerplant_gas_coal_electricityBus_2) --1 InvestmentFlowBlock_old_exo(powerplant_gas_coal_electricityBus_2) -= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_coal_electricityBus_0_0)_: -+1 flow(powerplant_gas_coal_electricityBus_0) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_coal_electricityBus_0_1)_: -+1 flow(powerplant_gas_coal_electricityBus_1) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_coal_electricityBus_1_2)_: -+1 flow(powerplant_gas_coal_electricityBus_2) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_coal_electricityBus_1_3)_: -+1 flow(powerplant_gas_coal_electricityBus_3) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_coal_electricityBus_2_4)_: -+1 flow(powerplant_gas_coal_electricityBus_4) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_coal_electricityBus_2_5)_: -+1 flow(powerplant_gas_coal_electricityBus_5) --1 InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_2) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_0) <= 1000 - 0 <= InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_1) <= 1000 - 0 <= InvestmentFlowBlock_invest(powerplant_gas_coal_electricityBus_2) <= 1000 - 0 <= flow(gasBus_powerplant_gas_coal_0) <= +inf - 0 <= flow(gasBus_powerplant_gas_coal_1) <= +inf - 0 <= flow(gasBus_powerplant_gas_coal_2) <= +inf - 0 <= flow(gasBus_powerplant_gas_coal_3) <= +inf - 0 <= flow(gasBus_powerplant_gas_coal_4) <= +inf - 0 <= flow(gasBus_powerplant_gas_coal_5) <= +inf - 0 <= flow(coalBus_powerplant_gas_coal_0) <= +inf - 0 <= flow(coalBus_powerplant_gas_coal_1) <= +inf - 0 <= flow(coalBus_powerplant_gas_coal_2) <= +inf - 0 <= flow(coalBus_powerplant_gas_coal_3) <= +inf - 0 <= flow(coalBus_powerplant_gas_coal_4) <= +inf - 0 <= flow(coalBus_powerplant_gas_coal_5) <= +inf - 0 <= flow(powerplant_gas_coal_electricityBus_0) <= +inf - 0 <= flow(powerplant_gas_coal_electricityBus_1) <= +inf - 0 <= flow(powerplant_gas_coal_electricityBus_2) <= +inf - 0 <= flow(powerplant_gas_coal_electricityBus_3) <= +inf - 0 <= flow(powerplant_gas_coal_electricityBus_4) <= +inf - 0 <= flow(powerplant_gas_coal_electricityBus_5) <= +inf - 0 <= flow(powerplant_gas_coal_thermalBus_0) <= +inf - 0 <= flow(powerplant_gas_coal_thermalBus_1) <= +inf - 0 <= flow(powerplant_gas_coal_thermalBus_2) <= +inf - 0 <= flow(powerplant_gas_coal_thermalBus_3) <= +inf - 0 <= flow(powerplant_gas_coal_thermalBus_4) <= +inf - 0 <= flow(powerplant_gas_coal_thermalBus_5) <= +inf - 0 <= InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_total(powerplant_gas_coal_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old(powerplant_gas_coal_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old(powerplant_gas_coal_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old(powerplant_gas_coal_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(powerplant_gas_coal_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(powerplant_gas_coal_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(powerplant_gas_coal_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(powerplant_gas_coal_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(powerplant_gas_coal_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(powerplant_gas_coal_electricityBus_2) <= +inf -end diff --git a/tests/lp_files/converter_multi_period.lp b/tests/lp_files/converter_multi_period.lp deleted file mode 100644 index d9be36e15..000000000 --- a/tests/lp_files/converter_multi_period.lp +++ /dev/null @@ -1,261 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+50 flow(powerplantGasBiomass_electricityBus_0) -+50 flow(powerplantGasBiomass_electricityBus_1) -+49.01960784313725 flow(powerplantGasBiomass_electricityBus_2) -+49.01960784313725 flow(powerplantGasBiomass_electricityBus_3) -+48.058439061899264 flow(powerplantGasBiomass_electricityBus_4) -+48.058439061899264 flow(powerplantGasBiomass_electricityBus_5) -+20 flow(powerplantGasBiomass_thermalBus_0) -+20 flow(powerplantGasBiomass_thermalBus_1) -+19.6078431372549 flow(powerplantGasBiomass_thermalBus_2) -+19.6078431372549 flow(powerplantGasBiomass_thermalBus_3) -+19.223375624759708 flow(powerplantGasBiomass_thermalBus_4) -+19.223375624759708 flow(powerplantGasBiomass_thermalBus_5) - -s.t. - -c_e_BusBlock_balance(biomassBus_0)_: -+1 flow(biomassBus_powerplantGasBiomass_0) -= 0 - -c_e_BusBlock_balance(biomassBus_1)_: -+1 flow(biomassBus_powerplantGasBiomass_1) -= 0 - -c_e_BusBlock_balance(biomassBus_2)_: -+1 flow(biomassBus_powerplantGasBiomass_2) -= 0 - -c_e_BusBlock_balance(biomassBus_3)_: -+1 flow(biomassBus_powerplantGasBiomass_3) -= 0 - -c_e_BusBlock_balance(biomassBus_4)_: -+1 flow(biomassBus_powerplantGasBiomass_4) -= 0 - -c_e_BusBlock_balance(biomassBus_5)_: -+1 flow(biomassBus_powerplantGasBiomass_5) -= 0 - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(powerplantGasBiomass_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(powerplantGasBiomass_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(powerplantGasBiomass_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(powerplantGasBiomass_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(powerplantGasBiomass_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(powerplantGasBiomass_electricityBus_5) -= 0 - -c_e_BusBlock_balance(gasBus_0)_: -+1 flow(gasBus_powerplantGasBiomass_0) -= 0 - -c_e_BusBlock_balance(gasBus_1)_: -+1 flow(gasBus_powerplantGasBiomass_1) -= 0 - -c_e_BusBlock_balance(gasBus_2)_: -+1 flow(gasBus_powerplantGasBiomass_2) -= 0 - -c_e_BusBlock_balance(gasBus_3)_: -+1 flow(gasBus_powerplantGasBiomass_3) -= 0 - -c_e_BusBlock_balance(gasBus_4)_: -+1 flow(gasBus_powerplantGasBiomass_4) -= 0 - -c_e_BusBlock_balance(gasBus_5)_: -+1 flow(gasBus_powerplantGasBiomass_5) -= 0 - -c_e_BusBlock_balance(thermalBus_0)_: -+1 flow(powerplantGasBiomass_thermalBus_0) -= 0 - -c_e_BusBlock_balance(thermalBus_1)_: -+1 flow(powerplantGasBiomass_thermalBus_1) -= 0 - -c_e_BusBlock_balance(thermalBus_2)_: -+1 flow(powerplantGasBiomass_thermalBus_2) -= 0 - -c_e_BusBlock_balance(thermalBus_3)_: -+1 flow(powerplantGasBiomass_thermalBus_3) -= 0 - -c_e_BusBlock_balance(thermalBus_4)_: -+1 flow(powerplantGasBiomass_thermalBus_4) -= 0 - -c_e_BusBlock_balance(thermalBus_5)_: -+1 flow(powerplantGasBiomass_thermalBus_5) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_gasBus_electricityBus_0)_: -+0.3 flow(gasBus_powerplantGasBiomass_0) --0.4 flow(powerplantGasBiomass_electricityBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_biomassBus_electricityBus_0)_: -+0.3 flow(biomassBus_powerplantGasBiomass_0) --0.1 flow(powerplantGasBiomass_electricityBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_gasBus_thermalBus_0)_: -+0.5 flow(gasBus_powerplantGasBiomass_0) --0.4 flow(powerplantGasBiomass_thermalBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_biomassBus_thermalBus_0)_: -+0.5 flow(biomassBus_powerplantGasBiomass_0) --0.1 flow(powerplantGasBiomass_thermalBus_0) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_gasBus_electricityBus_1)_: -+0.3 flow(gasBus_powerplantGasBiomass_1) --0.4 flow(powerplantGasBiomass_electricityBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_biomassBus_electricityBus_1)_: -+0.3 flow(biomassBus_powerplantGasBiomass_1) --0.1 flow(powerplantGasBiomass_electricityBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_gasBus_thermalBus_1)_: -+0.5 flow(gasBus_powerplantGasBiomass_1) --0.4 flow(powerplantGasBiomass_thermalBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_biomassBus_thermalBus_1)_: -+0.5 flow(biomassBus_powerplantGasBiomass_1) --0.1 flow(powerplantGasBiomass_thermalBus_1) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_gasBus_electricityBus_2)_: -+0.3 flow(gasBus_powerplantGasBiomass_2) --0.4 flow(powerplantGasBiomass_electricityBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_biomassBus_electricityBus_2)_: -+0.3 flow(biomassBus_powerplantGasBiomass_2) --0.1 flow(powerplantGasBiomass_electricityBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_gasBus_thermalBus_2)_: -+0.5 flow(gasBus_powerplantGasBiomass_2) --0.4 flow(powerplantGasBiomass_thermalBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_biomassBus_thermalBus_2)_: -+0.5 flow(biomassBus_powerplantGasBiomass_2) --0.1 flow(powerplantGasBiomass_thermalBus_2) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_gasBus_electricityBus_3)_: -+0.3 flow(gasBus_powerplantGasBiomass_3) --0.4 flow(powerplantGasBiomass_electricityBus_3) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_biomassBus_electricityBus_3)_: -+0.3 flow(biomassBus_powerplantGasBiomass_3) --0.1 flow(powerplantGasBiomass_electricityBus_3) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_gasBus_thermalBus_3)_: -+0.5 flow(gasBus_powerplantGasBiomass_3) --0.4 flow(powerplantGasBiomass_thermalBus_3) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_biomassBus_thermalBus_3)_: -+0.5 flow(biomassBus_powerplantGasBiomass_3) --0.1 flow(powerplantGasBiomass_thermalBus_3) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_gasBus_electricityBus_4)_: -+0.3 flow(gasBus_powerplantGasBiomass_4) --0.4 flow(powerplantGasBiomass_electricityBus_4) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_biomassBus_electricityBus_4)_: -+0.3 flow(biomassBus_powerplantGasBiomass_4) --0.1 flow(powerplantGasBiomass_electricityBus_4) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_gasBus_thermalBus_4)_: -+0.5 flow(gasBus_powerplantGasBiomass_4) --0.4 flow(powerplantGasBiomass_thermalBus_4) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_biomassBus_thermalBus_4)_: -+0.5 flow(biomassBus_powerplantGasBiomass_4) --0.1 flow(powerplantGasBiomass_thermalBus_4) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_gasBus_electricityBus_5)_: -+0.3 flow(gasBus_powerplantGasBiomass_5) --0.4 flow(powerplantGasBiomass_electricityBus_5) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_biomassBus_electricityBus_5)_: -+0.3 flow(biomassBus_powerplantGasBiomass_5) --0.1 flow(powerplantGasBiomass_electricityBus_5) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_gasBus_thermalBus_5)_: -+0.5 flow(gasBus_powerplantGasBiomass_5) --0.4 flow(powerplantGasBiomass_thermalBus_5) -= 0 - -c_e_ConverterBlock_relation(powerplantGasBiomass_biomassBus_thermalBus_5)_: -+0.5 flow(biomassBus_powerplantGasBiomass_5) --0.1 flow(powerplantGasBiomass_thermalBus_5) -= 0 - -bounds - 0 <= flow(gasBus_powerplantGasBiomass_0) <= +inf - 0 <= flow(gasBus_powerplantGasBiomass_1) <= +inf - 0 <= flow(gasBus_powerplantGasBiomass_2) <= +inf - 0 <= flow(gasBus_powerplantGasBiomass_3) <= +inf - 0 <= flow(gasBus_powerplantGasBiomass_4) <= +inf - 0 <= flow(gasBus_powerplantGasBiomass_5) <= +inf - 0 <= flow(biomassBus_powerplantGasBiomass_0) <= +inf - 0 <= flow(biomassBus_powerplantGasBiomass_1) <= +inf - 0 <= flow(biomassBus_powerplantGasBiomass_2) <= +inf - 0 <= flow(biomassBus_powerplantGasBiomass_3) <= +inf - 0 <= flow(biomassBus_powerplantGasBiomass_4) <= +inf - 0 <= flow(biomassBus_powerplantGasBiomass_5) <= +inf - 0 <= flow(powerplantGasBiomass_electricityBus_0) <= +inf - 0 <= flow(powerplantGasBiomass_electricityBus_1) <= +inf - 0 <= flow(powerplantGasBiomass_electricityBus_2) <= +inf - 0 <= flow(powerplantGasBiomass_electricityBus_3) <= +inf - 0 <= flow(powerplantGasBiomass_electricityBus_4) <= +inf - 0 <= flow(powerplantGasBiomass_electricityBus_5) <= +inf - 0.0 <= flow(powerplantGasBiomass_thermalBus_0) <= 50000000000.0 - 0.0 <= flow(powerplantGasBiomass_thermalBus_1) <= 50000000000.0 - 0.0 <= flow(powerplantGasBiomass_thermalBus_2) <= 50000000000.0 - 0.0 <= flow(powerplantGasBiomass_thermalBus_3) <= 50000000000.0 - 0.0 <= flow(powerplantGasBiomass_thermalBus_4) <= 50000000000.0 - 0.0 <= flow(powerplantGasBiomass_thermalBus_5) <= 50000000000.0 -end diff --git a/tests/lp_files/dsm_module_DIW.lp b/tests/lp_files/dsm_module_DIW.lp deleted file mode 100644 index e3d5eec30..000000000 --- a/tests/lp_files/dsm_module_DIW.lp +++ /dev/null @@ -1,157 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_2) -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_0) -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_SinkDSMDIWBlock_shift_shed_vars(demand_dsm_0)_: -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) -= 0 - -c_e_SinkDSMDIWBlock_shift_shed_vars(demand_dsm_1)_: -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) -= 0 - -c_e_SinkDSMDIWBlock_shift_shed_vars(demand_dsm_2)_: -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) -= 0 - -c_e_SinkDSMDIWBlock_input_output_relation(demand_dsm_0_0)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) --1 SinkDSMDIWBlock_dsm_up(demand_dsm_0) -+1 flow(bus_elec_demand_dsm_0) -= 1 - -c_e_SinkDSMDIWBlock_input_output_relation(demand_dsm_0_1)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) --1 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -+1 flow(bus_elec_demand_dsm_1) -= 1 - -c_e_SinkDSMDIWBlock_input_output_relation(demand_dsm_0_2)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) --1 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -+1 flow(bus_elec_demand_dsm_2) -= 1 - -c_e_SinkDSMDIWBlock_dsm_updo_constraint(demand_dsm_0)_: --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_0) -= 0 - -c_e_SinkDSMDIWBlock_dsm_updo_constraint(demand_dsm_1)_: --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -= 0 - -c_e_SinkDSMDIWBlock_dsm_updo_constraint(demand_dsm_2)_: --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -= 0 - -c_u_SinkDSMDIWBlock_dsm_up_constraint(demand_dsm_0)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMDIWBlock_dsm_up_constraint(demand_dsm_1)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -<= 0.5 - -c_u_SinkDSMDIWBlock_dsm_up_constraint(demand_dsm_2)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMDIWBlock_dsm_do_constraint(demand_dsm_0)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMDIWBlock_dsm_do_constraint(demand_dsm_1)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) -<= 0.5 - -c_u_SinkDSMDIWBlock_dsm_do_constraint(demand_dsm_2)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMDIWBlock_C2_constraint(demand_dsm_0)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMDIWBlock_C2_constraint(demand_dsm_1)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -<= 0.5 - -c_u_SinkDSMDIWBlock_C2_constraint(demand_dsm_2)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -<= 0.5 - -bounds - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_up(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_up(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_up(demand_dsm_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf -end diff --git a/tests/lp_files/dsm_module_DIW_extended.lp b/tests/lp_files/dsm_module_DIW_extended.lp deleted file mode 100644 index 88cfa3bb1..000000000 --- a/tests/lp_files/dsm_module_DIW_extended.lp +++ /dev/null @@ -1,179 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_2) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) -+100 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) -+100 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) -+100 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_0) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_2) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_SinkDSMDIWBlock_input_output_relation(demand_dsm_0_0)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) --1 SinkDSMDIWBlock_dsm_up(demand_dsm_0) -+1 flow(bus_elec_demand_dsm_0) -= 1 - -c_e_SinkDSMDIWBlock_input_output_relation(demand_dsm_0_1)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) --1 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -+1 flow(bus_elec_demand_dsm_1) -= 0.9 - -c_e_SinkDSMDIWBlock_input_output_relation(demand_dsm_0_2)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) --1 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -+1 flow(bus_elec_demand_dsm_2) -= 0.8 - -c_e_SinkDSMDIWBlock_dsm_updo_constraint(demand_dsm_0)_: --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) -+0.99 SinkDSMDIWBlock_dsm_up(demand_dsm_0) -= 0 - -c_e_SinkDSMDIWBlock_dsm_updo_constraint(demand_dsm_1)_: --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) -+0.99 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -= 0 - -c_e_SinkDSMDIWBlock_dsm_updo_constraint(demand_dsm_2)_: --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) -+0.99 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -= 0 - -c_u_SinkDSMDIWBlock_dsm_up_constraint(demand_dsm_0)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMDIWBlock_dsm_up_constraint(demand_dsm_1)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -<= 0.4 - -c_u_SinkDSMDIWBlock_dsm_up_constraint(demand_dsm_2)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMDIWBlock_dsm_do_constraint(demand_dsm_0)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) -<= 0.3 - -c_u_SinkDSMDIWBlock_dsm_do_constraint(demand_dsm_1)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) -<= 0.3 - -c_u_SinkDSMDIWBlock_dsm_do_constraint(demand_dsm_2)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) -<= 0.4 - -c_u_SinkDSMDIWBlock_C2_constraint(demand_dsm_0)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMDIWBlock_C2_constraint(demand_dsm_1)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -<= 0.4 - -c_u_SinkDSMDIWBlock_C2_constraint(demand_dsm_2)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMDIWBlock_recovery_constraint(demand_dsm_0)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_0) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -<= 0.5 - -c_u_SinkDSMDIWBlock_recovery_constraint(demand_dsm_1)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -<= 0.4 - -c_u_SinkDSMDIWBlock_recovery_constraint(demand_dsm_2)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMDIWBlock_shed_limit_constraint(demand_dsm_0)_: -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) -<= 0.6 - -c_u_SinkDSMDIWBlock_shed_limit_constraint(demand_dsm_1)_: -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) -<= 0.6 - -c_u_SinkDSMDIWBlock_shed_limit_constraint(demand_dsm_2)_: -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) -<= 0.8 - -bounds - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_up(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_up(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_up(demand_dsm_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf -end diff --git a/tests/lp_files/dsm_module_DIW_extended_multi_period.lp b/tests/lp_files/dsm_module_DIW_extended_multi_period.lp deleted file mode 100644 index 80272cd99..000000000 --- a/tests/lp_files/dsm_module_DIW_extended_multi_period.lp +++ /dev/null @@ -1,395 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) -+0.9803921568627451 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_2) -+0.9803921568627451 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_3) -+0.9611687812379853 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_4) -+0.9611687812379853 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_5) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) -+0.9803921568627451 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) -+0.9803921568627451 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_3) -+0.9611687812379853 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_4) -+0.9611687812379853 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) -+0.9803921568627451 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) -+0.9803921568627451 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_3) -+0.9611687812379853 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_4) -+0.9611687812379853 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_5) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_1) -+0.9803921568627451 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_2) -+0.9803921568627451 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_3) -+0.9611687812379853 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_4) -+0.9611687812379853 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_5) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_1) -+0.9803921568627451 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_2) -+0.9803921568627451 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_3) -+0.9611687812379853 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_4) -+0.9611687812379853 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_5) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_1) -+0.9803921568627451 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_2) -+0.9803921568627451 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_3) -+0.9611687812379853 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_4) -+0.9611687812379853 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_5) -+100 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) -+100 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) -+98.0392156862745 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) -+98.0392156862745 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_3) -+96.11687812379853 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_4) -+96.11687812379853 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_5) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_0) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -+0.9803921568627451 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -+0.9803921568627451 SinkDSMDIWBlock_dsm_up(demand_dsm_3) -+0.9611687812379853 SinkDSMDIWBlock_dsm_up(demand_dsm_4) -+0.9611687812379853 SinkDSMDIWBlock_dsm_up(demand_dsm_5) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_BusBlock_balance(bus_elec_3)_: -+1 flow(bus_elec_demand_dsm_3) -= 0 - -c_e_BusBlock_balance(bus_elec_4)_: -+1 flow(bus_elec_demand_dsm_4) -= 0 - -c_e_BusBlock_balance(bus_elec_5)_: -+1 flow(bus_elec_demand_dsm_5) -= 0 - -c_e_SinkDSMDIWBlock_input_output_relation(demand_dsm_0_0)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) --1 SinkDSMDIWBlock_dsm_up(demand_dsm_0) -+1 flow(bus_elec_demand_dsm_0) -= 1 - -c_e_SinkDSMDIWBlock_input_output_relation(demand_dsm_0_1)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) --1 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -+1 flow(bus_elec_demand_dsm_1) -= 0.9 - -c_e_SinkDSMDIWBlock_input_output_relation(demand_dsm_1_2)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_2) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) --1 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -+1 flow(bus_elec_demand_dsm_2) -= 0.8 - -c_e_SinkDSMDIWBlock_input_output_relation(demand_dsm_1_3)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_3) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_3) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_3) --1 SinkDSMDIWBlock_dsm_up(demand_dsm_3) -+1 flow(bus_elec_demand_dsm_3) -= 0.7 - -c_e_SinkDSMDIWBlock_input_output_relation(demand_dsm_2_4)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_4) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_4) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_4) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_4) --1 SinkDSMDIWBlock_dsm_up(demand_dsm_4) -+1 flow(bus_elec_demand_dsm_4) -= 0.7 - -c_e_SinkDSMDIWBlock_input_output_relation(demand_dsm_2_5)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_5) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_5) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_5) --1 SinkDSMDIWBlock_dsm_up(demand_dsm_5) -+1 flow(bus_elec_demand_dsm_5) -= 0.7 - -c_e_SinkDSMDIWBlock_dsm_updo_constraint(demand_dsm_0)_: --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) -+0.99 SinkDSMDIWBlock_dsm_up(demand_dsm_0) -= 0 - -c_e_SinkDSMDIWBlock_dsm_updo_constraint(demand_dsm_1)_: --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) -+0.99 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -= 0 - -c_e_SinkDSMDIWBlock_dsm_updo_constraint(demand_dsm_2)_: --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_3) -+0.99 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -= 0 - -c_e_SinkDSMDIWBlock_dsm_updo_constraint(demand_dsm_3)_: --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_2) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_3) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_4) -+0.99 SinkDSMDIWBlock_dsm_up(demand_dsm_3) -= 0 - -c_e_SinkDSMDIWBlock_dsm_updo_constraint(demand_dsm_4)_: --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_3) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_4) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_5) -+0.99 SinkDSMDIWBlock_dsm_up(demand_dsm_4) -= 0 - -c_e_SinkDSMDIWBlock_dsm_updo_constraint(demand_dsm_5)_: --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_4) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_5) -+0.99 SinkDSMDIWBlock_dsm_up(demand_dsm_5) -= 0 - -c_u_SinkDSMDIWBlock_dsm_up_constraint(demand_dsm_0)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMDIWBlock_dsm_up_constraint(demand_dsm_1)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -<= 0.4 - -c_u_SinkDSMDIWBlock_dsm_up_constraint(demand_dsm_2)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMDIWBlock_dsm_up_constraint(demand_dsm_3)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_3) -<= 0.3 - -c_u_SinkDSMDIWBlock_dsm_up_constraint(demand_dsm_4)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_4) -<= 0.3 - -c_u_SinkDSMDIWBlock_dsm_up_constraint(demand_dsm_5)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_5) -<= 0.3 - -c_u_SinkDSMDIWBlock_dsm_do_constraint(demand_dsm_0)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) -<= 0.3 - -c_u_SinkDSMDIWBlock_dsm_do_constraint(demand_dsm_1)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) -<= 0.3 - -c_u_SinkDSMDIWBlock_dsm_do_constraint(demand_dsm_2)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_2) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) -<= 0.4 - -c_u_SinkDSMDIWBlock_dsm_do_constraint(demand_dsm_3)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_3) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_3) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_3) -<= 0.3 - -c_u_SinkDSMDIWBlock_dsm_do_constraint(demand_dsm_4)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_4) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_4) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_4) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_4) -<= 0.3 - -c_u_SinkDSMDIWBlock_dsm_do_constraint(demand_dsm_5)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_5) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_5) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_5) -<= 0.3 - -c_u_SinkDSMDIWBlock_C2_constraint(demand_dsm_0)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMDIWBlock_C2_constraint(demand_dsm_1)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -<= 0.4 - -c_u_SinkDSMDIWBlock_C2_constraint(demand_dsm_2)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_2) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMDIWBlock_C2_constraint(demand_dsm_3)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_3) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_3) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_3) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_3) -<= 0.3 - -c_u_SinkDSMDIWBlock_C2_constraint(demand_dsm_4)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_4) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_4) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_4) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_4) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_4) -<= 0.3 - -c_u_SinkDSMDIWBlock_C2_constraint(demand_dsm_5)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_5) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_5) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_5) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_5) -<= 0.3 - -c_u_SinkDSMDIWBlock_recovery_constraint(demand_dsm_0)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_0) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -<= 0.5 - -c_u_SinkDSMDIWBlock_recovery_constraint(demand_dsm_1)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -<= 0.4 - -c_u_SinkDSMDIWBlock_recovery_constraint(demand_dsm_2)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_3) -<= 0.5 - -c_u_SinkDSMDIWBlock_recovery_constraint(demand_dsm_3)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_3) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_4) -<= 0.3 - -c_u_SinkDSMDIWBlock_recovery_constraint(demand_dsm_4)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_4) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_5) -<= 0.3 - -c_u_SinkDSMDIWBlock_recovery_constraint(demand_dsm_5)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_5) -<= 0.3 - -c_u_SinkDSMDIWBlock_shed_limit_constraint(demand_dsm_0)_: -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) -<= 0.6 - -c_u_SinkDSMDIWBlock_shed_limit_constraint(demand_dsm_1)_: -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) -<= 0.6 - -c_u_SinkDSMDIWBlock_shed_limit_constraint(demand_dsm_2)_: -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_3) -<= 0.8 - -c_u_SinkDSMDIWBlock_shed_limit_constraint(demand_dsm_3)_: -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_3) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_4) -<= 0.6 - -c_u_SinkDSMDIWBlock_shed_limit_constraint(demand_dsm_4)_: -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_4) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_5) -<= 0.6 - -c_u_SinkDSMDIWBlock_shed_limit_constraint(demand_dsm_5)_: -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_5) -<= 0.6 - -bounds - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_3) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_4) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_5) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_3) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_4) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_5) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_3) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_4) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_5) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_3) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_4) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_5) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_3) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_4) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_5) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_3) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_4) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_5) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shed(demand_dsm_3) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shed(demand_dsm_4) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shed(demand_dsm_5) <= +inf - 0 <= SinkDSMDIWBlock_dsm_up(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_up(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_up(demand_dsm_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_up(demand_dsm_3) <= +inf - 0 <= SinkDSMDIWBlock_dsm_up(demand_dsm_4) <= +inf - 0 <= SinkDSMDIWBlock_dsm_up(demand_dsm_5) <= +inf - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_3) <= +inf - 0 <= flow(bus_elec_demand_dsm_4) <= +inf - 0 <= flow(bus_elec_demand_dsm_5) <= +inf -end diff --git a/tests/lp_files/dsm_module_DIW_invest.lp b/tests/lp_files/dsm_module_DIW_invest.lp deleted file mode 100644 index 4db037a09..000000000 --- a/tests/lp_files/dsm_module_DIW_invest.lp +++ /dev/null @@ -1,184 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+100 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_0) -+100 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) -+100 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_0) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_1) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_2) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_total_dsm_rule(demand_dsm_0)_: -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_0) -= 50 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_0) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_0) -+1 flow(bus_elec_demand_dsm_0) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_1) -+1 flow(bus_elec_demand_dsm_1) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_0_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_2) -+1 flow(bus_elec_demand_dsm_2) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_0)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_0) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_1)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_0) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_1) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_2)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_1) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_2) -= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_0) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_1) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_0_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_2) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_0) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_0_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_0) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_0) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_1) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_0_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_2) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_0_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -bounds - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_total(demand_dsm_0) <= +inf - 33 <= SinkDSMDIWInvestmentBlock_invest(demand_dsm_0) <= 100 -end diff --git a/tests/lp_files/dsm_module_DIW_invest_multi_period.lp b/tests/lp_files/dsm_module_DIW_invest_multi_period.lp deleted file mode 100644 index 8f3d611e7..000000000 --- a/tests/lp_files/dsm_module_DIW_invest_multi_period.lp +++ /dev/null @@ -1,487 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+2941.5609381007307 ONE_VAR_CONSTANT -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_1) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_2) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_3) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_4) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_3) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_4) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_4) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_1) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_2) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_3) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_4) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_1) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_2) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_3) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_4) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_1) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_2) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_3) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_4) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_5) -+100 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_0) -+100 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) -+98.0392156862745 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) -+98.0392156862745 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_3) -+96.11687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_4) -+96.11687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_5) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_0) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_1) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_2) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_3) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_4) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_5) -+76.46810240317063 SinkDSMDIWInvestmentBlock_invest(demand_dsm_0) -+50.47234572422055 SinkDSMDIWInvestmentBlock_invest(demand_dsm_1) -+24.986309764465627 SinkDSMDIWInvestmentBlock_invest(demand_dsm_2) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_BusBlock_balance(bus_elec_3)_: -+1 flow(bus_elec_demand_dsm_3) -= 0 - -c_e_BusBlock_balance(bus_elec_4)_: -+1 flow(bus_elec_demand_dsm_4) -= 0 - -c_e_BusBlock_balance(bus_elec_5)_: -+1 flow(bus_elec_demand_dsm_5) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_total_dsm_rule(demand_dsm_0)_: --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_0) -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -= 50 - -c_e_SinkDSMDIWInvestmentBlock_total_dsm_rule(demand_dsm_1)_: --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_1) --1 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_total_dsm_rule(demand_dsm_2)_: --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_2) --1 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_end(demand_dsm_0)_: -+1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_end(demand_dsm_1)_: -+1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_end(demand_dsm_2)_: -+1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_exo(demand_dsm_0)_: -+1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_exo(demand_dsm_1)_: -+1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_exo(demand_dsm_2)_: -+1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule(demand_dsm_0)_: -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_0) --1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_0) --1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule(demand_dsm_1)_: -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_1) --1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_1) --1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule(demand_dsm_2)_: -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_2) --1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_2) --1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_0) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_0) -+1 flow(bus_elec_demand_dsm_0) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_1) -+1 flow(bus_elec_demand_dsm_1) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_1_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_2) -+1 flow(bus_elec_demand_dsm_2) -= 2 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_1_3)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_3) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_3) -+1 flow(bus_elec_demand_dsm_3) -= 2 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_2_4)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_4) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_4) -+1 flow(bus_elec_demand_dsm_4) -= 3 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_2_5)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_5) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_5) -+1 flow(bus_elec_demand_dsm_5) -= 3 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_0)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_0) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_1)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_0) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_1) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_2)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_1) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_2) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_3)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_2) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_3) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_4) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_3) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_4)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_3) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_4) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_5) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_4) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_5)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_4) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_5) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_5) -= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_0) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_1) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_1_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_2) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_1_3)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_3) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_2_4)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_4) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_2_5)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_5) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_0) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_1_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_1_3)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_3) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_2_4)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_4) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_2_5)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_5) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_0) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_0) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_1) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_1_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_2) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_1_3)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_3) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_3) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_2_4)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_4) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_4) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_2_5)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_5) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_5) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_1_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_3) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_1_3)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_4) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_2_4)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_5) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_2_5)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_5) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_overall_dsm_maximum(demand_dsm_0)_: -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 1000 - -c_u_SinkDSMDIWInvestmentBlock_overall_dsm_maximum(demand_dsm_1)_: -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -<= 1000 - -c_u_SinkDSMDIWInvestmentBlock_overall_dsm_maximum(demand_dsm_2)_: -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) -<= 1000 - -c_l_SinkDSMDIWInvestmentBlock_overall_minimum(demand_dsm)_: -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) ->= 5 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_5) <= +inf - 33 <= SinkDSMDIWInvestmentBlock_invest(demand_dsm_0) <= 100 - 33 <= SinkDSMDIWInvestmentBlock_invest(demand_dsm_1) <= 100 - 33 <= SinkDSMDIWInvestmentBlock_invest(demand_dsm_2) <= 100 - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_3) <= +inf - 0 <= flow(bus_elec_demand_dsm_4) <= +inf - 0 <= flow(bus_elec_demand_dsm_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_total(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_total(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_total(demand_dsm_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old(demand_dsm_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_end(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_end(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_end(demand_dsm_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_2) <= +inf -end diff --git a/tests/lp_files/dsm_module_DIW_invest_multi_period_remaining_value.lp b/tests/lp_files/dsm_module_DIW_invest_multi_period_remaining_value.lp deleted file mode 100644 index 8875230b1..000000000 --- a/tests/lp_files/dsm_module_DIW_invest_multi_period_remaining_value.lp +++ /dev/null @@ -1,487 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+2941.5609381007307 ONE_VAR_CONSTANT -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_1) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_2) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_3) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_4) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_3) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_4) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_4) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_1) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_2) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_3) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_4) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_1) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_2) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_3) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_4) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_1) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_2) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_3) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_4) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_5) -+100 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_0) -+100 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) -+98.0392156862745 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) -+98.0392156862745 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_3) -+96.11687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_4) -+96.11687812379853 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_5) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_0) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_1) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_2) -+0.9803921568627451 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_3) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_4) -+0.9611687812379853 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_5) -+57.62165571222974 SinkDSMDIWInvestmentBlock_invest(demand_dsm_0) -+39.8850096825295 SinkDSMDIWInvestmentBlock_invest(demand_dsm_1) -+23.833722936524442 SinkDSMDIWInvestmentBlock_invest(demand_dsm_2) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_BusBlock_balance(bus_elec_3)_: -+1 flow(bus_elec_demand_dsm_3) -= 0 - -c_e_BusBlock_balance(bus_elec_4)_: -+1 flow(bus_elec_demand_dsm_4) -= 0 - -c_e_BusBlock_balance(bus_elec_5)_: -+1 flow(bus_elec_demand_dsm_5) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_total_dsm_rule(demand_dsm_0)_: --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_0) -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -= 50 - -c_e_SinkDSMDIWInvestmentBlock_total_dsm_rule(demand_dsm_1)_: --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_1) --1 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_total_dsm_rule(demand_dsm_2)_: --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_2) --1 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_end(demand_dsm_0)_: -+1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_end(demand_dsm_1)_: -+1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_end(demand_dsm_2)_: -+1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_exo(demand_dsm_0)_: -+1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_exo(demand_dsm_1)_: -+1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_exo(demand_dsm_2)_: -+1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule(demand_dsm_0)_: -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_0) --1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_0) --1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule(demand_dsm_1)_: -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_1) --1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_1) --1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule(demand_dsm_2)_: -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_2) --1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_2) --1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_0) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_0) -+1 flow(bus_elec_demand_dsm_0) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_1) -+1 flow(bus_elec_demand_dsm_1) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_1_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_2) -+1 flow(bus_elec_demand_dsm_2) -= 2 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_1_3)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_3) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_3) -+1 flow(bus_elec_demand_dsm_3) -= 2 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_2_4)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_4) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_4) -+1 flow(bus_elec_demand_dsm_4) -= 3 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_2_5)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_5) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_5) -+1 flow(bus_elec_demand_dsm_5) -= 3 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_0)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_0) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_1)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_0) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_1) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_2)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_1) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_2) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_3)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_2) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_3) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_4) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_3) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_4)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_3) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_4) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_5) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_4) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_5)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_4) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_5) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_5) -= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_0) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_1) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_1_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_2) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_1_3)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_3) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_2_4)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_4) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_2_5)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_5) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_0) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_1_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_1_3)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_3) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_2_4)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_4) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_2_5)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_5) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_0) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_0) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_1) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_1_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_2) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_1_3)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_3) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_3) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_2_4)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_4) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_4) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_2_5)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_5) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_5) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_1_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_3) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_1_3)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_4) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_2_4)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_5) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_2_5)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_5) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_overall_dsm_maximum(demand_dsm_0)_: -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_0) -<= 1000 - -c_u_SinkDSMDIWInvestmentBlock_overall_dsm_maximum(demand_dsm_1)_: -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_1) -<= 1000 - -c_u_SinkDSMDIWInvestmentBlock_overall_dsm_maximum(demand_dsm_2)_: -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) -<= 1000 - -c_l_SinkDSMDIWInvestmentBlock_overall_minimum(demand_dsm)_: -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_2) ->= 5 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_0_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_1_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_2_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_3_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_4_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_5_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_5) <= +inf - 33 <= SinkDSMDIWInvestmentBlock_invest(demand_dsm_0) <= 100 - 33 <= SinkDSMDIWInvestmentBlock_invest(demand_dsm_1) <= 100 - 33 <= SinkDSMDIWInvestmentBlock_invest(demand_dsm_2) <= 100 - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_3) <= +inf - 0 <= flow(bus_elec_demand_dsm_4) <= +inf - 0 <= flow(bus_elec_demand_dsm_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_total(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_total(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_total(demand_dsm_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old(demand_dsm_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_end(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_end(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_end(demand_dsm_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_2) <= +inf -end diff --git a/tests/lp_files/dsm_module_DIW_multi_period.lp b/tests/lp_files/dsm_module_DIW_multi_period.lp deleted file mode 100644 index 55998ee97..000000000 --- a/tests/lp_files/dsm_module_DIW_multi_period.lp +++ /dev/null @@ -1,349 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) -+1.9607843137254901 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_2) -+1.9607843137254901 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_3) -+1.9223375624759707 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_4) -+1.9223375624759707 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_5) -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) -+1.9607843137254901 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) -+1.9607843137254901 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_3) -+1.9223375624759707 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_4) -+1.9223375624759707 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_5) -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_0) -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) -+1.9607843137254901 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) -+1.9607843137254901 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_3) -+1.9223375624759707 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_4) -+1.9223375624759707 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_5) -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_0) -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_1) -+1.9607843137254901 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_2) -+1.9607843137254901 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_3) -+1.9223375624759707 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_4) -+1.9223375624759707 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_5) -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_0) -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_1) -+1.9607843137254901 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_2) -+1.9607843137254901 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_3) -+1.9223375624759707 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_4) -+1.9223375624759707 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_5) -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_0) -+2 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_1) -+1.9607843137254901 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_2) -+1.9607843137254901 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_3) -+1.9223375624759707 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_4) -+1.9223375624759707 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_5) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_BusBlock_balance(bus_elec_3)_: -+1 flow(bus_elec_demand_dsm_3) -= 0 - -c_e_BusBlock_balance(bus_elec_4)_: -+1 flow(bus_elec_demand_dsm_4) -= 0 - -c_e_BusBlock_balance(bus_elec_5)_: -+1 flow(bus_elec_demand_dsm_5) -= 0 - -c_e_SinkDSMDIWBlock_shift_shed_vars(demand_dsm_0)_: -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) -= 0 - -c_e_SinkDSMDIWBlock_shift_shed_vars(demand_dsm_1)_: -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) -= 0 - -c_e_SinkDSMDIWBlock_shift_shed_vars(demand_dsm_2)_: -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) -= 0 - -c_e_SinkDSMDIWBlock_shift_shed_vars(demand_dsm_3)_: -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_3) -= 0 - -c_e_SinkDSMDIWBlock_shift_shed_vars(demand_dsm_4)_: -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_4) -= 0 - -c_e_SinkDSMDIWBlock_shift_shed_vars(demand_dsm_5)_: -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_5) -= 0 - -c_e_SinkDSMDIWBlock_input_output_relation(demand_dsm_0_0)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) --1 SinkDSMDIWBlock_dsm_up(demand_dsm_0) -+1 flow(bus_elec_demand_dsm_0) -= 1 - -c_e_SinkDSMDIWBlock_input_output_relation(demand_dsm_0_1)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) --1 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -+1 flow(bus_elec_demand_dsm_1) -= 1 - -c_e_SinkDSMDIWBlock_input_output_relation(demand_dsm_1_2)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_2) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) --1 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -+1 flow(bus_elec_demand_dsm_2) -= 1 - -c_e_SinkDSMDIWBlock_input_output_relation(demand_dsm_1_3)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_3) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_3) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_3) --1 SinkDSMDIWBlock_dsm_up(demand_dsm_3) -+1 flow(bus_elec_demand_dsm_3) -= 1 - -c_e_SinkDSMDIWBlock_input_output_relation(demand_dsm_2_4)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_4) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_4) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_4) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_4) --1 SinkDSMDIWBlock_dsm_up(demand_dsm_4) -+1 flow(bus_elec_demand_dsm_4) -= 1 - -c_e_SinkDSMDIWBlock_input_output_relation(demand_dsm_2_5)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_5) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_5) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_5) --1 SinkDSMDIWBlock_dsm_up(demand_dsm_5) -+1 flow(bus_elec_demand_dsm_5) -= 1 - -c_e_SinkDSMDIWBlock_dsm_updo_constraint(demand_dsm_0)_: --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_0) -= 0 - -c_e_SinkDSMDIWBlock_dsm_updo_constraint(demand_dsm_1)_: --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -= 0 - -c_e_SinkDSMDIWBlock_dsm_updo_constraint(demand_dsm_2)_: --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -= 0 - -c_e_SinkDSMDIWBlock_dsm_updo_constraint(demand_dsm_3)_: --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_2) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_3) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_4) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_3) -= 0 - -c_e_SinkDSMDIWBlock_dsm_updo_constraint(demand_dsm_4)_: --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_3) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_4) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_5) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_4) -= 0 - -c_e_SinkDSMDIWBlock_dsm_updo_constraint(demand_dsm_5)_: --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_4) --1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_5) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_5) -= 0 - -c_u_SinkDSMDIWBlock_dsm_up_constraint(demand_dsm_0)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMDIWBlock_dsm_up_constraint(demand_dsm_1)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -<= 0.5 - -c_u_SinkDSMDIWBlock_dsm_up_constraint(demand_dsm_2)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMDIWBlock_dsm_up_constraint(demand_dsm_3)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_3) -<= 0.5 - -c_u_SinkDSMDIWBlock_dsm_up_constraint(demand_dsm_4)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_4) -<= 0.5 - -c_u_SinkDSMDIWBlock_dsm_up_constraint(demand_dsm_5)_: -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_5) -<= 0.5 - -c_u_SinkDSMDIWBlock_dsm_do_constraint(demand_dsm_0)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMDIWBlock_dsm_do_constraint(demand_dsm_1)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) -<= 0.5 - -c_u_SinkDSMDIWBlock_dsm_do_constraint(demand_dsm_2)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_2) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMDIWBlock_dsm_do_constraint(demand_dsm_3)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_3) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_3) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_3) -<= 0.5 - -c_u_SinkDSMDIWBlock_dsm_do_constraint(demand_dsm_4)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_4) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_4) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_4) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_4) -<= 0.5 - -c_u_SinkDSMDIWBlock_dsm_do_constraint(demand_dsm_5)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_5) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_5) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_5) -<= 0.5 - -c_u_SinkDSMDIWBlock_C2_constraint(demand_dsm_0)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMDIWBlock_C2_constraint(demand_dsm_1)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_1) -<= 0.5 - -c_u_SinkDSMDIWBlock_C2_constraint(demand_dsm_2)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_2) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMDIWBlock_C2_constraint(demand_dsm_3)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_3) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_3) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_3) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_3) -<= 0.5 - -c_u_SinkDSMDIWBlock_C2_constraint(demand_dsm_4)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_4) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_4) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_4) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_4) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_4) -<= 0.5 - -c_u_SinkDSMDIWBlock_C2_constraint(demand_dsm_5)_: -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_5) -+1 SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_5) -+1 SinkDSMDIWBlock_dsm_do_shed(demand_dsm_5) -+1 SinkDSMDIWBlock_dsm_up(demand_dsm_5) -<= 0.5 - -bounds - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_3) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_4) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_0_5) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_3) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_4) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_1_5) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_3) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_4) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_2_5) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_3) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_4) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_3_5) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_3) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_4) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_4_5) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_3) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_4) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shift(demand_dsm_5_5) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shed(demand_dsm_3) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shed(demand_dsm_4) <= +inf - 0 <= SinkDSMDIWBlock_dsm_do_shed(demand_dsm_5) <= +inf - 0 <= SinkDSMDIWBlock_dsm_up(demand_dsm_0) <= +inf - 0 <= SinkDSMDIWBlock_dsm_up(demand_dsm_1) <= +inf - 0 <= SinkDSMDIWBlock_dsm_up(demand_dsm_2) <= +inf - 0 <= SinkDSMDIWBlock_dsm_up(demand_dsm_3) <= +inf - 0 <= SinkDSMDIWBlock_dsm_up(demand_dsm_4) <= +inf - 0 <= SinkDSMDIWBlock_dsm_up(demand_dsm_5) <= +inf - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_3) <= +inf - 0 <= flow(bus_elec_demand_dsm_4) <= +inf - 0 <= flow(bus_elec_demand_dsm_5) <= +inf -end diff --git a/tests/lp_files/dsm_module_DLR.lp b/tests/lp_files/dsm_module_DLR.lp deleted file mode 100644 index aadfe6936..000000000 --- a/tests/lp_files/dsm_module_DLR.lp +++ /dev/null @@ -1,355 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+2 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+2 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+2 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+2 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+2 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -+2 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+2 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -+2 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) -+2 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) -+2 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) -+2 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) -+2 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_1_0)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_1_1)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_1_2)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_2_0)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_2_1)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_2_2)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_0_0)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_0) -+1 flow(bus_elec_demand_dsm_0) -= 1 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_0_1)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_1) -+1 flow(bus_elec_demand_dsm_1) -= 1 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_0_2)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) -+1 flow(bus_elec_demand_dsm_2) -= 1 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_0)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_1)_: --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_2)_: --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_2_0)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_2_2)_: --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_0)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_1)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_2)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_2_0)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_2_2)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRBlock_no_comp_red(demand_dsm_1_2)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -= 0 - -c_e_SinkDSMDLRBlock_no_comp_red(demand_dsm_2_1)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -= 0 - -c_e_SinkDSMDLRBlock_no_comp_red(demand_dsm_2_2)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -= 0 - -c_e_SinkDSMDLRBlock_no_comp_inc(demand_dsm_1_2)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -= 0 - -c_e_SinkDSMDLRBlock_no_comp_inc(demand_dsm_2_1)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) -= 0 - -c_e_SinkDSMDLRBlock_no_comp_inc(demand_dsm_2_2)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) -= 0 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_0) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_1) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) -<= 0.5 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_0)_: --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_0) --1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_1) --1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_0)_: --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_1)_: --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_0) --1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_2)_: --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_1) --1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_2) -= 0 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_1) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_1) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_logical_constraint(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_0) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_logical_constraint(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_1) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_logical_constraint(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) -<= 0.5 - -bounds - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_2) <= +inf -end diff --git a/tests/lp_files/dsm_module_DLR_delay_time.lp b/tests/lp_files/dsm_module_DLR_delay_time.lp deleted file mode 100644 index 8a6a7c3a0..000000000 --- a/tests/lp_files/dsm_module_DLR_delay_time.lp +++ /dev/null @@ -1,353 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+2 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+2 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+2 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+2 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_0) -+2 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_1) -+2 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_2) -+2 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -+2 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) -+2 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) -+2 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_3_0) -+2 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_3_1) -+2 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_3_2) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_1_0)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_1_1)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_1_2)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_3_0)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_3_1)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_3_2)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_0_0)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_3_0) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_3_0) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_3_0) -+1 flow(bus_elec_demand_dsm_0) -= 1 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_0_1)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_3_1) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_3_1) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_3_1) -+1 flow(bus_elec_demand_dsm_1) -= 1 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_0_2)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_3_2) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_3_2) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_3_2) -+1 flow(bus_elec_demand_dsm_2) -= 1 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_0)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_1)_: --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_2)_: --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_3_0)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_3_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_0)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_1)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_2)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_3_0)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_3_0) -= 0 - -c_e_SinkDSMDLRBlock_no_comp_red(demand_dsm_1_2)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -= 0 - -c_e_SinkDSMDLRBlock_no_comp_red(demand_dsm_3_0)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_0) -= 0 - -c_e_SinkDSMDLRBlock_no_comp_red(demand_dsm_3_1)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_1) -= 0 - -c_e_SinkDSMDLRBlock_no_comp_red(demand_dsm_3_2)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_2) -= 0 - -c_e_SinkDSMDLRBlock_no_comp_inc(demand_dsm_1_2)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -= 0 - -c_e_SinkDSMDLRBlock_no_comp_inc(demand_dsm_3_0)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_3_0) -= 0 - -c_e_SinkDSMDLRBlock_no_comp_inc(demand_dsm_3_1)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_3_1) -= 0 - -c_e_SinkDSMDLRBlock_no_comp_inc(demand_dsm_3_2)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_3_2) -= 0 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_3_0) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_3_1) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_3_2) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_3_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_3_0) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_3_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_3_1) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_3_2) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_3_2) -<= 0.5 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_0)_: --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_0) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_1) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_3_1) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_0) --1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_2) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_3_2) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_1) --1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_0)_: --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_3_0) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_1)_: --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_3_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_3_1) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_0) --1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_2)_: --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_3_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_3_2) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_1) --1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_2) -= 0 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_1) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_1) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_logical_constraint(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_3_0) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_3_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_3_0) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_logical_constraint(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_3_1) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_3_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_3_1) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_logical_constraint(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_3_2) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_3_2) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_3_2) -<= 0.5 - -bounds - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_3_2) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_3_0) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_3_1) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_3_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_3_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_3_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_3_2) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_3_0) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_3_1) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_3_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_2) <= +inf -end diff --git a/tests/lp_files/dsm_module_DLR_extended.lp b/tests/lp_files/dsm_module_DLR_extended.lp deleted file mode 100644 index 7c0b2198a..000000000 --- a/tests/lp_files/dsm_module_DLR_extended.lp +++ /dev/null @@ -1,310 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) -+100 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) -+100 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) -+100 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_0_0)_: --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) -+1 flow(bus_elec_demand_dsm_0) -= 1 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_0_1)_: --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) -+1 flow(bus_elec_demand_dsm_1) -= 0.9 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_0_2)_: --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) -+1 flow(bus_elec_demand_dsm_2) -= 0.8 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_0)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_1)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) --1.0101010101010102 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_2)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) --1.0101010101010102 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_2_0)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_2_2)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) --1.0101010101010102 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_0)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_1)_: --0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_2)_: --0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_2_0)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_2_2)_: --0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) -= 0 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) -<= 0.3 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) -<= 0.3 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) -<= 0.4 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_0) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_1) -<= 0.4 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) -<= 0.5 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_0)_: --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_1)_: --0.99 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) --0.99 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_0) --1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_2)_: --0.99 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) --0.99 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_1) --1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_0)_: --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_1)_: -+0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_0) --1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_2)_: -+0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_1) --1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_2) -= 0 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_0) -<= 0.3333333333333333 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_1) -<= 0.3333333333333333 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_2) -<= 0.3333333333333333 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_0) -<= 0.4666666666666666 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_1) -<= 0.4666666666666666 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_2) -<= 0.4666666666666666 - -c_u_SinkDSMDLRBlock_dr_yearly_limit_shed(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) -<= 33.33333333333333 - -c_u_SinkDSMDLRBlock_dr_yearly_limit_red(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -<= 33.33333333333333 - -c_u_SinkDSMDLRBlock_dr_yearly_limit_inc(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) -<= 46.666666666666664 - -bounds - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_2) <= +inf -end diff --git a/tests/lp_files/dsm_module_DLR_extended_multi_period.lp b/tests/lp_files/dsm_module_DLR_extended_multi_period.lp deleted file mode 100644 index e086a8428..000000000 --- a/tests/lp_files/dsm_module_DLR_extended_multi_period.lp +++ /dev/null @@ -1,706 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+0.9803921568627451 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+0.9803921568627451 SinkDSMDLRBlock_dsm_up(demand_dsm_1_3) -+0.9611687812379853 SinkDSMDLRBlock_dsm_up(demand_dsm_1_4) -+0.9611687812379853 SinkDSMDLRBlock_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) -+0.9803921568627451 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) -+0.9803921568627451 SinkDSMDLRBlock_dsm_up(demand_dsm_2_3) -+0.9611687812379853 SinkDSMDLRBlock_dsm_up(demand_dsm_2_4) -+0.9611687812379853 SinkDSMDLRBlock_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) -+0.9803921568627451 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) -+0.9803921568627451 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_3) -+0.9611687812379853 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_4) -+0.9611687812379853 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_5) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_1) -+0.9803921568627451 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) -+0.9803921568627451 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_3) -+0.9611687812379853 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_4) -+0.9611687812379853 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_5) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+0.9803921568627451 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+0.9803921568627451 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_3) -+0.9611687812379853 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_4) -+0.9611687812379853 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -+0.9803921568627451 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+0.9803921568627451 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_3) -+0.9611687812379853 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_4) -+0.9611687812379853 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_5) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) -+0.9803921568627451 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) -+0.9803921568627451 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_3) -+0.9611687812379853 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_4) -+0.9611687812379853 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) -+0.9803921568627451 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) -+0.9803921568627451 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_3) -+0.9611687812379853 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_4) -+0.9611687812379853 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_5) -+100 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) -+100 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) -+98.0392156862745 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) -+98.0392156862745 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_3) -+96.11687812379853 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_4) -+96.11687812379853 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_5) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_BusBlock_balance(bus_elec_3)_: -+1 flow(bus_elec_demand_dsm_3) -= 0 - -c_e_BusBlock_balance(bus_elec_4)_: -+1 flow(bus_elec_demand_dsm_4) -= 0 - -c_e_BusBlock_balance(bus_elec_5)_: -+1 flow(bus_elec_demand_dsm_5) -= 0 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_0_0)_: --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) -+1 flow(bus_elec_demand_dsm_0) -= 1 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_0_1)_: --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) -+1 flow(bus_elec_demand_dsm_1) -= 0.9 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_1_2)_: --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) -+1 flow(bus_elec_demand_dsm_2) -= 0.8 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_1_3)_: --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_3) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_3) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_3) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_3) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_3) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_3) -+1 flow(bus_elec_demand_dsm_3) -= 0.7 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_2_4)_: --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_4) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_4) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_4) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_4) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_4) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_4) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_4) -+1 flow(bus_elec_demand_dsm_4) -= 0.7 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_2_5)_: --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_5) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_5) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_5) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_5) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_5) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_5) -+1 flow(bus_elec_demand_dsm_5) -= 0.7 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_0)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_1)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) --1.0101010101010102 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_2)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) --1.0101010101010102 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_3)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_3) --1.0101010101010102 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_4)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_4) --1.0101010101010102 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_3) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_5)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_5) --1.0101010101010102 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_4) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_2_0)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_2_2)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) --1.0101010101010102 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_2_3)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_3) --1.0101010101010102 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_2_4)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_4) --1.0101010101010102 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_2_5)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_5) --1.0101010101010102 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_3) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_0)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_1)_: --0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_2)_: --0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_3)_: --0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_3) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_4)_: --0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_4) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_5)_: --0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_5) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_2_0)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_2_2)_: --0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_2_3)_: --0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_3) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_2_4)_: --0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_4) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_2_5)_: --0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_5) -= 0 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) -<= 0.3 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) -<= 0.3 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) -<= 0.4 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_3)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_3) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_3) -<= 0.3 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_4)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_4) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_4) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_4) -<= 0.3 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_5)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_5) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_5) -<= 0.3 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_0) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_1) -<= 0.4 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_3)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_3) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_3) -<= 0.3 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_4)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_4) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_4) -<= 0.3 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_5)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_5) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_5) -<= 0.3 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_0)_: --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_1)_: --0.99 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) --0.99 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_0) --1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_2)_: --0.99 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) --0.99 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_1) --1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_3)_: --0.99 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_3) --0.99 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_3) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_3) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_2) --1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_3) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_4)_: --0.99 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_4) --0.99 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_4) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_4) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_4) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_3) --1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_4) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_5)_: --0.99 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_5) --0.99 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_5) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_5) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_4) --1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_5) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_0)_: --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_1)_: -+0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_0) --1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_2)_: -+0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_1) --1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_3)_: -+0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_1_3) -+0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_2_3) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_3) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_2) --1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_3) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_4)_: -+0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_1_4) -+0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_2_4) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_4) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_3) --1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_4) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_5)_: -+0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_1_5) -+0.99 SinkDSMDLRBlock_dsm_up(demand_dsm_2_5) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_5) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_4) --1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_5) -= 0 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_0) -<= 0.3166666666666667 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_1) -<= 0.3166666666666667 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_2) -<= 0.3166666666666667 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_3)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_3) -<= 0.3166666666666667 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_4)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_4) -<= 0.3166666666666667 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_5)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_5) -<= 0.3166666666666667 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_0) -<= 0.3833333333333333 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_1) -<= 0.3833333333333333 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_2) -<= 0.3833333333333333 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_3)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_3) -<= 0.3833333333333333 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_4)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_4) -<= 0.3833333333333333 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_5)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_5) -<= 0.3833333333333333 - -c_u_SinkDSMDLRBlock_dr_yearly_limit_shed(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) -<= 31.66666666666667 - -c_u_SinkDSMDLRBlock_dr_yearly_limit_shed(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_3) -<= 31.66666666666667 - -c_u_SinkDSMDLRBlock_dr_yearly_limit_shed(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_4) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_5) -<= 31.66666666666667 - -c_u_SinkDSMDLRBlock_dr_yearly_limit_red(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -<= 31.66666666666667 - -c_u_SinkDSMDLRBlock_dr_yearly_limit_red(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_3) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_3) -<= 31.66666666666667 - -c_u_SinkDSMDLRBlock_dr_yearly_limit_red(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_4) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_4) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_5) -<= 31.66666666666667 - -c_u_SinkDSMDLRBlock_dr_yearly_limit_inc(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) -<= 38.33333333333333 - -c_u_SinkDSMDLRBlock_dr_yearly_limit_inc(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_3) -<= 38.33333333333333 - -c_u_SinkDSMDLRBlock_dr_yearly_limit_inc(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_5) -<= 38.33333333333333 - -c_u_SinkDSMDLRBlock_dr_daily_limit_red(demand_dsm_3)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_3) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_3) -<= 0.3166666666666667 - -c_u_SinkDSMDLRBlock_dr_daily_limit_red(demand_dsm_4)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_3) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_4) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_4) -<= 0.3166666666666667 - -c_u_SinkDSMDLRBlock_dr_daily_limit_red(demand_dsm_5)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_3) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_4) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_4) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_5) -<= 0.3166666666666667 - -c_u_SinkDSMDLRBlock_dr_daily_limit_inc(demand_dsm_3)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_3) -<= 0.3833333333333333 - -c_u_SinkDSMDLRBlock_dr_daily_limit_inc(demand_dsm_4)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_4) -<= 0.3833333333333333 - -c_u_SinkDSMDLRBlock_dr_daily_limit_inc(demand_dsm_5)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_5) -<= 0.3833333333333333 - -bounds - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_3) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_4) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_5) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_2_3) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_2_4) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_2_5) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_3) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_4) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_5) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_3) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_4) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_5) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_3) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_4) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_5) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_3) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_4) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_5) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_3) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_4) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_5) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_3) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_4) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_5) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_3) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_4) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_5) <= +inf - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_3) <= +inf - 0 <= flow(bus_elec_demand_dsm_4) <= +inf - 0 <= flow(bus_elec_demand_dsm_5) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_3) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_4) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_5) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_3) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_4) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_5) <= +inf -end diff --git a/tests/lp_files/dsm_module_DLR_invest.lp b/tests/lp_files/dsm_module_DLR_invest.lp deleted file mode 100644 index a694b431c..000000000 --- a/tests/lp_files/dsm_module_DLR_invest.lp +++ /dev/null @@ -1,375 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) -+100 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_0) -+100 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_1) -+100 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_2) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_total_dsm_rule(demand_dsm_0)_: -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_0) -= 50 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_0_0)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_0) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_0) -+1 flow(bus_elec_demand_dsm_0) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_0_1)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_1) -+1 flow(bus_elec_demand_dsm_1) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_0_2)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_2) -+1 flow(bus_elec_demand_dsm_2) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_1_0)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_1_1)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_1_2)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_2_0)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_2_2)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_1_0)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_1_1)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_1_2)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_2_0)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_2_2)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_red(demand_dsm_1_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_red(demand_dsm_2_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_red(demand_dsm_2_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_inc(demand_dsm_1_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_inc(demand_dsm_2_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_inc(demand_dsm_2_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) -= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_0_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_0) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_0_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_1) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_0_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_2) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_0_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_0) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_0_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_1) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_0_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_0)_: --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_1)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_0) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_2)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_1) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_0)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_0) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_1) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_2) -= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_0_0)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_0_1)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_0_2)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_0_0)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_0_1)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_0_2)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_yearly_limit_shed(demand_dsm_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_2) --50.0 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_0_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_0) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_0_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_1) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_0_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_2) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -bounds - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_total(demand_dsm_0) <= +inf - 33 <= SinkDSMDLRInvestmentBlock_invest(demand_dsm_0) <= 100 - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_2) <= +inf -end diff --git a/tests/lp_files/dsm_module_DLR_invest_multi_period.lp b/tests/lp_files/dsm_module_DLR_invest_multi_period.lp deleted file mode 100644 index c8a023deb..000000000 --- a/tests/lp_files/dsm_module_DLR_invest_multi_period.lp +++ /dev/null @@ -1,824 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+2941.5609381007307 ONE_VAR_CONSTANT -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_3) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_4) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_3) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_4) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_3) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_4) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_1) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_3) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_4) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_3) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_4) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_4) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_3) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_4) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_1) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_3) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_4) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_5) -+100 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_0) -+100 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_1) -+98.0392156862745 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_2) -+98.0392156862745 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_3) -+96.11687812379853 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_4) -+96.11687812379853 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_5) -+76.46810240317063 SinkDSMDLRInvestmentBlock_invest(demand_dsm_0) -+50.47234572422055 SinkDSMDLRInvestmentBlock_invest(demand_dsm_1) -+24.986309764465627 SinkDSMDLRInvestmentBlock_invest(demand_dsm_2) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_BusBlock_balance(bus_elec_3)_: -+1 flow(bus_elec_demand_dsm_3) -= 0 - -c_e_BusBlock_balance(bus_elec_4)_: -+1 flow(bus_elec_demand_dsm_4) -= 0 - -c_e_BusBlock_balance(bus_elec_5)_: -+1 flow(bus_elec_demand_dsm_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_total_dsm_rule(demand_dsm_0)_: --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -= 50 - -c_e_SinkDSMDLRInvestmentBlock_total_dsm_rule(demand_dsm_1)_: --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_1) --1 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_total_dsm_rule(demand_dsm_2)_: --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_2) --1 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_end(demand_dsm_0)_: -+1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_end(demand_dsm_1)_: -+1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_end(demand_dsm_2)_: -+1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_exo(demand_dsm_0)_: -+1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_exo(demand_dsm_1)_: -+1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_exo(demand_dsm_2)_: -+1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule(demand_dsm_0)_: -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_0) --1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_0) --1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule(demand_dsm_1)_: -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_1) --1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_1) --1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule(demand_dsm_2)_: -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_2) --1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_2) --1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_0_0)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_0) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_0) -+1 flow(bus_elec_demand_dsm_0) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_0_1)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_1) -+1 flow(bus_elec_demand_dsm_1) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_1_2)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_2) -+1 flow(bus_elec_demand_dsm_2) -= 2 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_1_3)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_3) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_3) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_3) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_3) -+1 flow(bus_elec_demand_dsm_3) -= 2 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_2_4)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_4) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_4) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_4) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_4) -+1 flow(bus_elec_demand_dsm_4) -= 3 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_2_5)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_5) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_5) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_5) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_5) -+1 flow(bus_elec_demand_dsm_5) -= 3 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_1_0)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_1_1)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_1_2)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_1_3)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_3) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_1_4)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_4) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_1_5)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_5) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_2_0)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_2_2)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_2_3)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_3) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_2_4)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_4) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_2_5)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_5) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_1_0)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_1_1)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_1_2)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_1_3)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_1_4)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_1_5)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_2_0)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_2_2)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_2_3)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_2_4)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_2_5)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_red(demand_dsm_1_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_red(demand_dsm_2_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_red(demand_dsm_2_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_inc(demand_dsm_1_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_inc(demand_dsm_2_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_inc(demand_dsm_2_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_5) -= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_0_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_0) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_0_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_1) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_1_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_2) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_1_3)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_3) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_2_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_4) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_2_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_5) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_0_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_0) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_0_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_1) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_1_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_1_3)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_3) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_2_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_4) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_2_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_5) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_0)_: --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_1)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_0) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_2)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_1) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_3)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_3) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_2) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_4)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_4) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_3) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_5)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_5) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_4) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_0)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_0) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_1) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_3)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_3) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_3) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_2) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_4) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_4) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_3) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_5) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_5) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_4) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_5) -= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_0_0)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_0_1)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_1_2)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_1_3)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_3) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_2_4)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_4) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_2_5)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_5) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_0_0)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_0_1)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_1_2)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_1_3)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_3) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_2_4)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_4) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_2_5)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_5) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_yearly_limit_shed(demand_dsm_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_1) --50.0 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_yearly_limit_shed(demand_dsm_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_3) --50.0 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_yearly_limit_shed(demand_dsm_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_5) --50.0 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_0_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_0) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_0_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_1) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_1_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_2) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_1_3)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_3) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_2_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_4) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_2_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_5) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_overall_dsm_maximum(demand_dsm_0)_: -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 1000 - -c_u_SinkDSMDLRInvestmentBlock_overall_dsm_maximum(demand_dsm_1)_: -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -<= 1000 - -c_u_SinkDSMDLRInvestmentBlock_overall_dsm_maximum(demand_dsm_2)_: -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -<= 1000 - -c_l_SinkDSMDLRInvestmentBlock_overall_minimum(demand_dsm)_: -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) ->= 5 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_5) <= +inf - 33 <= SinkDSMDLRInvestmentBlock_invest(demand_dsm_0) <= 100 - 33 <= SinkDSMDLRInvestmentBlock_invest(demand_dsm_1) <= 100 - 33 <= SinkDSMDLRInvestmentBlock_invest(demand_dsm_2) <= 100 - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_3) <= +inf - 0 <= flow(bus_elec_demand_dsm_4) <= +inf - 0 <= flow(bus_elec_demand_dsm_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_total(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_total(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_total(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_end(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_end(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_end(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_5) <= +inf -end diff --git a/tests/lp_files/dsm_module_DLR_invest_multi_period_remaining_value.lp b/tests/lp_files/dsm_module_DLR_invest_multi_period_remaining_value.lp deleted file mode 100644 index c640481b5..000000000 --- a/tests/lp_files/dsm_module_DLR_invest_multi_period_remaining_value.lp +++ /dev/null @@ -1,824 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+2941.5609381007307 ONE_VAR_CONSTANT -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_3) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_4) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_3) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_4) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_3) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_4) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_1) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_3) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_4) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_3) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_4) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_4) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_3) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_4) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_1) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) -+0.9803921568627451 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_3) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_4) -+0.9611687812379853 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_5) -+100 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_0) -+100 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_1) -+98.0392156862745 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_2) -+98.0392156862745 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_3) -+96.11687812379853 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_4) -+96.11687812379853 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_5) -+57.62165571222974 SinkDSMDLRInvestmentBlock_invest(demand_dsm_0) -+39.8850096825295 SinkDSMDLRInvestmentBlock_invest(demand_dsm_1) -+23.833722936524442 SinkDSMDLRInvestmentBlock_invest(demand_dsm_2) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_BusBlock_balance(bus_elec_3)_: -+1 flow(bus_elec_demand_dsm_3) -= 0 - -c_e_BusBlock_balance(bus_elec_4)_: -+1 flow(bus_elec_demand_dsm_4) -= 0 - -c_e_BusBlock_balance(bus_elec_5)_: -+1 flow(bus_elec_demand_dsm_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_total_dsm_rule(demand_dsm_0)_: --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -= 50 - -c_e_SinkDSMDLRInvestmentBlock_total_dsm_rule(demand_dsm_1)_: --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_1) --1 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_total_dsm_rule(demand_dsm_2)_: --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_2) --1 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_end(demand_dsm_0)_: -+1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_end(demand_dsm_1)_: -+1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_end(demand_dsm_2)_: -+1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_exo(demand_dsm_0)_: -+1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_exo(demand_dsm_1)_: -+1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_exo(demand_dsm_2)_: -+1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule(demand_dsm_0)_: -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_0) --1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_0) --1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule(demand_dsm_1)_: -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_1) --1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_1) --1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule(demand_dsm_2)_: -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_2) --1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_2) --1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_0_0)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_0) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_0) -+1 flow(bus_elec_demand_dsm_0) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_0_1)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_1) -+1 flow(bus_elec_demand_dsm_1) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_1_2)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_2) -+1 flow(bus_elec_demand_dsm_2) -= 2 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_1_3)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_3) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_3) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_3) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_3) -+1 flow(bus_elec_demand_dsm_3) -= 2 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_2_4)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_4) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_4) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_4) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_4) -+1 flow(bus_elec_demand_dsm_4) -= 3 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_2_5)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_5) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_5) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_5) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_5) -+1 flow(bus_elec_demand_dsm_5) -= 3 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_1_0)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_1_1)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_1_2)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_1_3)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_3) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_1_4)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_4) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_1_5)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_5) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_2_0)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_2_2)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_2_3)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_3) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_2_4)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_4) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_2_5)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_5) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_1_0)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_1_1)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_1_2)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_1_3)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_1_4)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_1_5)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_2_0)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_2_2)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_2_3)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_2_4)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_2_5)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_red(demand_dsm_1_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_red(demand_dsm_2_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_red(demand_dsm_2_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_inc(demand_dsm_1_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_inc(demand_dsm_2_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_inc(demand_dsm_2_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_5) -= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_0_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_0) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_0_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_1) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_1_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_2) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_1_3)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_3) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_2_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_4) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_2_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_5) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_0_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_0) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_0_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_1) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_1_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_1_3)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_3) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_2_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_4) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_2_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_5) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_0)_: --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_1)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_0) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_2)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_1) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_3)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_3) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_2) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_4)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_4) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_3) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_5)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_5) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_4) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_0)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_0) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_1) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_3)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_3) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_3) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_2) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_4) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_4) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_3) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_5) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_5) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_4) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_5) -= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_0_0)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_0_1)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_1_2)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_1_3)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_3) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_2_4)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_4) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_2_5)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_5) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_0_0)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_0_1)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_1_2)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_1_3)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_3) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_2_4)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_4) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_2_5)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_5) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_yearly_limit_shed(demand_dsm_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_1) --50.0 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_yearly_limit_shed(demand_dsm_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_3) --50.0 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_yearly_limit_shed(demand_dsm_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_5) --50.0 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_0_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_0) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_0_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_1) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_1_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_2) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_1_3)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_3) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_2_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_4) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_2_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_5) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_overall_dsm_maximum(demand_dsm_0)_: -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_0) -<= 1000 - -c_u_SinkDSMDLRInvestmentBlock_overall_dsm_maximum(demand_dsm_1)_: -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_1) -<= 1000 - -c_u_SinkDSMDLRInvestmentBlock_overall_dsm_maximum(demand_dsm_2)_: -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) -<= 1000 - -c_l_SinkDSMDLRInvestmentBlock_overall_minimum(demand_dsm)_: -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_2) ->= 5 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_1_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_2_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_1_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_2_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_1_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_2_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_1_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_2_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_5) <= +inf - 33 <= SinkDSMDLRInvestmentBlock_invest(demand_dsm_0) <= 100 - 33 <= SinkDSMDLRInvestmentBlock_invest(demand_dsm_1) <= 100 - 33 <= SinkDSMDLRInvestmentBlock_invest(demand_dsm_2) <= 100 - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_3) <= +inf - 0 <= flow(bus_elec_demand_dsm_4) <= +inf - 0 <= flow(bus_elec_demand_dsm_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_total(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_total(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_total(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_end(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_end(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_end(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_5) <= +inf -end diff --git a/tests/lp_files/dsm_module_DLR_multi_period.lp b/tests/lp_files/dsm_module_DLR_multi_period.lp deleted file mode 100644 index 83f0184f5..000000000 --- a/tests/lp_files/dsm_module_DLR_multi_period.lp +++ /dev/null @@ -1,697 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+2 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+2 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1.9607843137254901 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1.9607843137254901 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_3) -+1.9223375624759707 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_4) -+1.9223375624759707 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_5) -+2 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+2 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -+1.9607843137254901 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+1.9607843137254901 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_3) -+1.9223375624759707 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_4) -+1.9223375624759707 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_5) -+2 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -+2 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) -+1.9607843137254901 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) -+1.9607843137254901 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_3) -+1.9223375624759707 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_4) -+1.9223375624759707 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_5) -+2 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) -+2 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) -+1.9607843137254901 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) -+1.9607843137254901 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_3) -+1.9223375624759707 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_4) -+1.9223375624759707 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_5) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_BusBlock_balance(bus_elec_3)_: -+1 flow(bus_elec_demand_dsm_3) -= 0 - -c_e_BusBlock_balance(bus_elec_4)_: -+1 flow(bus_elec_demand_dsm_4) -= 0 - -c_e_BusBlock_balance(bus_elec_5)_: -+1 flow(bus_elec_demand_dsm_5) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_1_0)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_1_1)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_1_2)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_1_3)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_3) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_1_4)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_4) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_1_5)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_5) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_2_0)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_2_1)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_2_2)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_2_3)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_3) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_2_4)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_4) -= 0 - -c_e_SinkDSMDLRBlock_shift_shed_vars(demand_dsm_2_5)_: -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_5) -= 0 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_0_0)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_0) -+1 flow(bus_elec_demand_dsm_0) -= 1 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_0_1)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_1) -+1 flow(bus_elec_demand_dsm_1) -= 1 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_1_2)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) -+1 flow(bus_elec_demand_dsm_2) -= 1 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_1_3)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_3) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_3) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_3) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_3) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_3) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_3) -+1 flow(bus_elec_demand_dsm_3) -= 1 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_2_4)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_4) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_4) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_4) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_4) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_4) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_4) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_4) -+1 flow(bus_elec_demand_dsm_4) -= 1 - -c_e_SinkDSMDLRBlock_input_output_relation(demand_dsm_2_5)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_5) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_5) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_5) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_5) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_5) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_5) -+1 flow(bus_elec_demand_dsm_5) -= 1 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_0)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_1)_: --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_2)_: --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_3)_: --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_3) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_4)_: --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_3) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_4) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_1_5)_: --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_4) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_5) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_2_0)_: -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_2_2)_: --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_2_3)_: --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_3) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_2_4)_: --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_4) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_red(demand_dsm_2_5)_: --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_5) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_0)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_1)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_2)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_3)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_3) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_4)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_4) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_3) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_1_5)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_5) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_4) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_2_0)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_2_2)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_2_3)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_3) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_2_4)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_4) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) -= 0 - -c_e_SinkDSMDLRBlock_capacity_balance_inc(demand_dsm_2_5)_: -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_5) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_3) -= 0 - -c_e_SinkDSMDLRBlock_no_comp_red(demand_dsm_1_5)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_5) -= 0 - -c_e_SinkDSMDLRBlock_no_comp_red(demand_dsm_2_4)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_4) -= 0 - -c_e_SinkDSMDLRBlock_no_comp_red(demand_dsm_2_5)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_5) -= 0 - -c_e_SinkDSMDLRBlock_no_comp_inc(demand_dsm_1_5)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_5) -= 0 - -c_e_SinkDSMDLRBlock_no_comp_inc(demand_dsm_2_4)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_4) -= 0 - -c_e_SinkDSMDLRBlock_no_comp_inc(demand_dsm_2_5)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_5) -= 0 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_3)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_3) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_3) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_4)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_4) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_4) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_4) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_red(demand_dsm_5)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_5) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_5) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_0) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_1) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_3)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_3) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_3) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_4)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_4) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_4) -<= 0.5 - -c_u_SinkDSMDLRBlock_availability_inc(demand_dsm_5)_: -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_5) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_5) -<= 0.5 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_0)_: --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) --1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_0) --1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_1) --1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_3)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_3) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_3) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_3) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_3) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_2) --1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_3) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_4)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_4) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_4) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_4) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_4) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_3) --1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_4) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_red(demand_dsm_5)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_5) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_5) --1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_5) -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_4) --1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_5) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_0)_: --1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) --1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_0) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_1)_: --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_0) --1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_1) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_2)_: --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_1) --1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_2) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_3)_: --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_3) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_2) --1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_3) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_4)_: --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_4) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_3) --1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_4) -= 0 - -c_e_SinkDSMDLRBlock_dr_storage_inc(demand_dsm_5)_: --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_5) --1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_4) --1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_5) -= 0 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_1) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_3)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_3) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_4)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_4) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_red(demand_dsm_5)_: -+1 SinkDSMDLRBlock_dsm_do_level(demand_dsm_5) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_1) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_3)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_3) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_4)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_4) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_storage_limit_inc(demand_dsm_5)_: -+1 SinkDSMDLRBlock_dsm_up_level(demand_dsm_5) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_logical_constraint(demand_dsm_0)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_0) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_logical_constraint(demand_dsm_1)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_1) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_logical_constraint(demand_dsm_2)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_logical_constraint(demand_dsm_3)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_3) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_3) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_3) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_3) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_3) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_3) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_3) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_logical_constraint(demand_dsm_4)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_4) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_4) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_4) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_4) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_4) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_4) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_4) -<= 0.5 - -c_u_SinkDSMDLRBlock_dr_logical_constraint(demand_dsm_5)_: -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_5) -+1 SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_5) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRBlock_dsm_do_shed(demand_dsm_5) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_1_5) -+1 SinkDSMDLRBlock_dsm_up(demand_dsm_2_5) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_5) -+1 SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_5) -<= 0.5 - -bounds - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_3) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_4) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_1_5) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_3) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_4) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shift(demand_dsm_2_5) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_3) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_4) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_1_5) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_3) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_4) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_up(demand_dsm_2_5) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_3) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_4) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_shed(demand_dsm_5) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_3) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_4) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_1_5) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_2_3) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_2_4) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up(demand_dsm_2_5) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_0) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_1) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_2) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_3) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_4) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_1_5) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_0) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_1) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_2) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_3) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_4) <= +inf - 0 <= SinkDSMDLRBlock_balance_dsm_do(demand_dsm_2_5) <= +inf - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_3) <= +inf - 0 <= flow(bus_elec_demand_dsm_4) <= +inf - 0 <= flow(bus_elec_demand_dsm_5) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_3) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_4) <= +inf - 0 <= SinkDSMDLRBlock_dsm_do_level(demand_dsm_5) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_0) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_1) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_2) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_3) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_4) <= +inf - 0 <= SinkDSMDLRBlock_dsm_up_level(demand_dsm_5) <= +inf -end diff --git a/tests/lp_files/dsm_module_oemof.lp b/tests/lp_files/dsm_module_oemof.lp deleted file mode 100644 index a40037672..000000000 --- a/tests/lp_files/dsm_module_oemof.lp +++ /dev/null @@ -1,103 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+2 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_0) -+2 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_1) -+2 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_2) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_SinkDSMOemofBlock_shift_shed_vars(demand_dsm_0)_: -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_0) -= 0 - -c_e_SinkDSMOemofBlock_shift_shed_vars(demand_dsm_1)_: -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_1) -= 0 - -c_e_SinkDSMOemofBlock_shift_shed_vars(demand_dsm_2)_: -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_2) -= 0 - -c_e_SinkDSMOemofBlock_input_output_relation(demand_dsm_0_0)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_0) -+1 flow(bus_elec_demand_dsm_0) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_0) --1 SinkDSMOemofBlock_dsm_up(demand_dsm_0) -= 1 - -c_e_SinkDSMOemofBlock_input_output_relation(demand_dsm_0_1)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_1) -+1 flow(bus_elec_demand_dsm_1) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_1) --1 SinkDSMOemofBlock_dsm_up(demand_dsm_1) -= 1 - -c_e_SinkDSMOemofBlock_input_output_relation(demand_dsm_0_2)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_2) -+1 flow(bus_elec_demand_dsm_2) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_2) --1 SinkDSMOemofBlock_dsm_up(demand_dsm_2) -= 1 - -c_u_SinkDSMOemofBlock_dsm_up_constraint(demand_dsm_0)_: -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMOemofBlock_dsm_up_constraint(demand_dsm_1)_: -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_1) -<= 0.4 - -c_u_SinkDSMOemofBlock_dsm_up_constraint(demand_dsm_2)_: -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMOemofBlock_dsm_down_constraint(demand_dsm_0)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_0) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMOemofBlock_dsm_down_constraint(demand_dsm_1)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_1) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_1) -<= 0.4 - -c_u_SinkDSMOemofBlock_dsm_down_constraint(demand_dsm_2)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_2) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_2) -<= 0.5 - -c_e_SinkDSMOemofBlock_dsm_sum_constraint(demand_dsm_0)_: --1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_0) --1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_1) -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_0) -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_1) -= 0 - -bounds - 0 <= SinkDSMOemofBlock_dsm_do_shift(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shift(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shift(demand_dsm_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofBlock_dsm_up(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofBlock_dsm_up(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofBlock_dsm_up(demand_dsm_2) <= +inf -end diff --git a/tests/lp_files/dsm_module_oemof_extended.lp b/tests/lp_files/dsm_module_oemof_extended.lp deleted file mode 100644 index 6720fe240..000000000 --- a/tests/lp_files/dsm_module_oemof_extended.lp +++ /dev/null @@ -1,97 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_0) -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_1) -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_2) -+100 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_0) -+100 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_1) -+100 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_2) -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_0) -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_1) -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_2) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_SinkDSMOemofBlock_input_output_relation(demand_dsm_0_0)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_0) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_0) --1 SinkDSMOemofBlock_dsm_up(demand_dsm_0) -+1 flow(bus_elec_demand_dsm_0) -= 1 - -c_e_SinkDSMOemofBlock_input_output_relation(demand_dsm_0_1)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_1) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_1) --1 SinkDSMOemofBlock_dsm_up(demand_dsm_1) -+1 flow(bus_elec_demand_dsm_1) -= 0.9 - -c_e_SinkDSMOemofBlock_input_output_relation(demand_dsm_0_2)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_2) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_2) --1 SinkDSMOemofBlock_dsm_up(demand_dsm_2) -+1 flow(bus_elec_demand_dsm_2) -= 0.8 - -c_u_SinkDSMOemofBlock_dsm_up_constraint(demand_dsm_0)_: -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMOemofBlock_dsm_up_constraint(demand_dsm_1)_: -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_1) -<= 0.4 - -c_u_SinkDSMOemofBlock_dsm_up_constraint(demand_dsm_2)_: -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMOemofBlock_dsm_down_constraint(demand_dsm_0)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_0) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_0) -<= 0.3 - -c_u_SinkDSMOemofBlock_dsm_down_constraint(demand_dsm_1)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_1) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_1) -<= 0.3 - -c_u_SinkDSMOemofBlock_dsm_down_constraint(demand_dsm_2)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_2) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_2) -<= 0.4 - -c_e_SinkDSMOemofBlock_dsm_sum_constraint(demand_dsm_0)_: --1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_0) --1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_1) -+0.99 SinkDSMOemofBlock_dsm_up(demand_dsm_0) -+0.99 SinkDSMOemofBlock_dsm_up(demand_dsm_1) -= 0 - -bounds - 0 <= SinkDSMOemofBlock_dsm_do_shift(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shift(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shift(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofBlock_dsm_up(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofBlock_dsm_up(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofBlock_dsm_up(demand_dsm_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf -end diff --git a/tests/lp_files/dsm_module_oemof_extended_multi_period.lp b/tests/lp_files/dsm_module_oemof_extended_multi_period.lp deleted file mode 100644 index 1493fdc57..000000000 --- a/tests/lp_files/dsm_module_oemof_extended_multi_period.lp +++ /dev/null @@ -1,192 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_0) -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_1) -+0.9803921568627451 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_2) -+0.9803921568627451 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_3) -+0.9611687812379853 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_4) -+0.9611687812379853 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_5) -+100 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_0) -+100 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_1) -+98.0392156862745 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_2) -+98.0392156862745 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_3) -+96.11687812379853 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_4) -+96.11687812379853 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_5) -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_0) -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_1) -+0.9803921568627451 SinkDSMOemofBlock_dsm_up(demand_dsm_2) -+0.9803921568627451 SinkDSMOemofBlock_dsm_up(demand_dsm_3) -+0.9611687812379853 SinkDSMOemofBlock_dsm_up(demand_dsm_4) -+0.9611687812379853 SinkDSMOemofBlock_dsm_up(demand_dsm_5) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_BusBlock_balance(bus_elec_3)_: -+1 flow(bus_elec_demand_dsm_3) -= 0 - -c_e_BusBlock_balance(bus_elec_4)_: -+1 flow(bus_elec_demand_dsm_4) -= 0 - -c_e_BusBlock_balance(bus_elec_5)_: -+1 flow(bus_elec_demand_dsm_5) -= 0 - -c_e_SinkDSMOemofBlock_input_output_relation(demand_dsm_0_0)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_0) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_0) --1 SinkDSMOemofBlock_dsm_up(demand_dsm_0) -+1 flow(bus_elec_demand_dsm_0) -= 1 - -c_e_SinkDSMOemofBlock_input_output_relation(demand_dsm_0_1)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_1) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_1) --1 SinkDSMOemofBlock_dsm_up(demand_dsm_1) -+1 flow(bus_elec_demand_dsm_1) -= 0.9 - -c_e_SinkDSMOemofBlock_input_output_relation(demand_dsm_1_2)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_2) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_2) --1 SinkDSMOemofBlock_dsm_up(demand_dsm_2) -+1 flow(bus_elec_demand_dsm_2) -= 0.8 - -c_e_SinkDSMOemofBlock_input_output_relation(demand_dsm_1_3)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_3) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_3) --1 SinkDSMOemofBlock_dsm_up(demand_dsm_3) -+1 flow(bus_elec_demand_dsm_3) -= 0.7 - -c_e_SinkDSMOemofBlock_input_output_relation(demand_dsm_2_4)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_4) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_4) --1 SinkDSMOemofBlock_dsm_up(demand_dsm_4) -+1 flow(bus_elec_demand_dsm_4) -= 0.7 - -c_e_SinkDSMOemofBlock_input_output_relation(demand_dsm_2_5)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_5) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_5) --1 SinkDSMOemofBlock_dsm_up(demand_dsm_5) -+1 flow(bus_elec_demand_dsm_5) -= 0.7 - -c_u_SinkDSMOemofBlock_dsm_up_constraint(demand_dsm_0)_: -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMOemofBlock_dsm_up_constraint(demand_dsm_1)_: -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_1) -<= 0.4 - -c_u_SinkDSMOemofBlock_dsm_up_constraint(demand_dsm_2)_: -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMOemofBlock_dsm_up_constraint(demand_dsm_3)_: -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_3) -<= 0.3 - -c_u_SinkDSMOemofBlock_dsm_up_constraint(demand_dsm_4)_: -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_4) -<= 0.3 - -c_u_SinkDSMOemofBlock_dsm_up_constraint(demand_dsm_5)_: -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_5) -<= 0.3 - -c_u_SinkDSMOemofBlock_dsm_down_constraint(demand_dsm_0)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_0) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_0) -<= 0.3 - -c_u_SinkDSMOemofBlock_dsm_down_constraint(demand_dsm_1)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_1) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_1) -<= 0.3 - -c_u_SinkDSMOemofBlock_dsm_down_constraint(demand_dsm_2)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_2) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_2) -<= 0.4 - -c_u_SinkDSMOemofBlock_dsm_down_constraint(demand_dsm_3)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_3) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_3) -<= 0.3 - -c_u_SinkDSMOemofBlock_dsm_down_constraint(demand_dsm_4)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_4) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_4) -<= 0.3 - -c_u_SinkDSMOemofBlock_dsm_down_constraint(demand_dsm_5)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_5) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_5) -<= 0.3 - -c_e_SinkDSMOemofBlock_dsm_sum_constraint(demand_dsm_0)_: --1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_0) --1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_1) -+0.99 SinkDSMOemofBlock_dsm_up(demand_dsm_0) -+0.99 SinkDSMOemofBlock_dsm_up(demand_dsm_1) -= 0 - -c_e_SinkDSMOemofBlock_dsm_sum_constraint(demand_dsm_2)_: --1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_2) --1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_3) -+0.99 SinkDSMOemofBlock_dsm_up(demand_dsm_2) -+0.99 SinkDSMOemofBlock_dsm_up(demand_dsm_3) -= 0 - -c_e_SinkDSMOemofBlock_dsm_sum_constraint(demand_dsm_4)_: --1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_4) --1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_5) -+0.99 SinkDSMOemofBlock_dsm_up(demand_dsm_4) -+0.99 SinkDSMOemofBlock_dsm_up(demand_dsm_5) -= 0 - -bounds - 0 <= SinkDSMOemofBlock_dsm_do_shift(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shift(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shift(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shift(demand_dsm_3) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shift(demand_dsm_4) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shift(demand_dsm_5) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shed(demand_dsm_3) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shed(demand_dsm_4) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shed(demand_dsm_5) <= +inf - 0 <= SinkDSMOemofBlock_dsm_up(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofBlock_dsm_up(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofBlock_dsm_up(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofBlock_dsm_up(demand_dsm_3) <= +inf - 0 <= SinkDSMOemofBlock_dsm_up(demand_dsm_4) <= +inf - 0 <= SinkDSMOemofBlock_dsm_up(demand_dsm_5) <= +inf - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_3) <= +inf - 0 <= flow(bus_elec_demand_dsm_4) <= +inf - 0 <= flow(bus_elec_demand_dsm_5) <= +inf -end diff --git a/tests/lp_files/dsm_module_oemof_invest.lp b/tests/lp_files/dsm_module_oemof_invest.lp deleted file mode 100644 index fff0830d0..000000000 --- a/tests/lp_files/dsm_module_oemof_invest.lp +++ /dev/null @@ -1,110 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_0) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_1) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_2) -+100 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_0) -+100 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_1) -+100 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_2) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_0) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_1) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_2) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_total_dsm_rule(demand_dsm_0)_: -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_0) -= 50 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_0_0)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_0) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_0) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_0) -+1 flow(bus_elec_demand_dsm_0) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_0_1)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_1) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_1) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_1) -+1 flow(bus_elec_demand_dsm_1) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_0_2)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_2) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_2) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_2) -+1 flow(bus_elec_demand_dsm_2) -= 1 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_0_0)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_0) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_0_1)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_1) --0.4 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_0_2)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_2) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_0_0)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_0) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_0) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_0_1)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_1) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_1) --0.4 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_0_2)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_2) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_2) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(demand_dsm_0)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_0) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_1) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_0) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_1) -= 0 - -bounds - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_total(demand_dsm_0) <= +inf - 33 <= SinkDSMOemofInvestmentBlock_invest(demand_dsm_0) <= 100 -end diff --git a/tests/lp_files/dsm_module_oemof_invest_multi_period.lp b/tests/lp_files/dsm_module_oemof_invest_multi_period.lp deleted file mode 100644 index dffeb504a..000000000 --- a/tests/lp_files/dsm_module_oemof_invest_multi_period.lp +++ /dev/null @@ -1,301 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+2941.5609381007307 ONE_VAR_CONSTANT -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_0) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_1) -+0.9803921568627451 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_2) -+0.9803921568627451 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_3) -+0.9611687812379853 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_4) -+0.9611687812379853 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_5) -+100 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_0) -+100 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_1) -+98.0392156862745 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_2) -+98.0392156862745 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_3) -+96.11687812379853 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_4) -+96.11687812379853 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_5) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_0) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_1) -+0.9803921568627451 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_2) -+0.9803921568627451 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_3) -+0.9611687812379853 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_4) -+0.9611687812379853 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_5) -+76.46810240317063 SinkDSMOemofInvestmentBlock_invest(demand_dsm_0) -+50.47234572422055 SinkDSMOemofInvestmentBlock_invest(demand_dsm_1) -+24.986309764465627 SinkDSMOemofInvestmentBlock_invest(demand_dsm_2) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_BusBlock_balance(bus_elec_3)_: -+1 flow(bus_elec_demand_dsm_3) -= 0 - -c_e_BusBlock_balance(bus_elec_4)_: -+1 flow(bus_elec_demand_dsm_4) -= 0 - -c_e_BusBlock_balance(bus_elec_5)_: -+1 flow(bus_elec_demand_dsm_5) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_total_dsm_rule(demand_dsm_0)_: --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_0) -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) -= 50 - -c_e_SinkDSMOemofInvestmentBlock_total_dsm_rule(demand_dsm_1)_: --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_1) --1 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_1) -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_1) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_total_dsm_rule(demand_dsm_2)_: --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_2) --1 SinkDSMOemofInvestmentBlock_total(demand_dsm_1) -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_2) -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_2) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_end(demand_dsm_0)_: -+1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_0) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_end(demand_dsm_1)_: -+1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_1) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_end(demand_dsm_2)_: -+1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_2) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_exo(demand_dsm_0)_: -+1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_0) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_exo(demand_dsm_1)_: -+1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_1) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_exo(demand_dsm_2)_: -+1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_2) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule(demand_dsm_0)_: -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_0) --1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_0) --1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_0) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule(demand_dsm_1)_: -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_1) --1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_1) --1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_1) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule(demand_dsm_2)_: -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_2) --1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_2) --1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_2) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_0_0)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_0) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_0) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_0) -+1 flow(bus_elec_demand_dsm_0) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_0_1)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_1) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_1) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_1) -+1 flow(bus_elec_demand_dsm_1) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_1_2)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_2) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_2) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_2) -+1 flow(bus_elec_demand_dsm_2) -= 2 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_1_3)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_3) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_3) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_3) -+1 flow(bus_elec_demand_dsm_3) -= 2 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_2_4)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_4) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_4) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_4) -+1 flow(bus_elec_demand_dsm_4) -= 3 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_2_5)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_5) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_5) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_5) -+1 flow(bus_elec_demand_dsm_5) -= 3 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_0_0)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_0) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_0_1)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_1) --0.4 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_1_2)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_2) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_1_3)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_3) --0.3 SinkDSMOemofInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_2_4)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_4) --0.3 SinkDSMOemofInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_2_5)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_5) --0.3 SinkDSMOemofInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_0_0)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_0) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_0) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_0_1)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_1) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_1) --0.4 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_1_2)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_2) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_2) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_1_3)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_3) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_3) --0.3 SinkDSMOemofInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_2_4)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_4) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_4) --0.3 SinkDSMOemofInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_2_5)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_5) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_5) --0.3 SinkDSMOemofInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(demand_dsm_0)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_0) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_1) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_0) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_1) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(demand_dsm_2)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_2) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_3) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_2) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_3) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(demand_dsm_4)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_4) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_5) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_4) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_5) -= 0 - -c_u_SinkDSMOemofInvestmentBlock_overall_dsm_maximum(demand_dsm_0)_: -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) -<= 1000 - -c_u_SinkDSMOemofInvestmentBlock_overall_dsm_maximum(demand_dsm_1)_: -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_1) -<= 1000 - -c_u_SinkDSMOemofInvestmentBlock_overall_dsm_maximum(demand_dsm_2)_: -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_2) -<= 1000 - -c_l_SinkDSMOemofInvestmentBlock_overall_minimum(demand_dsm)_: -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_2) ->= 5 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_3) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_4) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_5) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_3) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_4) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_5) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_3) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_4) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_5) <= +inf - 33 <= SinkDSMOemofInvestmentBlock_invest(demand_dsm_0) <= 100 - 33 <= SinkDSMOemofInvestmentBlock_invest(demand_dsm_1) <= 100 - 33 <= SinkDSMOemofInvestmentBlock_invest(demand_dsm_2) <= 100 - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_3) <= +inf - 0 <= flow(bus_elec_demand_dsm_4) <= +inf - 0 <= flow(bus_elec_demand_dsm_5) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_total(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_total(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_total(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_end(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_end(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_end(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_2) <= +inf -end diff --git a/tests/lp_files/dsm_module_oemof_invest_multi_period_remaining_value.lp b/tests/lp_files/dsm_module_oemof_invest_multi_period_remaining_value.lp deleted file mode 100644 index 77c32e736..000000000 --- a/tests/lp_files/dsm_module_oemof_invest_multi_period_remaining_value.lp +++ /dev/null @@ -1,301 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+2941.5609381007307 ONE_VAR_CONSTANT -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_0) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_1) -+0.9803921568627451 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_2) -+0.9803921568627451 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_3) -+0.9611687812379853 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_4) -+0.9611687812379853 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_5) -+100 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_0) -+100 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_1) -+98.0392156862745 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_2) -+98.0392156862745 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_3) -+96.11687812379853 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_4) -+96.11687812379853 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_5) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_0) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_1) -+0.9803921568627451 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_2) -+0.9803921568627451 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_3) -+0.9611687812379853 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_4) -+0.9611687812379853 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_5) -+57.62165571222974 SinkDSMOemofInvestmentBlock_invest(demand_dsm_0) -+39.8850096825295 SinkDSMOemofInvestmentBlock_invest(demand_dsm_1) -+23.833722936524442 SinkDSMOemofInvestmentBlock_invest(demand_dsm_2) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_BusBlock_balance(bus_elec_3)_: -+1 flow(bus_elec_demand_dsm_3) -= 0 - -c_e_BusBlock_balance(bus_elec_4)_: -+1 flow(bus_elec_demand_dsm_4) -= 0 - -c_e_BusBlock_balance(bus_elec_5)_: -+1 flow(bus_elec_demand_dsm_5) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_total_dsm_rule(demand_dsm_0)_: --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_0) -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) -= 50 - -c_e_SinkDSMOemofInvestmentBlock_total_dsm_rule(demand_dsm_1)_: --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_1) --1 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_1) -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_1) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_total_dsm_rule(demand_dsm_2)_: --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_2) --1 SinkDSMOemofInvestmentBlock_total(demand_dsm_1) -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_2) -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_2) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_end(demand_dsm_0)_: -+1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_0) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_end(demand_dsm_1)_: -+1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_1) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_end(demand_dsm_2)_: -+1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_2) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_exo(demand_dsm_0)_: -+1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_0) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_exo(demand_dsm_1)_: -+1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_1) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_exo(demand_dsm_2)_: -+1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_2) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule(demand_dsm_0)_: -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_0) --1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_0) --1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_0) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule(demand_dsm_1)_: -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_1) --1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_1) --1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_1) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule(demand_dsm_2)_: -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_2) --1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_2) --1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_2) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_0_0)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_0) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_0) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_0) -+1 flow(bus_elec_demand_dsm_0) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_0_1)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_1) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_1) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_1) -+1 flow(bus_elec_demand_dsm_1) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_1_2)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_2) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_2) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_2) -+1 flow(bus_elec_demand_dsm_2) -= 2 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_1_3)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_3) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_3) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_3) -+1 flow(bus_elec_demand_dsm_3) -= 2 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_2_4)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_4) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_4) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_4) -+1 flow(bus_elec_demand_dsm_4) -= 3 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_2_5)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_5) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_5) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_5) -+1 flow(bus_elec_demand_dsm_5) -= 3 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_0_0)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_0) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_0_1)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_1) --0.4 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_1_2)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_2) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_1_3)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_3) --0.3 SinkDSMOemofInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_2_4)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_4) --0.3 SinkDSMOemofInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_2_5)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_5) --0.3 SinkDSMOemofInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_0_0)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_0) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_0) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_0_1)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_1) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_1) --0.4 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_1_2)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_2) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_2) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_1_3)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_3) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_3) --0.3 SinkDSMOemofInvestmentBlock_total(demand_dsm_1) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_2_4)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_4) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_4) --0.3 SinkDSMOemofInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_2_5)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_5) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_5) --0.3 SinkDSMOemofInvestmentBlock_total(demand_dsm_2) -<= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(demand_dsm_0)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_0) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_1) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_0) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_1) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(demand_dsm_2)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_2) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_3) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_2) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_3) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(demand_dsm_4)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_4) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_5) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_4) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_5) -= 0 - -c_u_SinkDSMOemofInvestmentBlock_overall_dsm_maximum(demand_dsm_0)_: -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_0) -<= 1000 - -c_u_SinkDSMOemofInvestmentBlock_overall_dsm_maximum(demand_dsm_1)_: -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_1) -<= 1000 - -c_u_SinkDSMOemofInvestmentBlock_overall_dsm_maximum(demand_dsm_2)_: -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_2) -<= 1000 - -c_l_SinkDSMOemofInvestmentBlock_overall_minimum(demand_dsm)_: -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_2) ->= 5 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_3) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_4) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_5) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_3) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_4) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_5) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_3) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_4) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_5) <= +inf - 33 <= SinkDSMOemofInvestmentBlock_invest(demand_dsm_0) <= 100 - 33 <= SinkDSMOemofInvestmentBlock_invest(demand_dsm_1) <= 100 - 33 <= SinkDSMOemofInvestmentBlock_invest(demand_dsm_2) <= 100 - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_3) <= +inf - 0 <= flow(bus_elec_demand_dsm_4) <= +inf - 0 <= flow(bus_elec_demand_dsm_5) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_total(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_total(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_total(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_end(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_end(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_end(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_2) <= +inf -end diff --git a/tests/lp_files/dsm_module_oemof_multi_period.lp b/tests/lp_files/dsm_module_oemof_multi_period.lp deleted file mode 100644 index 6ace1e5a3..000000000 --- a/tests/lp_files/dsm_module_oemof_multi_period.lp +++ /dev/null @@ -1,204 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+2 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_0) -+2 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_1) -+1.9607843137254901 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_2) -+1.9607843137254901 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_3) -+1.9223375624759707 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_4) -+1.9223375624759707 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_5) - -s.t. - -c_e_BusBlock_balance(bus_elec_0)_: -+1 flow(bus_elec_demand_dsm_0) -= 0 - -c_e_BusBlock_balance(bus_elec_1)_: -+1 flow(bus_elec_demand_dsm_1) -= 0 - -c_e_BusBlock_balance(bus_elec_2)_: -+1 flow(bus_elec_demand_dsm_2) -= 0 - -c_e_BusBlock_balance(bus_elec_3)_: -+1 flow(bus_elec_demand_dsm_3) -= 0 - -c_e_BusBlock_balance(bus_elec_4)_: -+1 flow(bus_elec_demand_dsm_4) -= 0 - -c_e_BusBlock_balance(bus_elec_5)_: -+1 flow(bus_elec_demand_dsm_5) -= 0 - -c_e_SinkDSMOemofBlock_shift_shed_vars(demand_dsm_0)_: -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_0) -= 0 - -c_e_SinkDSMOemofBlock_shift_shed_vars(demand_dsm_1)_: -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_1) -= 0 - -c_e_SinkDSMOemofBlock_shift_shed_vars(demand_dsm_2)_: -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_2) -= 0 - -c_e_SinkDSMOemofBlock_shift_shed_vars(demand_dsm_3)_: -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_3) -= 0 - -c_e_SinkDSMOemofBlock_shift_shed_vars(demand_dsm_4)_: -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_4) -= 0 - -c_e_SinkDSMOemofBlock_shift_shed_vars(demand_dsm_5)_: -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_5) -= 0 - -c_e_SinkDSMOemofBlock_input_output_relation(demand_dsm_0_0)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_0) --1 SinkDSMOemofBlock_dsm_up(demand_dsm_0) -+1 flow(bus_elec_demand_dsm_0) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_0) -= 1 - -c_e_SinkDSMOemofBlock_input_output_relation(demand_dsm_0_1)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_1) --1 SinkDSMOemofBlock_dsm_up(demand_dsm_1) -+1 flow(bus_elec_demand_dsm_1) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_1) -= 1 - -c_e_SinkDSMOemofBlock_input_output_relation(demand_dsm_1_2)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_2) --1 SinkDSMOemofBlock_dsm_up(demand_dsm_2) -+1 flow(bus_elec_demand_dsm_2) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_2) -= 1 - -c_e_SinkDSMOemofBlock_input_output_relation(demand_dsm_1_3)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_3) --1 SinkDSMOemofBlock_dsm_up(demand_dsm_3) -+1 flow(bus_elec_demand_dsm_3) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_3) -= 1 - -c_e_SinkDSMOemofBlock_input_output_relation(demand_dsm_2_4)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_4) --1 SinkDSMOemofBlock_dsm_up(demand_dsm_4) -+1 flow(bus_elec_demand_dsm_4) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_4) -= 1 - -c_e_SinkDSMOemofBlock_input_output_relation(demand_dsm_2_5)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_5) --1 SinkDSMOemofBlock_dsm_up(demand_dsm_5) -+1 flow(bus_elec_demand_dsm_5) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_5) -= 1 - -c_u_SinkDSMOemofBlock_dsm_up_constraint(demand_dsm_0)_: -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMOemofBlock_dsm_up_constraint(demand_dsm_1)_: -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_1) -<= 0.4 - -c_u_SinkDSMOemofBlock_dsm_up_constraint(demand_dsm_2)_: -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMOemofBlock_dsm_up_constraint(demand_dsm_3)_: -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_3) -<= 0.3 - -c_u_SinkDSMOemofBlock_dsm_up_constraint(demand_dsm_4)_: -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_4) -<= 0.3 - -c_u_SinkDSMOemofBlock_dsm_up_constraint(demand_dsm_5)_: -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_5) -<= 0.3 - -c_u_SinkDSMOemofBlock_dsm_down_constraint(demand_dsm_0)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_0) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_0) -<= 0.5 - -c_u_SinkDSMOemofBlock_dsm_down_constraint(demand_dsm_1)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_1) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_1) -<= 0.4 - -c_u_SinkDSMOemofBlock_dsm_down_constraint(demand_dsm_2)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_2) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_2) -<= 0.5 - -c_u_SinkDSMOemofBlock_dsm_down_constraint(demand_dsm_3)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_3) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_3) -<= 0.3 - -c_u_SinkDSMOemofBlock_dsm_down_constraint(demand_dsm_4)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_4) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_4) -<= 0.3 - -c_u_SinkDSMOemofBlock_dsm_down_constraint(demand_dsm_5)_: -+1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_5) -+1 SinkDSMOemofBlock_dsm_do_shed(demand_dsm_5) -<= 0.3 - -c_e_SinkDSMOemofBlock_dsm_sum_constraint(demand_dsm_0)_: --1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_0) --1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_1) -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_0) -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_1) -= 0 - -c_e_SinkDSMOemofBlock_dsm_sum_constraint(demand_dsm_2)_: --1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_2) --1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_3) -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_2) -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_3) -= 0 - -c_e_SinkDSMOemofBlock_dsm_sum_constraint(demand_dsm_4)_: --1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_4) --1 SinkDSMOemofBlock_dsm_do_shift(demand_dsm_5) -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_4) -+1 SinkDSMOemofBlock_dsm_up(demand_dsm_5) -= 0 - -bounds - 0 <= SinkDSMOemofBlock_dsm_do_shift(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shift(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shift(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shift(demand_dsm_3) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shift(demand_dsm_4) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shift(demand_dsm_5) <= +inf - 0 <= SinkDSMOemofBlock_dsm_up(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofBlock_dsm_up(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofBlock_dsm_up(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofBlock_dsm_up(demand_dsm_3) <= +inf - 0 <= SinkDSMOemofBlock_dsm_up(demand_dsm_4) <= +inf - 0 <= SinkDSMOemofBlock_dsm_up(demand_dsm_5) <= +inf - 0 <= flow(bus_elec_demand_dsm_0) <= +inf - 0 <= flow(bus_elec_demand_dsm_1) <= +inf - 0 <= flow(bus_elec_demand_dsm_2) <= +inf - 0 <= flow(bus_elec_demand_dsm_3) <= +inf - 0 <= flow(bus_elec_demand_dsm_4) <= +inf - 0 <= flow(bus_elec_demand_dsm_5) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shed(demand_dsm_0) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shed(demand_dsm_1) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shed(demand_dsm_2) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shed(demand_dsm_3) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shed(demand_dsm_4) <= +inf - 0 <= SinkDSMOemofBlock_dsm_do_shed(demand_dsm_5) <= +inf -end diff --git a/tests/lp_files/emission_budget_limit.lp b/tests/lp_files/emission_budget_limit.lp deleted file mode 100644 index 495b4bd48..000000000 --- a/tests/lp_files/emission_budget_limit.lp +++ /dev/null @@ -1,38 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+0 ONE_VAR_CONSTANT - -s.t. - -c_u_integral_limit_emission_factor_upper_limit_: -+0.5 flow(source1_electricityBus_0) --1.0 flow(source1_electricityBus_1) -+2.0 flow(source1_electricityBus_2) -+1 flow(source1_electricityBus_3) -+0.5 flow(source1_electricityBus_4) -+0.5 flow(source1_electricityBus_5) -+3.5 flow(source2_electricityBus_0) -+3.5 flow(source2_electricityBus_1) -+3.5 flow(source2_electricityBus_2) -+3.5 flow(source2_electricityBus_3) -+3.5 flow(source2_electricityBus_4) -+3.5 flow(source2_electricityBus_5) -<= 777 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= flow(source1_electricityBus_0) <= 100 - 0 <= flow(source1_electricityBus_1) <= 100 - 0 <= flow(source1_electricityBus_2) <= 100 - 0 <= flow(source1_electricityBus_3) <= 100 - 0 <= flow(source1_electricityBus_4) <= 100 - 0 <= flow(source1_electricityBus_5) <= 100 - 0 <= flow(source2_electricityBus_0) <= 100 - 0 <= flow(source2_electricityBus_1) <= 100 - 0 <= flow(source2_electricityBus_2) <= 100 - 0 <= flow(source2_electricityBus_3) <= 100 - 0 <= flow(source2_electricityBus_4) <= 100 - 0 <= flow(source2_electricityBus_5) <= 100 -end diff --git a/tests/lp_files/emission_limit.lp b/tests/lp_files/emission_limit.lp deleted file mode 100644 index 380823e3c..000000000 --- a/tests/lp_files/emission_limit.lp +++ /dev/null @@ -1,47 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+0 ONE_VAR_CONSTANT - -s.t. - -c_u_integral_limit_emission_factor_upper_limit_: -+0.5 flow(source1_electricityBus_0) --1.0 flow(source1_electricityBus_1) -+2.0 flow(source1_electricityBus_2) -+3.5 flow(source2_electricityBus_0) -+3.5 flow(source2_electricityBus_1) -+3.5 flow(source2_electricityBus_2) -<= 777 - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(source1_electricityBus_0) -+1 flow(source2_electricityBus_0) -+1 flow(source3_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(source1_electricityBus_1) -+1 flow(source2_electricityBus_1) -+1 flow(source3_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(source1_electricityBus_2) -+1 flow(source2_electricityBus_2) -+1 flow(source3_electricityBus_2) -= 0 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= flow(source1_electricityBus_0) <= 100 - 0 <= flow(source1_electricityBus_1) <= 100 - 0 <= flow(source1_electricityBus_2) <= 100 - 0 <= flow(source2_electricityBus_0) <= 100 - 0 <= flow(source2_electricityBus_1) <= 100 - 0 <= flow(source2_electricityBus_2) <= 100 - 0 <= flow(source3_electricityBus_0) <= 100 - 0 <= flow(source3_electricityBus_1) <= 100 - 0 <= flow(source3_electricityBus_2) <= 100 -end diff --git a/tests/lp_files/emission_limit_lower.lp b/tests/lp_files/emission_limit_lower.lp deleted file mode 100644 index 92fa30731..000000000 --- a/tests/lp_files/emission_limit_lower.lp +++ /dev/null @@ -1,38 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+0 ONE_VAR_CONSTANT - -s.t. - -c_l_integral_limit_emission_factor_lower_limit_: -+0.8 flow(source1_electricityBus_0) -+0.8 flow(source1_electricityBus_1) -+0.8 flow(source1_electricityBus_2) ->= 777 - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(source1_electricityBus_0) -+1 flow(source2_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(source1_electricityBus_1) -+1 flow(source2_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(source1_electricityBus_2) -+1 flow(source2_electricityBus_2) -= 0 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= flow(source1_electricityBus_0) <= 100 - 0 <= flow(source1_electricityBus_1) <= 100 - 0 <= flow(source1_electricityBus_2) <= 100 - 0 <= flow(source2_electricityBus_0) <= 100 - 0 <= flow(source2_electricityBus_1) <= 100 - 0 <= flow(source2_electricityBus_2) <= 100 -end diff --git a/tests/lp_files/emission_limit_no_error.lp b/tests/lp_files/emission_limit_no_error.lp deleted file mode 100644 index 4a2fe33bc..000000000 --- a/tests/lp_files/emission_limit_no_error.lp +++ /dev/null @@ -1,38 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+0 ONE_VAR_CONSTANT - -s.t. - -c_u_integral_limit_emission_factor_upper_limit_: -+0.8 flow(source1_electricityBus_0) -+0.8 flow(source1_electricityBus_1) -+0.8 flow(source1_electricityBus_2) -<= 777 - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(source1_electricityBus_0) -+1 flow(source2_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(source1_electricityBus_1) -+1 flow(source2_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(source1_electricityBus_2) -+1 flow(source2_electricityBus_2) -= 0 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= flow(source1_electricityBus_0) <= 100 - 0 <= flow(source1_electricityBus_1) <= 100 - 0 <= flow(source1_electricityBus_2) <= 100 - 0 <= flow(source2_electricityBus_0) <= 100 - 0 <= flow(source2_electricityBus_1) <= 100 - 0 <= flow(source2_electricityBus_2) <= 100 -end diff --git a/tests/lp_files/equate_flows.lp b/tests/lp_files/equate_flows.lp deleted file mode 100644 index cbde310e2..000000000 --- a/tests/lp_files/equate_flows.lp +++ /dev/null @@ -1,63 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+2 flow(Bus1_Sink_0) -+2 flow(Bus1_Sink_1) -+2 flow(Bus1_Sink_2) -+2 flow(Source1_Bus1_0) -+2 flow(Source1_Bus1_1) -+2 flow(Source1_Bus1_2) -+10 flow(Source2_Bus1_0) -+10 flow(Source2_Bus1_1) -+10 flow(Source2_Bus1_2) - -s.t. - -c_e_equate_flows(0)_: --1 flow(Bus1_Sink_0) -+2 flow(Source1_Bus1_0) -+2 flow(Source2_Bus1_0) -= 0 - -c_e_equate_flows(1)_: --1 flow(Bus1_Sink_1) -+2 flow(Source1_Bus1_1) -+2 flow(Source2_Bus1_1) -= 0 - -c_e_equate_flows(2)_: --1 flow(Bus1_Sink_2) -+2 flow(Source1_Bus1_2) -+2 flow(Source2_Bus1_2) -= 0 - -c_e_BusBlock_balance(Bus1_0)_: --1 flow(Bus1_Sink_0) -+1 flow(Source1_Bus1_0) -+1 flow(Source2_Bus1_0) -= 0 - -c_e_BusBlock_balance(Bus1_1)_: --1 flow(Bus1_Sink_1) -+1 flow(Source1_Bus1_1) -+1 flow(Source2_Bus1_1) -= 0 - -c_e_BusBlock_balance(Bus1_2)_: --1 flow(Bus1_Sink_2) -+1 flow(Source1_Bus1_2) -+1 flow(Source2_Bus1_2) -= 0 - -bounds - 0 <= flow(Bus1_Sink_0) <= 300 - 0 <= flow(Bus1_Sink_1) <= 300 - 0 <= flow(Bus1_Sink_2) <= 300 - 0 <= flow(Source1_Bus1_0) <= 400 - 0 <= flow(Source1_Bus1_1) <= 400 - 0 <= flow(Source1_Bus1_2) <= 400 - 0 <= flow(Source2_Bus1_0) <= 200 - 0 <= flow(Source2_Bus1_1) <= 200 - 0 <= flow(Source2_Bus1_2) <= 200 -end diff --git a/tests/lp_files/fixed_costs_sources.lp b/tests/lp_files/fixed_costs_sources.lp deleted file mode 100644 index 20fdfeb81..000000000 --- a/tests/lp_files/fixed_costs_sources.lp +++ /dev/null @@ -1,91 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+235.90542099192615 ONE_VAR_CONSTANT -+25 flow(pv_forever_electricityBus_0) -+25 flow(pv_forever_electricityBus_1) -+24.509803921568626 flow(pv_forever_electricityBus_2) -+24.509803921568626 flow(pv_forever_electricityBus_3) -+24.029219530949632 flow(pv_forever_electricityBus_4) -+24.029219530949632 flow(pv_forever_electricityBus_5) -+25 flow(pv_with_lifetime_electricityBus_0) -+25 flow(pv_with_lifetime_electricityBus_1) -+24.509803921568626 flow(pv_with_lifetime_electricityBus_2) -+24.509803921568626 flow(pv_with_lifetime_electricityBus_3) -+24.029219530949632 flow(pv_with_lifetime_electricityBus_4) -+24.029219530949632 flow(pv_with_lifetime_electricityBus_5) -+25 flow(pv_with_lifetime_and_age_electricityBus_0) -+25 flow(pv_with_lifetime_and_age_electricityBus_1) -+24.509803921568626 flow(pv_with_lifetime_and_age_electricityBus_2) -+24.509803921568626 flow(pv_with_lifetime_and_age_electricityBus_3) -+24.029219530949632 flow(pv_with_lifetime_and_age_electricityBus_4) -+24.029219530949632 flow(pv_with_lifetime_and_age_electricityBus_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(pv_forever_electricityBus_0) -+1 flow(pv_with_lifetime_electricityBus_0) -+1 flow(pv_with_lifetime_and_age_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(pv_forever_electricityBus_1) -+1 flow(pv_with_lifetime_electricityBus_1) -+1 flow(pv_with_lifetime_and_age_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(pv_forever_electricityBus_2) -+1 flow(pv_with_lifetime_electricityBus_2) -+1 flow(pv_with_lifetime_and_age_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(pv_forever_electricityBus_3) -+1 flow(pv_with_lifetime_electricityBus_3) -+1 flow(pv_with_lifetime_and_age_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(pv_forever_electricityBus_4) -+1 flow(pv_with_lifetime_electricityBus_4) -+1 flow(pv_with_lifetime_and_age_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(pv_forever_electricityBus_5) -+1 flow(pv_with_lifetime_electricityBus_5) -+1 flow(pv_with_lifetime_and_age_electricityBus_5) -= 0 - -c_e_SimpleFlowBlock_lifetime_age_output(pv_with_lifetime_and_age_electricityBus_2_4)_: -+1 flow(pv_with_lifetime_and_age_electricityBus_4) -= 0 - -c_e_SimpleFlowBlock_lifetime_age_output(pv_with_lifetime_and_age_electricityBus_2_5)_: -+1 flow(pv_with_lifetime_and_age_electricityBus_5) -= 0 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= flow(pv_forever_electricityBus_0) <= 8.0 - 0 <= flow(pv_forever_electricityBus_1) <= 8.0 - 0 <= flow(pv_forever_electricityBus_2) <= 8.0 - 0 <= flow(pv_forever_electricityBus_3) <= 8.0 - 0 <= flow(pv_forever_electricityBus_4) <= 8.0 - 0 <= flow(pv_forever_electricityBus_5) <= 8.0 - 0 <= flow(pv_with_lifetime_electricityBus_0) <= 8.0 - 0 <= flow(pv_with_lifetime_electricityBus_1) <= 8.0 - 0 <= flow(pv_with_lifetime_electricityBus_2) <= 8.0 - 0 <= flow(pv_with_lifetime_electricityBus_3) <= 8.0 - 0 <= flow(pv_with_lifetime_electricityBus_4) <= 8.0 - 0 <= flow(pv_with_lifetime_electricityBus_5) <= 8.0 - 0 <= flow(pv_with_lifetime_and_age_electricityBus_0) <= 8.0 - 0 <= flow(pv_with_lifetime_and_age_electricityBus_1) <= 8.0 - 0 <= flow(pv_with_lifetime_and_age_electricityBus_2) <= 8.0 - 0 <= flow(pv_with_lifetime_and_age_electricityBus_3) <= 8.0 - 0 <= flow(pv_with_lifetime_and_age_electricityBus_4) <= 8.0 - 0 <= flow(pv_with_lifetime_and_age_electricityBus_5) <= 8.0 -end diff --git a/tests/lp_files/fixed_source_invest_sink.lp b/tests/lp_files/fixed_source_invest_sink.lp deleted file mode 100644 index 1a836007d..000000000 --- a/tests/lp_files/fixed_source_invest_sink.lp +++ /dev/null @@ -1,57 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+500 InvestmentFlowBlock_invest(electricityBus_excess_0) -+25 flow(electricityBus_excess_0) -+25 flow(electricityBus_excess_1) -+25 flow(electricityBus_excess_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_excess_0) -= -12000000.0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_excess_1) -= -16000000.0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_excess_2) -= -14000000.0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_excess_0)_: --1 InvestmentFlowBlock_invest(electricityBus_excess_0) -+1 InvestmentFlowBlock_total(electricityBus_excess_0) -= 50 - -c_u_InvestmentFlowBlock_max(electricityBus_excess_0_0)_: -+1 flow(electricityBus_excess_0) --0.8 InvestmentFlowBlock_total(electricityBus_excess_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_excess_0_1)_: -+1 flow(electricityBus_excess_1) --0.8 InvestmentFlowBlock_total(electricityBus_excess_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_excess_0_2)_: -+1 flow(electricityBus_excess_2) --0.8 InvestmentFlowBlock_total(electricityBus_excess_0) -<= 0 - -c_u_InvestmentFlowBlock_full_load_time_max(electricityBus_excess)_: -+1 flow(electricityBus_excess_0) -+1 flow(electricityBus_excess_1) -+1 flow(electricityBus_excess_2) --2.3 InvestmentFlowBlock_total(electricityBus_excess_0) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(electricityBus_excess_0) <= 1000000.0 - 0 <= flow(electricityBus_excess_0) <= +inf - 0 <= flow(electricityBus_excess_1) <= +inf - 0 <= flow(electricityBus_excess_2) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_excess_0) <= +inf -end diff --git a/tests/lp_files/fixed_source_invest_sink_multi_period.lp b/tests/lp_files/fixed_source_invest_sink_multi_period.lp deleted file mode 100644 index 3959ce6eb..000000000 --- a/tests/lp_files/fixed_source_invest_sink_multi_period.lp +++ /dev/null @@ -1,166 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+88.1844182057801 InvestmentFlowBlock_invest(electricityBus_excess_0) -+58.20563481102971 InvestmentFlowBlock_invest(electricityBus_excess_1) -+28.814670698529593 InvestmentFlowBlock_invest(electricityBus_excess_2) -+25 flow(electricityBus_excess_0) -+25 flow(electricityBus_excess_1) -+24.509803921568626 flow(electricityBus_excess_2) -+24.509803921568626 flow(electricityBus_excess_3) -+24.029219530949632 flow(electricityBus_excess_4) -+24.029219530949632 flow(electricityBus_excess_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_excess_0) -= -12000000.0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_excess_1) -= -16000000.0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_excess_2) -= -14000000.0 - -c_e_BusBlock_balance(electricityBus_3)_: --1 flow(electricityBus_excess_3) -= -18000000.0 - -c_e_BusBlock_balance(electricityBus_4)_: --1 flow(electricityBus_excess_4) -= -18000000.0 - -c_e_BusBlock_balance(electricityBus_5)_: --1 flow(electricityBus_excess_5) -= -18000000.0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_excess_0)_: --1 InvestmentFlowBlock_invest(electricityBus_excess_0) -+1 InvestmentFlowBlock_total(electricityBus_excess_0) -= 50 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_excess_1)_: --1 InvestmentFlowBlock_invest(electricityBus_excess_1) --1 InvestmentFlowBlock_total(electricityBus_excess_0) -+1 InvestmentFlowBlock_total(electricityBus_excess_1) -+1 InvestmentFlowBlock_old(electricityBus_excess_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_excess_2)_: --1 InvestmentFlowBlock_invest(electricityBus_excess_2) --1 InvestmentFlowBlock_total(electricityBus_excess_1) -+1 InvestmentFlowBlock_total(electricityBus_excess_2) -+1 InvestmentFlowBlock_old(electricityBus_excess_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_excess_0)_: -+1 InvestmentFlowBlock_old_end(electricityBus_excess_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_excess_1)_: -+1 InvestmentFlowBlock_old_end(electricityBus_excess_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_excess_2)_: -+1 InvestmentFlowBlock_old_end(electricityBus_excess_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_excess_0)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_excess_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_excess_1)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_excess_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_excess_2)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_excess_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_excess_0)_: -+1 InvestmentFlowBlock_old(electricityBus_excess_0) --1 InvestmentFlowBlock_old_end(electricityBus_excess_0) --1 InvestmentFlowBlock_old_exo(electricityBus_excess_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_excess_1)_: -+1 InvestmentFlowBlock_old(electricityBus_excess_1) --1 InvestmentFlowBlock_old_end(electricityBus_excess_1) --1 InvestmentFlowBlock_old_exo(electricityBus_excess_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_excess_2)_: -+1 InvestmentFlowBlock_old(electricityBus_excess_2) --1 InvestmentFlowBlock_old_end(electricityBus_excess_2) --1 InvestmentFlowBlock_old_exo(electricityBus_excess_2) -= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_excess_0_0)_: -+1 flow(electricityBus_excess_0) --0.8 InvestmentFlowBlock_total(electricityBus_excess_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_excess_0_1)_: -+1 flow(electricityBus_excess_1) --0.8 InvestmentFlowBlock_total(electricityBus_excess_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_excess_1_2)_: -+1 flow(electricityBus_excess_2) --0.8 InvestmentFlowBlock_total(electricityBus_excess_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_excess_1_3)_: -+1 flow(electricityBus_excess_3) --0.8 InvestmentFlowBlock_total(electricityBus_excess_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_excess_2_4)_: -+1 flow(electricityBus_excess_4) --0.8 InvestmentFlowBlock_total(electricityBus_excess_2) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_excess_2_5)_: -+1 flow(electricityBus_excess_5) --0.8 InvestmentFlowBlock_total(electricityBus_excess_2) -<= 0 - -c_u_InvestmentFlowBlock_full_load_time_max(electricityBus_excess)_: -+1 flow(electricityBus_excess_0) -+1 flow(electricityBus_excess_1) -+1 flow(electricityBus_excess_2) -+1 flow(electricityBus_excess_3) -+1 flow(electricityBus_excess_4) -+1 flow(electricityBus_excess_5) --2.3 InvestmentFlowBlock_total(electricityBus_excess_0) --2.3 InvestmentFlowBlock_total(electricityBus_excess_1) --2.3 InvestmentFlowBlock_total(electricityBus_excess_2) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(electricityBus_excess_0) <= 1000000.0 - 0 <= InvestmentFlowBlock_invest(electricityBus_excess_1) <= 1000000.0 - 0 <= InvestmentFlowBlock_invest(electricityBus_excess_2) <= 1000000.0 - 0 <= flow(electricityBus_excess_0) <= +inf - 0 <= flow(electricityBus_excess_1) <= +inf - 0 <= flow(electricityBus_excess_2) <= +inf - 0 <= flow(electricityBus_excess_3) <= +inf - 0 <= flow(electricityBus_excess_4) <= +inf - 0 <= flow(electricityBus_excess_5) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_excess_0) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_excess_1) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_excess_2) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_excess_0) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_excess_1) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_excess_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_excess_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_excess_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_excess_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_excess_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_excess_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_excess_2) <= +inf -end diff --git a/tests/lp_files/fixed_source_variable_sink.lp b/tests/lp_files/fixed_source_variable_sink.lp deleted file mode 100644 index b2da930f0..000000000 --- a/tests/lp_files/fixed_source_variable_sink.lp +++ /dev/null @@ -1,27 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+40 flow(electricityBus_excess_0) -+40 flow(electricityBus_excess_1) -+40 flow(electricityBus_excess_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_excess_0) -= -430000.0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_excess_1) -= -720000.0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_excess_2) -= -290000.0 - -bounds - 0 <= flow(electricityBus_excess_0) <= +inf - 0 <= flow(electricityBus_excess_1) <= +inf - 0 <= flow(electricityBus_excess_2) <= +inf -end diff --git a/tests/lp_files/fixed_source_variable_sink_multi_period.lp b/tests/lp_files/fixed_source_variable_sink_multi_period.lp deleted file mode 100644 index c4b93ed4b..000000000 --- a/tests/lp_files/fixed_source_variable_sink_multi_period.lp +++ /dev/null @@ -1,45 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+40 flow(electricityBus_excess_0) -+40 flow(electricityBus_excess_1) -+39.2156862745098 flow(electricityBus_excess_2) -+39.2156862745098 flow(electricityBus_excess_3) -+38.446751249519416 flow(electricityBus_excess_4) -+38.446751249519416 flow(electricityBus_excess_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_excess_0) -= -430000.0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_excess_1) -= -720000.0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_excess_2) -= -290000.0 - -c_e_BusBlock_balance(electricityBus_3)_: --1 flow(electricityBus_excess_3) -= -330000.0 - -c_e_BusBlock_balance(electricityBus_4)_: --1 flow(electricityBus_excess_4) -= -330000.0 - -c_e_BusBlock_balance(electricityBus_5)_: --1 flow(electricityBus_excess_5) -= -330000.0 - -bounds - 0 <= flow(electricityBus_excess_0) <= +inf - 0 <= flow(electricityBus_excess_1) <= +inf - 0 <= flow(electricityBus_excess_2) <= +inf - 0 <= flow(electricityBus_excess_3) <= +inf - 0 <= flow(electricityBus_excess_4) <= +inf - 0 <= flow(electricityBus_excess_5) <= +inf -end diff --git a/tests/lp_files/flow_count_limit.lp b/tests/lp_files/flow_count_limit.lp deleted file mode 100644 index 499d88d04..000000000 --- a/tests/lp_files/flow_count_limit.lp +++ /dev/null @@ -1,219 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+0 ONE_VAR_CONSTANT - -s.t. - -c_e_emission_factor_constraint(0)_: -+1 NonConvexFlowBlock_status(source1_electricityBus_0) -+1 NonConvexFlowBlock_status(source2_electricityBus_0) --1 emission_factor(0) -= 0 - -c_e_emission_factor_constraint(1)_: -+1 NonConvexFlowBlock_status(source1_electricityBus_1) -+1 NonConvexFlowBlock_status(source2_electricityBus_1) --1 emission_factor(1) -= 0 - -c_e_emission_factor_constraint(2)_: -+1 NonConvexFlowBlock_status(source1_electricityBus_2) -+1 NonConvexFlowBlock_status(source2_electricityBus_2) --1 emission_factor(2) -= 0 - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(source1_electricityBus_0) -+1 flow(source2_electricityBus_0) -+1 flow(source3_electricityBus_0) -+1 flow(source4_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(source1_electricityBus_1) -+1 flow(source2_electricityBus_1) -+1 flow(source3_electricityBus_1) -+1 flow(source4_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(source1_electricityBus_2) -+1 flow(source2_electricityBus_2) -+1 flow(source3_electricityBus_2) -+1 flow(source4_electricityBus_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source1_electricityBus_0)_: --100 NonConvexFlowBlock_status(source1_electricityBus_0) -+1 NonConvexFlowBlock_status_nominal(source1_electricityBus_0) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source1_electricityBus_1)_: --100 NonConvexFlowBlock_status(source1_electricityBus_1) -+1 NonConvexFlowBlock_status_nominal(source1_electricityBus_1) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source1_electricityBus_2)_: --100 NonConvexFlowBlock_status(source1_electricityBus_2) -+1 NonConvexFlowBlock_status_nominal(source1_electricityBus_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source2_electricityBus_0)_: --100 NonConvexFlowBlock_status(source2_electricityBus_0) -+1 NonConvexFlowBlock_status_nominal(source2_electricityBus_0) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source2_electricityBus_1)_: --100 NonConvexFlowBlock_status(source2_electricityBus_1) -+1 NonConvexFlowBlock_status_nominal(source2_electricityBus_1) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source2_electricityBus_2)_: --100 NonConvexFlowBlock_status(source2_electricityBus_2) -+1 NonConvexFlowBlock_status_nominal(source2_electricityBus_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source3_electricityBus_0)_: --100 NonConvexFlowBlock_status(source3_electricityBus_0) -+1 NonConvexFlowBlock_status_nominal(source3_electricityBus_0) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source3_electricityBus_1)_: --100 NonConvexFlowBlock_status(source3_electricityBus_1) -+1 NonConvexFlowBlock_status_nominal(source3_electricityBus_1) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source3_electricityBus_2)_: --100 NonConvexFlowBlock_status(source3_electricityBus_2) -+1 NonConvexFlowBlock_status_nominal(source3_electricityBus_2) -= 0 - -c_u_NonConvexFlowBlock_min(source1_electricityBus_0)_: --1 flow(source1_electricityBus_0) -<= 0 - -c_u_NonConvexFlowBlock_min(source1_electricityBus_1)_: --1 flow(source1_electricityBus_1) -<= 0 - -c_u_NonConvexFlowBlock_min(source1_electricityBus_2)_: --1 flow(source1_electricityBus_2) -<= 0 - -c_u_NonConvexFlowBlock_min(source2_electricityBus_0)_: --1 flow(source2_electricityBus_0) -<= 0 - -c_u_NonConvexFlowBlock_min(source2_electricityBus_1)_: --1 flow(source2_electricityBus_1) -<= 0 - -c_u_NonConvexFlowBlock_min(source2_electricityBus_2)_: --1 flow(source2_electricityBus_2) -<= 0 - -c_u_NonConvexFlowBlock_min(source3_electricityBus_0)_: --1 flow(source3_electricityBus_0) -<= 0 - -c_u_NonConvexFlowBlock_min(source3_electricityBus_1)_: --1 flow(source3_electricityBus_1) -<= 0 - -c_u_NonConvexFlowBlock_min(source3_electricityBus_2)_: --1 flow(source3_electricityBus_2) -<= 0 - -c_u_NonConvexFlowBlock_max(source1_electricityBus_0)_: -+1 flow(source1_electricityBus_0) --1 NonConvexFlowBlock_status_nominal(source1_electricityBus_0) -<= 0 - -c_u_NonConvexFlowBlock_max(source1_electricityBus_1)_: -+1 flow(source1_electricityBus_1) --1 NonConvexFlowBlock_status_nominal(source1_electricityBus_1) -<= 0 - -c_u_NonConvexFlowBlock_max(source1_electricityBus_2)_: -+1 flow(source1_electricityBus_2) --1 NonConvexFlowBlock_status_nominal(source1_electricityBus_2) -<= 0 - -c_u_NonConvexFlowBlock_max(source2_electricityBus_0)_: -+1 flow(source2_electricityBus_0) --1 NonConvexFlowBlock_status_nominal(source2_electricityBus_0) -<= 0 - -c_u_NonConvexFlowBlock_max(source2_electricityBus_1)_: -+1 flow(source2_electricityBus_1) --1 NonConvexFlowBlock_status_nominal(source2_electricityBus_1) -<= 0 - -c_u_NonConvexFlowBlock_max(source2_electricityBus_2)_: -+1 flow(source2_electricityBus_2) --1 NonConvexFlowBlock_status_nominal(source2_electricityBus_2) -<= 0 - -c_u_NonConvexFlowBlock_max(source3_electricityBus_0)_: -+1 flow(source3_electricityBus_0) --1 NonConvexFlowBlock_status_nominal(source3_electricityBus_0) -<= 0 - -c_u_NonConvexFlowBlock_max(source3_electricityBus_1)_: -+1 flow(source3_electricityBus_1) --1 NonConvexFlowBlock_status_nominal(source3_electricityBus_1) -<= 0 - -c_u_NonConvexFlowBlock_max(source3_electricityBus_2)_: -+1 flow(source3_electricityBus_2) --1 NonConvexFlowBlock_status_nominal(source3_electricityBus_2) -<= 0 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= NonConvexFlowBlock_status(source1_electricityBus_0) <= 1 - 0 <= NonConvexFlowBlock_status(source1_electricityBus_1) <= 1 - 0 <= NonConvexFlowBlock_status(source1_electricityBus_2) <= 1 - 0 <= NonConvexFlowBlock_status(source2_electricityBus_0) <= 1 - 0 <= NonConvexFlowBlock_status(source2_electricityBus_1) <= 1 - 0 <= NonConvexFlowBlock_status(source2_electricityBus_2) <= 1 - 0 <= NonConvexFlowBlock_status(source3_electricityBus_0) <= 1 - 0 <= NonConvexFlowBlock_status(source3_electricityBus_1) <= 1 - 0 <= NonConvexFlowBlock_status(source3_electricityBus_2) <= 1 - 1 <= emission_factor(0) <= 2 - 1 <= emission_factor(1) <= 2 - 1 <= emission_factor(2) <= 2 - 0 <= flow(source1_electricityBus_0) <= 100 - 0 <= flow(source1_electricityBus_1) <= 100 - 0 <= flow(source1_electricityBus_2) <= 100 - 0 <= flow(source2_electricityBus_0) <= 100 - 0 <= flow(source2_electricityBus_1) <= 100 - 0 <= flow(source2_electricityBus_2) <= 100 - 0 <= flow(source3_electricityBus_0) <= 100 - 0 <= flow(source3_electricityBus_1) <= 100 - 0 <= flow(source3_electricityBus_2) <= 100 - 30.0 <= flow(source4_electricityBus_0) <= 100 - 30.0 <= flow(source4_electricityBus_1) <= 100 - 30.0 <= flow(source4_electricityBus_2) <= 100 - 0 <= NonConvexFlowBlock_status_nominal(source1_electricityBus_0) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source1_electricityBus_1) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source1_electricityBus_2) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source2_electricityBus_0) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source2_electricityBus_1) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source2_electricityBus_2) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source3_electricityBus_0) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source3_electricityBus_1) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source3_electricityBus_2) <= +inf -binary - NonConvexFlowBlock_status(source1_electricityBus_0) - NonConvexFlowBlock_status(source1_electricityBus_1) - NonConvexFlowBlock_status(source1_electricityBus_2) - NonConvexFlowBlock_status(source2_electricityBus_0) - NonConvexFlowBlock_status(source2_electricityBus_1) - NonConvexFlowBlock_status(source2_electricityBus_2) - NonConvexFlowBlock_status(source3_electricityBus_0) - NonConvexFlowBlock_status(source3_electricityBus_1) - NonConvexFlowBlock_status(source3_electricityBus_2) -end diff --git a/tests/lp_files/flow_count_limit_multi_period.lp b/tests/lp_files/flow_count_limit_multi_period.lp deleted file mode 100644 index 27e0d980b..000000000 --- a/tests/lp_files/flow_count_limit_multi_period.lp +++ /dev/null @@ -1,378 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+0 ONE_VAR_CONSTANT - -s.t. - -c_e_emission_factor_constraint(0)_: -+1 NonConvexFlowBlock_status(source2_electricityBus_0) -+1 NonConvexFlowBlock_status(source1_electricityBus_0) --1 emission_factor(0) -= 0 - -c_e_emission_factor_constraint(1)_: -+1 NonConvexFlowBlock_status(source2_electricityBus_1) -+1 NonConvexFlowBlock_status(source1_electricityBus_1) --1 emission_factor(1) -= 0 - -c_e_emission_factor_constraint(2)_: -+1 NonConvexFlowBlock_status(source2_electricityBus_2) -+1 NonConvexFlowBlock_status(source1_electricityBus_2) --1 emission_factor(2) -= 0 - -c_e_emission_factor_constraint(3)_: -+1 NonConvexFlowBlock_status(source2_electricityBus_3) -+1 NonConvexFlowBlock_status(source1_electricityBus_3) --1 emission_factor(3) -= 0 - -c_e_emission_factor_constraint(4)_: -+1 NonConvexFlowBlock_status(source2_electricityBus_4) -+1 NonConvexFlowBlock_status(source1_electricityBus_4) --1 emission_factor(4) -= 0 - -c_e_emission_factor_constraint(5)_: -+1 NonConvexFlowBlock_status(source2_electricityBus_5) -+1 NonConvexFlowBlock_status(source1_electricityBus_5) --1 emission_factor(5) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source3_electricityBus_0)_: --100 NonConvexFlowBlock_status(source3_electricityBus_0) -+1 NonConvexFlowBlock_status_nominal(source3_electricityBus_0) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source3_electricityBus_1)_: --100 NonConvexFlowBlock_status(source3_electricityBus_1) -+1 NonConvexFlowBlock_status_nominal(source3_electricityBus_1) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source3_electricityBus_2)_: --100 NonConvexFlowBlock_status(source3_electricityBus_2) -+1 NonConvexFlowBlock_status_nominal(source3_electricityBus_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source3_electricityBus_3)_: --100 NonConvexFlowBlock_status(source3_electricityBus_3) -+1 NonConvexFlowBlock_status_nominal(source3_electricityBus_3) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source3_electricityBus_4)_: --100 NonConvexFlowBlock_status(source3_electricityBus_4) -+1 NonConvexFlowBlock_status_nominal(source3_electricityBus_4) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source3_electricityBus_5)_: --100 NonConvexFlowBlock_status(source3_electricityBus_5) -+1 NonConvexFlowBlock_status_nominal(source3_electricityBus_5) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source2_electricityBus_0)_: --100 NonConvexFlowBlock_status(source2_electricityBus_0) -+1 NonConvexFlowBlock_status_nominal(source2_electricityBus_0) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source2_electricityBus_1)_: --100 NonConvexFlowBlock_status(source2_electricityBus_1) -+1 NonConvexFlowBlock_status_nominal(source2_electricityBus_1) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source2_electricityBus_2)_: --100 NonConvexFlowBlock_status(source2_electricityBus_2) -+1 NonConvexFlowBlock_status_nominal(source2_electricityBus_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source2_electricityBus_3)_: --100 NonConvexFlowBlock_status(source2_electricityBus_3) -+1 NonConvexFlowBlock_status_nominal(source2_electricityBus_3) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source2_electricityBus_4)_: --100 NonConvexFlowBlock_status(source2_electricityBus_4) -+1 NonConvexFlowBlock_status_nominal(source2_electricityBus_4) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source2_electricityBus_5)_: --100 NonConvexFlowBlock_status(source2_electricityBus_5) -+1 NonConvexFlowBlock_status_nominal(source2_electricityBus_5) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source1_electricityBus_0)_: --100 NonConvexFlowBlock_status(source1_electricityBus_0) -+1 NonConvexFlowBlock_status_nominal(source1_electricityBus_0) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source1_electricityBus_1)_: --100 NonConvexFlowBlock_status(source1_electricityBus_1) -+1 NonConvexFlowBlock_status_nominal(source1_electricityBus_1) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source1_electricityBus_2)_: --100 NonConvexFlowBlock_status(source1_electricityBus_2) -+1 NonConvexFlowBlock_status_nominal(source1_electricityBus_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source1_electricityBus_3)_: --100 NonConvexFlowBlock_status(source1_electricityBus_3) -+1 NonConvexFlowBlock_status_nominal(source1_electricityBus_3) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source1_electricityBus_4)_: --100 NonConvexFlowBlock_status(source1_electricityBus_4) -+1 NonConvexFlowBlock_status_nominal(source1_electricityBus_4) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(source1_electricityBus_5)_: --100 NonConvexFlowBlock_status(source1_electricityBus_5) -+1 NonConvexFlowBlock_status_nominal(source1_electricityBus_5) -= 0 - -c_u_NonConvexFlowBlock_min(source3_electricityBus_0)_: --1 flow(source3_electricityBus_0) -<= 0 - -c_u_NonConvexFlowBlock_min(source3_electricityBus_1)_: --1 flow(source3_electricityBus_1) -<= 0 - -c_u_NonConvexFlowBlock_min(source3_electricityBus_2)_: --1 flow(source3_electricityBus_2) -<= 0 - -c_u_NonConvexFlowBlock_min(source3_electricityBus_3)_: --1 flow(source3_electricityBus_3) -<= 0 - -c_u_NonConvexFlowBlock_min(source3_electricityBus_4)_: --1 flow(source3_electricityBus_4) -<= 0 - -c_u_NonConvexFlowBlock_min(source3_electricityBus_5)_: --1 flow(source3_electricityBus_5) -<= 0 - -c_u_NonConvexFlowBlock_min(source2_electricityBus_0)_: --1 flow(source2_electricityBus_0) -<= 0 - -c_u_NonConvexFlowBlock_min(source2_electricityBus_1)_: --1 flow(source2_electricityBus_1) -<= 0 - -c_u_NonConvexFlowBlock_min(source2_electricityBus_2)_: --1 flow(source2_electricityBus_2) -<= 0 - -c_u_NonConvexFlowBlock_min(source2_electricityBus_3)_: --1 flow(source2_electricityBus_3) -<= 0 - -c_u_NonConvexFlowBlock_min(source2_electricityBus_4)_: --1 flow(source2_electricityBus_4) -<= 0 - -c_u_NonConvexFlowBlock_min(source2_electricityBus_5)_: --1 flow(source2_electricityBus_5) -<= 0 - -c_u_NonConvexFlowBlock_min(source1_electricityBus_0)_: --1 flow(source1_electricityBus_0) -<= 0 - -c_u_NonConvexFlowBlock_min(source1_electricityBus_1)_: --1 flow(source1_electricityBus_1) -<= 0 - -c_u_NonConvexFlowBlock_min(source1_electricityBus_2)_: --1 flow(source1_electricityBus_2) -<= 0 - -c_u_NonConvexFlowBlock_min(source1_electricityBus_3)_: --1 flow(source1_electricityBus_3) -<= 0 - -c_u_NonConvexFlowBlock_min(source1_electricityBus_4)_: --1 flow(source1_electricityBus_4) -<= 0 - -c_u_NonConvexFlowBlock_min(source1_electricityBus_5)_: --1 flow(source1_electricityBus_5) -<= 0 - -c_u_NonConvexFlowBlock_max(source3_electricityBus_0)_: --1 NonConvexFlowBlock_status_nominal(source3_electricityBus_0) -+1 flow(source3_electricityBus_0) -<= 0 - -c_u_NonConvexFlowBlock_max(source3_electricityBus_1)_: --1 NonConvexFlowBlock_status_nominal(source3_electricityBus_1) -+1 flow(source3_electricityBus_1) -<= 0 - -c_u_NonConvexFlowBlock_max(source3_electricityBus_2)_: --1 NonConvexFlowBlock_status_nominal(source3_electricityBus_2) -+1 flow(source3_electricityBus_2) -<= 0 - -c_u_NonConvexFlowBlock_max(source3_electricityBus_3)_: --1 NonConvexFlowBlock_status_nominal(source3_electricityBus_3) -+1 flow(source3_electricityBus_3) -<= 0 - -c_u_NonConvexFlowBlock_max(source3_electricityBus_4)_: --1 NonConvexFlowBlock_status_nominal(source3_electricityBus_4) -+1 flow(source3_electricityBus_4) -<= 0 - -c_u_NonConvexFlowBlock_max(source3_electricityBus_5)_: --1 NonConvexFlowBlock_status_nominal(source3_electricityBus_5) -+1 flow(source3_electricityBus_5) -<= 0 - -c_u_NonConvexFlowBlock_max(source2_electricityBus_0)_: --1 NonConvexFlowBlock_status_nominal(source2_electricityBus_0) -+1 flow(source2_electricityBus_0) -<= 0 - -c_u_NonConvexFlowBlock_max(source2_electricityBus_1)_: --1 NonConvexFlowBlock_status_nominal(source2_electricityBus_1) -+1 flow(source2_electricityBus_1) -<= 0 - -c_u_NonConvexFlowBlock_max(source2_electricityBus_2)_: --1 NonConvexFlowBlock_status_nominal(source2_electricityBus_2) -+1 flow(source2_electricityBus_2) -<= 0 - -c_u_NonConvexFlowBlock_max(source2_electricityBus_3)_: --1 NonConvexFlowBlock_status_nominal(source2_electricityBus_3) -+1 flow(source2_electricityBus_3) -<= 0 - -c_u_NonConvexFlowBlock_max(source2_electricityBus_4)_: --1 NonConvexFlowBlock_status_nominal(source2_electricityBus_4) -+1 flow(source2_electricityBus_4) -<= 0 - -c_u_NonConvexFlowBlock_max(source2_electricityBus_5)_: --1 NonConvexFlowBlock_status_nominal(source2_electricityBus_5) -+1 flow(source2_electricityBus_5) -<= 0 - -c_u_NonConvexFlowBlock_max(source1_electricityBus_0)_: --1 NonConvexFlowBlock_status_nominal(source1_electricityBus_0) -+1 flow(source1_electricityBus_0) -<= 0 - -c_u_NonConvexFlowBlock_max(source1_electricityBus_1)_: --1 NonConvexFlowBlock_status_nominal(source1_electricityBus_1) -+1 flow(source1_electricityBus_1) -<= 0 - -c_u_NonConvexFlowBlock_max(source1_electricityBus_2)_: --1 NonConvexFlowBlock_status_nominal(source1_electricityBus_2) -+1 flow(source1_electricityBus_2) -<= 0 - -c_u_NonConvexFlowBlock_max(source1_electricityBus_3)_: --1 NonConvexFlowBlock_status_nominal(source1_electricityBus_3) -+1 flow(source1_electricityBus_3) -<= 0 - -c_u_NonConvexFlowBlock_max(source1_electricityBus_4)_: --1 NonConvexFlowBlock_status_nominal(source1_electricityBus_4) -+1 flow(source1_electricityBus_4) -<= 0 - -c_u_NonConvexFlowBlock_max(source1_electricityBus_5)_: --1 NonConvexFlowBlock_status_nominal(source1_electricityBus_5) -+1 flow(source1_electricityBus_5) -<= 0 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= NonConvexFlowBlock_status(source3_electricityBus_0) <= 1 - 0 <= NonConvexFlowBlock_status(source3_electricityBus_1) <= 1 - 0 <= NonConvexFlowBlock_status(source3_electricityBus_2) <= 1 - 0 <= NonConvexFlowBlock_status(source3_electricityBus_3) <= 1 - 0 <= NonConvexFlowBlock_status(source3_electricityBus_4) <= 1 - 0 <= NonConvexFlowBlock_status(source3_electricityBus_5) <= 1 - 0 <= NonConvexFlowBlock_status(source2_electricityBus_0) <= 1 - 0 <= NonConvexFlowBlock_status(source2_electricityBus_1) <= 1 - 0 <= NonConvexFlowBlock_status(source2_electricityBus_2) <= 1 - 0 <= NonConvexFlowBlock_status(source2_electricityBus_3) <= 1 - 0 <= NonConvexFlowBlock_status(source2_electricityBus_4) <= 1 - 0 <= NonConvexFlowBlock_status(source2_electricityBus_5) <= 1 - 0 <= NonConvexFlowBlock_status(source1_electricityBus_0) <= 1 - 0 <= NonConvexFlowBlock_status(source1_electricityBus_1) <= 1 - 0 <= NonConvexFlowBlock_status(source1_electricityBus_2) <= 1 - 0 <= NonConvexFlowBlock_status(source1_electricityBus_3) <= 1 - 0 <= NonConvexFlowBlock_status(source1_electricityBus_4) <= 1 - 0 <= NonConvexFlowBlock_status(source1_electricityBus_5) <= 1 - 1 <= emission_factor(0) <= 2 - 1 <= emission_factor(1) <= 2 - 1 <= emission_factor(2) <= 2 - 1 <= emission_factor(3) <= 2 - 1 <= emission_factor(4) <= 2 - 1 <= emission_factor(5) <= 2 - 0 <= NonConvexFlowBlock_status_nominal(source3_electricityBus_0) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source3_electricityBus_1) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source3_electricityBus_2) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source3_electricityBus_3) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source3_electricityBus_4) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source3_electricityBus_5) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source2_electricityBus_0) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source2_electricityBus_1) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source2_electricityBus_2) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source2_electricityBus_3) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source2_electricityBus_4) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source2_electricityBus_5) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source1_electricityBus_0) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source1_electricityBus_1) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source1_electricityBus_2) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source1_electricityBus_3) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source1_electricityBus_4) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(source1_electricityBus_5) <= +inf - 0 <= flow(source1_electricityBus_0) <= 100 - 0 <= flow(source1_electricityBus_1) <= 100 - 0 <= flow(source1_electricityBus_2) <= 100 - 0 <= flow(source1_electricityBus_3) <= 100 - 0 <= flow(source1_electricityBus_4) <= 100 - 0 <= flow(source1_electricityBus_5) <= 100 - 0 <= flow(source2_electricityBus_0) <= 100 - 0 <= flow(source2_electricityBus_1) <= 100 - 0 <= flow(source2_electricityBus_2) <= 100 - 0 <= flow(source2_electricityBus_3) <= 100 - 0 <= flow(source2_electricityBus_4) <= 100 - 0 <= flow(source2_electricityBus_5) <= 100 - 0 <= flow(source3_electricityBus_0) <= 100 - 0 <= flow(source3_electricityBus_1) <= 100 - 0 <= flow(source3_electricityBus_2) <= 100 - 0 <= flow(source3_electricityBus_3) <= 100 - 0 <= flow(source3_electricityBus_4) <= 100 - 0 <= flow(source3_electricityBus_5) <= 100 -binary - NonConvexFlowBlock_status(source3_electricityBus_0) - NonConvexFlowBlock_status(source3_electricityBus_1) - NonConvexFlowBlock_status(source3_electricityBus_2) - NonConvexFlowBlock_status(source3_electricityBus_3) - NonConvexFlowBlock_status(source3_electricityBus_4) - NonConvexFlowBlock_status(source3_electricityBus_5) - NonConvexFlowBlock_status(source2_electricityBus_0) - NonConvexFlowBlock_status(source2_electricityBus_1) - NonConvexFlowBlock_status(source2_electricityBus_2) - NonConvexFlowBlock_status(source2_electricityBus_3) - NonConvexFlowBlock_status(source2_electricityBus_4) - NonConvexFlowBlock_status(source2_electricityBus_5) - NonConvexFlowBlock_status(source1_electricityBus_0) - NonConvexFlowBlock_status(source1_electricityBus_1) - NonConvexFlowBlock_status(source1_electricityBus_2) - NonConvexFlowBlock_status(source1_electricityBus_3) - NonConvexFlowBlock_status(source1_electricityBus_4) - NonConvexFlowBlock_status(source1_electricityBus_5) -end diff --git a/tests/lp_files/flow_invest_with_offset.lp b/tests/lp_files/flow_invest_with_offset.lp deleted file mode 100644 index 78a06691f..000000000 --- a/tests/lp_files/flow_invest_with_offset.lp +++ /dev/null @@ -1,71 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+500 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) -+34 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) -+25 flow(source_nonconvex_invest_electricityBus_0) -+25 flow(source_nonconvex_invest_electricityBus_1) -+25 flow(source_nonconvex_invest_electricityBus_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(source_nonconvex_invest_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(source_nonconvex_invest_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(source_nonconvex_invest_electricityBus_2) -= 0 - -c_u_InvestmentFlowBlock_minimum_rule(source_nonconvex_invest_electricityBus_0)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) -+15 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(source_nonconvex_invest_electricityBus_0)_: -+1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) --20 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_e_InvestmentFlowBlock_total_rule(source_nonconvex_invest_electricityBus_0)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) -+1 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_0_0)_: -+1 flow(source_nonconvex_invest_electricityBus_0) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_0_1)_: -+1 flow(source_nonconvex_invest_electricityBus_1) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_0_2)_: -+1 flow(source_nonconvex_invest_electricityBus_2) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_full_load_time_max(source_nonconvex_invest_electricityBus)_: -+1 flow(source_nonconvex_invest_electricityBus_0) -+1 flow(source_nonconvex_invest_electricityBus_1) -+1 flow(source_nonconvex_invest_electricityBus_2) --2.3 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) <= 20 - 0 <= InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) <= 1 - 0 <= flow(source_nonconvex_invest_electricityBus_0) <= +inf - 0 <= flow(source_nonconvex_invest_electricityBus_1) <= +inf - 0 <= flow(source_nonconvex_invest_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) <= +inf -binary - InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) -end diff --git a/tests/lp_files/flow_invest_with_offset_multi_period.lp b/tests/lp_files/flow_invest_with_offset_multi_period.lp deleted file mode 100644 index fafc4b0e0..000000000 --- a/tests/lp_files/flow_invest_with_offset_multi_period.lp +++ /dev/null @@ -1,206 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+88.1844182057801 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) -+58.20563481102971 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_1) -+28.814670698529593 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_2) -+34 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) -+33.33333333333333 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_1) -+32.6797385620915 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_2) -+25 flow(source_nonconvex_invest_electricityBus_0) -+25 flow(source_nonconvex_invest_electricityBus_1) -+24.509803921568626 flow(source_nonconvex_invest_electricityBus_2) -+24.509803921568626 flow(source_nonconvex_invest_electricityBus_3) -+24.029219530949632 flow(source_nonconvex_invest_electricityBus_4) -+24.029219530949632 flow(source_nonconvex_invest_electricityBus_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(source_nonconvex_invest_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(source_nonconvex_invest_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(source_nonconvex_invest_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(source_nonconvex_invest_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(source_nonconvex_invest_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(source_nonconvex_invest_electricityBus_5) -= 0 - -c_u_InvestmentFlowBlock_minimum_rule(source_nonconvex_invest_electricityBus_0)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) -+15 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_minimum_rule(source_nonconvex_invest_electricityBus_1)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_1) -+15 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_minimum_rule(source_nonconvex_invest_electricityBus_2)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_2) -+15 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(source_nonconvex_invest_electricityBus_0)_: -+1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) --20 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(source_nonconvex_invest_electricityBus_1)_: -+1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_1) --20 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(source_nonconvex_invest_electricityBus_2)_: -+1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_2) --20 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_2) -<= 0 - -c_e_InvestmentFlowBlock_total_rule(source_nonconvex_invest_electricityBus_0)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) -+1 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(source_nonconvex_invest_electricityBus_1)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_1) --1 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -+1 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_1) -+1 InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(source_nonconvex_invest_electricityBus_2)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_2) --1 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_1) -+1 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_2) -+1 InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(source_nonconvex_invest_electricityBus_0)_: -+1 InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(source_nonconvex_invest_electricityBus_1)_: -+1 InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(source_nonconvex_invest_electricityBus_2)_: -+1 InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(source_nonconvex_invest_electricityBus_0)_: -+1 InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(source_nonconvex_invest_electricityBus_1)_: -+1 InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(source_nonconvex_invest_electricityBus_2)_: -+1 InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(source_nonconvex_invest_electricityBus_0)_: -+1 InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_0) --1 InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_0) --1 InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(source_nonconvex_invest_electricityBus_1)_: -+1 InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_1) --1 InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_1) --1 InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(source_nonconvex_invest_electricityBus_2)_: -+1 InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_2) --1 InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_2) --1 InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_2) -= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_0_0)_: -+1 flow(source_nonconvex_invest_electricityBus_0) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_0_1)_: -+1 flow(source_nonconvex_invest_electricityBus_1) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_1_2)_: -+1 flow(source_nonconvex_invest_electricityBus_2) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_1_3)_: -+1 flow(source_nonconvex_invest_electricityBus_3) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_2_4)_: -+1 flow(source_nonconvex_invest_electricityBus_4) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_2_5)_: -+1 flow(source_nonconvex_invest_electricityBus_5) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_full_load_time_max(source_nonconvex_invest_electricityBus)_: -+1 flow(source_nonconvex_invest_electricityBus_0) -+1 flow(source_nonconvex_invest_electricityBus_1) -+1 flow(source_nonconvex_invest_electricityBus_2) -+1 flow(source_nonconvex_invest_electricityBus_3) -+1 flow(source_nonconvex_invest_electricityBus_4) -+1 flow(source_nonconvex_invest_electricityBus_5) --2.3 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) --2.3 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_1) --2.3 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_2) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) <= 20 - 0 <= InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_1) <= 20 - 0 <= InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_2) <= 20 - 0 <= InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) <= 1 - 0 <= InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_1) <= 1 - 0 <= InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_2) <= 1 - 0 <= flow(source_nonconvex_invest_electricityBus_0) <= +inf - 0 <= flow(source_nonconvex_invest_electricityBus_1) <= +inf - 0 <= flow(source_nonconvex_invest_electricityBus_2) <= +inf - 0 <= flow(source_nonconvex_invest_electricityBus_3) <= +inf - 0 <= flow(source_nonconvex_invest_electricityBus_4) <= +inf - 0 <= flow(source_nonconvex_invest_electricityBus_5) <= +inf - 0 <= InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_2) <= +inf -binary - InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) - InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_1) - InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_2) -end diff --git a/tests/lp_files/flow_invest_with_offset_multi_period_remaining_value.lp b/tests/lp_files/flow_invest_with_offset_multi_period_remaining_value.lp deleted file mode 100644 index fafc4b0e0..000000000 --- a/tests/lp_files/flow_invest_with_offset_multi_period_remaining_value.lp +++ /dev/null @@ -1,206 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+88.1844182057801 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) -+58.20563481102971 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_1) -+28.814670698529593 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_2) -+34 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) -+33.33333333333333 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_1) -+32.6797385620915 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_2) -+25 flow(source_nonconvex_invest_electricityBus_0) -+25 flow(source_nonconvex_invest_electricityBus_1) -+24.509803921568626 flow(source_nonconvex_invest_electricityBus_2) -+24.509803921568626 flow(source_nonconvex_invest_electricityBus_3) -+24.029219530949632 flow(source_nonconvex_invest_electricityBus_4) -+24.029219530949632 flow(source_nonconvex_invest_electricityBus_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(source_nonconvex_invest_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(source_nonconvex_invest_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(source_nonconvex_invest_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(source_nonconvex_invest_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(source_nonconvex_invest_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(source_nonconvex_invest_electricityBus_5) -= 0 - -c_u_InvestmentFlowBlock_minimum_rule(source_nonconvex_invest_electricityBus_0)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) -+15 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_minimum_rule(source_nonconvex_invest_electricityBus_1)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_1) -+15 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_minimum_rule(source_nonconvex_invest_electricityBus_2)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_2) -+15 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(source_nonconvex_invest_electricityBus_0)_: -+1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) --20 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(source_nonconvex_invest_electricityBus_1)_: -+1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_1) --20 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(source_nonconvex_invest_electricityBus_2)_: -+1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_2) --20 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_2) -<= 0 - -c_e_InvestmentFlowBlock_total_rule(source_nonconvex_invest_electricityBus_0)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) -+1 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(source_nonconvex_invest_electricityBus_1)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_1) --1 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -+1 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_1) -+1 InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(source_nonconvex_invest_electricityBus_2)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_2) --1 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_1) -+1 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_2) -+1 InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(source_nonconvex_invest_electricityBus_0)_: -+1 InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(source_nonconvex_invest_electricityBus_1)_: -+1 InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(source_nonconvex_invest_electricityBus_2)_: -+1 InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(source_nonconvex_invest_electricityBus_0)_: -+1 InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(source_nonconvex_invest_electricityBus_1)_: -+1 InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(source_nonconvex_invest_electricityBus_2)_: -+1 InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(source_nonconvex_invest_electricityBus_0)_: -+1 InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_0) --1 InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_0) --1 InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(source_nonconvex_invest_electricityBus_1)_: -+1 InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_1) --1 InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_1) --1 InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(source_nonconvex_invest_electricityBus_2)_: -+1 InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_2) --1 InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_2) --1 InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_2) -= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_0_0)_: -+1 flow(source_nonconvex_invest_electricityBus_0) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_0_1)_: -+1 flow(source_nonconvex_invest_electricityBus_1) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_1_2)_: -+1 flow(source_nonconvex_invest_electricityBus_2) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_1_3)_: -+1 flow(source_nonconvex_invest_electricityBus_3) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_2_4)_: -+1 flow(source_nonconvex_invest_electricityBus_4) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_2_5)_: -+1 flow(source_nonconvex_invest_electricityBus_5) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_full_load_time_max(source_nonconvex_invest_electricityBus)_: -+1 flow(source_nonconvex_invest_electricityBus_0) -+1 flow(source_nonconvex_invest_electricityBus_1) -+1 flow(source_nonconvex_invest_electricityBus_2) -+1 flow(source_nonconvex_invest_electricityBus_3) -+1 flow(source_nonconvex_invest_electricityBus_4) -+1 flow(source_nonconvex_invest_electricityBus_5) --2.3 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) --2.3 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_1) --2.3 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_2) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) <= 20 - 0 <= InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_1) <= 20 - 0 <= InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_2) <= 20 - 0 <= InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) <= 1 - 0 <= InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_1) <= 1 - 0 <= InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_2) <= 1 - 0 <= flow(source_nonconvex_invest_electricityBus_0) <= +inf - 0 <= flow(source_nonconvex_invest_electricityBus_1) <= +inf - 0 <= flow(source_nonconvex_invest_electricityBus_2) <= +inf - 0 <= flow(source_nonconvex_invest_electricityBus_3) <= +inf - 0 <= flow(source_nonconvex_invest_electricityBus_4) <= +inf - 0 <= flow(source_nonconvex_invest_electricityBus_5) <= +inf - 0 <= InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_2) <= +inf -binary - InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) - InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_1) - InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_2) -end diff --git a/tests/lp_files/flow_invest_with_offset_no_minimum.lp b/tests/lp_files/flow_invest_with_offset_no_minimum.lp deleted file mode 100644 index dbc64c216..000000000 --- a/tests/lp_files/flow_invest_with_offset_no_minimum.lp +++ /dev/null @@ -1,70 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+500 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) -+34 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) -+25 flow(source_nonconvex_invest_electricityBus_0) -+25 flow(source_nonconvex_invest_electricityBus_1) -+25 flow(source_nonconvex_invest_electricityBus_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(source_nonconvex_invest_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(source_nonconvex_invest_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(source_nonconvex_invest_electricityBus_2) -= 0 - -c_u_InvestmentFlowBlock_minimum_rule(source_nonconvex_invest_electricityBus_0)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(source_nonconvex_invest_electricityBus_0)_: -+1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) --1234 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_e_InvestmentFlowBlock_total_rule(source_nonconvex_invest_electricityBus_0)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) -+1 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_0_0)_: -+1 flow(source_nonconvex_invest_electricityBus_0) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_0_1)_: -+1 flow(source_nonconvex_invest_electricityBus_1) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_0_2)_: -+1 flow(source_nonconvex_invest_electricityBus_2) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_full_load_time_max(source_nonconvex_invest_electricityBus)_: -+1 flow(source_nonconvex_invest_electricityBus_0) -+1 flow(source_nonconvex_invest_electricityBus_1) -+1 flow(source_nonconvex_invest_electricityBus_2) --2.3 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) <= 1234 - 0 <= InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) <= 1 - 0 <= flow(source_nonconvex_invest_electricityBus_0) <= +inf - 0 <= flow(source_nonconvex_invest_electricityBus_1) <= +inf - 0 <= flow(source_nonconvex_invest_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) <= +inf -binary - InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) -end diff --git a/tests/lp_files/flow_invest_with_offset_no_minimum_multi_period.lp b/tests/lp_files/flow_invest_with_offset_no_minimum_multi_period.lp deleted file mode 100644 index a589a982e..000000000 --- a/tests/lp_files/flow_invest_with_offset_no_minimum_multi_period.lp +++ /dev/null @@ -1,203 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+88.1844182057801 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) -+58.20563481102971 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_1) -+28.814670698529593 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_2) -+34 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) -+33.33333333333333 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_1) -+32.6797385620915 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_2) -+25 flow(source_nonconvex_invest_electricityBus_0) -+25 flow(source_nonconvex_invest_electricityBus_1) -+24.509803921568626 flow(source_nonconvex_invest_electricityBus_2) -+24.509803921568626 flow(source_nonconvex_invest_electricityBus_3) -+24.029219530949632 flow(source_nonconvex_invest_electricityBus_4) -+24.029219530949632 flow(source_nonconvex_invest_electricityBus_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(source_nonconvex_invest_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(source_nonconvex_invest_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(source_nonconvex_invest_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(source_nonconvex_invest_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(source_nonconvex_invest_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(source_nonconvex_invest_electricityBus_5) -= 0 - -c_u_InvestmentFlowBlock_minimum_rule(source_nonconvex_invest_electricityBus_0)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_minimum_rule(source_nonconvex_invest_electricityBus_1)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_minimum_rule(source_nonconvex_invest_electricityBus_2)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(source_nonconvex_invest_electricityBus_0)_: -+1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) --1234 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(source_nonconvex_invest_electricityBus_1)_: -+1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_1) --1234 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(source_nonconvex_invest_electricityBus_2)_: -+1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_2) --1234 InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_2) -<= 0 - -c_e_InvestmentFlowBlock_total_rule(source_nonconvex_invest_electricityBus_0)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) -+1 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(source_nonconvex_invest_electricityBus_1)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_1) --1 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -+1 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_1) -+1 InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(source_nonconvex_invest_electricityBus_2)_: --1 InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_2) --1 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_1) -+1 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_2) -+1 InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(source_nonconvex_invest_electricityBus_0)_: -+1 InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(source_nonconvex_invest_electricityBus_1)_: -+1 InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(source_nonconvex_invest_electricityBus_2)_: -+1 InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(source_nonconvex_invest_electricityBus_0)_: -+1 InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(source_nonconvex_invest_electricityBus_1)_: -+1 InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(source_nonconvex_invest_electricityBus_2)_: -+1 InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(source_nonconvex_invest_electricityBus_0)_: -+1 InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_0) --1 InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_0) --1 InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(source_nonconvex_invest_electricityBus_1)_: -+1 InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_1) --1 InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_1) --1 InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(source_nonconvex_invest_electricityBus_2)_: -+1 InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_2) --1 InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_2) --1 InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_2) -= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_0_0)_: -+1 flow(source_nonconvex_invest_electricityBus_0) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_0_1)_: -+1 flow(source_nonconvex_invest_electricityBus_1) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_1_2)_: -+1 flow(source_nonconvex_invest_electricityBus_2) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_1_3)_: -+1 flow(source_nonconvex_invest_electricityBus_3) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_2_4)_: -+1 flow(source_nonconvex_invest_electricityBus_4) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_max(source_nonconvex_invest_electricityBus_2_5)_: -+1 flow(source_nonconvex_invest_electricityBus_5) --0.8 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_full_load_time_max(source_nonconvex_invest_electricityBus)_: -+1 flow(source_nonconvex_invest_electricityBus_0) -+1 flow(source_nonconvex_invest_electricityBus_1) -+1 flow(source_nonconvex_invest_electricityBus_2) -+1 flow(source_nonconvex_invest_electricityBus_3) -+1 flow(source_nonconvex_invest_electricityBus_4) -+1 flow(source_nonconvex_invest_electricityBus_5) --2.3 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) --2.3 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_1) --2.3 InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_2) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_0) <= 1234 - 0 <= InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_1) <= 1234 - 0 <= InvestmentFlowBlock_invest(source_nonconvex_invest_electricityBus_2) <= 1234 - 0 <= InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) <= 1 - 0 <= InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_1) <= 1 - 0 <= InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_2) <= 1 - 0 <= flow(source_nonconvex_invest_electricityBus_0) <= +inf - 0 <= flow(source_nonconvex_invest_electricityBus_1) <= +inf - 0 <= flow(source_nonconvex_invest_electricityBus_2) <= +inf - 0 <= flow(source_nonconvex_invest_electricityBus_3) <= +inf - 0 <= flow(source_nonconvex_invest_electricityBus_4) <= +inf - 0 <= flow(source_nonconvex_invest_electricityBus_5) <= +inf - 0 <= InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_total(source_nonconvex_invest_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old(source_nonconvex_invest_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(source_nonconvex_invest_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(source_nonconvex_invest_electricityBus_2) <= +inf -binary - InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_0) - InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_1) - InvestmentFlowBlock_invest_status(source_nonconvex_invest_electricityBus_2) -end diff --git a/tests/lp_files/flow_invest_without_offset.lp b/tests/lp_files/flow_invest_without_offset.lp deleted file mode 100644 index 7f02b3885..000000000 --- a/tests/lp_files/flow_invest_without_offset.lp +++ /dev/null @@ -1,70 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+500 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_0) -+25 flow(electricityBus_sink_nonconvex_invest_0) -+25 flow(electricityBus_sink_nonconvex_invest_1) -+25 flow(electricityBus_sink_nonconvex_invest_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(electricityBus_sink_nonconvex_invest_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(electricityBus_sink_nonconvex_invest_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(electricityBus_sink_nonconvex_invest_2) -= 0 - -c_u_InvestmentFlowBlock_minimum_rule(electricityBus_sink_nonconvex_invest_0)_: --1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_0) -+15 InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_0) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(electricityBus_sink_nonconvex_invest_0)_: -+1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_0) --172 InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_0) -<= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_sink_nonconvex_invest_0)_: --1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_0) -+1 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_0) -= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_sink_nonconvex_invest_0_0)_: -+1 flow(electricityBus_sink_nonconvex_invest_0) --0.8 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_sink_nonconvex_invest_0_1)_: -+1 flow(electricityBus_sink_nonconvex_invest_1) --0.8 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_sink_nonconvex_invest_0_2)_: -+1 flow(electricityBus_sink_nonconvex_invest_2) --0.8 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_0) -<= 0 - -c_u_InvestmentFlowBlock_full_load_time_max(electricityBus_sink_nonconvex_invest)_: -+1 flow(electricityBus_sink_nonconvex_invest_0) -+1 flow(electricityBus_sink_nonconvex_invest_1) -+1 flow(electricityBus_sink_nonconvex_invest_2) --2.3 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_0) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_0) <= 172 - 0 <= flow(electricityBus_sink_nonconvex_invest_0) <= +inf - 0 <= flow(electricityBus_sink_nonconvex_invest_1) <= +inf - 0 <= flow(electricityBus_sink_nonconvex_invest_2) <= +inf - 0 <= InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_0) <= 1 - 0 <= InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_0) <= +inf -binary - InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_0) -end diff --git a/tests/lp_files/flow_invest_without_offset_multi_period.lp b/tests/lp_files/flow_invest_without_offset_multi_period.lp deleted file mode 100644 index 527720e56..000000000 --- a/tests/lp_files/flow_invest_without_offset_multi_period.lp +++ /dev/null @@ -1,203 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+88.1844182057801 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_0) -+58.20563481102971 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_1) -+28.814670698529593 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_2) -+25 flow(electricityBus_sink_nonconvex_invest_0) -+25 flow(electricityBus_sink_nonconvex_invest_1) -+24.509803921568626 flow(electricityBus_sink_nonconvex_invest_2) -+24.509803921568626 flow(electricityBus_sink_nonconvex_invest_3) -+24.029219530949632 flow(electricityBus_sink_nonconvex_invest_4) -+24.029219530949632 flow(electricityBus_sink_nonconvex_invest_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(electricityBus_sink_nonconvex_invest_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(electricityBus_sink_nonconvex_invest_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(electricityBus_sink_nonconvex_invest_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(electricityBus_sink_nonconvex_invest_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(electricityBus_sink_nonconvex_invest_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(electricityBus_sink_nonconvex_invest_5) -= 0 - -c_u_InvestmentFlowBlock_minimum_rule(electricityBus_sink_nonconvex_invest_0)_: --1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_0) -+15 InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_0) -<= 0 - -c_u_InvestmentFlowBlock_minimum_rule(electricityBus_sink_nonconvex_invest_1)_: --1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_1) -+15 InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_1) -<= 0 - -c_u_InvestmentFlowBlock_minimum_rule(electricityBus_sink_nonconvex_invest_2)_: --1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_2) -+15 InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_2) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(electricityBus_sink_nonconvex_invest_0)_: -+1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_0) --172 InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_0) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(electricityBus_sink_nonconvex_invest_1)_: -+1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_1) --172 InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_1) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(electricityBus_sink_nonconvex_invest_2)_: -+1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_2) --172 InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_2) -<= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_sink_nonconvex_invest_0)_: --1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_0) -+1 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_sink_nonconvex_invest_1)_: --1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_1) --1 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_0) -+1 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_1) -+1 InvestmentFlowBlock_old(electricityBus_sink_nonconvex_invest_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_sink_nonconvex_invest_2)_: --1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_2) --1 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_1) -+1 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_2) -+1 InvestmentFlowBlock_old(electricityBus_sink_nonconvex_invest_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_sink_nonconvex_invest_0)_: -+1 InvestmentFlowBlock_old_end(electricityBus_sink_nonconvex_invest_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_sink_nonconvex_invest_1)_: -+1 InvestmentFlowBlock_old_end(electricityBus_sink_nonconvex_invest_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_sink_nonconvex_invest_2)_: -+1 InvestmentFlowBlock_old_end(electricityBus_sink_nonconvex_invest_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_sink_nonconvex_invest_0)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_sink_nonconvex_invest_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_sink_nonconvex_invest_1)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_sink_nonconvex_invest_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_sink_nonconvex_invest_2)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_sink_nonconvex_invest_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_sink_nonconvex_invest_0)_: -+1 InvestmentFlowBlock_old(electricityBus_sink_nonconvex_invest_0) --1 InvestmentFlowBlock_old_end(electricityBus_sink_nonconvex_invest_0) --1 InvestmentFlowBlock_old_exo(electricityBus_sink_nonconvex_invest_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_sink_nonconvex_invest_1)_: -+1 InvestmentFlowBlock_old(electricityBus_sink_nonconvex_invest_1) --1 InvestmentFlowBlock_old_end(electricityBus_sink_nonconvex_invest_1) --1 InvestmentFlowBlock_old_exo(electricityBus_sink_nonconvex_invest_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_sink_nonconvex_invest_2)_: -+1 InvestmentFlowBlock_old(electricityBus_sink_nonconvex_invest_2) --1 InvestmentFlowBlock_old_end(electricityBus_sink_nonconvex_invest_2) --1 InvestmentFlowBlock_old_exo(electricityBus_sink_nonconvex_invest_2) -= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_sink_nonconvex_invest_0_0)_: -+1 flow(electricityBus_sink_nonconvex_invest_0) --0.8 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_sink_nonconvex_invest_0_1)_: -+1 flow(electricityBus_sink_nonconvex_invest_1) --0.8 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_sink_nonconvex_invest_1_2)_: -+1 flow(electricityBus_sink_nonconvex_invest_2) --0.8 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_sink_nonconvex_invest_1_3)_: -+1 flow(electricityBus_sink_nonconvex_invest_3) --0.8 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_sink_nonconvex_invest_2_4)_: -+1 flow(electricityBus_sink_nonconvex_invest_4) --0.8 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_2) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_sink_nonconvex_invest_2_5)_: -+1 flow(electricityBus_sink_nonconvex_invest_5) --0.8 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_2) -<= 0 - -c_u_InvestmentFlowBlock_full_load_time_max(electricityBus_sink_nonconvex_invest)_: -+1 flow(electricityBus_sink_nonconvex_invest_0) -+1 flow(electricityBus_sink_nonconvex_invest_1) -+1 flow(electricityBus_sink_nonconvex_invest_2) -+1 flow(electricityBus_sink_nonconvex_invest_3) -+1 flow(electricityBus_sink_nonconvex_invest_4) -+1 flow(electricityBus_sink_nonconvex_invest_5) --2.3 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_0) --2.3 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_1) --2.3 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_2) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_0) <= 172 - 0 <= InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_1) <= 172 - 0 <= InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_2) <= 172 - 0 <= flow(electricityBus_sink_nonconvex_invest_0) <= +inf - 0 <= flow(electricityBus_sink_nonconvex_invest_1) <= +inf - 0 <= flow(electricityBus_sink_nonconvex_invest_2) <= +inf - 0 <= flow(electricityBus_sink_nonconvex_invest_3) <= +inf - 0 <= flow(electricityBus_sink_nonconvex_invest_4) <= +inf - 0 <= flow(electricityBus_sink_nonconvex_invest_5) <= +inf - 0 <= InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_0) <= 1 - 0 <= InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_1) <= 1 - 0 <= InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_2) <= 1 - 0 <= InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_0) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_1) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_2) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_sink_nonconvex_invest_0) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_sink_nonconvex_invest_1) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_sink_nonconvex_invest_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_sink_nonconvex_invest_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_sink_nonconvex_invest_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_sink_nonconvex_invest_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_sink_nonconvex_invest_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_sink_nonconvex_invest_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_sink_nonconvex_invest_2) <= +inf -binary - InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_0) - InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_1) - InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_2) -end diff --git a/tests/lp_files/flow_invest_without_offset_multi_period_remaining_value.lp b/tests/lp_files/flow_invest_without_offset_multi_period_remaining_value.lp deleted file mode 100644 index 527720e56..000000000 --- a/tests/lp_files/flow_invest_without_offset_multi_period_remaining_value.lp +++ /dev/null @@ -1,203 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+88.1844182057801 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_0) -+58.20563481102971 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_1) -+28.814670698529593 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_2) -+25 flow(electricityBus_sink_nonconvex_invest_0) -+25 flow(electricityBus_sink_nonconvex_invest_1) -+24.509803921568626 flow(electricityBus_sink_nonconvex_invest_2) -+24.509803921568626 flow(electricityBus_sink_nonconvex_invest_3) -+24.029219530949632 flow(electricityBus_sink_nonconvex_invest_4) -+24.029219530949632 flow(electricityBus_sink_nonconvex_invest_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(electricityBus_sink_nonconvex_invest_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(electricityBus_sink_nonconvex_invest_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(electricityBus_sink_nonconvex_invest_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(electricityBus_sink_nonconvex_invest_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(electricityBus_sink_nonconvex_invest_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(electricityBus_sink_nonconvex_invest_5) -= 0 - -c_u_InvestmentFlowBlock_minimum_rule(electricityBus_sink_nonconvex_invest_0)_: --1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_0) -+15 InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_0) -<= 0 - -c_u_InvestmentFlowBlock_minimum_rule(electricityBus_sink_nonconvex_invest_1)_: --1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_1) -+15 InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_1) -<= 0 - -c_u_InvestmentFlowBlock_minimum_rule(electricityBus_sink_nonconvex_invest_2)_: --1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_2) -+15 InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_2) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(electricityBus_sink_nonconvex_invest_0)_: -+1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_0) --172 InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_0) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(electricityBus_sink_nonconvex_invest_1)_: -+1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_1) --172 InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_1) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(electricityBus_sink_nonconvex_invest_2)_: -+1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_2) --172 InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_2) -<= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_sink_nonconvex_invest_0)_: --1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_0) -+1 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_sink_nonconvex_invest_1)_: --1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_1) --1 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_0) -+1 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_1) -+1 InvestmentFlowBlock_old(electricityBus_sink_nonconvex_invest_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_sink_nonconvex_invest_2)_: --1 InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_2) --1 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_1) -+1 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_2) -+1 InvestmentFlowBlock_old(electricityBus_sink_nonconvex_invest_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_sink_nonconvex_invest_0)_: -+1 InvestmentFlowBlock_old_end(electricityBus_sink_nonconvex_invest_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_sink_nonconvex_invest_1)_: -+1 InvestmentFlowBlock_old_end(electricityBus_sink_nonconvex_invest_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_sink_nonconvex_invest_2)_: -+1 InvestmentFlowBlock_old_end(electricityBus_sink_nonconvex_invest_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_sink_nonconvex_invest_0)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_sink_nonconvex_invest_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_sink_nonconvex_invest_1)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_sink_nonconvex_invest_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_sink_nonconvex_invest_2)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_sink_nonconvex_invest_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_sink_nonconvex_invest_0)_: -+1 InvestmentFlowBlock_old(electricityBus_sink_nonconvex_invest_0) --1 InvestmentFlowBlock_old_end(electricityBus_sink_nonconvex_invest_0) --1 InvestmentFlowBlock_old_exo(electricityBus_sink_nonconvex_invest_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_sink_nonconvex_invest_1)_: -+1 InvestmentFlowBlock_old(electricityBus_sink_nonconvex_invest_1) --1 InvestmentFlowBlock_old_end(electricityBus_sink_nonconvex_invest_1) --1 InvestmentFlowBlock_old_exo(electricityBus_sink_nonconvex_invest_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_sink_nonconvex_invest_2)_: -+1 InvestmentFlowBlock_old(electricityBus_sink_nonconvex_invest_2) --1 InvestmentFlowBlock_old_end(electricityBus_sink_nonconvex_invest_2) --1 InvestmentFlowBlock_old_exo(electricityBus_sink_nonconvex_invest_2) -= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_sink_nonconvex_invest_0_0)_: -+1 flow(electricityBus_sink_nonconvex_invest_0) --0.8 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_sink_nonconvex_invest_0_1)_: -+1 flow(electricityBus_sink_nonconvex_invest_1) --0.8 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_sink_nonconvex_invest_1_2)_: -+1 flow(electricityBus_sink_nonconvex_invest_2) --0.8 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_sink_nonconvex_invest_1_3)_: -+1 flow(electricityBus_sink_nonconvex_invest_3) --0.8 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_sink_nonconvex_invest_2_4)_: -+1 flow(electricityBus_sink_nonconvex_invest_4) --0.8 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_2) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_sink_nonconvex_invest_2_5)_: -+1 flow(electricityBus_sink_nonconvex_invest_5) --0.8 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_2) -<= 0 - -c_u_InvestmentFlowBlock_full_load_time_max(electricityBus_sink_nonconvex_invest)_: -+1 flow(electricityBus_sink_nonconvex_invest_0) -+1 flow(electricityBus_sink_nonconvex_invest_1) -+1 flow(electricityBus_sink_nonconvex_invest_2) -+1 flow(electricityBus_sink_nonconvex_invest_3) -+1 flow(electricityBus_sink_nonconvex_invest_4) -+1 flow(electricityBus_sink_nonconvex_invest_5) --2.3 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_0) --2.3 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_1) --2.3 InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_2) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_0) <= 172 - 0 <= InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_1) <= 172 - 0 <= InvestmentFlowBlock_invest(electricityBus_sink_nonconvex_invest_2) <= 172 - 0 <= flow(electricityBus_sink_nonconvex_invest_0) <= +inf - 0 <= flow(electricityBus_sink_nonconvex_invest_1) <= +inf - 0 <= flow(electricityBus_sink_nonconvex_invest_2) <= +inf - 0 <= flow(electricityBus_sink_nonconvex_invest_3) <= +inf - 0 <= flow(electricityBus_sink_nonconvex_invest_4) <= +inf - 0 <= flow(electricityBus_sink_nonconvex_invest_5) <= +inf - 0 <= InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_0) <= 1 - 0 <= InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_1) <= 1 - 0 <= InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_2) <= 1 - 0 <= InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_0) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_1) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_sink_nonconvex_invest_2) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_sink_nonconvex_invest_0) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_sink_nonconvex_invest_1) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_sink_nonconvex_invest_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_sink_nonconvex_invest_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_sink_nonconvex_invest_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_sink_nonconvex_invest_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_sink_nonconvex_invest_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_sink_nonconvex_invest_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_sink_nonconvex_invest_2) <= +inf -binary - InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_0) - InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_1) - InvestmentFlowBlock_invest_status(electricityBus_sink_nonconvex_invest_2) -end diff --git a/tests/lp_files/flow_nonconvex_invest_bounded_converter.lp b/tests/lp_files/flow_nonconvex_invest_bounded_converter.lp deleted file mode 100644 index c1d0128ae..000000000 --- a/tests/lp_files/flow_nonconvex_invest_bounded_converter.lp +++ /dev/null @@ -1,155 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+25 flow(converter_nonconvex_invest_electricityBus_0) -+25 flow(converter_nonconvex_invest_electricityBus_1) -+25 flow(converter_nonconvex_invest_electricityBus_2) -+500 InvestNonConvexFlowBlock_invest(converter_nonconvex_invest_electricityBus_0) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(converter_nonconvex_invest_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(converter_nonconvex_invest_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(converter_nonconvex_invest_electricityBus_2) -= 0 - -c_e_BusBlock_balance(fuelBus_0)_: -+1 flow(fuelBus_converter_nonconvex_invest_0) -= 0 - -c_e_BusBlock_balance(fuelBus_1)_: -+1 flow(fuelBus_converter_nonconvex_invest_1) -= 0 - -c_e_BusBlock_balance(fuelBus_2)_: -+1 flow(fuelBus_converter_nonconvex_invest_2) -= 0 - -c_e_ConverterBlock_relation(converter_nonconvex_invest_fuelBus_electricityBus_0)_: -+0.5 flow(fuelBus_converter_nonconvex_invest_0) --1 flow(converter_nonconvex_invest_electricityBus_0) -= 0 - -c_e_ConverterBlock_relation(converter_nonconvex_invest_fuelBus_electricityBus_1)_: -+0.5 flow(fuelBus_converter_nonconvex_invest_1) --1 flow(converter_nonconvex_invest_electricityBus_1) -= 0 - -c_e_ConverterBlock_relation(converter_nonconvex_invest_fuelBus_electricityBus_2)_: -+0.5 flow(fuelBus_converter_nonconvex_invest_2) --1 flow(converter_nonconvex_invest_electricityBus_2) -= 0 - -c_l_InvestNonConvexFlowBlock_minimum_investment(converter_nonconvex_invest_electricityBus_0)_: -+1 InvestNonConvexFlowBlock_invest(converter_nonconvex_invest_electricityBus_0) ->= 0 - -c_u_InvestNonConvexFlowBlock_maximum_investment(converter_nonconvex_invest_electricityBus_0)_: -+1 InvestNonConvexFlowBlock_invest(converter_nonconvex_invest_electricityBus_0) -<= 1234 - -c_u_InvestNonConvexFlowBlock_min(converter_nonconvex_invest_electricityBus_0)_: --1 flow(converter_nonconvex_invest_electricityBus_0) -+0.25 InvestNonConvexFlowBlock_status_nominal(converter_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestNonConvexFlowBlock_min(converter_nonconvex_invest_electricityBus_1)_: --1 flow(converter_nonconvex_invest_electricityBus_1) -+0.25 InvestNonConvexFlowBlock_status_nominal(converter_nonconvex_invest_electricityBus_1) -<= 0 - -c_u_InvestNonConvexFlowBlock_min(converter_nonconvex_invest_electricityBus_2)_: --1 flow(converter_nonconvex_invest_electricityBus_2) -+0.25 InvestNonConvexFlowBlock_status_nominal(converter_nonconvex_invest_electricityBus_2) -<= 0 - -c_u_InvestNonConvexFlowBlock_max(converter_nonconvex_invest_electricityBus_0)_: -+1 flow(converter_nonconvex_invest_electricityBus_0) --0.5 InvestNonConvexFlowBlock_status_nominal(converter_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestNonConvexFlowBlock_max(converter_nonconvex_invest_electricityBus_1)_: -+1 flow(converter_nonconvex_invest_electricityBus_1) --0.5 InvestNonConvexFlowBlock_status_nominal(converter_nonconvex_invest_electricityBus_1) -<= 0 - -c_u_InvestNonConvexFlowBlock_max(converter_nonconvex_invest_electricityBus_2)_: -+1 flow(converter_nonconvex_invest_electricityBus_2) --0.5 InvestNonConvexFlowBlock_status_nominal(converter_nonconvex_invest_electricityBus_2) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_one(converter_nonconvex_invest_electricityBus_0_0)_: -+1 InvestNonConvexFlowBlock_status_nominal(converter_nonconvex_invest_electricityBus_0) --1234 InvestNonConvexFlowBlock_status(converter_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_one(converter_nonconvex_invest_electricityBus_0_1)_: -+1 InvestNonConvexFlowBlock_status_nominal(converter_nonconvex_invest_electricityBus_1) --1234 InvestNonConvexFlowBlock_status(converter_nonconvex_invest_electricityBus_1) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_one(converter_nonconvex_invest_electricityBus_0_2)_: -+1 InvestNonConvexFlowBlock_status_nominal(converter_nonconvex_invest_electricityBus_2) --1234 InvestNonConvexFlowBlock_status(converter_nonconvex_invest_electricityBus_2) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_two(converter_nonconvex_invest_electricityBus_0_0)_: --1 InvestNonConvexFlowBlock_invest(converter_nonconvex_invest_electricityBus_0) -+1 InvestNonConvexFlowBlock_status_nominal(converter_nonconvex_invest_electricityBus_0) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_two(converter_nonconvex_invest_electricityBus_0_1)_: --1 InvestNonConvexFlowBlock_invest(converter_nonconvex_invest_electricityBus_0) -+1 InvestNonConvexFlowBlock_status_nominal(converter_nonconvex_invest_electricityBus_1) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_two(converter_nonconvex_invest_electricityBus_0_2)_: --1 InvestNonConvexFlowBlock_invest(converter_nonconvex_invest_electricityBus_0) -+1 InvestNonConvexFlowBlock_status_nominal(converter_nonconvex_invest_electricityBus_2) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_three(converter_nonconvex_invest_electricityBus_0_0)_: -+1 InvestNonConvexFlowBlock_invest(converter_nonconvex_invest_electricityBus_0) --1 InvestNonConvexFlowBlock_status_nominal(converter_nonconvex_invest_electricityBus_0) -+1234 InvestNonConvexFlowBlock_status(converter_nonconvex_invest_electricityBus_0) -<= 1234 - -c_u_InvestNonConvexFlowBlock_invest_nc_three(converter_nonconvex_invest_electricityBus_0_1)_: -+1 InvestNonConvexFlowBlock_invest(converter_nonconvex_invest_electricityBus_0) --1 InvestNonConvexFlowBlock_status_nominal(converter_nonconvex_invest_electricityBus_1) -+1234 InvestNonConvexFlowBlock_status(converter_nonconvex_invest_electricityBus_1) -<= 1234 - -c_u_InvestNonConvexFlowBlock_invest_nc_three(converter_nonconvex_invest_electricityBus_0_2)_: -+1 InvestNonConvexFlowBlock_invest(converter_nonconvex_invest_electricityBus_0) --1 InvestNonConvexFlowBlock_status_nominal(converter_nonconvex_invest_electricityBus_2) -+1234 InvestNonConvexFlowBlock_status(converter_nonconvex_invest_electricityBus_2) -<= 1234 - -bounds - 0 <= flow(fuelBus_converter_nonconvex_invest_0) <= +inf - 0 <= flow(fuelBus_converter_nonconvex_invest_1) <= +inf - 0 <= flow(fuelBus_converter_nonconvex_invest_2) <= +inf - 0 <= flow(converter_nonconvex_invest_electricityBus_0) <= +inf - 0 <= flow(converter_nonconvex_invest_electricityBus_1) <= +inf - 0 <= flow(converter_nonconvex_invest_electricityBus_2) <= +inf - 0 <= InvestNonConvexFlowBlock_invest(converter_nonconvex_invest_electricityBus_0) <= 1234 - 0 <= InvestNonConvexFlowBlock_status_nominal(converter_nonconvex_invest_electricityBus_0) <= +inf - 0 <= InvestNonConvexFlowBlock_status_nominal(converter_nonconvex_invest_electricityBus_1) <= +inf - 0 <= InvestNonConvexFlowBlock_status_nominal(converter_nonconvex_invest_electricityBus_2) <= +inf - 0 <= InvestNonConvexFlowBlock_status(converter_nonconvex_invest_electricityBus_0) <= 1 - 0 <= InvestNonConvexFlowBlock_status(converter_nonconvex_invest_electricityBus_1) <= 1 - 0 <= InvestNonConvexFlowBlock_status(converter_nonconvex_invest_electricityBus_2) <= 1 -binary - InvestNonConvexFlowBlock_status(converter_nonconvex_invest_electricityBus_0) - InvestNonConvexFlowBlock_status(converter_nonconvex_invest_electricityBus_1) - InvestNonConvexFlowBlock_status(converter_nonconvex_invest_electricityBus_2) -end diff --git a/tests/lp_files/flow_reaching_lifetime.lp b/tests/lp_files/flow_reaching_lifetime.lp deleted file mode 100644 index 343cf5573..000000000 --- a/tests/lp_files/flow_reaching_lifetime.lp +++ /dev/null @@ -1,53 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+25 flow(electricityBus_excess_0) -+25 flow(electricityBus_excess_1) -+24.509803921568626 flow(electricityBus_excess_2) -+24.509803921568626 flow(electricityBus_excess_3) -+24.029219530949632 flow(electricityBus_excess_4) -+24.029219530949632 flow(electricityBus_excess_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(electricityBus_excess_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(electricityBus_excess_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(electricityBus_excess_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(electricityBus_excess_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(electricityBus_excess_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(electricityBus_excess_5) -= 0 - -c_e_SimpleFlowBlock_lifetime_output(electricityBus_excess_2_4)_: -+1 flow(electricityBus_excess_4) -= 0 - -c_e_SimpleFlowBlock_lifetime_output(electricityBus_excess_2_5)_: -+1 flow(electricityBus_excess_5) -= 0 - -bounds - 0 <= flow(electricityBus_excess_0) <= 8.0 - 0 <= flow(electricityBus_excess_1) <= 8.0 - 0 <= flow(electricityBus_excess_2) <= 8.0 - 0 <= flow(electricityBus_excess_3) <= 8.0 - 0 <= flow(electricityBus_excess_4) <= 8.0 - 0 <= flow(electricityBus_excess_5) <= 8.0 -end diff --git a/tests/lp_files/flow_reaching_lifetime_initial_age.lp b/tests/lp_files/flow_reaching_lifetime_initial_age.lp deleted file mode 100644 index e1f5c8da4..000000000 --- a/tests/lp_files/flow_reaching_lifetime_initial_age.lp +++ /dev/null @@ -1,61 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+25 flow(electricityBus_excess_0) -+25 flow(electricityBus_excess_1) -+24.509803921568626 flow(electricityBus_excess_2) -+24.509803921568626 flow(electricityBus_excess_3) -+24.029219530949632 flow(electricityBus_excess_4) -+24.029219530949632 flow(electricityBus_excess_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(electricityBus_excess_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(electricityBus_excess_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(electricityBus_excess_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(electricityBus_excess_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(electricityBus_excess_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(electricityBus_excess_5) -= 0 - -c_e_SimpleFlowBlock_lifetime_age_output(electricityBus_excess_1_2)_: -+1 flow(electricityBus_excess_2) -= 0 - -c_e_SimpleFlowBlock_lifetime_age_output(electricityBus_excess_1_3)_: -+1 flow(electricityBus_excess_3) -= 0 - -c_e_SimpleFlowBlock_lifetime_age_output(electricityBus_excess_2_4)_: -+1 flow(electricityBus_excess_4) -= 0 - -c_e_SimpleFlowBlock_lifetime_age_output(electricityBus_excess_2_5)_: -+1 flow(electricityBus_excess_5) -= 0 - -bounds - 0 <= flow(electricityBus_excess_0) <= 8.0 - 0 <= flow(electricityBus_excess_1) <= 8.0 - 0 <= flow(electricityBus_excess_2) <= 8.0 - 0 <= flow(electricityBus_excess_3) <= 8.0 - 0 <= flow(electricityBus_excess_4) <= 8.0 - 0 <= flow(electricityBus_excess_5) <= 8.0 -end diff --git a/tests/lp_files/generic_invest_limit.lp b/tests/lp_files/generic_invest_limit.lp deleted file mode 100644 index 0a0387c16..000000000 --- a/tests/lp_files/generic_invest_limit.lp +++ /dev/null @@ -1,110 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+50 InvestmentFlowBlock_invest(source_0_bus_1_0) -+75 InvestmentFlowBlock_invest(source_2_bus_1_0) -+100 InvestmentFlowBlock_invest(source_1_bus_1_0) - -s.t. - -c_u_invest_limit_space_constraint_: -+4 InvestmentFlowBlock_invest(source_0_bus_1_0) -+1 InvestmentFlowBlock_invest(source_1_bus_1_0) -<= 20 - -c_e_BusBlock_balance(bus_1_0)_: -+1 flow(source_0_bus_1_0) -+1 flow(source_1_bus_1_0) -+1 flow(source_2_bus_1_0) -= 0 - -c_e_BusBlock_balance(bus_1_1)_: -+1 flow(source_0_bus_1_1) -+1 flow(source_1_bus_1_1) -+1 flow(source_2_bus_1_1) -= 0 - -c_e_BusBlock_balance(bus_1_2)_: -+1 flow(source_0_bus_1_2) -+1 flow(source_1_bus_1_2) -+1 flow(source_2_bus_1_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(source_0_bus_1_0)_: --1 InvestmentFlowBlock_invest(source_0_bus_1_0) -+1 InvestmentFlowBlock_total(source_0_bus_1_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(source_2_bus_1_0)_: --1 InvestmentFlowBlock_invest(source_2_bus_1_0) -+1 InvestmentFlowBlock_total(source_2_bus_1_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(source_1_bus_1_0)_: --1 InvestmentFlowBlock_invest(source_1_bus_1_0) -+1 InvestmentFlowBlock_total(source_1_bus_1_0) -= 0 - -c_u_InvestmentFlowBlock_max(source_0_bus_1_0_0)_: -+1 flow(source_0_bus_1_0) --1 InvestmentFlowBlock_total(source_0_bus_1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(source_0_bus_1_0_1)_: -+1 flow(source_0_bus_1_1) --1 InvestmentFlowBlock_total(source_0_bus_1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(source_0_bus_1_0_2)_: -+1 flow(source_0_bus_1_2) --1 InvestmentFlowBlock_total(source_0_bus_1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(source_2_bus_1_0_0)_: -+1 flow(source_2_bus_1_0) --1 InvestmentFlowBlock_total(source_2_bus_1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(source_2_bus_1_0_1)_: -+1 flow(source_2_bus_1_1) --1 InvestmentFlowBlock_total(source_2_bus_1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(source_2_bus_1_0_2)_: -+1 flow(source_2_bus_1_2) --1 InvestmentFlowBlock_total(source_2_bus_1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(source_1_bus_1_0_0)_: -+1 flow(source_1_bus_1_0) --1 InvestmentFlowBlock_total(source_1_bus_1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(source_1_bus_1_0_1)_: -+1 flow(source_1_bus_1_1) --1 InvestmentFlowBlock_total(source_1_bus_1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(source_1_bus_1_0_2)_: -+1 flow(source_1_bus_1_2) --1 InvestmentFlowBlock_total(source_1_bus_1_0) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(source_0_bus_1_0) <= +inf - 0 <= InvestmentFlowBlock_invest(source_2_bus_1_0) <= +inf - 0 <= InvestmentFlowBlock_invest(source_1_bus_1_0) <= +inf - 0 <= flow(source_0_bus_1_0) <= +inf - 0 <= flow(source_0_bus_1_1) <= +inf - 0 <= flow(source_0_bus_1_2) <= +inf - 0 <= flow(source_1_bus_1_0) <= +inf - 0 <= flow(source_1_bus_1_1) <= +inf - 0 <= flow(source_1_bus_1_2) <= +inf - 0 <= flow(source_2_bus_1_0) <= +inf - 0 <= flow(source_2_bus_1_1) <= +inf - 0 <= flow(source_2_bus_1_2) <= +inf - 0 <= InvestmentFlowBlock_total(source_0_bus_1_0) <= +inf - 0 <= InvestmentFlowBlock_total(source_2_bus_1_0) <= +inf - 0 <= InvestmentFlowBlock_total(source_1_bus_1_0) <= +inf -end diff --git a/tests/lp_files/inactivity_costs.lp b/tests/lp_files/inactivity_costs.lp deleted file mode 100644 index 13af5cc7b..000000000 --- a/tests/lp_files/inactivity_costs.lp +++ /dev/null @@ -1,87 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+6 ONE_VAR_CONSTANT -+10 flow(cheap_plant_inactivity_costs_Bus_C_0) -+10 flow(cheap_plant_inactivity_costs_Bus_C_1) -+10 flow(cheap_plant_inactivity_costs_Bus_C_2) --2 NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_0) --2 NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_1) --2 NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_2) - -s.t. - -c_e_BusBlock_balance(Bus_C_0)_: -+1 flow(cheap_plant_inactivity_costs_Bus_C_0) -= 0 - -c_e_BusBlock_balance(Bus_C_1)_: -+1 flow(cheap_plant_inactivity_costs_Bus_C_1) -= 0 - -c_e_BusBlock_balance(Bus_C_2)_: -+1 flow(cheap_plant_inactivity_costs_Bus_C_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_inactivity_costs_Bus_C_0)_: --10 NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_0) -+1 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_0) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_inactivity_costs_Bus_C_1)_: --10 NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_1) -+1 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_1) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_inactivity_costs_Bus_C_2)_: --10 NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_2) -+1 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_2) -= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_inactivity_costs_Bus_C_0)_: --1 flow(cheap_plant_inactivity_costs_Bus_C_0) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_0) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_inactivity_costs_Bus_C_1)_: --1 flow(cheap_plant_inactivity_costs_Bus_C_1) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_1) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_inactivity_costs_Bus_C_2)_: --1 flow(cheap_plant_inactivity_costs_Bus_C_2) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_2) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_inactivity_costs_Bus_C_0)_: -+1 flow(cheap_plant_inactivity_costs_Bus_C_0) --1 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_0) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_inactivity_costs_Bus_C_1)_: -+1 flow(cheap_plant_inactivity_costs_Bus_C_1) --1 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_1) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_inactivity_costs_Bus_C_2)_: -+1 flow(cheap_plant_inactivity_costs_Bus_C_2) --1 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_2) -<= 0 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= flow(cheap_plant_inactivity_costs_Bus_C_0) <= 10.0 - 0 <= flow(cheap_plant_inactivity_costs_Bus_C_1) <= 10.0 - 0 <= flow(cheap_plant_inactivity_costs_Bus_C_2) <= 10.0 - 0 <= NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_0) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_1) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_2) <= 1 - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_0) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_1) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_2) <= +inf -binary - NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_0) - NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_1) - NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_2) -end diff --git a/tests/lp_files/inactivity_costs_multi_period.lp b/tests/lp_files/inactivity_costs_multi_period.lp deleted file mode 100644 index 532b6b432..000000000 --- a/tests/lp_files/inactivity_costs_multi_period.lp +++ /dev/null @@ -1,162 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+11.766243752402922 ONE_VAR_CONSTANT -+10 flow(cheap_plant_inactivity_costs_Bus_C_0) -+10 flow(cheap_plant_inactivity_costs_Bus_C_1) -+9.80392156862745 flow(cheap_plant_inactivity_costs_Bus_C_2) -+9.80392156862745 flow(cheap_plant_inactivity_costs_Bus_C_3) -+9.611687812379854 flow(cheap_plant_inactivity_costs_Bus_C_4) -+9.611687812379854 flow(cheap_plant_inactivity_costs_Bus_C_5) --2 NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_0) --2 NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_1) --1.9607843137254901 NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_2) --1.9607843137254901 NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_3) --1.9223375624759707 NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_4) --1.9223375624759707 NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_5) - -s.t. - -c_e_BusBlock_balance(Bus_C_0)_: -+1 flow(cheap_plant_inactivity_costs_Bus_C_0) -= 0 - -c_e_BusBlock_balance(Bus_C_1)_: -+1 flow(cheap_plant_inactivity_costs_Bus_C_1) -= 0 - -c_e_BusBlock_balance(Bus_C_2)_: -+1 flow(cheap_plant_inactivity_costs_Bus_C_2) -= 0 - -c_e_BusBlock_balance(Bus_C_3)_: -+1 flow(cheap_plant_inactivity_costs_Bus_C_3) -= 0 - -c_e_BusBlock_balance(Bus_C_4)_: -+1 flow(cheap_plant_inactivity_costs_Bus_C_4) -= 0 - -c_e_BusBlock_balance(Bus_C_5)_: -+1 flow(cheap_plant_inactivity_costs_Bus_C_5) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_inactivity_costs_Bus_C_0)_: --10 NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_0) -+1 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_0) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_inactivity_costs_Bus_C_1)_: --10 NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_1) -+1 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_1) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_inactivity_costs_Bus_C_2)_: --10 NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_2) -+1 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_inactivity_costs_Bus_C_3)_: --10 NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_3) -+1 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_3) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_inactivity_costs_Bus_C_4)_: --10 NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_4) -+1 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_4) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_inactivity_costs_Bus_C_5)_: --10 NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_5) -+1 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_5) -= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_inactivity_costs_Bus_C_0)_: --1 flow(cheap_plant_inactivity_costs_Bus_C_0) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_0) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_inactivity_costs_Bus_C_1)_: --1 flow(cheap_plant_inactivity_costs_Bus_C_1) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_1) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_inactivity_costs_Bus_C_2)_: --1 flow(cheap_plant_inactivity_costs_Bus_C_2) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_2) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_inactivity_costs_Bus_C_3)_: --1 flow(cheap_plant_inactivity_costs_Bus_C_3) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_3) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_inactivity_costs_Bus_C_4)_: --1 flow(cheap_plant_inactivity_costs_Bus_C_4) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_4) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_inactivity_costs_Bus_C_5)_: --1 flow(cheap_plant_inactivity_costs_Bus_C_5) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_5) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_inactivity_costs_Bus_C_0)_: -+1 flow(cheap_plant_inactivity_costs_Bus_C_0) --1 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_0) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_inactivity_costs_Bus_C_1)_: -+1 flow(cheap_plant_inactivity_costs_Bus_C_1) --1 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_1) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_inactivity_costs_Bus_C_2)_: -+1 flow(cheap_plant_inactivity_costs_Bus_C_2) --1 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_2) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_inactivity_costs_Bus_C_3)_: -+1 flow(cheap_plant_inactivity_costs_Bus_C_3) --1 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_3) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_inactivity_costs_Bus_C_4)_: -+1 flow(cheap_plant_inactivity_costs_Bus_C_4) --1 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_4) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_inactivity_costs_Bus_C_5)_: -+1 flow(cheap_plant_inactivity_costs_Bus_C_5) --1 NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_5) -<= 0 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= flow(cheap_plant_inactivity_costs_Bus_C_0) <= 10.0 - 0 <= flow(cheap_plant_inactivity_costs_Bus_C_1) <= 10.0 - 0 <= flow(cheap_plant_inactivity_costs_Bus_C_2) <= 10.0 - 0 <= flow(cheap_plant_inactivity_costs_Bus_C_3) <= 10.0 - 0 <= flow(cheap_plant_inactivity_costs_Bus_C_4) <= 10.0 - 0 <= flow(cheap_plant_inactivity_costs_Bus_C_5) <= 10.0 - 0 <= NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_0) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_1) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_2) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_3) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_4) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_5) <= 1 - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_0) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_1) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_2) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_3) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_4) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_inactivity_costs_Bus_C_5) <= +inf -binary - NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_0) - NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_1) - NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_2) - NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_3) - NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_4) - NonConvexFlowBlock_status(cheap_plant_inactivity_costs_Bus_C_5) -end diff --git a/tests/lp_files/integer_source.lp b/tests/lp_files/integer_source.lp deleted file mode 100644 index 5cd5960d1..000000000 --- a/tests/lp_files/integer_source.lp +++ /dev/null @@ -1,49 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+25 flow(electricityBus_excess_0) -+25 flow(electricityBus_excess_1) -+25 flow(electricityBus_excess_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(electricityBus_excess_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(electricityBus_excess_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(electricityBus_excess_2) -= 0 - -c_e_SimpleFlowBlock_integer_flow_constr(electricityBus_excess_0)_: --1 flow(electricityBus_excess_0) -+1 SimpleFlowBlock_integer_flow(electricityBus_excess_0) -= 0 - -c_e_SimpleFlowBlock_integer_flow_constr(electricityBus_excess_1)_: --1 flow(electricityBus_excess_1) -+1 SimpleFlowBlock_integer_flow(electricityBus_excess_1) -= 0 - -c_e_SimpleFlowBlock_integer_flow_constr(electricityBus_excess_2)_: --1 flow(electricityBus_excess_2) -+1 SimpleFlowBlock_integer_flow(electricityBus_excess_2) -= 0 - -bounds - 0 <= flow(electricityBus_excess_0) <= 10 - 0 <= flow(electricityBus_excess_1) <= 10 - 0 <= flow(electricityBus_excess_2) <= 10 - 0 <= SimpleFlowBlock_integer_flow(electricityBus_excess_0) <= +inf - 0 <= SimpleFlowBlock_integer_flow(electricityBus_excess_1) <= +inf - 0 <= SimpleFlowBlock_integer_flow(electricityBus_excess_2) <= +inf -general - SimpleFlowBlock_integer_flow(electricityBus_excess_0) - SimpleFlowBlock_integer_flow(electricityBus_excess_1) - SimpleFlowBlock_integer_flow(electricityBus_excess_2) -end diff --git a/tests/lp_files/invest_non_convex_flow.lp b/tests/lp_files/invest_non_convex_flow.lp deleted file mode 100644 index 7258edf67..000000000 --- a/tests/lp_files/invest_non_convex_flow.lp +++ /dev/null @@ -1,146 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+8 flow(b1_b2_0) -+8 flow(b1_b2_1) -+8 flow(b1_b2_2) -+0.75 InvestNonConvexFlowBlock_invest(b1_b2_0) - -s.t. - -c_e_BusBlock_balance(b1_0)_: --1 flow(b1_b2_0) -+1 flow(b2_b1_0) -= 0 - -c_e_BusBlock_balance(b1_1)_: --1 flow(b1_b2_1) -+1 flow(b2_b1_1) -= 0 - -c_e_BusBlock_balance(b1_2)_: --1 flow(b1_b2_2) -+1 flow(b2_b1_2) -= 0 - -c_e_BusBlock_balance(b2_0)_: -+1 flow(b1_b2_0) --1 flow(b2_b1_0) -= 0 - -c_e_BusBlock_balance(b2_1)_: -+1 flow(b1_b2_1) --1 flow(b2_b1_1) -= 0 - -c_e_BusBlock_balance(b2_2)_: -+1 flow(b1_b2_2) --1 flow(b2_b1_2) -= 0 - -c_l_InvestNonConvexFlowBlock_minimum_investment(b1_b2_0)_: -+1 InvestNonConvexFlowBlock_invest(b1_b2_0) ->= 0 - -c_u_InvestNonConvexFlowBlock_maximum_investment(b1_b2_0)_: -+1 InvestNonConvexFlowBlock_invest(b1_b2_0) -<= 10 - -c_u_InvestNonConvexFlowBlock_min(b1_b2_0)_: --1 flow(b1_b2_0) -+0.25 InvestNonConvexFlowBlock_status_nominal(b1_b2_0) -<= 0 - -c_u_InvestNonConvexFlowBlock_min(b1_b2_1)_: --1 flow(b1_b2_1) -+0.25 InvestNonConvexFlowBlock_status_nominal(b1_b2_1) -<= 0 - -c_u_InvestNonConvexFlowBlock_min(b1_b2_2)_: --1 flow(b1_b2_2) -+0.25 InvestNonConvexFlowBlock_status_nominal(b1_b2_2) -<= 0 - -c_u_InvestNonConvexFlowBlock_max(b1_b2_0)_: -+1 flow(b1_b2_0) --0.5 InvestNonConvexFlowBlock_status_nominal(b1_b2_0) -<= 0 - -c_u_InvestNonConvexFlowBlock_max(b1_b2_1)_: -+1 flow(b1_b2_1) --0.5 InvestNonConvexFlowBlock_status_nominal(b1_b2_1) -<= 0 - -c_u_InvestNonConvexFlowBlock_max(b1_b2_2)_: -+1 flow(b1_b2_2) --0.5 InvestNonConvexFlowBlock_status_nominal(b1_b2_2) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_one(b1_b2_0_0)_: -+1 InvestNonConvexFlowBlock_status_nominal(b1_b2_0) --10 InvestNonConvexFlowBlock_status(b1_b2_0) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_one(b1_b2_0_1)_: -+1 InvestNonConvexFlowBlock_status_nominal(b1_b2_1) --10 InvestNonConvexFlowBlock_status(b1_b2_1) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_one(b1_b2_0_2)_: -+1 InvestNonConvexFlowBlock_status_nominal(b1_b2_2) --10 InvestNonConvexFlowBlock_status(b1_b2_2) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_two(b1_b2_0_0)_: --1 InvestNonConvexFlowBlock_invest(b1_b2_0) -+1 InvestNonConvexFlowBlock_status_nominal(b1_b2_0) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_two(b1_b2_0_1)_: --1 InvestNonConvexFlowBlock_invest(b1_b2_0) -+1 InvestNonConvexFlowBlock_status_nominal(b1_b2_1) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_two(b1_b2_0_2)_: --1 InvestNonConvexFlowBlock_invest(b1_b2_0) -+1 InvestNonConvexFlowBlock_status_nominal(b1_b2_2) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_three(b1_b2_0_0)_: -+1 InvestNonConvexFlowBlock_invest(b1_b2_0) --1 InvestNonConvexFlowBlock_status_nominal(b1_b2_0) -+10 InvestNonConvexFlowBlock_status(b1_b2_0) -<= 10 - -c_u_InvestNonConvexFlowBlock_invest_nc_three(b1_b2_0_1)_: -+1 InvestNonConvexFlowBlock_invest(b1_b2_0) --1 InvestNonConvexFlowBlock_status_nominal(b1_b2_1) -+10 InvestNonConvexFlowBlock_status(b1_b2_1) -<= 10 - -c_u_InvestNonConvexFlowBlock_invest_nc_three(b1_b2_0_2)_: -+1 InvestNonConvexFlowBlock_invest(b1_b2_0) --1 InvestNonConvexFlowBlock_status_nominal(b1_b2_2) -+10 InvestNonConvexFlowBlock_status(b1_b2_2) -<= 10 - -bounds - 0 <= flow(b1_b2_0) <= +inf - 0 <= flow(b1_b2_1) <= +inf - 0 <= flow(b1_b2_2) <= +inf - 0 <= flow(b2_b1_0) <= +inf - 0 <= flow(b2_b1_1) <= +inf - 0 <= flow(b2_b1_2) <= +inf - 0 <= InvestNonConvexFlowBlock_invest(b1_b2_0) <= 10 - 0 <= InvestNonConvexFlowBlock_status_nominal(b1_b2_0) <= +inf - 0 <= InvestNonConvexFlowBlock_status_nominal(b1_b2_1) <= +inf - 0 <= InvestNonConvexFlowBlock_status_nominal(b1_b2_2) <= +inf - 0 <= InvestNonConvexFlowBlock_status(b1_b2_0) <= 1 - 0 <= InvestNonConvexFlowBlock_status(b1_b2_1) <= 1 - 0 <= InvestNonConvexFlowBlock_status(b1_b2_2) <= 1 -binary - InvestNonConvexFlowBlock_status(b1_b2_0) - InvestNonConvexFlowBlock_status(b1_b2_1) - InvestNonConvexFlowBlock_status(b1_b2_2) -end diff --git a/tests/lp_files/invest_source_fixed_sink.lp b/tests/lp_files/invest_source_fixed_sink.lp deleted file mode 100644 index 6ceeb2ded..000000000 --- a/tests/lp_files/invest_source_fixed_sink.lp +++ /dev/null @@ -1,50 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+123 InvestmentFlowBlock_invest(pv_electricityBus_0) -+13 flow(pv_electricityBus_0) -+13 flow(pv_electricityBus_1) -+13 flow(pv_electricityBus_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(pv_electricityBus_0) -= 50000.0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(pv_electricityBus_1) -= 80000.0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(pv_electricityBus_2) -= 30000.0 - -c_e_InvestmentFlowBlock_total_rule(pv_electricityBus_0)_: --1 InvestmentFlowBlock_invest(pv_electricityBus_0) -+1 InvestmentFlowBlock_total(pv_electricityBus_0) -= 0 - -c_u_InvestmentFlowBlock_max(pv_electricityBus_0_0)_: -+1 flow(pv_electricityBus_0) --45 InvestmentFlowBlock_total(pv_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(pv_electricityBus_0_1)_: -+1 flow(pv_electricityBus_1) --83 InvestmentFlowBlock_total(pv_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(pv_electricityBus_0_2)_: -+1 flow(pv_electricityBus_2) --65 InvestmentFlowBlock_total(pv_electricityBus_0) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(pv_electricityBus_0) <= +inf - 0 <= flow(pv_electricityBus_0) <= +inf - 0 <= flow(pv_electricityBus_1) <= +inf - 0 <= flow(pv_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_total(pv_electricityBus_0) <= +inf -end diff --git a/tests/lp_files/invest_source_fixed_sink_multi_period.lp b/tests/lp_files/invest_source_fixed_sink_multi_period.lp deleted file mode 100644 index 70844ad2a..000000000 --- a/tests/lp_files/invest_source_fixed_sink_multi_period.lp +++ /dev/null @@ -1,154 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+18.16879316506207 InvestmentFlowBlock_invest(pv_electricityBus_0) -+11.99221088531737 InvestmentFlowBlock_invest(pv_electricityBus_1) -+5.93673806203831 InvestmentFlowBlock_invest(pv_electricityBus_2) -+13 flow(pv_electricityBus_0) -+13 flow(pv_electricityBus_1) -+12.745098039215685 flow(pv_electricityBus_2) -+12.745098039215685 flow(pv_electricityBus_3) -+12.49519415609381 flow(pv_electricityBus_4) -+12.49519415609381 flow(pv_electricityBus_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(pv_electricityBus_0) -= 50000.0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(pv_electricityBus_1) -= 80000.0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(pv_electricityBus_2) -= 30000.0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(pv_electricityBus_3) -= 60000.0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(pv_electricityBus_4) -= 70000.0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(pv_electricityBus_5) -= 20000.0 - -c_e_InvestmentFlowBlock_total_rule(pv_electricityBus_0)_: --1 InvestmentFlowBlock_invest(pv_electricityBus_0) -+1 InvestmentFlowBlock_total(pv_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(pv_electricityBus_1)_: --1 InvestmentFlowBlock_invest(pv_electricityBus_1) --1 InvestmentFlowBlock_total(pv_electricityBus_0) -+1 InvestmentFlowBlock_total(pv_electricityBus_1) -+1 InvestmentFlowBlock_old(pv_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(pv_electricityBus_2)_: --1 InvestmentFlowBlock_invest(pv_electricityBus_2) --1 InvestmentFlowBlock_total(pv_electricityBus_1) -+1 InvestmentFlowBlock_total(pv_electricityBus_2) -+1 InvestmentFlowBlock_old(pv_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(pv_electricityBus_0)_: -+1 InvestmentFlowBlock_old_end(pv_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(pv_electricityBus_1)_: -+1 InvestmentFlowBlock_old_end(pv_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(pv_electricityBus_2)_: -+1 InvestmentFlowBlock_old_end(pv_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(pv_electricityBus_0)_: -+1 InvestmentFlowBlock_old_exo(pv_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(pv_electricityBus_1)_: -+1 InvestmentFlowBlock_old_exo(pv_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(pv_electricityBus_2)_: -+1 InvestmentFlowBlock_old_exo(pv_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(pv_electricityBus_0)_: -+1 InvestmentFlowBlock_old(pv_electricityBus_0) --1 InvestmentFlowBlock_old_end(pv_electricityBus_0) --1 InvestmentFlowBlock_old_exo(pv_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(pv_electricityBus_1)_: -+1 InvestmentFlowBlock_old(pv_electricityBus_1) --1 InvestmentFlowBlock_old_end(pv_electricityBus_1) --1 InvestmentFlowBlock_old_exo(pv_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(pv_electricityBus_2)_: -+1 InvestmentFlowBlock_old(pv_electricityBus_2) --1 InvestmentFlowBlock_old_end(pv_electricityBus_2) --1 InvestmentFlowBlock_old_exo(pv_electricityBus_2) -= 0 - -c_u_InvestmentFlowBlock_max(pv_electricityBus_0_0)_: -+1 flow(pv_electricityBus_0) --45 InvestmentFlowBlock_total(pv_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(pv_electricityBus_0_1)_: -+1 flow(pv_electricityBus_1) --83 InvestmentFlowBlock_total(pv_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(pv_electricityBus_1_2)_: -+1 flow(pv_electricityBus_2) --65 InvestmentFlowBlock_total(pv_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(pv_electricityBus_1_3)_: -+1 flow(pv_electricityBus_3) --67 InvestmentFlowBlock_total(pv_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(pv_electricityBus_2_4)_: -+1 flow(pv_electricityBus_4) --33 InvestmentFlowBlock_total(pv_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_max(pv_electricityBus_2_5)_: -+1 flow(pv_electricityBus_5) --96 InvestmentFlowBlock_total(pv_electricityBus_2) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(pv_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_invest(pv_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_invest(pv_electricityBus_2) <= +inf - 0 <= flow(pv_electricityBus_0) <= +inf - 0 <= flow(pv_electricityBus_1) <= +inf - 0 <= flow(pv_electricityBus_2) <= +inf - 0 <= flow(pv_electricityBus_3) <= +inf - 0 <= flow(pv_electricityBus_4) <= +inf - 0 <= flow(pv_electricityBus_5) <= +inf - 0 <= InvestmentFlowBlock_total(pv_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_total(pv_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_total(pv_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old(pv_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old(pv_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old(pv_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(pv_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(pv_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(pv_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(pv_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(pv_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(pv_electricityBus_2) <= +inf -end diff --git a/tests/lp_files/investment_limit.lp b/tests/lp_files/investment_limit.lp deleted file mode 100644 index f2569b9a4..000000000 --- a/tests/lp_files/investment_limit.lp +++ /dev/null @@ -1,176 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+123 InvestmentFlowBlock_invest(Source_Bus1_0) -+145 GenericInvestmentStorageBlock_invest(storage_invest_limit_0) - -s.t. - -c_u_investment_limit_: -+123 InvestmentFlowBlock_invest(Source_Bus1_0) -+145 GenericInvestmentStorageBlock_invest(storage_invest_limit_0) -<= 900 - -c_e_BusBlock_balance(Bus1_0)_: --1 flow(Bus1_storage_invest_limit_0) -+1 flow(storage_invest_limit_Bus1_0) -+1 flow(Source_Bus1_0) -= 0 - -c_e_BusBlock_balance(Bus1_1)_: --1 flow(Bus1_storage_invest_limit_1) -+1 flow(storage_invest_limit_Bus1_1) -+1 flow(Source_Bus1_1) -= 0 - -c_e_BusBlock_balance(Bus1_2)_: --1 flow(Bus1_storage_invest_limit_2) -+1 flow(storage_invest_limit_Bus1_2) -+1 flow(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Source_Bus1_0)_: --1 InvestmentFlowBlock_invest(Source_Bus1_0) -+1 InvestmentFlowBlock_total(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_invest_limit_Bus1_0)_: --1 InvestmentFlowBlock_invest(storage_invest_limit_Bus1_0) -+1 InvestmentFlowBlock_total(storage_invest_limit_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Bus1_storage_invest_limit_0)_: --1 InvestmentFlowBlock_invest(Bus1_storage_invest_limit_0) -+1 InvestmentFlowBlock_total(Bus1_storage_invest_limit_0) -= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_0)_: -+1 flow(Source_Bus1_0) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_1)_: -+1 flow(Source_Bus1_1) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_2)_: -+1 flow(Source_Bus1_2) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_invest_limit_Bus1_0_0)_: -+1 flow(storage_invest_limit_Bus1_0) --1 InvestmentFlowBlock_total(storage_invest_limit_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_invest_limit_Bus1_0_1)_: -+1 flow(storage_invest_limit_Bus1_1) --1 InvestmentFlowBlock_total(storage_invest_limit_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_invest_limit_Bus1_0_2)_: -+1 flow(storage_invest_limit_Bus1_2) --1 InvestmentFlowBlock_total(storage_invest_limit_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_storage_invest_limit_0_0)_: -+1 flow(Bus1_storage_invest_limit_0) --1 InvestmentFlowBlock_total(Bus1_storage_invest_limit_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_storage_invest_limit_0_1)_: -+1 flow(Bus1_storage_invest_limit_1) --1 InvestmentFlowBlock_total(Bus1_storage_invest_limit_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_storage_invest_limit_0_2)_: -+1 flow(Bus1_storage_invest_limit_2) --1 InvestmentFlowBlock_total(Bus1_storage_invest_limit_0) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_invest_limit_0)_: --1 GenericInvestmentStorageBlock_invest(storage_invest_limit_0) -+1 GenericInvestmentStorageBlock_total(storage_invest_limit_0) -= 0 - -c_u_GenericInvestmentStorageBlock_init_content_limit(storage_invest_limit)_: --1 GenericInvestmentStorageBlock_invest(storage_invest_limit_0) -+1 GenericInvestmentStorageBlock_init_content(storage_invest_limit) -<= 0 - -c_e_GenericInvestmentStorageBlock_balance_first(storage_invest_limit)_: --1 flow(Bus1_storage_invest_limit_0) -+1 flow(storage_invest_limit_Bus1_0) --1 GenericInvestmentStorageBlock_init_content(storage_invest_limit) -+1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_invest_limit_0_1)_: --1 flow(Bus1_storage_invest_limit_1) -+1 flow(storage_invest_limit_Bus1_1) --1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_invest_limit_0_2)_: --1 flow(Bus1_storage_invest_limit_2) -+1 flow(storage_invest_limit_Bus1_2) --1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balanced_cstr(storage_invest_limit)_: --1 GenericInvestmentStorageBlock_init_content(storage_invest_limit) -+1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_2) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_invest_limit_0)_: -+1 InvestmentFlowBlock_total(Bus1_storage_invest_limit_0) --0.2 GenericInvestmentStorageBlock_total(storage_invest_limit_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_invest_limit_0)_: -+1 InvestmentFlowBlock_total(storage_invest_limit_Bus1_0) --0.2 GenericInvestmentStorageBlock_total(storage_invest_limit_0) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_invest_limit_0_0)_: --1 GenericInvestmentStorageBlock_total(storage_invest_limit_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_invest_limit_0_1)_: --1 GenericInvestmentStorageBlock_total(storage_invest_limit_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_invest_limit_0_2)_: --1 GenericInvestmentStorageBlock_total(storage_invest_limit_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_2) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_invest_limit_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_invest(Bus1_storage_invest_limit_0) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_invest_limit_0) <= +inf - 0 <= flow(Bus1_storage_invest_limit_0) <= +inf - 0 <= flow(Bus1_storage_invest_limit_1) <= +inf - 0 <= flow(Bus1_storage_invest_limit_2) <= +inf - 0 <= flow(storage_invest_limit_Bus1_0) <= +inf - 0 <= flow(storage_invest_limit_Bus1_1) <= +inf - 0 <= flow(storage_invest_limit_Bus1_2) <= +inf - 0 <= flow(Source_Bus1_0) <= +inf - 0 <= flow(Source_Bus1_1) <= +inf - 0 <= flow(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_total(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage_invest_limit_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_total(Bus1_storage_invest_limit_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_invest_limit_0) <= +inf - 0 <= GenericInvestmentStorageBlock_init_content(storage_invest_limit) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_invest_limit_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_invest_limit_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_invest_limit_2) <= +inf -end diff --git a/tests/lp_files/investment_limit_with_dsm_DIW.lp b/tests/lp_files/investment_limit_with_dsm_DIW.lp deleted file mode 100644 index f3074c71e..000000000 --- a/tests/lp_files/investment_limit_with_dsm_DIW.lp +++ /dev/null @@ -1,211 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+123 InvestmentFlowBlock_invest(Source_Bus1_0) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_0) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_1) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_2) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_0) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_1) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_2) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_0) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_1) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_2) -+0.5 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_0) -+0.5 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_1) -+0.5 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_2) -+100 SinkDSMDIWInvestmentBlock_invest(sink_dsm_DIW_0) - -s.t. - -c_u_investment_limit_: -+123 InvestmentFlowBlock_invest(Source_Bus1_0) -+100 SinkDSMDIWInvestmentBlock_invest(sink_dsm_DIW_0) -<= 900 - -c_e_BusBlock_balance(Bus1_0)_: --1 flow(Bus1_sink_dsm_DIW_0) -+1 flow(Source_Bus1_0) -= 0 - -c_e_BusBlock_balance(Bus1_1)_: --1 flow(Bus1_sink_dsm_DIW_1) -+1 flow(Source_Bus1_1) -= 0 - -c_e_BusBlock_balance(Bus1_2)_: --1 flow(Bus1_sink_dsm_DIW_2) -+1 flow(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Source_Bus1_0)_: --1 InvestmentFlowBlock_invest(Source_Bus1_0) -+1 InvestmentFlowBlock_total(Source_Bus1_0) -= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_0)_: -+1 flow(Source_Bus1_0) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_1)_: -+1 flow(Source_Bus1_1) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_2)_: -+1 flow(Source_Bus1_2) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_e_SinkDSMDIWInvestmentBlock_total_dsm_rule(sink_dsm_DIW_0)_: --1 SinkDSMDIWInvestmentBlock_invest(sink_dsm_DIW_0) -+1 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) -= 50 - -c_e_SinkDSMDIWInvestmentBlock_shift_shed_vars(sink_dsm_DIW_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_shift_shed_vars(sink_dsm_DIW_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_shift_shed_vars(sink_dsm_DIW_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(sink_dsm_DIW_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_0) --1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_0) -+1 flow(Bus1_sink_dsm_DIW_0) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(sink_dsm_DIW_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_1) --1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_1) -+1 flow(Bus1_sink_dsm_DIW_1) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(sink_dsm_DIW_0_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_2) --1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_2) -+1 flow(Bus1_sink_dsm_DIW_2) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(sink_dsm_DIW_0)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_0) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(sink_dsm_DIW_1)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_0) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_1) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(sink_dsm_DIW_2)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_1) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_2) -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_2) -= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(sink_dsm_DIW_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_0) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(sink_dsm_DIW_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_1) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(sink_dsm_DIW_0_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_2) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(sink_dsm_DIW_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_0) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(sink_dsm_DIW_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_1) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(sink_dsm_DIW_0_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_2) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(sink_dsm_DIW_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_0) -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_0) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(sink_dsm_DIW_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_1) -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_1) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(sink_dsm_DIW_0_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_2) -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_2) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(Source_Bus1_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_2) <= +inf - 33 <= SinkDSMDIWInvestmentBlock_invest(sink_dsm_DIW_0) <= 100 - 0 <= flow(Bus1_sink_dsm_DIW_0) <= +inf - 0 <= flow(Bus1_sink_dsm_DIW_1) <= +inf - 0 <= flow(Bus1_sink_dsm_DIW_2) <= +inf - 0 <= flow(Source_Bus1_0) <= +inf - 0 <= flow(Source_Bus1_1) <= +inf - 0 <= flow(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_total(Source_Bus1_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) <= +inf -end diff --git a/tests/lp_files/investment_limit_with_dsm_DLR.lp b/tests/lp_files/investment_limit_with_dsm_DLR.lp deleted file mode 100644 index c92d6003a..000000000 --- a/tests/lp_files/investment_limit_with_dsm_DLR.lp +++ /dev/null @@ -1,308 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+123 InvestmentFlowBlock_invest(Source_Bus1_0) -+0.5 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_0) -+0.5 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_1) -+0.5 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_2) -+0.5 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_0) -+0.5 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_1) -+0.5 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_2) -+0.5 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_0) -+0.5 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_1) -+0.5 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_2) -+0.5 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_0) -+0.5 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_1) -+0.5 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_2) -+100 SinkDSMDLRInvestmentBlock_invest(sink_dsm_DLR_0) - -s.t. - -c_u_investment_limit_: -+123 InvestmentFlowBlock_invest(Source_Bus1_0) -+100 SinkDSMDLRInvestmentBlock_invest(sink_dsm_DLR_0) -<= 900 - -c_e_BusBlock_balance(Bus1_0)_: --1 flow(Bus1_sink_dsm_DLR_0) -+1 flow(Source_Bus1_0) -= 0 - -c_e_BusBlock_balance(Bus1_1)_: --1 flow(Bus1_sink_dsm_DLR_1) -+1 flow(Source_Bus1_1) -= 0 - -c_e_BusBlock_balance(Bus1_2)_: --1 flow(Bus1_sink_dsm_DLR_2) -+1 flow(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Source_Bus1_0)_: --1 InvestmentFlowBlock_invest(Source_Bus1_0) -+1 InvestmentFlowBlock_total(Source_Bus1_0) -= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_0)_: -+1 flow(Source_Bus1_0) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_1)_: -+1 flow(Source_Bus1_1) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_2)_: -+1 flow(Source_Bus1_2) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_e_SinkDSMDLRInvestmentBlock_total_dsm_rule(sink_dsm_DLR_0)_: --1 SinkDSMDLRInvestmentBlock_invest(sink_dsm_DLR_0) -+1 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -= 50 - -c_e_SinkDSMDLRInvestmentBlock_shift_shed_vars(sink_dsm_DLR_1_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_shift_shed_vars(sink_dsm_DLR_1_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_shift_shed_vars(sink_dsm_DLR_1_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(sink_dsm_DLR_0_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_0) --1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_0) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_0) -+1 flow(Bus1_sink_dsm_DLR_0) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(sink_dsm_DLR_0_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_1) --1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_1) -+1 flow(Bus1_sink_dsm_DLR_1) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(sink_dsm_DLR_0_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_2) --1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_2) -+1 flow(Bus1_sink_dsm_DLR_2) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(sink_dsm_DLR_1_0)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(sink_dsm_DLR_1_1)_: --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(sink_dsm_DLR_1_2)_: --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(sink_dsm_DLR_1_0)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(sink_dsm_DLR_1_1)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_1) --1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(sink_dsm_DLR_1_2)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_2) --1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_red(sink_dsm_DLR_1_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_inc(sink_dsm_DLR_1_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_2) -= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(sink_dsm_DLR_0_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_0) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(sink_dsm_DLR_0_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_1) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(sink_dsm_DLR_0_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_2) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(sink_dsm_DLR_0_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_0) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(sink_dsm_DLR_0_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_1) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(sink_dsm_DLR_0_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_2) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -<= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(sink_dsm_DLR_0)_: --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(sink_dsm_DLR_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_0) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(sink_dsm_DLR_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_1) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(sink_dsm_DLR_0)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(sink_dsm_DLR_1)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_0) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(sink_dsm_DLR_2)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_1) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_2) -= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(sink_dsm_DLR_0_0)_: --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(sink_dsm_DLR_0_1)_: --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(sink_dsm_DLR_0_2)_: --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(sink_dsm_DLR_0_0)_: --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(sink_dsm_DLR_0_1)_: --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(sink_dsm_DLR_0_2)_: --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(sink_dsm_DLR_0_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_0) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(sink_dsm_DLR_0_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_1) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(sink_dsm_DLR_0_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_2) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(Source_Bus1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_2) <= +inf - 33 <= SinkDSMDLRInvestmentBlock_invest(sink_dsm_DLR_0) <= 100 - 0 <= flow(Bus1_sink_dsm_DLR_0) <= +inf - 0 <= flow(Bus1_sink_dsm_DLR_1) <= +inf - 0 <= flow(Bus1_sink_dsm_DLR_2) <= +inf - 0 <= flow(Source_Bus1_0) <= +inf - 0 <= flow(Source_Bus1_1) <= +inf - 0 <= flow(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_total(Source_Bus1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_2) <= +inf -end diff --git a/tests/lp_files/investment_limit_with_dsm_oemof.lp b/tests/lp_files/investment_limit_with_dsm_oemof.lp deleted file mode 100644 index b02c8cc22..000000000 --- a/tests/lp_files/investment_limit_with_dsm_oemof.lp +++ /dev/null @@ -1,154 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+123 InvestmentFlowBlock_invest(Source_Bus1_0) -+0.5 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_0) -+0.5 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_1) -+0.5 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_2) -+0.5 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_0) -+0.5 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_1) -+0.5 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_2) -+100 SinkDSMOemofInvestmentBlock_invest(sink_dsm_oemof_0) - -s.t. - -c_u_investment_limit_: -+123 InvestmentFlowBlock_invest(Source_Bus1_0) -+100 SinkDSMOemofInvestmentBlock_invest(sink_dsm_oemof_0) -<= 900 - -c_e_BusBlock_balance(Bus1_0)_: --1 flow(Bus1_sink_dsm_oemof_0) -+1 flow(Source_Bus1_0) -= 0 - -c_e_BusBlock_balance(Bus1_1)_: --1 flow(Bus1_sink_dsm_oemof_1) -+1 flow(Source_Bus1_1) -= 0 - -c_e_BusBlock_balance(Bus1_2)_: --1 flow(Bus1_sink_dsm_oemof_2) -+1 flow(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Source_Bus1_0)_: --1 InvestmentFlowBlock_invest(Source_Bus1_0) -+1 InvestmentFlowBlock_total(Source_Bus1_0) -= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_0)_: -+1 flow(Source_Bus1_0) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_1)_: -+1 flow(Source_Bus1_1) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_2)_: -+1 flow(Source_Bus1_2) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_e_SinkDSMOemofInvestmentBlock_total_dsm_rule(sink_dsm_oemof_0)_: --1 SinkDSMOemofInvestmentBlock_invest(sink_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_0) -= 50 - -c_e_SinkDSMOemofInvestmentBlock_shift_shed_vars(sink_dsm_oemof_0)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_0) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_shift_shed_vars(sink_dsm_oemof_1)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_1) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_shift_shed_vars(sink_dsm_oemof_2)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_2) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(sink_dsm_oemof_0_0)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_0) --1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_0) -+1 flow(Bus1_sink_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_0) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(sink_dsm_oemof_0_1)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_1) --1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_1) -+1 flow(Bus1_sink_dsm_oemof_1) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_1) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(sink_dsm_oemof_0_2)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_2) --1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_2) -+1 flow(Bus1_sink_dsm_oemof_2) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_2) -= 1 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(sink_dsm_oemof_0_0)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_0) --0.5 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(sink_dsm_oemof_0_1)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_1) --0.5 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(sink_dsm_oemof_0_2)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_2) --0.5 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(sink_dsm_oemof_0_0)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_0) --0.5 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(sink_dsm_oemof_0_1)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_1) --0.5 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_1) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(sink_dsm_oemof_0_2)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_2) --0.5 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_2) -<= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(sink_dsm_oemof_0)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_0) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_1) -+1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_1) -= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(Source_Bus1_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_2) <= +inf - 33 <= SinkDSMOemofInvestmentBlock_invest(sink_dsm_oemof_0) <= 100 - 0 <= flow(Bus1_sink_dsm_oemof_0) <= +inf - 0 <= flow(Bus1_sink_dsm_oemof_1) <= +inf - 0 <= flow(Bus1_sink_dsm_oemof_2) <= +inf - 0 <= flow(Source_Bus1_0) <= +inf - 0 <= flow(Source_Bus1_1) <= +inf - 0 <= flow(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_total(Source_Bus1_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_2) <= +inf -end diff --git a/tests/lp_files/linear_converter.lp b/tests/lp_files/linear_converter.lp deleted file mode 100644 index b7c1b8106..000000000 --- a/tests/lp_files/linear_converter.lp +++ /dev/null @@ -1,57 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+50 flow(powerplantGas_electricity_0) -+50 flow(powerplantGas_electricity_1) -+50 flow(powerplantGas_electricity_2) - -s.t. - -c_e_BusBlock_balance(electricity_0)_: -+1 flow(powerplantGas_electricity_0) -= 0 - -c_e_BusBlock_balance(electricity_1)_: -+1 flow(powerplantGas_electricity_1) -= 0 - -c_e_BusBlock_balance(electricity_2)_: -+1 flow(powerplantGas_electricity_2) -= 0 - -c_e_BusBlock_balance(gas_0)_: -+1 flow(gas_powerplantGas_0) -= 0 - -c_e_BusBlock_balance(gas_1)_: -+1 flow(gas_powerplantGas_1) -= 0 - -c_e_BusBlock_balance(gas_2)_: -+1 flow(gas_powerplantGas_2) -= 0 - -c_e_ConverterBlock_relation(powerplantGas_gas_electricity_0)_: -+0.58 flow(gas_powerplantGas_0) --1 flow(powerplantGas_electricity_0) -= 0 - -c_e_ConverterBlock_relation(powerplantGas_gas_electricity_1)_: -+0.58 flow(gas_powerplantGas_1) --1 flow(powerplantGas_electricity_1) -= 0 - -c_e_ConverterBlock_relation(powerplantGas_gas_electricity_2)_: -+0.58 flow(gas_powerplantGas_2) --1 flow(powerplantGas_electricity_2) -= 0 - -bounds - 0 <= flow(gas_powerplantGas_0) <= +inf - 0 <= flow(gas_powerplantGas_1) <= +inf - 0 <= flow(gas_powerplantGas_2) <= +inf - 0.0 <= flow(powerplantGas_electricity_0) <= 100000000000.0 - 0.0 <= flow(powerplantGas_electricity_1) <= 100000000000.0 - 0.0 <= flow(powerplantGas_electricity_2) <= 100000000000.0 -end diff --git a/tests/lp_files/linear_converter_chp.lp b/tests/lp_files/linear_converter_chp.lp deleted file mode 100644 index 643270948..000000000 --- a/tests/lp_files/linear_converter_chp.lp +++ /dev/null @@ -1,87 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+50 flow(gasBus_CHPpowerplantGas_0) -+50 flow(gasBus_CHPpowerplantGas_1) -+50 flow(gasBus_CHPpowerplantGas_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(CHPpowerplantGas_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(CHPpowerplantGas_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(CHPpowerplantGas_electricityBus_2) -= 0 - -c_e_BusBlock_balance(gasBus_0)_: -+1 flow(gasBus_CHPpowerplantGas_0) -= 0 - -c_e_BusBlock_balance(gasBus_1)_: -+1 flow(gasBus_CHPpowerplantGas_1) -= 0 - -c_e_BusBlock_balance(gasBus_2)_: -+1 flow(gasBus_CHPpowerplantGas_2) -= 0 - -c_e_BusBlock_balance(heatBus_0)_: -+1 flow(CHPpowerplantGas_heatBus_0) -= 0 - -c_e_BusBlock_balance(heatBus_1)_: -+1 flow(CHPpowerplantGas_heatBus_1) -= 0 - -c_e_BusBlock_balance(heatBus_2)_: -+1 flow(CHPpowerplantGas_heatBus_2) -= 0 - -c_e_ConverterBlock_relation(CHPpowerplantGas_gasBus_electricityBus_0)_: -+0.4 flow(gasBus_CHPpowerplantGas_0) --1 flow(CHPpowerplantGas_electricityBus_0) -= 0 - -c_e_ConverterBlock_relation(CHPpowerplantGas_gasBus_heatBus_0)_: -+0.5 flow(gasBus_CHPpowerplantGas_0) --1 flow(CHPpowerplantGas_heatBus_0) -= 0 - -c_e_ConverterBlock_relation(CHPpowerplantGas_gasBus_electricityBus_1)_: -+0.4 flow(gasBus_CHPpowerplantGas_1) --1 flow(CHPpowerplantGas_electricityBus_1) -= 0 - -c_e_ConverterBlock_relation(CHPpowerplantGas_gasBus_heatBus_1)_: -+0.5 flow(gasBus_CHPpowerplantGas_1) --1 flow(CHPpowerplantGas_heatBus_1) -= 0 - -c_e_ConverterBlock_relation(CHPpowerplantGas_gasBus_electricityBus_2)_: -+0.4 flow(gasBus_CHPpowerplantGas_2) --1 flow(CHPpowerplantGas_electricityBus_2) -= 0 - -c_e_ConverterBlock_relation(CHPpowerplantGas_gasBus_heatBus_2)_: -+0.5 flow(gasBus_CHPpowerplantGas_2) --1 flow(CHPpowerplantGas_heatBus_2) -= 0 - -bounds - 0.0 <= flow(gasBus_CHPpowerplantGas_0) <= 100000000000.0 - 0.0 <= flow(gasBus_CHPpowerplantGas_1) <= 100000000000.0 - 0.0 <= flow(gasBus_CHPpowerplantGas_2) <= 100000000000.0 - 0 <= flow(CHPpowerplantGas_electricityBus_0) <= +inf - 0 <= flow(CHPpowerplantGas_electricityBus_1) <= +inf - 0 <= flow(CHPpowerplantGas_electricityBus_2) <= +inf - 0 <= flow(CHPpowerplantGas_heatBus_0) <= +inf - 0 <= flow(CHPpowerplantGas_heatBus_1) <= +inf - 0 <= flow(CHPpowerplantGas_heatBus_2) <= +inf -end diff --git a/tests/lp_files/linear_converter_chp_invest.lp b/tests/lp_files/linear_converter_chp_invest.lp deleted file mode 100644 index c2815a08d..000000000 --- a/tests/lp_files/linear_converter_chp_invest.lp +++ /dev/null @@ -1,110 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+20 InvestmentFlowBlock_invest(gasBus_chp_powerplant_gas_0) -+50 flow(gasBus_chp_powerplant_gas_0) -+50 flow(gasBus_chp_powerplant_gas_1) -+50 flow(gasBus_chp_powerplant_gas_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(chp_powerplant_gas_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(chp_powerplant_gas_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(chp_powerplant_gas_electricityBus_2) -= 0 - -c_e_BusBlock_balance(gasBus_0)_: -+1 flow(gasBus_chp_powerplant_gas_0) -= 0 - -c_e_BusBlock_balance(gasBus_1)_: -+1 flow(gasBus_chp_powerplant_gas_1) -= 0 - -c_e_BusBlock_balance(gasBus_2)_: -+1 flow(gasBus_chp_powerplant_gas_2) -= 0 - -c_e_BusBlock_balance(heatBus_0)_: -+1 flow(chp_powerplant_gas_heatBus_0) -= 0 - -c_e_BusBlock_balance(heatBus_1)_: -+1 flow(chp_powerplant_gas_heatBus_1) -= 0 - -c_e_BusBlock_balance(heatBus_2)_: -+1 flow(chp_powerplant_gas_heatBus_2) -= 0 - -c_e_ConverterBlock_relation(chp_powerplant_gas_gasBus_electricityBus_0)_: -+0.4 flow(gasBus_chp_powerplant_gas_0) --1 flow(chp_powerplant_gas_electricityBus_0) -= 0 - -c_e_ConverterBlock_relation(chp_powerplant_gas_gasBus_heatBus_0)_: -+0.5 flow(gasBus_chp_powerplant_gas_0) --1 flow(chp_powerplant_gas_heatBus_0) -= 0 - -c_e_ConverterBlock_relation(chp_powerplant_gas_gasBus_electricityBus_1)_: -+0.4 flow(gasBus_chp_powerplant_gas_1) --1 flow(chp_powerplant_gas_electricityBus_1) -= 0 - -c_e_ConverterBlock_relation(chp_powerplant_gas_gasBus_heatBus_1)_: -+0.5 flow(gasBus_chp_powerplant_gas_1) --1 flow(chp_powerplant_gas_heatBus_1) -= 0 - -c_e_ConverterBlock_relation(chp_powerplant_gas_gasBus_electricityBus_2)_: -+0.4 flow(gasBus_chp_powerplant_gas_2) --1 flow(chp_powerplant_gas_electricityBus_2) -= 0 - -c_e_ConverterBlock_relation(chp_powerplant_gas_gasBus_heatBus_2)_: -+0.5 flow(gasBus_chp_powerplant_gas_2) --1 flow(chp_powerplant_gas_heatBus_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(gasBus_chp_powerplant_gas_0)_: --1 InvestmentFlowBlock_invest(gasBus_chp_powerplant_gas_0) -+1 InvestmentFlowBlock_total(gasBus_chp_powerplant_gas_0) -= 0 - -c_u_InvestmentFlowBlock_max(gasBus_chp_powerplant_gas_0_0)_: -+1 flow(gasBus_chp_powerplant_gas_0) --1 InvestmentFlowBlock_total(gasBus_chp_powerplant_gas_0) -<= 0 - -c_u_InvestmentFlowBlock_max(gasBus_chp_powerplant_gas_0_1)_: -+1 flow(gasBus_chp_powerplant_gas_1) --1 InvestmentFlowBlock_total(gasBus_chp_powerplant_gas_0) -<= 0 - -c_u_InvestmentFlowBlock_max(gasBus_chp_powerplant_gas_0_2)_: -+1 flow(gasBus_chp_powerplant_gas_2) --1 InvestmentFlowBlock_total(gasBus_chp_powerplant_gas_0) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(gasBus_chp_powerplant_gas_0) <= 1000 - 0 <= flow(gasBus_chp_powerplant_gas_0) <= +inf - 0 <= flow(gasBus_chp_powerplant_gas_1) <= +inf - 0 <= flow(gasBus_chp_powerplant_gas_2) <= +inf - 0 <= flow(chp_powerplant_gas_electricityBus_0) <= +inf - 0 <= flow(chp_powerplant_gas_electricityBus_1) <= +inf - 0 <= flow(chp_powerplant_gas_electricityBus_2) <= +inf - 0 <= flow(chp_powerplant_gas_heatBus_0) <= +inf - 0 <= flow(chp_powerplant_gas_heatBus_1) <= +inf - 0 <= flow(chp_powerplant_gas_heatBus_2) <= +inf - 0 <= InvestmentFlowBlock_total(gasBus_chp_powerplant_gas_0) <= +inf -end diff --git a/tests/lp_files/linear_converter_chp_invest_multi_period.lp b/tests/lp_files/linear_converter_chp_invest_multi_period.lp deleted file mode 100644 index 6b77d3ba5..000000000 --- a/tests/lp_files/linear_converter_chp_invest_multi_period.lp +++ /dev/null @@ -1,274 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+1.8354884429290608 InvestmentFlowBlock_invest(gasBus_chp_powerplant_gas_0) -+1.2115039389350062 InvestmentFlowBlock_invest(gasBus_chp_powerplant_gas_1) -+0.5997544252153503 InvestmentFlowBlock_invest(gasBus_chp_powerplant_gas_2) -+50 flow(gasBus_chp_powerplant_gas_0) -+50 flow(gasBus_chp_powerplant_gas_1) -+49.01960784313725 flow(gasBus_chp_powerplant_gas_2) -+49.01960784313725 flow(gasBus_chp_powerplant_gas_3) -+48.058439061899264 flow(gasBus_chp_powerplant_gas_4) -+48.058439061899264 flow(gasBus_chp_powerplant_gas_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(chp_powerplant_gas_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(chp_powerplant_gas_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(chp_powerplant_gas_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(chp_powerplant_gas_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(chp_powerplant_gas_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(chp_powerplant_gas_electricityBus_5) -= 0 - -c_e_BusBlock_balance(gasBus_0)_: -+1 flow(gasBus_chp_powerplant_gas_0) -= 0 - -c_e_BusBlock_balance(gasBus_1)_: -+1 flow(gasBus_chp_powerplant_gas_1) -= 0 - -c_e_BusBlock_balance(gasBus_2)_: -+1 flow(gasBus_chp_powerplant_gas_2) -= 0 - -c_e_BusBlock_balance(gasBus_3)_: -+1 flow(gasBus_chp_powerplant_gas_3) -= 0 - -c_e_BusBlock_balance(gasBus_4)_: -+1 flow(gasBus_chp_powerplant_gas_4) -= 0 - -c_e_BusBlock_balance(gasBus_5)_: -+1 flow(gasBus_chp_powerplant_gas_5) -= 0 - -c_e_BusBlock_balance(heatBus_0)_: -+1 flow(chp_powerplant_gas_heatBus_0) -= 0 - -c_e_BusBlock_balance(heatBus_1)_: -+1 flow(chp_powerplant_gas_heatBus_1) -= 0 - -c_e_BusBlock_balance(heatBus_2)_: -+1 flow(chp_powerplant_gas_heatBus_2) -= 0 - -c_e_BusBlock_balance(heatBus_3)_: -+1 flow(chp_powerplant_gas_heatBus_3) -= 0 - -c_e_BusBlock_balance(heatBus_4)_: -+1 flow(chp_powerplant_gas_heatBus_4) -= 0 - -c_e_BusBlock_balance(heatBus_5)_: -+1 flow(chp_powerplant_gas_heatBus_5) -= 0 - -c_e_ConverterBlock_relation(chp_powerplant_gas_gasBus_electricityBus_0)_: -+0.4 flow(gasBus_chp_powerplant_gas_0) --1 flow(chp_powerplant_gas_electricityBus_0) -= 0 - -c_e_ConverterBlock_relation(chp_powerplant_gas_gasBus_heatBus_0)_: -+0.5 flow(gasBus_chp_powerplant_gas_0) --1 flow(chp_powerplant_gas_heatBus_0) -= 0 - -c_e_ConverterBlock_relation(chp_powerplant_gas_gasBus_electricityBus_1)_: -+0.4 flow(gasBus_chp_powerplant_gas_1) --1 flow(chp_powerplant_gas_electricityBus_1) -= 0 - -c_e_ConverterBlock_relation(chp_powerplant_gas_gasBus_heatBus_1)_: -+0.5 flow(gasBus_chp_powerplant_gas_1) --1 flow(chp_powerplant_gas_heatBus_1) -= 0 - -c_e_ConverterBlock_relation(chp_powerplant_gas_gasBus_electricityBus_2)_: -+0.4 flow(gasBus_chp_powerplant_gas_2) --1 flow(chp_powerplant_gas_electricityBus_2) -= 0 - -c_e_ConverterBlock_relation(chp_powerplant_gas_gasBus_heatBus_2)_: -+0.5 flow(gasBus_chp_powerplant_gas_2) --1 flow(chp_powerplant_gas_heatBus_2) -= 0 - -c_e_ConverterBlock_relation(chp_powerplant_gas_gasBus_electricityBus_3)_: -+0.4 flow(gasBus_chp_powerplant_gas_3) --1 flow(chp_powerplant_gas_electricityBus_3) -= 0 - -c_e_ConverterBlock_relation(chp_powerplant_gas_gasBus_heatBus_3)_: -+0.5 flow(gasBus_chp_powerplant_gas_3) --1 flow(chp_powerplant_gas_heatBus_3) -= 0 - -c_e_ConverterBlock_relation(chp_powerplant_gas_gasBus_electricityBus_4)_: -+0.4 flow(gasBus_chp_powerplant_gas_4) --1 flow(chp_powerplant_gas_electricityBus_4) -= 0 - -c_e_ConverterBlock_relation(chp_powerplant_gas_gasBus_heatBus_4)_: -+0.5 flow(gasBus_chp_powerplant_gas_4) --1 flow(chp_powerplant_gas_heatBus_4) -= 0 - -c_e_ConverterBlock_relation(chp_powerplant_gas_gasBus_electricityBus_5)_: -+0.4 flow(gasBus_chp_powerplant_gas_5) --1 flow(chp_powerplant_gas_electricityBus_5) -= 0 - -c_e_ConverterBlock_relation(chp_powerplant_gas_gasBus_heatBus_5)_: -+0.5 flow(gasBus_chp_powerplant_gas_5) --1 flow(chp_powerplant_gas_heatBus_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(gasBus_chp_powerplant_gas_0)_: --1 InvestmentFlowBlock_invest(gasBus_chp_powerplant_gas_0) -+1 InvestmentFlowBlock_total(gasBus_chp_powerplant_gas_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(gasBus_chp_powerplant_gas_1)_: --1 InvestmentFlowBlock_invest(gasBus_chp_powerplant_gas_1) --1 InvestmentFlowBlock_total(gasBus_chp_powerplant_gas_0) -+1 InvestmentFlowBlock_total(gasBus_chp_powerplant_gas_1) -+1 InvestmentFlowBlock_old(gasBus_chp_powerplant_gas_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(gasBus_chp_powerplant_gas_2)_: --1 InvestmentFlowBlock_invest(gasBus_chp_powerplant_gas_2) --1 InvestmentFlowBlock_total(gasBus_chp_powerplant_gas_1) -+1 InvestmentFlowBlock_total(gasBus_chp_powerplant_gas_2) -+1 InvestmentFlowBlock_old(gasBus_chp_powerplant_gas_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(gasBus_chp_powerplant_gas_0)_: -+1 InvestmentFlowBlock_old_end(gasBus_chp_powerplant_gas_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(gasBus_chp_powerplant_gas_1)_: -+1 InvestmentFlowBlock_old_end(gasBus_chp_powerplant_gas_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(gasBus_chp_powerplant_gas_2)_: -+1 InvestmentFlowBlock_old_end(gasBus_chp_powerplant_gas_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(gasBus_chp_powerplant_gas_0)_: -+1 InvestmentFlowBlock_old_exo(gasBus_chp_powerplant_gas_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(gasBus_chp_powerplant_gas_1)_: -+1 InvestmentFlowBlock_old_exo(gasBus_chp_powerplant_gas_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(gasBus_chp_powerplant_gas_2)_: -+1 InvestmentFlowBlock_old_exo(gasBus_chp_powerplant_gas_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(gasBus_chp_powerplant_gas_0)_: -+1 InvestmentFlowBlock_old(gasBus_chp_powerplant_gas_0) --1 InvestmentFlowBlock_old_end(gasBus_chp_powerplant_gas_0) --1 InvestmentFlowBlock_old_exo(gasBus_chp_powerplant_gas_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(gasBus_chp_powerplant_gas_1)_: -+1 InvestmentFlowBlock_old(gasBus_chp_powerplant_gas_1) --1 InvestmentFlowBlock_old_end(gasBus_chp_powerplant_gas_1) --1 InvestmentFlowBlock_old_exo(gasBus_chp_powerplant_gas_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(gasBus_chp_powerplant_gas_2)_: -+1 InvestmentFlowBlock_old(gasBus_chp_powerplant_gas_2) --1 InvestmentFlowBlock_old_end(gasBus_chp_powerplant_gas_2) --1 InvestmentFlowBlock_old_exo(gasBus_chp_powerplant_gas_2) -= 0 - -c_u_InvestmentFlowBlock_max(gasBus_chp_powerplant_gas_0_0)_: -+1 flow(gasBus_chp_powerplant_gas_0) --1 InvestmentFlowBlock_total(gasBus_chp_powerplant_gas_0) -<= 0 - -c_u_InvestmentFlowBlock_max(gasBus_chp_powerplant_gas_0_1)_: -+1 flow(gasBus_chp_powerplant_gas_1) --1 InvestmentFlowBlock_total(gasBus_chp_powerplant_gas_0) -<= 0 - -c_u_InvestmentFlowBlock_max(gasBus_chp_powerplant_gas_1_2)_: -+1 flow(gasBus_chp_powerplant_gas_2) --1 InvestmentFlowBlock_total(gasBus_chp_powerplant_gas_1) -<= 0 - -c_u_InvestmentFlowBlock_max(gasBus_chp_powerplant_gas_1_3)_: -+1 flow(gasBus_chp_powerplant_gas_3) --1 InvestmentFlowBlock_total(gasBus_chp_powerplant_gas_1) -<= 0 - -c_u_InvestmentFlowBlock_max(gasBus_chp_powerplant_gas_2_4)_: -+1 flow(gasBus_chp_powerplant_gas_4) --1 InvestmentFlowBlock_total(gasBus_chp_powerplant_gas_2) -<= 0 - -c_u_InvestmentFlowBlock_max(gasBus_chp_powerplant_gas_2_5)_: -+1 flow(gasBus_chp_powerplant_gas_5) --1 InvestmentFlowBlock_total(gasBus_chp_powerplant_gas_2) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(gasBus_chp_powerplant_gas_0) <= 1000 - 0 <= InvestmentFlowBlock_invest(gasBus_chp_powerplant_gas_1) <= 1000 - 0 <= InvestmentFlowBlock_invest(gasBus_chp_powerplant_gas_2) <= 1000 - 0 <= flow(gasBus_chp_powerplant_gas_0) <= +inf - 0 <= flow(gasBus_chp_powerplant_gas_1) <= +inf - 0 <= flow(gasBus_chp_powerplant_gas_2) <= +inf - 0 <= flow(gasBus_chp_powerplant_gas_3) <= +inf - 0 <= flow(gasBus_chp_powerplant_gas_4) <= +inf - 0 <= flow(gasBus_chp_powerplant_gas_5) <= +inf - 0 <= flow(chp_powerplant_gas_electricityBus_0) <= +inf - 0 <= flow(chp_powerplant_gas_electricityBus_1) <= +inf - 0 <= flow(chp_powerplant_gas_electricityBus_2) <= +inf - 0 <= flow(chp_powerplant_gas_electricityBus_3) <= +inf - 0 <= flow(chp_powerplant_gas_electricityBus_4) <= +inf - 0 <= flow(chp_powerplant_gas_electricityBus_5) <= +inf - 0 <= flow(chp_powerplant_gas_heatBus_0) <= +inf - 0 <= flow(chp_powerplant_gas_heatBus_1) <= +inf - 0 <= flow(chp_powerplant_gas_heatBus_2) <= +inf - 0 <= flow(chp_powerplant_gas_heatBus_3) <= +inf - 0 <= flow(chp_powerplant_gas_heatBus_4) <= +inf - 0 <= flow(chp_powerplant_gas_heatBus_5) <= +inf - 0 <= InvestmentFlowBlock_total(gasBus_chp_powerplant_gas_0) <= +inf - 0 <= InvestmentFlowBlock_total(gasBus_chp_powerplant_gas_1) <= +inf - 0 <= InvestmentFlowBlock_total(gasBus_chp_powerplant_gas_2) <= +inf - 0 <= InvestmentFlowBlock_old(gasBus_chp_powerplant_gas_0) <= +inf - 0 <= InvestmentFlowBlock_old(gasBus_chp_powerplant_gas_1) <= +inf - 0 <= InvestmentFlowBlock_old(gasBus_chp_powerplant_gas_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(gasBus_chp_powerplant_gas_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(gasBus_chp_powerplant_gas_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(gasBus_chp_powerplant_gas_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(gasBus_chp_powerplant_gas_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(gasBus_chp_powerplant_gas_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(gasBus_chp_powerplant_gas_2) <= +inf -end diff --git a/tests/lp_files/linear_converter_chp_multi_period.lp b/tests/lp_files/linear_converter_chp_multi_period.lp deleted file mode 100644 index 4c5dd87f5..000000000 --- a/tests/lp_files/linear_converter_chp_multi_period.lp +++ /dev/null @@ -1,165 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+50 flow(gasBus_CHPpowerplantGas_0) -+50 flow(gasBus_CHPpowerplantGas_1) -+49.01960784313725 flow(gasBus_CHPpowerplantGas_2) -+49.01960784313725 flow(gasBus_CHPpowerplantGas_3) -+48.058439061899264 flow(gasBus_CHPpowerplantGas_4) -+48.058439061899264 flow(gasBus_CHPpowerplantGas_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(CHPpowerplantGas_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(CHPpowerplantGas_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(CHPpowerplantGas_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(CHPpowerplantGas_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(CHPpowerplantGas_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(CHPpowerplantGas_electricityBus_5) -= 0 - -c_e_BusBlock_balance(gasBus_0)_: -+1 flow(gasBus_CHPpowerplantGas_0) -= 0 - -c_e_BusBlock_balance(gasBus_1)_: -+1 flow(gasBus_CHPpowerplantGas_1) -= 0 - -c_e_BusBlock_balance(gasBus_2)_: -+1 flow(gasBus_CHPpowerplantGas_2) -= 0 - -c_e_BusBlock_balance(gasBus_3)_: -+1 flow(gasBus_CHPpowerplantGas_3) -= 0 - -c_e_BusBlock_balance(gasBus_4)_: -+1 flow(gasBus_CHPpowerplantGas_4) -= 0 - -c_e_BusBlock_balance(gasBus_5)_: -+1 flow(gasBus_CHPpowerplantGas_5) -= 0 - -c_e_BusBlock_balance(heatBus_0)_: -+1 flow(CHPpowerplantGas_heatBus_0) -= 0 - -c_e_BusBlock_balance(heatBus_1)_: -+1 flow(CHPpowerplantGas_heatBus_1) -= 0 - -c_e_BusBlock_balance(heatBus_2)_: -+1 flow(CHPpowerplantGas_heatBus_2) -= 0 - -c_e_BusBlock_balance(heatBus_3)_: -+1 flow(CHPpowerplantGas_heatBus_3) -= 0 - -c_e_BusBlock_balance(heatBus_4)_: -+1 flow(CHPpowerplantGas_heatBus_4) -= 0 - -c_e_BusBlock_balance(heatBus_5)_: -+1 flow(CHPpowerplantGas_heatBus_5) -= 0 - -c_e_ConverterBlock_relation(CHPpowerplantGas_gasBus_electricityBus_0)_: -+0.4 flow(gasBus_CHPpowerplantGas_0) --1 flow(CHPpowerplantGas_electricityBus_0) -= 0 - -c_e_ConverterBlock_relation(CHPpowerplantGas_gasBus_heatBus_0)_: -+0.5 flow(gasBus_CHPpowerplantGas_0) --1 flow(CHPpowerplantGas_heatBus_0) -= 0 - -c_e_ConverterBlock_relation(CHPpowerplantGas_gasBus_electricityBus_1)_: -+0.4 flow(gasBus_CHPpowerplantGas_1) --1 flow(CHPpowerplantGas_electricityBus_1) -= 0 - -c_e_ConverterBlock_relation(CHPpowerplantGas_gasBus_heatBus_1)_: -+0.5 flow(gasBus_CHPpowerplantGas_1) --1 flow(CHPpowerplantGas_heatBus_1) -= 0 - -c_e_ConverterBlock_relation(CHPpowerplantGas_gasBus_electricityBus_2)_: -+0.4 flow(gasBus_CHPpowerplantGas_2) --1 flow(CHPpowerplantGas_electricityBus_2) -= 0 - -c_e_ConverterBlock_relation(CHPpowerplantGas_gasBus_heatBus_2)_: -+0.5 flow(gasBus_CHPpowerplantGas_2) --1 flow(CHPpowerplantGas_heatBus_2) -= 0 - -c_e_ConverterBlock_relation(CHPpowerplantGas_gasBus_electricityBus_3)_: -+0.4 flow(gasBus_CHPpowerplantGas_3) --1 flow(CHPpowerplantGas_electricityBus_3) -= 0 - -c_e_ConverterBlock_relation(CHPpowerplantGas_gasBus_heatBus_3)_: -+0.5 flow(gasBus_CHPpowerplantGas_3) --1 flow(CHPpowerplantGas_heatBus_3) -= 0 - -c_e_ConverterBlock_relation(CHPpowerplantGas_gasBus_electricityBus_4)_: -+0.4 flow(gasBus_CHPpowerplantGas_4) --1 flow(CHPpowerplantGas_electricityBus_4) -= 0 - -c_e_ConverterBlock_relation(CHPpowerplantGas_gasBus_heatBus_4)_: -+0.5 flow(gasBus_CHPpowerplantGas_4) --1 flow(CHPpowerplantGas_heatBus_4) -= 0 - -c_e_ConverterBlock_relation(CHPpowerplantGas_gasBus_electricityBus_5)_: -+0.4 flow(gasBus_CHPpowerplantGas_5) --1 flow(CHPpowerplantGas_electricityBus_5) -= 0 - -c_e_ConverterBlock_relation(CHPpowerplantGas_gasBus_heatBus_5)_: -+0.5 flow(gasBus_CHPpowerplantGas_5) --1 flow(CHPpowerplantGas_heatBus_5) -= 0 - -bounds - 0.0 <= flow(gasBus_CHPpowerplantGas_0) <= 100000000000.0 - 0.0 <= flow(gasBus_CHPpowerplantGas_1) <= 100000000000.0 - 0.0 <= flow(gasBus_CHPpowerplantGas_2) <= 100000000000.0 - 0.0 <= flow(gasBus_CHPpowerplantGas_3) <= 100000000000.0 - 0.0 <= flow(gasBus_CHPpowerplantGas_4) <= 100000000000.0 - 0.0 <= flow(gasBus_CHPpowerplantGas_5) <= 100000000000.0 - 0 <= flow(CHPpowerplantGas_electricityBus_0) <= +inf - 0 <= flow(CHPpowerplantGas_electricityBus_1) <= +inf - 0 <= flow(CHPpowerplantGas_electricityBus_2) <= +inf - 0 <= flow(CHPpowerplantGas_electricityBus_3) <= +inf - 0 <= flow(CHPpowerplantGas_electricityBus_4) <= +inf - 0 <= flow(CHPpowerplantGas_electricityBus_5) <= +inf - 0 <= flow(CHPpowerplantGas_heatBus_0) <= +inf - 0 <= flow(CHPpowerplantGas_heatBus_1) <= +inf - 0 <= flow(CHPpowerplantGas_heatBus_2) <= +inf - 0 <= flow(CHPpowerplantGas_heatBus_3) <= +inf - 0 <= flow(CHPpowerplantGas_heatBus_4) <= +inf - 0 <= flow(CHPpowerplantGas_heatBus_5) <= +inf -end diff --git a/tests/lp_files/linear_converter_invest.lp b/tests/lp_files/linear_converter_invest.lp deleted file mode 100644 index c3d16e484..000000000 --- a/tests/lp_files/linear_converter_invest.lp +++ /dev/null @@ -1,80 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+20 InvestmentFlowBlock_invest(powerplant_gas_electricity_0) -+50 flow(powerplant_gas_electricity_0) -+50 flow(powerplant_gas_electricity_1) -+50 flow(powerplant_gas_electricity_2) - -s.t. - -c_e_BusBlock_balance(electricity_0)_: -+1 flow(powerplant_gas_electricity_0) -= 0 - -c_e_BusBlock_balance(electricity_1)_: -+1 flow(powerplant_gas_electricity_1) -= 0 - -c_e_BusBlock_balance(electricity_2)_: -+1 flow(powerplant_gas_electricity_2) -= 0 - -c_e_BusBlock_balance(gas_0)_: -+1 flow(gas_powerplant_gas_0) -= 0 - -c_e_BusBlock_balance(gas_1)_: -+1 flow(gas_powerplant_gas_1) -= 0 - -c_e_BusBlock_balance(gas_2)_: -+1 flow(gas_powerplant_gas_2) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_0)_: -+0.58 flow(gas_powerplant_gas_0) --1 flow(powerplant_gas_electricity_0) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_1)_: -+0.58 flow(gas_powerplant_gas_1) --1 flow(powerplant_gas_electricity_1) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_2)_: -+0.58 flow(gas_powerplant_gas_2) --1 flow(powerplant_gas_electricity_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(powerplant_gas_electricity_0)_: --1 InvestmentFlowBlock_invest(powerplant_gas_electricity_0) -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_0) -= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_0_0)_: -+1 flow(powerplant_gas_electricity_0) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_0) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_0_1)_: -+1 flow(powerplant_gas_electricity_1) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_0) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_0_2)_: -+1 flow(powerplant_gas_electricity_2) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_0) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(powerplant_gas_electricity_0) <= 1000 - 0 <= flow(gas_powerplant_gas_0) <= +inf - 0 <= flow(gas_powerplant_gas_1) <= +inf - 0 <= flow(gas_powerplant_gas_2) <= +inf - 0 <= flow(powerplant_gas_electricity_0) <= +inf - 0 <= flow(powerplant_gas_electricity_1) <= +inf - 0 <= flow(powerplant_gas_electricity_2) <= +inf - 0 <= InvestmentFlowBlock_total(powerplant_gas_electricity_0) <= +inf -end diff --git a/tests/lp_files/linear_converter_invest_multi_period.lp b/tests/lp_files/linear_converter_invest_multi_period.lp deleted file mode 100644 index 334a7f5dd..000000000 --- a/tests/lp_files/linear_converter_invest_multi_period.lp +++ /dev/null @@ -1,230 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+2.1084501918380276 InvestmentFlowBlock_invest(powerplant_gas_electricity_0) -+1.3916708232625816 InvestmentFlowBlock_invest(powerplant_gas_electricity_1) -+0.6889459521101896 InvestmentFlowBlock_invest(powerplant_gas_electricity_2) -+50 flow(powerplant_gas_electricity_0) -+50 flow(powerplant_gas_electricity_1) -+49.01960784313725 flow(powerplant_gas_electricity_2) -+49.01960784313725 flow(powerplant_gas_electricity_3) -+48.058439061899264 flow(powerplant_gas_electricity_4) -+48.058439061899264 flow(powerplant_gas_electricity_5) - -s.t. - -c_e_BusBlock_balance(electricity_0)_: -+1 flow(powerplant_gas_electricity_0) -= 0 - -c_e_BusBlock_balance(electricity_1)_: -+1 flow(powerplant_gas_electricity_1) -= 0 - -c_e_BusBlock_balance(electricity_2)_: -+1 flow(powerplant_gas_electricity_2) -= 0 - -c_e_BusBlock_balance(electricity_3)_: -+1 flow(powerplant_gas_electricity_3) -= 0 - -c_e_BusBlock_balance(electricity_4)_: -+1 flow(powerplant_gas_electricity_4) -= 0 - -c_e_BusBlock_balance(electricity_5)_: -+1 flow(powerplant_gas_electricity_5) -= 0 - -c_e_BusBlock_balance(gas_0)_: -+1 flow(gas_powerplant_gas_0) -= 0 - -c_e_BusBlock_balance(gas_1)_: -+1 flow(gas_powerplant_gas_1) -= 0 - -c_e_BusBlock_balance(gas_2)_: -+1 flow(gas_powerplant_gas_2) -= 0 - -c_e_BusBlock_balance(gas_3)_: -+1 flow(gas_powerplant_gas_3) -= 0 - -c_e_BusBlock_balance(gas_4)_: -+1 flow(gas_powerplant_gas_4) -= 0 - -c_e_BusBlock_balance(gas_5)_: -+1 flow(gas_powerplant_gas_5) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_0)_: -+0.58 flow(gas_powerplant_gas_0) --1 flow(powerplant_gas_electricity_0) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_1)_: -+0.58 flow(gas_powerplant_gas_1) --1 flow(powerplant_gas_electricity_1) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_2)_: -+0.58 flow(gas_powerplant_gas_2) --1 flow(powerplant_gas_electricity_2) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_3)_: -+0.58 flow(gas_powerplant_gas_3) --1 flow(powerplant_gas_electricity_3) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_4)_: -+0.58 flow(gas_powerplant_gas_4) --1 flow(powerplant_gas_electricity_4) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_5)_: -+0.58 flow(gas_powerplant_gas_5) --1 flow(powerplant_gas_electricity_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(powerplant_gas_electricity_0)_: --1 InvestmentFlowBlock_invest(powerplant_gas_electricity_0) -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_0) -= 50 - -c_e_InvestmentFlowBlock_total_rule(powerplant_gas_electricity_1)_: --1 InvestmentFlowBlock_invest(powerplant_gas_electricity_1) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_0) -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_1) -+1 InvestmentFlowBlock_old(powerplant_gas_electricity_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(powerplant_gas_electricity_2)_: --1 InvestmentFlowBlock_invest(powerplant_gas_electricity_2) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_1) -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_2) -+1 InvestmentFlowBlock_old(powerplant_gas_electricity_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(powerplant_gas_electricity_0)_: -+1 InvestmentFlowBlock_old_end(powerplant_gas_electricity_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(powerplant_gas_electricity_1)_: -+1 InvestmentFlowBlock_old_end(powerplant_gas_electricity_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(powerplant_gas_electricity_2)_: -+1 InvestmentFlowBlock_old_end(powerplant_gas_electricity_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(powerplant_gas_electricity_0)_: -+1 InvestmentFlowBlock_old_exo(powerplant_gas_electricity_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(powerplant_gas_electricity_1)_: -+1 InvestmentFlowBlock_old_exo(powerplant_gas_electricity_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(powerplant_gas_electricity_2)_: -+1 InvestmentFlowBlock_old_exo(powerplant_gas_electricity_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(powerplant_gas_electricity_0)_: -+1 InvestmentFlowBlock_old(powerplant_gas_electricity_0) --1 InvestmentFlowBlock_old_end(powerplant_gas_electricity_0) --1 InvestmentFlowBlock_old_exo(powerplant_gas_electricity_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(powerplant_gas_electricity_1)_: -+1 InvestmentFlowBlock_old(powerplant_gas_electricity_1) --1 InvestmentFlowBlock_old_end(powerplant_gas_electricity_1) --1 InvestmentFlowBlock_old_exo(powerplant_gas_electricity_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(powerplant_gas_electricity_2)_: -+1 InvestmentFlowBlock_old(powerplant_gas_electricity_2) --1 InvestmentFlowBlock_old_end(powerplant_gas_electricity_2) --1 InvestmentFlowBlock_old_exo(powerplant_gas_electricity_2) -= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_0_0)_: -+1 flow(powerplant_gas_electricity_0) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_0) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_0_1)_: -+1 flow(powerplant_gas_electricity_1) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_0) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_1_2)_: -+1 flow(powerplant_gas_electricity_2) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_1) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_1_3)_: -+1 flow(powerplant_gas_electricity_3) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_1) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_2_4)_: -+1 flow(powerplant_gas_electricity_4) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_2) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_2_5)_: -+1 flow(powerplant_gas_electricity_5) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_2) -<= 0 - -c_u_InvestmentFlowBlock_overall_maximum(powerplant_gas_electricity_0)_: -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_0) -<= 10000 - -c_u_InvestmentFlowBlock_overall_maximum(powerplant_gas_electricity_1)_: -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_1) -<= 10000 - -c_u_InvestmentFlowBlock_overall_maximum(powerplant_gas_electricity_2)_: -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_2) -<= 10000 - -c_l_InvestmentFlowBlock_overall_minimum(powerplant_gas_electricity)_: -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_2) ->= 200 - -bounds - 0 <= InvestmentFlowBlock_invest(powerplant_gas_electricity_0) <= 1000 - 0 <= InvestmentFlowBlock_invest(powerplant_gas_electricity_1) <= 1000 - 0 <= InvestmentFlowBlock_invest(powerplant_gas_electricity_2) <= 1000 - 0 <= flow(gas_powerplant_gas_0) <= +inf - 0 <= flow(gas_powerplant_gas_1) <= +inf - 0 <= flow(gas_powerplant_gas_2) <= +inf - 0 <= flow(gas_powerplant_gas_3) <= +inf - 0 <= flow(gas_powerplant_gas_4) <= +inf - 0 <= flow(gas_powerplant_gas_5) <= +inf - 0 <= flow(powerplant_gas_electricity_0) <= +inf - 0 <= flow(powerplant_gas_electricity_1) <= +inf - 0 <= flow(powerplant_gas_electricity_2) <= +inf - 0 <= flow(powerplant_gas_electricity_3) <= +inf - 0 <= flow(powerplant_gas_electricity_4) <= +inf - 0 <= flow(powerplant_gas_electricity_5) <= +inf - 0 <= InvestmentFlowBlock_total(powerplant_gas_electricity_0) <= +inf - 0 <= InvestmentFlowBlock_total(powerplant_gas_electricity_1) <= +inf - 0 <= InvestmentFlowBlock_total(powerplant_gas_electricity_2) <= +inf - 0 <= InvestmentFlowBlock_old(powerplant_gas_electricity_0) <= +inf - 0 <= InvestmentFlowBlock_old(powerplant_gas_electricity_1) <= +inf - 0 <= InvestmentFlowBlock_old(powerplant_gas_electricity_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(powerplant_gas_electricity_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(powerplant_gas_electricity_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(powerplant_gas_electricity_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(powerplant_gas_electricity_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(powerplant_gas_electricity_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(powerplant_gas_electricity_2) <= +inf -end diff --git a/tests/lp_files/linear_converter_invest_multi_period_old.lp b/tests/lp_files/linear_converter_invest_multi_period_old.lp deleted file mode 100644 index 5d1d5b398..000000000 --- a/tests/lp_files/linear_converter_invest_multi_period_old.lp +++ /dev/null @@ -1,231 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+20.0 InvestmentFlowBlock_invest(powerplant_gas_electricity_0) -+19.6078431372549 InvestmentFlowBlock_invest(powerplant_gas_electricity_1) -+9.706853038245011 InvestmentFlowBlock_invest(powerplant_gas_electricity_2) -+50 flow(powerplant_gas_electricity_0) -+50 flow(powerplant_gas_electricity_1) -+49.01960784313725 flow(powerplant_gas_electricity_2) -+49.01960784313725 flow(powerplant_gas_electricity_3) -+48.058439061899264 flow(powerplant_gas_electricity_4) -+48.058439061899264 flow(powerplant_gas_electricity_5) - -s.t. - -c_e_BusBlock_balance(electricity_0)_: -+1 flow(powerplant_gas_electricity_0) -= 0 - -c_e_BusBlock_balance(electricity_1)_: -+1 flow(powerplant_gas_electricity_1) -= 0 - -c_e_BusBlock_balance(electricity_2)_: -+1 flow(powerplant_gas_electricity_2) -= 0 - -c_e_BusBlock_balance(electricity_3)_: -+1 flow(powerplant_gas_electricity_3) -= 0 - -c_e_BusBlock_balance(electricity_4)_: -+1 flow(powerplant_gas_electricity_4) -= 0 - -c_e_BusBlock_balance(electricity_5)_: -+1 flow(powerplant_gas_electricity_5) -= 0 - -c_e_BusBlock_balance(gas_0)_: -+1 flow(gas_powerplant_gas_0) -= 0 - -c_e_BusBlock_balance(gas_1)_: -+1 flow(gas_powerplant_gas_1) -= 0 - -c_e_BusBlock_balance(gas_2)_: -+1 flow(gas_powerplant_gas_2) -= 0 - -c_e_BusBlock_balance(gas_3)_: -+1 flow(gas_powerplant_gas_3) -= 0 - -c_e_BusBlock_balance(gas_4)_: -+1 flow(gas_powerplant_gas_4) -= 0 - -c_e_BusBlock_balance(gas_5)_: -+1 flow(gas_powerplant_gas_5) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_0)_: -+0.58 flow(gas_powerplant_gas_0) --1 flow(powerplant_gas_electricity_0) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_1)_: -+0.58 flow(gas_powerplant_gas_1) --1 flow(powerplant_gas_electricity_1) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_2)_: -+0.58 flow(gas_powerplant_gas_2) --1 flow(powerplant_gas_electricity_2) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_3)_: -+0.58 flow(gas_powerplant_gas_3) --1 flow(powerplant_gas_electricity_3) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_4)_: -+0.58 flow(gas_powerplant_gas_4) --1 flow(powerplant_gas_electricity_4) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_5)_: -+0.58 flow(gas_powerplant_gas_5) --1 flow(powerplant_gas_electricity_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(powerplant_gas_electricity_0)_: --1 InvestmentFlowBlock_invest(powerplant_gas_electricity_0) -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_0) -= 50 - -c_e_InvestmentFlowBlock_total_rule(powerplant_gas_electricity_1)_: --1 InvestmentFlowBlock_invest(powerplant_gas_electricity_1) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_0) -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_1) -+1 InvestmentFlowBlock_old(powerplant_gas_electricity_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(powerplant_gas_electricity_2)_: --1 InvestmentFlowBlock_invest(powerplant_gas_electricity_2) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_1) -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_2) -+1 InvestmentFlowBlock_old(powerplant_gas_electricity_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(powerplant_gas_electricity_0)_: -+1 InvestmentFlowBlock_old_end(powerplant_gas_electricity_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(powerplant_gas_electricity_1)_: -+1 InvestmentFlowBlock_old_end(powerplant_gas_electricity_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(powerplant_gas_electricity_2)_: --1 InvestmentFlowBlock_invest(powerplant_gas_electricity_0) -+1 InvestmentFlowBlock_old_end(powerplant_gas_electricity_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(powerplant_gas_electricity_0)_: -+1 InvestmentFlowBlock_old_exo(powerplant_gas_electricity_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(powerplant_gas_electricity_1)_: -+1 InvestmentFlowBlock_old_exo(powerplant_gas_electricity_1) -= 50 - -c_e_InvestmentFlowBlock_old_rule_exo(powerplant_gas_electricity_2)_: -+1 InvestmentFlowBlock_old_exo(powerplant_gas_electricity_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(powerplant_gas_electricity_0)_: -+1 InvestmentFlowBlock_old(powerplant_gas_electricity_0) --1 InvestmentFlowBlock_old_end(powerplant_gas_electricity_0) --1 InvestmentFlowBlock_old_exo(powerplant_gas_electricity_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(powerplant_gas_electricity_1)_: -+1 InvestmentFlowBlock_old(powerplant_gas_electricity_1) --1 InvestmentFlowBlock_old_end(powerplant_gas_electricity_1) --1 InvestmentFlowBlock_old_exo(powerplant_gas_electricity_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(powerplant_gas_electricity_2)_: -+1 InvestmentFlowBlock_old(powerplant_gas_electricity_2) --1 InvestmentFlowBlock_old_end(powerplant_gas_electricity_2) --1 InvestmentFlowBlock_old_exo(powerplant_gas_electricity_2) -= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_0_0)_: -+1 flow(powerplant_gas_electricity_0) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_0) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_0_1)_: -+1 flow(powerplant_gas_electricity_1) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_0) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_1_2)_: -+1 flow(powerplant_gas_electricity_2) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_1) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_1_3)_: -+1 flow(powerplant_gas_electricity_3) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_1) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_2_4)_: -+1 flow(powerplant_gas_electricity_4) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_2) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_2_5)_: -+1 flow(powerplant_gas_electricity_5) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_2) -<= 0 - -c_u_InvestmentFlowBlock_overall_maximum(powerplant_gas_electricity_0)_: -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_0) -<= 10000 - -c_u_InvestmentFlowBlock_overall_maximum(powerplant_gas_electricity_1)_: -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_1) -<= 10000 - -c_u_InvestmentFlowBlock_overall_maximum(powerplant_gas_electricity_2)_: -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_2) -<= 10000 - -c_l_InvestmentFlowBlock_overall_minimum(powerplant_gas_electricity)_: -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_2) ->= 200 - -bounds - 0 <= InvestmentFlowBlock_invest(powerplant_gas_electricity_0) <= 1000 - 0 <= InvestmentFlowBlock_invest(powerplant_gas_electricity_1) <= 1000 - 0 <= InvestmentFlowBlock_invest(powerplant_gas_electricity_2) <= 1000 - 0 <= flow(gas_powerplant_gas_0) <= +inf - 0 <= flow(gas_powerplant_gas_1) <= +inf - 0 <= flow(gas_powerplant_gas_2) <= +inf - 0 <= flow(gas_powerplant_gas_3) <= +inf - 0 <= flow(gas_powerplant_gas_4) <= +inf - 0 <= flow(gas_powerplant_gas_5) <= +inf - 0 <= flow(powerplant_gas_electricity_0) <= +inf - 0 <= flow(powerplant_gas_electricity_1) <= +inf - 0 <= flow(powerplant_gas_electricity_2) <= +inf - 0 <= flow(powerplant_gas_electricity_3) <= +inf - 0 <= flow(powerplant_gas_electricity_4) <= +inf - 0 <= flow(powerplant_gas_electricity_5) <= +inf - 0 <= InvestmentFlowBlock_total(powerplant_gas_electricity_0) <= +inf - 0 <= InvestmentFlowBlock_total(powerplant_gas_electricity_1) <= +inf - 0 <= InvestmentFlowBlock_total(powerplant_gas_electricity_2) <= +inf - 0 <= InvestmentFlowBlock_old(powerplant_gas_electricity_0) <= +inf - 0 <= InvestmentFlowBlock_old(powerplant_gas_electricity_1) <= +inf - 0 <= InvestmentFlowBlock_old(powerplant_gas_electricity_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(powerplant_gas_electricity_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(powerplant_gas_electricity_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(powerplant_gas_electricity_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(powerplant_gas_electricity_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(powerplant_gas_electricity_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(powerplant_gas_electricity_2) <= +inf -end diff --git a/tests/lp_files/linear_converter_invest_multi_period_remaining_value.lp b/tests/lp_files/linear_converter_invest_multi_period_remaining_value.lp deleted file mode 100644 index 459a82634..000000000 --- a/tests/lp_files/linear_converter_invest_multi_period_remaining_value.lp +++ /dev/null @@ -1,230 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+0.22380552274393728 InvestmentFlowBlock_invest(powerplant_gas_electricity_0) -+0.37976494755240464 InvestmentFlowBlock_invest(powerplant_gas_electricity_1) -+0.6200513568991706 InvestmentFlowBlock_invest(powerplant_gas_electricity_2) -+50 flow(powerplant_gas_electricity_0) -+50 flow(powerplant_gas_electricity_1) -+49.01960784313725 flow(powerplant_gas_electricity_2) -+49.01960784313725 flow(powerplant_gas_electricity_3) -+48.058439061899264 flow(powerplant_gas_electricity_4) -+48.058439061899264 flow(powerplant_gas_electricity_5) - -s.t. - -c_e_BusBlock_balance(electricity_0)_: -+1 flow(powerplant_gas_electricity_0) -= 0 - -c_e_BusBlock_balance(electricity_1)_: -+1 flow(powerplant_gas_electricity_1) -= 0 - -c_e_BusBlock_balance(electricity_2)_: -+1 flow(powerplant_gas_electricity_2) -= 0 - -c_e_BusBlock_balance(electricity_3)_: -+1 flow(powerplant_gas_electricity_3) -= 0 - -c_e_BusBlock_balance(electricity_4)_: -+1 flow(powerplant_gas_electricity_4) -= 0 - -c_e_BusBlock_balance(electricity_5)_: -+1 flow(powerplant_gas_electricity_5) -= 0 - -c_e_BusBlock_balance(gas_0)_: -+1 flow(gas_powerplant_gas_0) -= 0 - -c_e_BusBlock_balance(gas_1)_: -+1 flow(gas_powerplant_gas_1) -= 0 - -c_e_BusBlock_balance(gas_2)_: -+1 flow(gas_powerplant_gas_2) -= 0 - -c_e_BusBlock_balance(gas_3)_: -+1 flow(gas_powerplant_gas_3) -= 0 - -c_e_BusBlock_balance(gas_4)_: -+1 flow(gas_powerplant_gas_4) -= 0 - -c_e_BusBlock_balance(gas_5)_: -+1 flow(gas_powerplant_gas_5) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_0)_: -+0.58 flow(gas_powerplant_gas_0) --1 flow(powerplant_gas_electricity_0) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_1)_: -+0.58 flow(gas_powerplant_gas_1) --1 flow(powerplant_gas_electricity_1) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_2)_: -+0.58 flow(gas_powerplant_gas_2) --1 flow(powerplant_gas_electricity_2) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_3)_: -+0.58 flow(gas_powerplant_gas_3) --1 flow(powerplant_gas_electricity_3) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_4)_: -+0.58 flow(gas_powerplant_gas_4) --1 flow(powerplant_gas_electricity_4) -= 0 - -c_e_ConverterBlock_relation(powerplant_gas_gas_electricity_5)_: -+0.58 flow(gas_powerplant_gas_5) --1 flow(powerplant_gas_electricity_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(powerplant_gas_electricity_0)_: --1 InvestmentFlowBlock_invest(powerplant_gas_electricity_0) -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_0) -= 50 - -c_e_InvestmentFlowBlock_total_rule(powerplant_gas_electricity_1)_: --1 InvestmentFlowBlock_invest(powerplant_gas_electricity_1) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_0) -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_1) -+1 InvestmentFlowBlock_old(powerplant_gas_electricity_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(powerplant_gas_electricity_2)_: --1 InvestmentFlowBlock_invest(powerplant_gas_electricity_2) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_1) -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_2) -+1 InvestmentFlowBlock_old(powerplant_gas_electricity_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(powerplant_gas_electricity_0)_: -+1 InvestmentFlowBlock_old_end(powerplant_gas_electricity_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(powerplant_gas_electricity_1)_: -+1 InvestmentFlowBlock_old_end(powerplant_gas_electricity_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(powerplant_gas_electricity_2)_: -+1 InvestmentFlowBlock_old_end(powerplant_gas_electricity_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(powerplant_gas_electricity_0)_: -+1 InvestmentFlowBlock_old_exo(powerplant_gas_electricity_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(powerplant_gas_electricity_1)_: -+1 InvestmentFlowBlock_old_exo(powerplant_gas_electricity_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(powerplant_gas_electricity_2)_: -+1 InvestmentFlowBlock_old_exo(powerplant_gas_electricity_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(powerplant_gas_electricity_0)_: -+1 InvestmentFlowBlock_old(powerplant_gas_electricity_0) --1 InvestmentFlowBlock_old_end(powerplant_gas_electricity_0) --1 InvestmentFlowBlock_old_exo(powerplant_gas_electricity_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(powerplant_gas_electricity_1)_: -+1 InvestmentFlowBlock_old(powerplant_gas_electricity_1) --1 InvestmentFlowBlock_old_end(powerplant_gas_electricity_1) --1 InvestmentFlowBlock_old_exo(powerplant_gas_electricity_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(powerplant_gas_electricity_2)_: -+1 InvestmentFlowBlock_old(powerplant_gas_electricity_2) --1 InvestmentFlowBlock_old_end(powerplant_gas_electricity_2) --1 InvestmentFlowBlock_old_exo(powerplant_gas_electricity_2) -= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_0_0)_: -+1 flow(powerplant_gas_electricity_0) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_0) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_0_1)_: -+1 flow(powerplant_gas_electricity_1) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_0) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_1_2)_: -+1 flow(powerplant_gas_electricity_2) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_1) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_1_3)_: -+1 flow(powerplant_gas_electricity_3) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_1) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_2_4)_: -+1 flow(powerplant_gas_electricity_4) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_2) -<= 0 - -c_u_InvestmentFlowBlock_max(powerplant_gas_electricity_2_5)_: -+1 flow(powerplant_gas_electricity_5) --1 InvestmentFlowBlock_total(powerplant_gas_electricity_2) -<= 0 - -c_u_InvestmentFlowBlock_overall_maximum(powerplant_gas_electricity_0)_: -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_0) -<= 10000 - -c_u_InvestmentFlowBlock_overall_maximum(powerplant_gas_electricity_1)_: -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_1) -<= 10000 - -c_u_InvestmentFlowBlock_overall_maximum(powerplant_gas_electricity_2)_: -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_2) -<= 10000 - -c_l_InvestmentFlowBlock_overall_minimum(powerplant_gas_electricity)_: -+1 InvestmentFlowBlock_total(powerplant_gas_electricity_2) ->= 200 - -bounds - 0 <= InvestmentFlowBlock_invest(powerplant_gas_electricity_0) <= 1000 - 0 <= InvestmentFlowBlock_invest(powerplant_gas_electricity_1) <= 1000 - 0 <= InvestmentFlowBlock_invest(powerplant_gas_electricity_2) <= 1000 - 0 <= flow(gas_powerplant_gas_0) <= +inf - 0 <= flow(gas_powerplant_gas_1) <= +inf - 0 <= flow(gas_powerplant_gas_2) <= +inf - 0 <= flow(gas_powerplant_gas_3) <= +inf - 0 <= flow(gas_powerplant_gas_4) <= +inf - 0 <= flow(gas_powerplant_gas_5) <= +inf - 0 <= flow(powerplant_gas_electricity_0) <= +inf - 0 <= flow(powerplant_gas_electricity_1) <= +inf - 0 <= flow(powerplant_gas_electricity_2) <= +inf - 0 <= flow(powerplant_gas_electricity_3) <= +inf - 0 <= flow(powerplant_gas_electricity_4) <= +inf - 0 <= flow(powerplant_gas_electricity_5) <= +inf - 0 <= InvestmentFlowBlock_total(powerplant_gas_electricity_0) <= +inf - 0 <= InvestmentFlowBlock_total(powerplant_gas_electricity_1) <= +inf - 0 <= InvestmentFlowBlock_total(powerplant_gas_electricity_2) <= +inf - 0 <= InvestmentFlowBlock_old(powerplant_gas_electricity_0) <= +inf - 0 <= InvestmentFlowBlock_old(powerplant_gas_electricity_1) <= +inf - 0 <= InvestmentFlowBlock_old(powerplant_gas_electricity_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(powerplant_gas_electricity_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(powerplant_gas_electricity_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(powerplant_gas_electricity_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(powerplant_gas_electricity_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(powerplant_gas_electricity_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(powerplant_gas_electricity_2) <= +inf -end diff --git a/tests/lp_files/linear_converter_multi_period.lp b/tests/lp_files/linear_converter_multi_period.lp deleted file mode 100644 index 31957b90a..000000000 --- a/tests/lp_files/linear_converter_multi_period.lp +++ /dev/null @@ -1,105 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+50 flow(powerplantGas_electricity_0) -+50 flow(powerplantGas_electricity_1) -+49.01960784313725 flow(powerplantGas_electricity_2) -+49.01960784313725 flow(powerplantGas_electricity_3) -+48.058439061899264 flow(powerplantGas_electricity_4) -+48.058439061899264 flow(powerplantGas_electricity_5) - -s.t. - -c_e_BusBlock_balance(electricity_0)_: -+1 flow(powerplantGas_electricity_0) -= 0 - -c_e_BusBlock_balance(electricity_1)_: -+1 flow(powerplantGas_electricity_1) -= 0 - -c_e_BusBlock_balance(electricity_2)_: -+1 flow(powerplantGas_electricity_2) -= 0 - -c_e_BusBlock_balance(electricity_3)_: -+1 flow(powerplantGas_electricity_3) -= 0 - -c_e_BusBlock_balance(electricity_4)_: -+1 flow(powerplantGas_electricity_4) -= 0 - -c_e_BusBlock_balance(electricity_5)_: -+1 flow(powerplantGas_electricity_5) -= 0 - -c_e_BusBlock_balance(gas_0)_: -+1 flow(gas_powerplantGas_0) -= 0 - -c_e_BusBlock_balance(gas_1)_: -+1 flow(gas_powerplantGas_1) -= 0 - -c_e_BusBlock_balance(gas_2)_: -+1 flow(gas_powerplantGas_2) -= 0 - -c_e_BusBlock_balance(gas_3)_: -+1 flow(gas_powerplantGas_3) -= 0 - -c_e_BusBlock_balance(gas_4)_: -+1 flow(gas_powerplantGas_4) -= 0 - -c_e_BusBlock_balance(gas_5)_: -+1 flow(gas_powerplantGas_5) -= 0 - -c_e_ConverterBlock_relation(powerplantGas_gas_electricity_0)_: -+0.58 flow(gas_powerplantGas_0) --1 flow(powerplantGas_electricity_0) -= 0 - -c_e_ConverterBlock_relation(powerplantGas_gas_electricity_1)_: -+0.58 flow(gas_powerplantGas_1) --1 flow(powerplantGas_electricity_1) -= 0 - -c_e_ConverterBlock_relation(powerplantGas_gas_electricity_2)_: -+0.58 flow(gas_powerplantGas_2) --1 flow(powerplantGas_electricity_2) -= 0 - -c_e_ConverterBlock_relation(powerplantGas_gas_electricity_3)_: -+0.58 flow(gas_powerplantGas_3) --1 flow(powerplantGas_electricity_3) -= 0 - -c_e_ConverterBlock_relation(powerplantGas_gas_electricity_4)_: -+0.58 flow(gas_powerplantGas_4) --1 flow(powerplantGas_electricity_4) -= 0 - -c_e_ConverterBlock_relation(powerplantGas_gas_electricity_5)_: -+0.58 flow(gas_powerplantGas_5) --1 flow(powerplantGas_electricity_5) -= 0 - -bounds - 0 <= flow(gas_powerplantGas_0) <= +inf - 0 <= flow(gas_powerplantGas_1) <= +inf - 0 <= flow(gas_powerplantGas_2) <= +inf - 0 <= flow(gas_powerplantGas_3) <= +inf - 0 <= flow(gas_powerplantGas_4) <= +inf - 0 <= flow(gas_powerplantGas_5) <= +inf - 0.0 <= flow(powerplantGas_electricity_0) <= 100000000000.0 - 0.0 <= flow(powerplantGas_electricity_1) <= 100000000000.0 - 0.0 <= flow(powerplantGas_electricity_2) <= 100000000000.0 - 0.0 <= flow(powerplantGas_electricity_3) <= 100000000000.0 - 0.0 <= flow(powerplantGas_electricity_4) <= 100000000000.0 - 0.0 <= flow(powerplantGas_electricity_5) <= 100000000000.0 -end diff --git a/tests/lp_files/link.lp b/tests/lp_files/link.lp deleted file mode 100644 index 9a156077e..000000000 --- a/tests/lp_files/link.lp +++ /dev/null @@ -1,83 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+0 ONE_VAR_CONSTANT - -s.t. - -c_e_BusBlock_balance(el1_0)_: --1 flow(el1_link_0) -+1 flow(link_el1_0) -= 0 - -c_e_BusBlock_balance(el1_1)_: --1 flow(el1_link_1) -+1 flow(link_el1_1) -= 0 - -c_e_BusBlock_balance(el1_2)_: --1 flow(el1_link_2) -+1 flow(link_el1_2) -= 0 - -c_e_BusBlock_balance(el2_0)_: --1 flow(el2_link_0) -+1 flow(link_el2_0) -= 0 - -c_e_BusBlock_balance(el2_1)_: --1 flow(el2_link_1) -+1 flow(link_el2_1) -= 0 - -c_e_BusBlock_balance(el2_2)_: --1 flow(el2_link_2) -+1 flow(link_el2_2) -= 0 - -c_e_LinkBlock_relation(link_el1_el2_0)_: --0.75 flow(el1_link_0) -+1 flow(link_el2_0) -= 0 - -c_e_LinkBlock_relation(link_el2_el1_0)_: --0.5 flow(el2_link_0) -+1 flow(link_el1_0) -= 0 - -c_e_LinkBlock_relation(link_el1_el2_1)_: --0.75 flow(el1_link_1) -+1 flow(link_el2_1) -= 0 - -c_e_LinkBlock_relation(link_el2_el1_1)_: --0.5 flow(el2_link_1) -+1 flow(link_el1_1) -= 0 - -c_e_LinkBlock_relation(link_el1_el2_2)_: --0.75 flow(el1_link_2) -+1 flow(link_el2_2) -= 0 - -c_e_LinkBlock_relation(link_el2_el1_2)_: --0.5 flow(el2_link_2) -+1 flow(link_el1_2) -= 0 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= flow(el1_link_0) <= 4 - 0 <= flow(el1_link_1) <= 4 - 0 <= flow(el1_link_2) <= 4 - 0 <= flow(el2_link_0) <= 2 - 0 <= flow(el2_link_1) <= 2 - 0 <= flow(el2_link_2) <= 2 - 0 <= flow(link_el1_0) <= +inf - 0 <= flow(link_el1_1) <= +inf - 0 <= flow(link_el1_2) <= +inf - 0 <= flow(link_el2_0) <= +inf - 0 <= flow(link_el2_1) <= +inf - 0 <= flow(link_el2_2) <= +inf -end diff --git a/tests/lp_files/max_source_min_sink.lp b/tests/lp_files/max_source_min_sink.lp deleted file mode 100644 index f1af87a78..000000000 --- a/tests/lp_files/max_source_min_sink.lp +++ /dev/null @@ -1,33 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+14 flow(electricityBus_minDemand_0) -+14 flow(electricityBus_minDemand_1) -+14 flow(electricityBus_minDemand_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_minDemand_0) -+1 flow(wind_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_minDemand_1) -+1 flow(wind_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_minDemand_2) -+1 flow(wind_electricityBus_2) -= 0 - -bounds - 45.36 <= flow(electricityBus_minDemand_0) <= 54 - 50.76 <= flow(electricityBus_minDemand_1) <= 54 - 31.86 <= flow(electricityBus_minDemand_2) <= 54 - 0 <= flow(wind_electricityBus_0) <= 45.9 - 0 <= flow(wind_electricityBus_1) <= 51.3 - 0 <= flow(wind_electricityBus_2) <= 32.94 -end diff --git a/tests/lp_files/max_source_min_sink_multi_period.lp b/tests/lp_files/max_source_min_sink_multi_period.lp deleted file mode 100644 index 16a2c50ed..000000000 --- a/tests/lp_files/max_source_min_sink_multi_period.lp +++ /dev/null @@ -1,57 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+14 flow(electricityBus_minDemand_0) -+14 flow(electricityBus_minDemand_1) -+13.72549019607843 flow(electricityBus_minDemand_2) -+13.72549019607843 flow(electricityBus_minDemand_3) -+13.456362937331795 flow(electricityBus_minDemand_4) -+13.456362937331795 flow(electricityBus_minDemand_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_minDemand_0) -+1 flow(wind_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_minDemand_1) -+1 flow(wind_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_minDemand_2) -+1 flow(wind_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: --1 flow(electricityBus_minDemand_3) -+1 flow(wind_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: --1 flow(electricityBus_minDemand_4) -+1 flow(wind_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: --1 flow(electricityBus_minDemand_5) -+1 flow(wind_electricityBus_5) -= 0 - -bounds - 45.36 <= flow(electricityBus_minDemand_0) <= 54 - 50.76 <= flow(electricityBus_minDemand_1) <= 54 - 31.86 <= flow(electricityBus_minDemand_2) <= 54 - 37.8 <= flow(electricityBus_minDemand_3) <= 54 - 52.379999999999995 <= flow(electricityBus_minDemand_4) <= 54 - 4.859999999999999 <= flow(electricityBus_minDemand_5) <= 54 - 0 <= flow(wind_electricityBus_0) <= 45.9 - 0 <= flow(wind_electricityBus_1) <= 51.3 - 0 <= flow(wind_electricityBus_2) <= 32.94 - 0 <= flow(wind_electricityBus_3) <= 38.879999999999995 - 0 <= flow(wind_electricityBus_4) <= 53.46 - 0 <= flow(wind_electricityBus_5) <= 5.4 -end diff --git a/tests/lp_files/maximum_shutdowns.lp b/tests/lp_files/maximum_shutdowns.lp deleted file mode 100644 index 193f6e699..000000000 --- a/tests/lp_files/maximum_shutdowns.lp +++ /dev/null @@ -1,111 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+10 flow(cheap_plant_maximum_shutdowns_Bus_C_0) -+10 flow(cheap_plant_maximum_shutdowns_Bus_C_1) -+10 flow(cheap_plant_maximum_shutdowns_Bus_C_2) - -s.t. - -c_e_BusBlock_balance(Bus_C_0)_: -+1 flow(cheap_plant_maximum_shutdowns_Bus_C_0) -= 0 - -c_e_BusBlock_balance(Bus_C_1)_: -+1 flow(cheap_plant_maximum_shutdowns_Bus_C_1) -= 0 - -c_e_BusBlock_balance(Bus_C_2)_: -+1 flow(cheap_plant_maximum_shutdowns_Bus_C_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_maximum_shutdowns_Bus_C_0)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_0) --10 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_0) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_maximum_shutdowns_Bus_C_1)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_1) --10 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_1) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_maximum_shutdowns_Bus_C_2)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_2) --10 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_2) -= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_maximum_shutdowns_Bus_C_0)_: --1 flow(cheap_plant_maximum_shutdowns_Bus_C_0) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_0) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_maximum_shutdowns_Bus_C_1)_: --1 flow(cheap_plant_maximum_shutdowns_Bus_C_1) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_1) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_maximum_shutdowns_Bus_C_2)_: --1 flow(cheap_plant_maximum_shutdowns_Bus_C_2) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_2) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_maximum_shutdowns_Bus_C_0)_: -+1 flow(cheap_plant_maximum_shutdowns_Bus_C_0) --1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_0) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_maximum_shutdowns_Bus_C_1)_: -+1 flow(cheap_plant_maximum_shutdowns_Bus_C_1) --1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_1) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_maximum_shutdowns_Bus_C_2)_: -+1 flow(cheap_plant_maximum_shutdowns_Bus_C_2) --1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_2) -<= 0 - -c_u_NonConvexFlowBlock_shutdown_constr(cheap_plant_maximum_shutdowns_Bus_C_0)_: --1 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_0) --1 NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_0) -<= 0 - -c_u_NonConvexFlowBlock_shutdown_constr(cheap_plant_maximum_shutdowns_Bus_C_1)_: -+1 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_0) --1 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_1) --1 NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_1) -<= 0 - -c_u_NonConvexFlowBlock_shutdown_constr(cheap_plant_maximum_shutdowns_Bus_C_2)_: -+1 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_1) --1 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_2) --1 NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_2) -<= 0 - -c_u_NonConvexFlowBlock_max_shutdown_constr(cheap_plant_maximum_shutdowns_Bus_C)_: -+1 NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_0) -+1 NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_1) -+1 NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_2) -<= 2 - -bounds - 0 <= flow(cheap_plant_maximum_shutdowns_Bus_C_0) <= 10.0 - 0 <= flow(cheap_plant_maximum_shutdowns_Bus_C_1) <= 10.0 - 0 <= flow(cheap_plant_maximum_shutdowns_Bus_C_2) <= 10.0 - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_0) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_1) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_2) <= +inf - 0 <= NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_0) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_1) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_2) <= 1 - 0 <= NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_0) <= 1 - 0 <= NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_1) <= 1 - 0 <= NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_2) <= 1 -binary - NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_0) - NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_1) - NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_2) - NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_0) - NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_1) - NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_2) -end diff --git a/tests/lp_files/maximum_shutdowns_multi_period.lp b/tests/lp_files/maximum_shutdowns_multi_period.lp deleted file mode 100644 index d84592df6..000000000 --- a/tests/lp_files/maximum_shutdowns_multi_period.lp +++ /dev/null @@ -1,210 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+10 flow(cheap_plant_maximum_shutdowns_Bus_C_0) -+10 flow(cheap_plant_maximum_shutdowns_Bus_C_1) -+9.80392156862745 flow(cheap_plant_maximum_shutdowns_Bus_C_2) -+9.80392156862745 flow(cheap_plant_maximum_shutdowns_Bus_C_3) -+9.611687812379854 flow(cheap_plant_maximum_shutdowns_Bus_C_4) -+9.611687812379854 flow(cheap_plant_maximum_shutdowns_Bus_C_5) - -s.t. - -c_e_BusBlock_balance(Bus_C_0)_: -+1 flow(cheap_plant_maximum_shutdowns_Bus_C_0) -= 0 - -c_e_BusBlock_balance(Bus_C_1)_: -+1 flow(cheap_plant_maximum_shutdowns_Bus_C_1) -= 0 - -c_e_BusBlock_balance(Bus_C_2)_: -+1 flow(cheap_plant_maximum_shutdowns_Bus_C_2) -= 0 - -c_e_BusBlock_balance(Bus_C_3)_: -+1 flow(cheap_plant_maximum_shutdowns_Bus_C_3) -= 0 - -c_e_BusBlock_balance(Bus_C_4)_: -+1 flow(cheap_plant_maximum_shutdowns_Bus_C_4) -= 0 - -c_e_BusBlock_balance(Bus_C_5)_: -+1 flow(cheap_plant_maximum_shutdowns_Bus_C_5) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_maximum_shutdowns_Bus_C_0)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_0) --10 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_0) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_maximum_shutdowns_Bus_C_1)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_1) --10 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_1) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_maximum_shutdowns_Bus_C_2)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_2) --10 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_maximum_shutdowns_Bus_C_3)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_3) --10 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_3) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_maximum_shutdowns_Bus_C_4)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_4) --10 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_4) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_maximum_shutdowns_Bus_C_5)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_5) --10 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_5) -= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_maximum_shutdowns_Bus_C_0)_: --1 flow(cheap_plant_maximum_shutdowns_Bus_C_0) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_0) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_maximum_shutdowns_Bus_C_1)_: --1 flow(cheap_plant_maximum_shutdowns_Bus_C_1) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_1) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_maximum_shutdowns_Bus_C_2)_: --1 flow(cheap_plant_maximum_shutdowns_Bus_C_2) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_2) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_maximum_shutdowns_Bus_C_3)_: --1 flow(cheap_plant_maximum_shutdowns_Bus_C_3) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_3) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_maximum_shutdowns_Bus_C_4)_: --1 flow(cheap_plant_maximum_shutdowns_Bus_C_4) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_4) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_maximum_shutdowns_Bus_C_5)_: --1 flow(cheap_plant_maximum_shutdowns_Bus_C_5) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_5) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_maximum_shutdowns_Bus_C_0)_: -+1 flow(cheap_plant_maximum_shutdowns_Bus_C_0) --1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_0) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_maximum_shutdowns_Bus_C_1)_: -+1 flow(cheap_plant_maximum_shutdowns_Bus_C_1) --1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_1) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_maximum_shutdowns_Bus_C_2)_: -+1 flow(cheap_plant_maximum_shutdowns_Bus_C_2) --1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_2) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_maximum_shutdowns_Bus_C_3)_: -+1 flow(cheap_plant_maximum_shutdowns_Bus_C_3) --1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_3) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_maximum_shutdowns_Bus_C_4)_: -+1 flow(cheap_plant_maximum_shutdowns_Bus_C_4) --1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_4) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_maximum_shutdowns_Bus_C_5)_: -+1 flow(cheap_plant_maximum_shutdowns_Bus_C_5) --1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_5) -<= 0 - -c_u_NonConvexFlowBlock_shutdown_constr(cheap_plant_maximum_shutdowns_Bus_C_0)_: --1 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_0) --1 NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_0) -<= 0 - -c_u_NonConvexFlowBlock_shutdown_constr(cheap_plant_maximum_shutdowns_Bus_C_1)_: -+1 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_0) --1 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_1) --1 NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_1) -<= 0 - -c_u_NonConvexFlowBlock_shutdown_constr(cheap_plant_maximum_shutdowns_Bus_C_2)_: -+1 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_1) --1 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_2) --1 NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_2) -<= 0 - -c_u_NonConvexFlowBlock_shutdown_constr(cheap_plant_maximum_shutdowns_Bus_C_3)_: -+1 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_2) --1 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_3) --1 NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_3) -<= 0 - -c_u_NonConvexFlowBlock_shutdown_constr(cheap_plant_maximum_shutdowns_Bus_C_4)_: -+1 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_3) --1 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_4) --1 NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_4) -<= 0 - -c_u_NonConvexFlowBlock_shutdown_constr(cheap_plant_maximum_shutdowns_Bus_C_5)_: -+1 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_4) --1 NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_5) --1 NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_5) -<= 0 - -c_u_NonConvexFlowBlock_max_shutdown_constr(cheap_plant_maximum_shutdowns_Bus_C)_: -+1 NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_0) -+1 NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_1) -+1 NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_2) -+1 NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_3) -+1 NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_4) -+1 NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_5) -<= 2 - -bounds - 0 <= flow(cheap_plant_maximum_shutdowns_Bus_C_0) <= 10.0 - 0 <= flow(cheap_plant_maximum_shutdowns_Bus_C_1) <= 10.0 - 0 <= flow(cheap_plant_maximum_shutdowns_Bus_C_2) <= 10.0 - 0 <= flow(cheap_plant_maximum_shutdowns_Bus_C_3) <= 10.0 - 0 <= flow(cheap_plant_maximum_shutdowns_Bus_C_4) <= 10.0 - 0 <= flow(cheap_plant_maximum_shutdowns_Bus_C_5) <= 10.0 - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_0) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_1) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_2) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_3) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_4) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_maximum_shutdowns_Bus_C_5) <= +inf - 0 <= NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_0) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_1) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_2) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_3) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_4) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_5) <= 1 - 0 <= NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_0) <= 1 - 0 <= NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_1) <= 1 - 0 <= NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_2) <= 1 - 0 <= NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_3) <= 1 - 0 <= NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_4) <= 1 - 0 <= NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_5) <= 1 -binary - NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_0) - NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_1) - NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_2) - NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_3) - NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_4) - NonConvexFlowBlock_status(cheap_plant_maximum_shutdowns_Bus_C_5) - NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_0) - NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_1) - NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_2) - NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_3) - NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_4) - NonConvexFlowBlock_shutdown(cheap_plant_maximum_shutdowns_Bus_C_5) -end diff --git a/tests/lp_files/maximum_startups.lp b/tests/lp_files/maximum_startups.lp deleted file mode 100644 index c13a2252d..000000000 --- a/tests/lp_files/maximum_startups.lp +++ /dev/null @@ -1,111 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+10 flow(cheap_plant_maximum_startups_Bus_C_0) -+10 flow(cheap_plant_maximum_startups_Bus_C_1) -+10 flow(cheap_plant_maximum_startups_Bus_C_2) - -s.t. - -c_e_BusBlock_balance(Bus_C_0)_: -+1 flow(cheap_plant_maximum_startups_Bus_C_0) -= 0 - -c_e_BusBlock_balance(Bus_C_1)_: -+1 flow(cheap_plant_maximum_startups_Bus_C_1) -= 0 - -c_e_BusBlock_balance(Bus_C_2)_: -+1 flow(cheap_plant_maximum_startups_Bus_C_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_maximum_startups_Bus_C_0)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_0) --10 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_0) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_maximum_startups_Bus_C_1)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_1) --10 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_1) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_maximum_startups_Bus_C_2)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_2) --10 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_2) -= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_maximum_startups_Bus_C_0)_: --1 flow(cheap_plant_maximum_startups_Bus_C_0) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_0) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_maximum_startups_Bus_C_1)_: --1 flow(cheap_plant_maximum_startups_Bus_C_1) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_1) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_maximum_startups_Bus_C_2)_: --1 flow(cheap_plant_maximum_startups_Bus_C_2) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_2) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_maximum_startups_Bus_C_0)_: -+1 flow(cheap_plant_maximum_startups_Bus_C_0) --1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_0) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_maximum_startups_Bus_C_1)_: -+1 flow(cheap_plant_maximum_startups_Bus_C_1) --1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_1) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_maximum_startups_Bus_C_2)_: -+1 flow(cheap_plant_maximum_startups_Bus_C_2) --1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_2) -<= 0 - -c_u_NonConvexFlowBlock_startup_constr(cheap_plant_maximum_startups_Bus_C_0)_: -+1 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_0) --1 NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_0) -<= 0 - -c_u_NonConvexFlowBlock_startup_constr(cheap_plant_maximum_startups_Bus_C_1)_: --1 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_0) -+1 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_1) --1 NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_1) -<= 0 - -c_u_NonConvexFlowBlock_startup_constr(cheap_plant_maximum_startups_Bus_C_2)_: --1 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_1) -+1 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_2) --1 NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_2) -<= 0 - -c_u_NonConvexFlowBlock_max_startup_constr(cheap_plant_maximum_startups_Bus_C)_: -+1 NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_0) -+1 NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_1) -+1 NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_2) -<= 2 - -bounds - 0 <= flow(cheap_plant_maximum_startups_Bus_C_0) <= 10.0 - 0 <= flow(cheap_plant_maximum_startups_Bus_C_1) <= 10.0 - 0 <= flow(cheap_plant_maximum_startups_Bus_C_2) <= 10.0 - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_0) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_1) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_2) <= +inf - 0 <= NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_0) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_1) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_2) <= 1 - 0 <= NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_0) <= 1 - 0 <= NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_1) <= 1 - 0 <= NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_2) <= 1 -binary - NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_0) - NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_1) - NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_2) - NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_0) - NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_1) - NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_2) -end diff --git a/tests/lp_files/maximum_startups_multi_period.lp b/tests/lp_files/maximum_startups_multi_period.lp deleted file mode 100644 index 84e4d439c..000000000 --- a/tests/lp_files/maximum_startups_multi_period.lp +++ /dev/null @@ -1,210 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+10 flow(cheap_plant_maximum_startups_Bus_C_0) -+10 flow(cheap_plant_maximum_startups_Bus_C_1) -+9.80392156862745 flow(cheap_plant_maximum_startups_Bus_C_2) -+9.80392156862745 flow(cheap_plant_maximum_startups_Bus_C_3) -+9.611687812379854 flow(cheap_plant_maximum_startups_Bus_C_4) -+9.611687812379854 flow(cheap_plant_maximum_startups_Bus_C_5) - -s.t. - -c_e_BusBlock_balance(Bus_C_0)_: -+1 flow(cheap_plant_maximum_startups_Bus_C_0) -= 0 - -c_e_BusBlock_balance(Bus_C_1)_: -+1 flow(cheap_plant_maximum_startups_Bus_C_1) -= 0 - -c_e_BusBlock_balance(Bus_C_2)_: -+1 flow(cheap_plant_maximum_startups_Bus_C_2) -= 0 - -c_e_BusBlock_balance(Bus_C_3)_: -+1 flow(cheap_plant_maximum_startups_Bus_C_3) -= 0 - -c_e_BusBlock_balance(Bus_C_4)_: -+1 flow(cheap_plant_maximum_startups_Bus_C_4) -= 0 - -c_e_BusBlock_balance(Bus_C_5)_: -+1 flow(cheap_plant_maximum_startups_Bus_C_5) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_maximum_startups_Bus_C_0)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_0) --10 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_0) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_maximum_startups_Bus_C_1)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_1) --10 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_1) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_maximum_startups_Bus_C_2)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_2) --10 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_maximum_startups_Bus_C_3)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_3) --10 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_3) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_maximum_startups_Bus_C_4)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_4) --10 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_4) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_maximum_startups_Bus_C_5)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_5) --10 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_5) -= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_maximum_startups_Bus_C_0)_: --1 flow(cheap_plant_maximum_startups_Bus_C_0) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_0) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_maximum_startups_Bus_C_1)_: --1 flow(cheap_plant_maximum_startups_Bus_C_1) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_1) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_maximum_startups_Bus_C_2)_: --1 flow(cheap_plant_maximum_startups_Bus_C_2) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_2) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_maximum_startups_Bus_C_3)_: --1 flow(cheap_plant_maximum_startups_Bus_C_3) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_3) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_maximum_startups_Bus_C_4)_: --1 flow(cheap_plant_maximum_startups_Bus_C_4) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_4) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_maximum_startups_Bus_C_5)_: --1 flow(cheap_plant_maximum_startups_Bus_C_5) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_5) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_maximum_startups_Bus_C_0)_: -+1 flow(cheap_plant_maximum_startups_Bus_C_0) --1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_0) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_maximum_startups_Bus_C_1)_: -+1 flow(cheap_plant_maximum_startups_Bus_C_1) --1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_1) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_maximum_startups_Bus_C_2)_: -+1 flow(cheap_plant_maximum_startups_Bus_C_2) --1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_2) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_maximum_startups_Bus_C_3)_: -+1 flow(cheap_plant_maximum_startups_Bus_C_3) --1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_3) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_maximum_startups_Bus_C_4)_: -+1 flow(cheap_plant_maximum_startups_Bus_C_4) --1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_4) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_maximum_startups_Bus_C_5)_: -+1 flow(cheap_plant_maximum_startups_Bus_C_5) --1 NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_5) -<= 0 - -c_u_NonConvexFlowBlock_startup_constr(cheap_plant_maximum_startups_Bus_C_0)_: -+1 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_0) --1 NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_0) -<= 0 - -c_u_NonConvexFlowBlock_startup_constr(cheap_plant_maximum_startups_Bus_C_1)_: --1 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_0) -+1 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_1) --1 NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_1) -<= 0 - -c_u_NonConvexFlowBlock_startup_constr(cheap_plant_maximum_startups_Bus_C_2)_: --1 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_1) -+1 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_2) --1 NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_2) -<= 0 - -c_u_NonConvexFlowBlock_startup_constr(cheap_plant_maximum_startups_Bus_C_3)_: --1 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_2) -+1 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_3) --1 NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_3) -<= 0 - -c_u_NonConvexFlowBlock_startup_constr(cheap_plant_maximum_startups_Bus_C_4)_: --1 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_3) -+1 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_4) --1 NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_4) -<= 0 - -c_u_NonConvexFlowBlock_startup_constr(cheap_plant_maximum_startups_Bus_C_5)_: --1 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_4) -+1 NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_5) --1 NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_5) -<= 0 - -c_u_NonConvexFlowBlock_max_startup_constr(cheap_plant_maximum_startups_Bus_C)_: -+1 NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_0) -+1 NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_1) -+1 NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_2) -+1 NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_3) -+1 NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_4) -+1 NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_5) -<= 2 - -bounds - 0 <= flow(cheap_plant_maximum_startups_Bus_C_0) <= 10.0 - 0 <= flow(cheap_plant_maximum_startups_Bus_C_1) <= 10.0 - 0 <= flow(cheap_plant_maximum_startups_Bus_C_2) <= 10.0 - 0 <= flow(cheap_plant_maximum_startups_Bus_C_3) <= 10.0 - 0 <= flow(cheap_plant_maximum_startups_Bus_C_4) <= 10.0 - 0 <= flow(cheap_plant_maximum_startups_Bus_C_5) <= 10.0 - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_0) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_1) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_2) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_3) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_4) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_maximum_startups_Bus_C_5) <= +inf - 0 <= NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_0) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_1) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_2) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_3) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_4) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_5) <= 1 - 0 <= NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_0) <= 1 - 0 <= NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_1) <= 1 - 0 <= NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_2) <= 1 - 0 <= NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_3) <= 1 - 0 <= NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_4) <= 1 - 0 <= NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_5) <= 1 -binary - NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_0) - NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_1) - NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_2) - NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_3) - NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_4) - NonConvexFlowBlock_status(cheap_plant_maximum_startups_Bus_C_5) - NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_0) - NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_1) - NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_2) - NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_3) - NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_4) - NonConvexFlowBlock_startup(cheap_plant_maximum_startups_Bus_C_5) -end diff --git a/tests/lp_files/min_max_runtime.lp b/tests/lp_files/min_max_runtime.lp deleted file mode 100644 index 9e3d5ea79..000000000 --- a/tests/lp_files/min_max_runtime.lp +++ /dev/null @@ -1,120 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+10 flow(cheap_plant_min_down_constraints_Bus_T_0) -+10 flow(cheap_plant_min_down_constraints_Bus_T_1) -+10 flow(cheap_plant_min_down_constraints_Bus_T_2) -+5 NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_0) -+5 NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_1) -+5 NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_2) -+7 NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_0) -+7 NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_1) -+7 NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_2) - -s.t. - -c_e_BusBlock_balance(Bus_T_0)_: -+1 flow(cheap_plant_min_down_constraints_Bus_T_0) -= 0 - -c_e_BusBlock_balance(Bus_T_1)_: -+1 flow(cheap_plant_min_down_constraints_Bus_T_1) -= 0 - -c_e_BusBlock_balance(Bus_T_2)_: -+1 flow(cheap_plant_min_down_constraints_Bus_T_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_min_down_constraints_Bus_T_0)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_0) -= 10 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_min_down_constraints_Bus_T_1)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_1) -= 10 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_min_down_constraints_Bus_T_2)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_2) --10 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_2) -= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_min_down_constraints_Bus_T_0)_: --1 flow(cheap_plant_min_down_constraints_Bus_T_0) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_0) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_min_down_constraints_Bus_T_1)_: --1 flow(cheap_plant_min_down_constraints_Bus_T_1) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_1) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_min_down_constraints_Bus_T_2)_: --1 flow(cheap_plant_min_down_constraints_Bus_T_2) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_2) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_min_down_constraints_Bus_T_0)_: -+1 flow(cheap_plant_min_down_constraints_Bus_T_0) --1 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_0) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_min_down_constraints_Bus_T_1)_: -+1 flow(cheap_plant_min_down_constraints_Bus_T_1) --1 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_1) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_min_down_constraints_Bus_T_2)_: -+1 flow(cheap_plant_min_down_constraints_Bus_T_2) --1 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_2) -<= 0 - -c_u_NonConvexFlowBlock_startup_constr(cheap_plant_min_down_constraints_Bus_T_0)_: --1 NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_0) -<= 0 - -c_u_NonConvexFlowBlock_startup_constr(cheap_plant_min_down_constraints_Bus_T_1)_: --1 NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_1) -<= 0 - -c_u_NonConvexFlowBlock_startup_constr(cheap_plant_min_down_constraints_Bus_T_2)_: --1 NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_2) -+1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_2) -<= 1 - -c_u_NonConvexFlowBlock_shutdown_constr(cheap_plant_min_down_constraints_Bus_T_0)_: --1 NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_0) -<= 0 - -c_u_NonConvexFlowBlock_shutdown_constr(cheap_plant_min_down_constraints_Bus_T_1)_: --1 NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_1) -<= 0 - -c_u_NonConvexFlowBlock_shutdown_constr(cheap_plant_min_down_constraints_Bus_T_2)_: --1 NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_2) --1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_2) -<= -1 - -bounds - 0 <= flow(cheap_plant_min_down_constraints_Bus_T_0) <= 10.0 - 0 <= flow(cheap_plant_min_down_constraints_Bus_T_1) <= 10.0 - 0 <= flow(cheap_plant_min_down_constraints_Bus_T_2) <= 10.0 - 0 <= NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_0) <= 1 - 0 <= NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_1) <= 1 - 0 <= NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_2) <= 1 - 0 <= NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_0) <= 1 - 0 <= NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_1) <= 1 - 0 <= NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_2) <= 1 - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_0) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_1) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_2) <= +inf - 0 <= NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_2) <= 1 -binary - NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_0) - NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_1) - NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_2) - NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_0) - NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_1) - NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_2) - NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_2) -end diff --git a/tests/lp_files/min_max_runtime_multi_period.lp b/tests/lp_files/min_max_runtime_multi_period.lp deleted file mode 100644 index 61be72293..000000000 --- a/tests/lp_files/min_max_runtime_multi_period.lp +++ /dev/null @@ -1,271 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+10 flow(cheap_plant_min_down_constraints_Bus_T_0) -+10 flow(cheap_plant_min_down_constraints_Bus_T_1) -+9.80392156862745 flow(cheap_plant_min_down_constraints_Bus_T_2) -+9.80392156862745 flow(cheap_plant_min_down_constraints_Bus_T_3) -+9.611687812379854 flow(cheap_plant_min_down_constraints_Bus_T_4) -+9.611687812379854 flow(cheap_plant_min_down_constraints_Bus_T_5) -+5 NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_0) -+5 NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_1) -+4.901960784313725 NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_2) -+4.901960784313725 NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_3) -+4.805843906189927 NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_4) -+4.805843906189927 NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_5) -+7 NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_0) -+7 NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_1) -+6.862745098039215 NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_2) -+6.862745098039215 NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_3) -+6.728181468665897 NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_4) -+6.728181468665897 NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_5) - -s.t. - -c_e_BusBlock_balance(Bus_T_0)_: -+1 flow(cheap_plant_min_down_constraints_Bus_T_0) -= 0 - -c_e_BusBlock_balance(Bus_T_1)_: -+1 flow(cheap_plant_min_down_constraints_Bus_T_1) -= 0 - -c_e_BusBlock_balance(Bus_T_2)_: -+1 flow(cheap_plant_min_down_constraints_Bus_T_2) -= 0 - -c_e_BusBlock_balance(Bus_T_3)_: -+1 flow(cheap_plant_min_down_constraints_Bus_T_3) -= 0 - -c_e_BusBlock_balance(Bus_T_4)_: -+1 flow(cheap_plant_min_down_constraints_Bus_T_4) -= 0 - -c_e_BusBlock_balance(Bus_T_5)_: -+1 flow(cheap_plant_min_down_constraints_Bus_T_5) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_min_down_constraints_Bus_T_0)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_0) -= 10 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_min_down_constraints_Bus_T_1)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_1) -= 10 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_min_down_constraints_Bus_T_2)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_2) --10 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_min_down_constraints_Bus_T_3)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_3) --10 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_3) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_min_down_constraints_Bus_T_4)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_4) --10 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_4) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(cheap_plant_min_down_constraints_Bus_T_5)_: -+1 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_5) --10 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_5) -= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_min_down_constraints_Bus_T_0)_: --1 flow(cheap_plant_min_down_constraints_Bus_T_0) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_0) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_min_down_constraints_Bus_T_1)_: --1 flow(cheap_plant_min_down_constraints_Bus_T_1) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_1) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_min_down_constraints_Bus_T_2)_: --1 flow(cheap_plant_min_down_constraints_Bus_T_2) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_2) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_min_down_constraints_Bus_T_3)_: --1 flow(cheap_plant_min_down_constraints_Bus_T_3) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_3) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_min_down_constraints_Bus_T_4)_: --1 flow(cheap_plant_min_down_constraints_Bus_T_4) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_4) -<= 0 - -c_u_NonConvexFlowBlock_min(cheap_plant_min_down_constraints_Bus_T_5)_: --1 flow(cheap_plant_min_down_constraints_Bus_T_5) -+0.5 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_5) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_min_down_constraints_Bus_T_0)_: -+1 flow(cheap_plant_min_down_constraints_Bus_T_0) --1 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_0) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_min_down_constraints_Bus_T_1)_: -+1 flow(cheap_plant_min_down_constraints_Bus_T_1) --1 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_1) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_min_down_constraints_Bus_T_2)_: -+1 flow(cheap_plant_min_down_constraints_Bus_T_2) --1 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_2) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_min_down_constraints_Bus_T_3)_: -+1 flow(cheap_plant_min_down_constraints_Bus_T_3) --1 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_3) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_min_down_constraints_Bus_T_4)_: -+1 flow(cheap_plant_min_down_constraints_Bus_T_4) --1 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_4) -<= 0 - -c_u_NonConvexFlowBlock_max(cheap_plant_min_down_constraints_Bus_T_5)_: -+1 flow(cheap_plant_min_down_constraints_Bus_T_5) --1 NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_5) -<= 0 - -c_u_NonConvexFlowBlock_startup_constr(cheap_plant_min_down_constraints_Bus_T_0)_: --1 NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_0) -<= 0 - -c_u_NonConvexFlowBlock_startup_constr(cheap_plant_min_down_constraints_Bus_T_1)_: --1 NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_1) -<= 0 - -c_u_NonConvexFlowBlock_startup_constr(cheap_plant_min_down_constraints_Bus_T_2)_: --1 NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_2) -+1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_2) -<= 1 - -c_u_NonConvexFlowBlock_startup_constr(cheap_plant_min_down_constraints_Bus_T_3)_: --1 NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_3) --1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_2) -+1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_3) -<= 0 - -c_u_NonConvexFlowBlock_startup_constr(cheap_plant_min_down_constraints_Bus_T_4)_: --1 NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_4) --1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_3) -+1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_4) -<= 0 - -c_u_NonConvexFlowBlock_startup_constr(cheap_plant_min_down_constraints_Bus_T_5)_: --1 NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_5) --1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_4) -+1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_5) -<= 0 - -c_u_NonConvexFlowBlock_shutdown_constr(cheap_plant_min_down_constraints_Bus_T_0)_: --1 NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_0) -<= 0 - -c_u_NonConvexFlowBlock_shutdown_constr(cheap_plant_min_down_constraints_Bus_T_1)_: --1 NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_1) -<= 0 - -c_u_NonConvexFlowBlock_shutdown_constr(cheap_plant_min_down_constraints_Bus_T_2)_: --1 NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_2) --1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_2) -<= -1 - -c_u_NonConvexFlowBlock_shutdown_constr(cheap_plant_min_down_constraints_Bus_T_3)_: --1 NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_3) -+1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_2) --1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_3) -<= 0 - -c_u_NonConvexFlowBlock_shutdown_constr(cheap_plant_min_down_constraints_Bus_T_4)_: --1 NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_4) -+1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_3) --1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_4) -<= 0 - -c_u_NonConvexFlowBlock_shutdown_constr(cheap_plant_min_down_constraints_Bus_T_5)_: --1 NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_5) -+1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_4) --1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_5) -<= 0 - -c_u_NonConvexFlowBlock_min_uptime_constr(cheap_plant_min_down_constraints_Bus_T_3)_: --2 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_2) -+1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_3) --1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_4) -<= 0 - -c_u_NonConvexFlowBlock_min_uptime_constr(cheap_plant_min_down_constraints_Bus_T_4)_: --2 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_3) -+1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_4) --1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_5) -<= 0 - -c_u_NonConvexFlowBlock_min_downtime_constr(cheap_plant_min_down_constraints_Bus_T_3)_: -+4 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_2) --3 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_3) -+1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_4) -+1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_5) -<= 4 - -c_u_NonConvexFlowBlock_min_downtime_constr(cheap_plant_min_down_constraints_Bus_T_4)_: -+4 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_3) --3 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_4) -+1 NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_5) -<= 4 - -bounds - 0 <= flow(cheap_plant_min_down_constraints_Bus_T_0) <= 10.0 - 0 <= flow(cheap_plant_min_down_constraints_Bus_T_1) <= 10.0 - 0 <= flow(cheap_plant_min_down_constraints_Bus_T_2) <= 10.0 - 0 <= flow(cheap_plant_min_down_constraints_Bus_T_3) <= 10.0 - 0 <= flow(cheap_plant_min_down_constraints_Bus_T_4) <= 10.0 - 0 <= flow(cheap_plant_min_down_constraints_Bus_T_5) <= 10.0 - 0 <= NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_0) <= 1 - 0 <= NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_1) <= 1 - 0 <= NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_2) <= 1 - 0 <= NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_3) <= 1 - 0 <= NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_4) <= 1 - 0 <= NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_5) <= 1 - 0 <= NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_0) <= 1 - 0 <= NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_1) <= 1 - 0 <= NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_2) <= 1 - 0 <= NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_3) <= 1 - 0 <= NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_4) <= 1 - 0 <= NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_5) <= 1 - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_0) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_1) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_2) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_3) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_4) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(cheap_plant_min_down_constraints_Bus_T_5) <= +inf - 0 <= NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_2) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_3) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_4) <= 1 - 0 <= NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_5) <= 1 -binary - NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_0) - NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_1) - NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_2) - NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_3) - NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_4) - NonConvexFlowBlock_startup(cheap_plant_min_down_constraints_Bus_T_5) - NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_0) - NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_1) - NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_2) - NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_3) - NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_4) - NonConvexFlowBlock_shutdown(cheap_plant_min_down_constraints_Bus_T_5) - NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_2) - NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_3) - NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_4) - NonConvexFlowBlock_status(cheap_plant_min_down_constraints_Bus_T_5) -end diff --git a/tests/lp_files/multi_period_period_length.lp b/tests/lp_files/multi_period_period_length.lp deleted file mode 100644 index 5aa3ac792..000000000 --- a/tests/lp_files/multi_period_period_length.lp +++ /dev/null @@ -1,8065 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+15992.031251718836 ONE_VAR_CONSTANT -+9.999999999999998 InvestmentFlowBlock_invest(storage_electricity_0) -+6.729713331080573 InvestmentFlowBlock_invest(storage_electricity_1) -+5.000276133592968 InvestmentFlowBlock_invest(storage_electricity_2) -+4.101968025099305 InvestmentFlowBlock_invest(storage_electricity_3) -+3.7152788212696146 InvestmentFlowBlock_invest(storage_electricity_4) -+3.0478226645906985 InvestmentFlowBlock_invest(storage_electricity_5) -+2.264577134183746 InvestmentFlowBlock_invest(storage_electricity_6) -+0.09137506155350818 InvestmentFlowBlock_invest(storage_electricity_7) -+9.999999999999998 InvestmentFlowBlock_invest(electricity_storage_0) -+6.729713331080573 InvestmentFlowBlock_invest(electricity_storage_1) -+5.000276133592968 InvestmentFlowBlock_invest(electricity_storage_2) -+4.101968025099305 InvestmentFlowBlock_invest(electricity_storage_3) -+3.7152788212696146 InvestmentFlowBlock_invest(electricity_storage_4) -+3.0478226645906985 InvestmentFlowBlock_invest(electricity_storage_5) -+2.264577134183746 InvestmentFlowBlock_invest(electricity_storage_6) -+0.09137506155350818 InvestmentFlowBlock_invest(electricity_storage_7) -+9.999999999999998 GenericInvestmentStorageBlock_invest(storage_0) -+6.729713331080573 GenericInvestmentStorageBlock_invest(storage_1) -+5.000276133592968 GenericInvestmentStorageBlock_invest(storage_2) -+4.101968025099305 GenericInvestmentStorageBlock_invest(storage_3) -+3.7152788212696146 GenericInvestmentStorageBlock_invest(storage_4) -+3.0478226645906985 GenericInvestmentStorageBlock_invest(storage_5) -+2.264577134183746 GenericInvestmentStorageBlock_invest(storage_6) -+0.09137506155350818 GenericInvestmentStorageBlock_invest(storage_7) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_23) -+100 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_0) -+100 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_1) -+100 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_2) -+67.29713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_3) -+67.29713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_4) -+67.29713331080575 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_5) -+50.00276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_6) -+50.00276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_7) -+50.00276133592969 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_8) -+41.01968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_9) -+41.01968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_10) -+41.01968025099306 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_11) -+37.15278821269615 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_12) -+37.15278821269615 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_13) -+37.15278821269615 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_14) -+30.478226645906993 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_15) -+30.478226645906993 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_16) -+30.478226645906993 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_17) -+22.645771341837463 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_18) -+22.645771341837463 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_19) -+22.645771341837463 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_20) -+15.239954929176601 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_21) -+15.239954929176601 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_22) -+15.239954929176601 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_23) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_0) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_1) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_2) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_3) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_4) -+0.6729713331080575 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_5) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_6) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_7) -+0.5000276133592969 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_8) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_9) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_10) -+0.4101968025099306 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_11) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_12) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_13) -+0.37152788212696153 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_14) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_15) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_16) -+0.3047822664590699 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_17) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_18) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_19) -+0.22645771341837465 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_20) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_21) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_22) -+0.15239954929176602 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_23) -+433.5692402297811 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_0) -+291.77966959208334 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_1) -+216.7965924181011 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_2) -+177.8487160089162 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_3) -+161.08306157796636 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_4) -+132.1442157041696 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_5) -+98.1850987509782 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_6) -+3.9617416013704023 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_7) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_2) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_3) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_4) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_5) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_6) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_7) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_8) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_9) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_10) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_11) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_12) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_13) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_14) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_15) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_16) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_17) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_18) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_19) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_20) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_21) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_22) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_23) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_2) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_3) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_4) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_5) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_6) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_7) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_8) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_9) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_10) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_11) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_12) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_13) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_14) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_15) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_16) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_17) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_18) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_19) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_20) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_21) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_22) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_23) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_2) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_3) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_4) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_5) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_6) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_7) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_8) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_9) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_10) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_11) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_12) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_13) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_14) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_15) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_16) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_17) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_18) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_19) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_20) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_21) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_22) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_23) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_2) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_3) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_4) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_5) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_6) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_7) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_8) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_9) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_10) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_11) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_12) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_13) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_14) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_15) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_16) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_17) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_18) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_19) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_20) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_21) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_22) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_23) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_2) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_3) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_4) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_5) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_6) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_7) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_8) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_9) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_10) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_11) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_12) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_13) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_14) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_15) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_16) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_17) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_18) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_19) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_20) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_21) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_22) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_23) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_2) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_3) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_4) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_5) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_6) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_7) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_8) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_9) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_10) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_11) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_12) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_13) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_14) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_15) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_16) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_17) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_18) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_19) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_20) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_21) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_22) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_23) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_2) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_3) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_4) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_5) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_6) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_7) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_8) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_9) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_10) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_11) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_12) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_13) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_14) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_15) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_16) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_17) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_18) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_19) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_20) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_21) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_22) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_23) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_2) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_3) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_4) -+0.6729713331080575 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_5) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_6) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_7) -+0.5000276133592969 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_8) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_9) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_10) -+0.4101968025099306 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_11) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_12) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_13) -+0.37152788212696153 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_14) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_15) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_16) -+0.3047822664590699 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_17) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_18) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_19) -+0.22645771341837465 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_20) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_21) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_22) -+0.15239954929176602 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_23) -+100 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_0) -+100 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_1) -+100 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_2) -+67.29713331080575 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_3) -+67.29713331080575 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_4) -+67.29713331080575 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_5) -+50.00276133592969 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_6) -+50.00276133592969 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_7) -+50.00276133592969 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_8) -+41.01968025099306 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_9) -+41.01968025099306 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_10) -+41.01968025099306 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_11) -+37.15278821269615 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_12) -+37.15278821269615 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_13) -+37.15278821269615 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_14) -+30.478226645906993 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_15) -+30.478226645906993 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_16) -+30.478226645906993 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_17) -+22.645771341837463 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_18) -+22.645771341837463 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_19) -+22.645771341837463 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_20) -+15.239954929176601 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_21) -+15.239954929176601 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_22) -+15.239954929176601 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_23) -+433.5692402297811 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_0) -+291.77966959208334 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_1) -+216.7965924181011 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_2) -+177.8487160089162 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_3) -+161.08306157796636 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_4) -+132.1442157041696 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_5) -+98.1850987509782 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_6) -+3.9617416013704023 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_7) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_1) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_2) -+0.6729713331080575 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_3) -+0.6729713331080575 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_4) -+0.6729713331080575 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_5) -+0.5000276133592969 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_6) -+0.5000276133592969 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_7) -+0.5000276133592969 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_8) -+0.4101968025099306 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_9) -+0.4101968025099306 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_10) -+0.4101968025099306 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_11) -+0.37152788212696153 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_12) -+0.37152788212696153 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_13) -+0.37152788212696153 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_14) -+0.3047822664590699 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_15) -+0.3047822664590699 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_16) -+0.3047822664590699 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_17) -+0.22645771341837465 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_18) -+0.22645771341837465 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_19) -+0.22645771341837465 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_20) -+0.15239954929176602 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_21) -+0.15239954929176602 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_22) -+0.15239954929176602 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_23) -+100 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_0) -+100 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_1) -+100 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_2) -+67.29713331080575 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_3) -+67.29713331080575 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_4) -+67.29713331080575 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_5) -+50.00276133592969 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_6) -+50.00276133592969 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_7) -+50.00276133592969 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_8) -+41.01968025099306 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_9) -+41.01968025099306 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_10) -+41.01968025099306 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_11) -+37.15278821269615 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_12) -+37.15278821269615 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_13) -+37.15278821269615 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_14) -+30.478226645906993 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_15) -+30.478226645906993 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_16) -+30.478226645906993 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_17) -+22.645771341837463 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_18) -+22.645771341837463 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_19) -+22.645771341837463 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_20) -+15.239954929176601 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_21) -+15.239954929176601 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_22) -+15.239954929176601 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_23) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_1) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_2) -+0.6729713331080575 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_3) -+0.6729713331080575 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_4) -+0.6729713331080575 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_5) -+0.5000276133592969 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_6) -+0.5000276133592969 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_7) -+0.5000276133592969 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_8) -+0.4101968025099306 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_9) -+0.4101968025099306 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_10) -+0.4101968025099306 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_11) -+0.37152788212696153 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_12) -+0.37152788212696153 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_13) -+0.37152788212696153 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_14) -+0.3047822664590699 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_15) -+0.3047822664590699 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_16) -+0.3047822664590699 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_17) -+0.22645771341837465 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_18) -+0.22645771341837465 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_19) -+0.22645771341837465 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_20) -+0.15239954929176602 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_21) -+0.15239954929176602 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_22) -+0.15239954929176602 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_23) -+433.5692402297811 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_0) -+291.77966959208334 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_1) -+216.7965924181011 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_2) -+177.8487160089162 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_3) -+161.08306157796636 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_4) -+132.1442157041696 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_5) -+98.1850987509782 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_6) -+3.9617416013704023 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_7) - -s.t. - -c_e_BusBlock_balance(electricity_0)_: --1 flow(electricity_storage_0) --1 flow(electricity_demand_dsm_diw_0) --1 flow(electricity_demand_dsm_dlr_0) --1 flow(electricity_demand_dsm_oemof_0) -+1 flow(storage_electricity_0) -= 0 - -c_e_BusBlock_balance(electricity_1)_: --1 flow(electricity_storage_1) --1 flow(electricity_demand_dsm_diw_1) --1 flow(electricity_demand_dsm_dlr_1) --1 flow(electricity_demand_dsm_oemof_1) -+1 flow(storage_electricity_1) -= 0 - -c_e_BusBlock_balance(electricity_2)_: --1 flow(electricity_storage_2) --1 flow(electricity_demand_dsm_diw_2) --1 flow(electricity_demand_dsm_dlr_2) --1 flow(electricity_demand_dsm_oemof_2) -+1 flow(storage_electricity_2) -= 0 - -c_e_BusBlock_balance(electricity_3)_: --1 flow(electricity_storage_3) --1 flow(electricity_demand_dsm_diw_3) --1 flow(electricity_demand_dsm_dlr_3) --1 flow(electricity_demand_dsm_oemof_3) -+1 flow(storage_electricity_3) -= 0 - -c_e_BusBlock_balance(electricity_4)_: --1 flow(electricity_storage_4) --1 flow(electricity_demand_dsm_diw_4) --1 flow(electricity_demand_dsm_dlr_4) --1 flow(electricity_demand_dsm_oemof_4) -+1 flow(storage_electricity_4) -= 0 - -c_e_BusBlock_balance(electricity_5)_: --1 flow(electricity_storage_5) --1 flow(electricity_demand_dsm_diw_5) --1 flow(electricity_demand_dsm_dlr_5) --1 flow(electricity_demand_dsm_oemof_5) -+1 flow(storage_electricity_5) -= 0 - -c_e_BusBlock_balance(electricity_6)_: --1 flow(electricity_storage_6) --1 flow(electricity_demand_dsm_diw_6) --1 flow(electricity_demand_dsm_dlr_6) --1 flow(electricity_demand_dsm_oemof_6) -+1 flow(storage_electricity_6) -= 0 - -c_e_BusBlock_balance(electricity_7)_: --1 flow(electricity_storage_7) --1 flow(electricity_demand_dsm_diw_7) --1 flow(electricity_demand_dsm_dlr_7) --1 flow(electricity_demand_dsm_oemof_7) -+1 flow(storage_electricity_7) -= 0 - -c_e_BusBlock_balance(electricity_8)_: --1 flow(electricity_storage_8) --1 flow(electricity_demand_dsm_diw_8) --1 flow(electricity_demand_dsm_dlr_8) --1 flow(electricity_demand_dsm_oemof_8) -+1 flow(storage_electricity_8) -= 0 - -c_e_BusBlock_balance(electricity_9)_: --1 flow(electricity_storage_9) --1 flow(electricity_demand_dsm_diw_9) --1 flow(electricity_demand_dsm_dlr_9) --1 flow(electricity_demand_dsm_oemof_9) -+1 flow(storage_electricity_9) -= 0 - -c_e_BusBlock_balance(electricity_10)_: --1 flow(electricity_storage_10) --1 flow(electricity_demand_dsm_diw_10) --1 flow(electricity_demand_dsm_dlr_10) --1 flow(electricity_demand_dsm_oemof_10) -+1 flow(storage_electricity_10) -= 0 - -c_e_BusBlock_balance(electricity_11)_: --1 flow(electricity_storage_11) --1 flow(electricity_demand_dsm_diw_11) --1 flow(electricity_demand_dsm_dlr_11) --1 flow(electricity_demand_dsm_oemof_11) -+1 flow(storage_electricity_11) -= 0 - -c_e_BusBlock_balance(electricity_12)_: --1 flow(electricity_storage_12) --1 flow(electricity_demand_dsm_diw_12) --1 flow(electricity_demand_dsm_dlr_12) --1 flow(electricity_demand_dsm_oemof_12) -+1 flow(storage_electricity_12) -= 0 - -c_e_BusBlock_balance(electricity_13)_: --1 flow(electricity_storage_13) --1 flow(electricity_demand_dsm_diw_13) --1 flow(electricity_demand_dsm_dlr_13) --1 flow(electricity_demand_dsm_oemof_13) -+1 flow(storage_electricity_13) -= 0 - -c_e_BusBlock_balance(electricity_14)_: --1 flow(electricity_storage_14) --1 flow(electricity_demand_dsm_diw_14) --1 flow(electricity_demand_dsm_dlr_14) --1 flow(electricity_demand_dsm_oemof_14) -+1 flow(storage_electricity_14) -= 0 - -c_e_BusBlock_balance(electricity_15)_: --1 flow(electricity_storage_15) --1 flow(electricity_demand_dsm_diw_15) --1 flow(electricity_demand_dsm_dlr_15) --1 flow(electricity_demand_dsm_oemof_15) -+1 flow(storage_electricity_15) -= 0 - -c_e_BusBlock_balance(electricity_16)_: --1 flow(electricity_storage_16) --1 flow(electricity_demand_dsm_diw_16) --1 flow(electricity_demand_dsm_dlr_16) --1 flow(electricity_demand_dsm_oemof_16) -+1 flow(storage_electricity_16) -= 0 - -c_e_BusBlock_balance(electricity_17)_: --1 flow(electricity_storage_17) --1 flow(electricity_demand_dsm_diw_17) --1 flow(electricity_demand_dsm_dlr_17) --1 flow(electricity_demand_dsm_oemof_17) -+1 flow(storage_electricity_17) -= 0 - -c_e_BusBlock_balance(electricity_18)_: --1 flow(electricity_storage_18) --1 flow(electricity_demand_dsm_diw_18) --1 flow(electricity_demand_dsm_dlr_18) --1 flow(electricity_demand_dsm_oemof_18) -+1 flow(storage_electricity_18) -= 0 - -c_e_BusBlock_balance(electricity_19)_: --1 flow(electricity_storage_19) --1 flow(electricity_demand_dsm_diw_19) --1 flow(electricity_demand_dsm_dlr_19) --1 flow(electricity_demand_dsm_oemof_19) -+1 flow(storage_electricity_19) -= 0 - -c_e_BusBlock_balance(electricity_20)_: --1 flow(electricity_storage_20) --1 flow(electricity_demand_dsm_diw_20) --1 flow(electricity_demand_dsm_dlr_20) --1 flow(electricity_demand_dsm_oemof_20) -+1 flow(storage_electricity_20) -= 0 - -c_e_BusBlock_balance(electricity_21)_: --1 flow(electricity_storage_21) --1 flow(electricity_demand_dsm_diw_21) --1 flow(electricity_demand_dsm_dlr_21) --1 flow(electricity_demand_dsm_oemof_21) -+1 flow(storage_electricity_21) -= 0 - -c_e_BusBlock_balance(electricity_22)_: --1 flow(electricity_storage_22) --1 flow(electricity_demand_dsm_diw_22) --1 flow(electricity_demand_dsm_dlr_22) --1 flow(electricity_demand_dsm_oemof_22) -+1 flow(storage_electricity_22) -= 0 - -c_e_BusBlock_balance(electricity_23)_: --1 flow(electricity_storage_23) --1 flow(electricity_demand_dsm_diw_23) --1 flow(electricity_demand_dsm_dlr_23) --1 flow(electricity_demand_dsm_oemof_23) -+1 flow(storage_electricity_23) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_electricity_0)_: --1 InvestmentFlowBlock_invest(storage_electricity_0) -+1 InvestmentFlowBlock_total(storage_electricity_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_electricity_1)_: --1 InvestmentFlowBlock_invest(storage_electricity_1) --1 InvestmentFlowBlock_total(storage_electricity_0) -+1 InvestmentFlowBlock_total(storage_electricity_1) -+1 InvestmentFlowBlock_old(storage_electricity_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_electricity_2)_: --1 InvestmentFlowBlock_invest(storage_electricity_2) --1 InvestmentFlowBlock_total(storage_electricity_1) -+1 InvestmentFlowBlock_total(storage_electricity_2) -+1 InvestmentFlowBlock_old(storage_electricity_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_electricity_3)_: --1 InvestmentFlowBlock_invest(storage_electricity_3) --1 InvestmentFlowBlock_total(storage_electricity_2) -+1 InvestmentFlowBlock_total(storage_electricity_3) -+1 InvestmentFlowBlock_old(storage_electricity_3) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_electricity_4)_: --1 InvestmentFlowBlock_invest(storage_electricity_4) --1 InvestmentFlowBlock_total(storage_electricity_3) -+1 InvestmentFlowBlock_total(storage_electricity_4) -+1 InvestmentFlowBlock_old(storage_electricity_4) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_electricity_5)_: --1 InvestmentFlowBlock_invest(storage_electricity_5) --1 InvestmentFlowBlock_total(storage_electricity_4) -+1 InvestmentFlowBlock_total(storage_electricity_5) -+1 InvestmentFlowBlock_old(storage_electricity_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_electricity_6)_: --1 InvestmentFlowBlock_invest(storage_electricity_6) --1 InvestmentFlowBlock_total(storage_electricity_5) -+1 InvestmentFlowBlock_total(storage_electricity_6) -+1 InvestmentFlowBlock_old(storage_electricity_6) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_electricity_7)_: --1 InvestmentFlowBlock_invest(storage_electricity_7) --1 InvestmentFlowBlock_total(storage_electricity_6) -+1 InvestmentFlowBlock_total(storage_electricity_7) -+1 InvestmentFlowBlock_old(storage_electricity_7) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricity_storage_0)_: --1 InvestmentFlowBlock_invest(electricity_storage_0) -+1 InvestmentFlowBlock_total(electricity_storage_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricity_storage_1)_: --1 InvestmentFlowBlock_invest(electricity_storage_1) --1 InvestmentFlowBlock_total(electricity_storage_0) -+1 InvestmentFlowBlock_total(electricity_storage_1) -+1 InvestmentFlowBlock_old(electricity_storage_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricity_storage_2)_: --1 InvestmentFlowBlock_invest(electricity_storage_2) --1 InvestmentFlowBlock_total(electricity_storage_1) -+1 InvestmentFlowBlock_total(electricity_storage_2) -+1 InvestmentFlowBlock_old(electricity_storage_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricity_storage_3)_: --1 InvestmentFlowBlock_invest(electricity_storage_3) --1 InvestmentFlowBlock_total(electricity_storage_2) -+1 InvestmentFlowBlock_total(electricity_storage_3) -+1 InvestmentFlowBlock_old(electricity_storage_3) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricity_storage_4)_: --1 InvestmentFlowBlock_invest(electricity_storage_4) --1 InvestmentFlowBlock_total(electricity_storage_3) -+1 InvestmentFlowBlock_total(electricity_storage_4) -+1 InvestmentFlowBlock_old(electricity_storage_4) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricity_storage_5)_: --1 InvestmentFlowBlock_invest(electricity_storage_5) --1 InvestmentFlowBlock_total(electricity_storage_4) -+1 InvestmentFlowBlock_total(electricity_storage_5) -+1 InvestmentFlowBlock_old(electricity_storage_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricity_storage_6)_: --1 InvestmentFlowBlock_invest(electricity_storage_6) --1 InvestmentFlowBlock_total(electricity_storage_5) -+1 InvestmentFlowBlock_total(electricity_storage_6) -+1 InvestmentFlowBlock_old(electricity_storage_6) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricity_storage_7)_: --1 InvestmentFlowBlock_invest(electricity_storage_7) --1 InvestmentFlowBlock_total(electricity_storage_6) -+1 InvestmentFlowBlock_total(electricity_storage_7) -+1 InvestmentFlowBlock_old(electricity_storage_7) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_electricity_0)_: -+1 InvestmentFlowBlock_old_end(storage_electricity_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_electricity_1)_: --1 InvestmentFlowBlock_invest(storage_electricity_0) -+1 InvestmentFlowBlock_old_end(storage_electricity_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_electricity_2)_: -+1 InvestmentFlowBlock_old_end(storage_electricity_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_electricity_3)_: --1 InvestmentFlowBlock_invest(storage_electricity_1) -+1 InvestmentFlowBlock_old_end(storage_electricity_3) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_electricity_4)_: -+1 InvestmentFlowBlock_old_end(storage_electricity_4) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_electricity_5)_: --1 InvestmentFlowBlock_invest(storage_electricity_2) -+1 InvestmentFlowBlock_old_end(storage_electricity_5) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_electricity_6)_: --1 InvestmentFlowBlock_invest(storage_electricity_3) --1 InvestmentFlowBlock_invest(storage_electricity_4) -+1 InvestmentFlowBlock_old_end(storage_electricity_6) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_electricity_7)_: --1 InvestmentFlowBlock_invest(storage_electricity_5) --1 InvestmentFlowBlock_invest(storage_electricity_6) -+1 InvestmentFlowBlock_old_end(storage_electricity_7) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricity_storage_0)_: -+1 InvestmentFlowBlock_old_end(electricity_storage_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricity_storage_1)_: --1 InvestmentFlowBlock_invest(electricity_storage_0) -+1 InvestmentFlowBlock_old_end(electricity_storage_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricity_storage_2)_: -+1 InvestmentFlowBlock_old_end(electricity_storage_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricity_storage_3)_: --1 InvestmentFlowBlock_invest(electricity_storage_1) -+1 InvestmentFlowBlock_old_end(electricity_storage_3) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricity_storage_4)_: -+1 InvestmentFlowBlock_old_end(electricity_storage_4) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricity_storage_5)_: --1 InvestmentFlowBlock_invest(electricity_storage_2) -+1 InvestmentFlowBlock_old_end(electricity_storage_5) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricity_storage_6)_: --1 InvestmentFlowBlock_invest(electricity_storage_3) --1 InvestmentFlowBlock_invest(electricity_storage_4) -+1 InvestmentFlowBlock_old_end(electricity_storage_6) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricity_storage_7)_: --1 InvestmentFlowBlock_invest(electricity_storage_5) --1 InvestmentFlowBlock_invest(electricity_storage_6) -+1 InvestmentFlowBlock_old_end(electricity_storage_7) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_electricity_0)_: -+1 InvestmentFlowBlock_old_exo(storage_electricity_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_electricity_1)_: -+1 InvestmentFlowBlock_old_exo(storage_electricity_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_electricity_2)_: -+1 InvestmentFlowBlock_old_exo(storage_electricity_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_electricity_3)_: -+1 InvestmentFlowBlock_old_exo(storage_electricity_3) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_electricity_4)_: -+1 InvestmentFlowBlock_old_exo(storage_electricity_4) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_electricity_5)_: -+1 InvestmentFlowBlock_old_exo(storage_electricity_5) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_electricity_6)_: -+1 InvestmentFlowBlock_old_exo(storage_electricity_6) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_electricity_7)_: -+1 InvestmentFlowBlock_old_exo(storage_electricity_7) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricity_storage_0)_: -+1 InvestmentFlowBlock_old_exo(electricity_storage_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricity_storage_1)_: -+1 InvestmentFlowBlock_old_exo(electricity_storage_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricity_storage_2)_: -+1 InvestmentFlowBlock_old_exo(electricity_storage_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricity_storage_3)_: -+1 InvestmentFlowBlock_old_exo(electricity_storage_3) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricity_storage_4)_: -+1 InvestmentFlowBlock_old_exo(electricity_storage_4) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricity_storage_5)_: -+1 InvestmentFlowBlock_old_exo(electricity_storage_5) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricity_storage_6)_: -+1 InvestmentFlowBlock_old_exo(electricity_storage_6) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricity_storage_7)_: -+1 InvestmentFlowBlock_old_exo(electricity_storage_7) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_electricity_0)_: -+1 InvestmentFlowBlock_old(storage_electricity_0) --1 InvestmentFlowBlock_old_end(storage_electricity_0) --1 InvestmentFlowBlock_old_exo(storage_electricity_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_electricity_1)_: -+1 InvestmentFlowBlock_old(storage_electricity_1) --1 InvestmentFlowBlock_old_end(storage_electricity_1) --1 InvestmentFlowBlock_old_exo(storage_electricity_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_electricity_2)_: -+1 InvestmentFlowBlock_old(storage_electricity_2) --1 InvestmentFlowBlock_old_end(storage_electricity_2) --1 InvestmentFlowBlock_old_exo(storage_electricity_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_electricity_3)_: -+1 InvestmentFlowBlock_old(storage_electricity_3) --1 InvestmentFlowBlock_old_end(storage_electricity_3) --1 InvestmentFlowBlock_old_exo(storage_electricity_3) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_electricity_4)_: -+1 InvestmentFlowBlock_old(storage_electricity_4) --1 InvestmentFlowBlock_old_end(storage_electricity_4) --1 InvestmentFlowBlock_old_exo(storage_electricity_4) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_electricity_5)_: -+1 InvestmentFlowBlock_old(storage_electricity_5) --1 InvestmentFlowBlock_old_end(storage_electricity_5) --1 InvestmentFlowBlock_old_exo(storage_electricity_5) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_electricity_6)_: -+1 InvestmentFlowBlock_old(storage_electricity_6) --1 InvestmentFlowBlock_old_end(storage_electricity_6) --1 InvestmentFlowBlock_old_exo(storage_electricity_6) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_electricity_7)_: -+1 InvestmentFlowBlock_old(storage_electricity_7) --1 InvestmentFlowBlock_old_end(storage_electricity_7) --1 InvestmentFlowBlock_old_exo(storage_electricity_7) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricity_storage_0)_: -+1 InvestmentFlowBlock_old(electricity_storage_0) --1 InvestmentFlowBlock_old_end(electricity_storage_0) --1 InvestmentFlowBlock_old_exo(electricity_storage_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricity_storage_1)_: -+1 InvestmentFlowBlock_old(electricity_storage_1) --1 InvestmentFlowBlock_old_end(electricity_storage_1) --1 InvestmentFlowBlock_old_exo(electricity_storage_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricity_storage_2)_: -+1 InvestmentFlowBlock_old(electricity_storage_2) --1 InvestmentFlowBlock_old_end(electricity_storage_2) --1 InvestmentFlowBlock_old_exo(electricity_storage_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricity_storage_3)_: -+1 InvestmentFlowBlock_old(electricity_storage_3) --1 InvestmentFlowBlock_old_end(electricity_storage_3) --1 InvestmentFlowBlock_old_exo(electricity_storage_3) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricity_storage_4)_: -+1 InvestmentFlowBlock_old(electricity_storage_4) --1 InvestmentFlowBlock_old_end(electricity_storage_4) --1 InvestmentFlowBlock_old_exo(electricity_storage_4) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricity_storage_5)_: -+1 InvestmentFlowBlock_old(electricity_storage_5) --1 InvestmentFlowBlock_old_end(electricity_storage_5) --1 InvestmentFlowBlock_old_exo(electricity_storage_5) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricity_storage_6)_: -+1 InvestmentFlowBlock_old(electricity_storage_6) --1 InvestmentFlowBlock_old_end(electricity_storage_6) --1 InvestmentFlowBlock_old_exo(electricity_storage_6) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricity_storage_7)_: -+1 InvestmentFlowBlock_old(electricity_storage_7) --1 InvestmentFlowBlock_old_end(electricity_storage_7) --1 InvestmentFlowBlock_old_exo(electricity_storage_7) -= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_0_0)_: -+1 flow(storage_electricity_0) --1 InvestmentFlowBlock_total(storage_electricity_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_0_1)_: -+1 flow(storage_electricity_1) --1 InvestmentFlowBlock_total(storage_electricity_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_0_2)_: -+1 flow(storage_electricity_2) --1 InvestmentFlowBlock_total(storage_electricity_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_1_3)_: -+1 flow(storage_electricity_3) --1 InvestmentFlowBlock_total(storage_electricity_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_1_4)_: -+1 flow(storage_electricity_4) --1 InvestmentFlowBlock_total(storage_electricity_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_1_5)_: -+1 flow(storage_electricity_5) --1 InvestmentFlowBlock_total(storage_electricity_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_2_6)_: -+1 flow(storage_electricity_6) --1 InvestmentFlowBlock_total(storage_electricity_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_2_7)_: -+1 flow(storage_electricity_7) --1 InvestmentFlowBlock_total(storage_electricity_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_2_8)_: -+1 flow(storage_electricity_8) --1 InvestmentFlowBlock_total(storage_electricity_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_3_9)_: -+1 flow(storage_electricity_9) --1 InvestmentFlowBlock_total(storage_electricity_3) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_3_10)_: -+1 flow(storage_electricity_10) --1 InvestmentFlowBlock_total(storage_electricity_3) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_3_11)_: -+1 flow(storage_electricity_11) --1 InvestmentFlowBlock_total(storage_electricity_3) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_4_12)_: -+1 flow(storage_electricity_12) --1 InvestmentFlowBlock_total(storage_electricity_4) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_4_13)_: -+1 flow(storage_electricity_13) --1 InvestmentFlowBlock_total(storage_electricity_4) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_4_14)_: -+1 flow(storage_electricity_14) --1 InvestmentFlowBlock_total(storage_electricity_4) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_5_15)_: -+1 flow(storage_electricity_15) --1 InvestmentFlowBlock_total(storage_electricity_5) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_5_16)_: -+1 flow(storage_electricity_16) --1 InvestmentFlowBlock_total(storage_electricity_5) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_5_17)_: -+1 flow(storage_electricity_17) --1 InvestmentFlowBlock_total(storage_electricity_5) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_6_18)_: -+1 flow(storage_electricity_18) --1 InvestmentFlowBlock_total(storage_electricity_6) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_6_19)_: -+1 flow(storage_electricity_19) --1 InvestmentFlowBlock_total(storage_electricity_6) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_6_20)_: -+1 flow(storage_electricity_20) --1 InvestmentFlowBlock_total(storage_electricity_6) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_7_21)_: -+1 flow(storage_electricity_21) --1 InvestmentFlowBlock_total(storage_electricity_7) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_7_22)_: -+1 flow(storage_electricity_22) --1 InvestmentFlowBlock_total(storage_electricity_7) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_electricity_7_23)_: -+1 flow(storage_electricity_23) --1 InvestmentFlowBlock_total(storage_electricity_7) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_0_0)_: -+1 flow(electricity_storage_0) --1 InvestmentFlowBlock_total(electricity_storage_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_0_1)_: -+1 flow(electricity_storage_1) --1 InvestmentFlowBlock_total(electricity_storage_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_0_2)_: -+1 flow(electricity_storage_2) --1 InvestmentFlowBlock_total(electricity_storage_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_1_3)_: -+1 flow(electricity_storage_3) --1 InvestmentFlowBlock_total(electricity_storage_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_1_4)_: -+1 flow(electricity_storage_4) --1 InvestmentFlowBlock_total(electricity_storage_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_1_5)_: -+1 flow(electricity_storage_5) --1 InvestmentFlowBlock_total(electricity_storage_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_2_6)_: -+1 flow(electricity_storage_6) --1 InvestmentFlowBlock_total(electricity_storage_2) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_2_7)_: -+1 flow(electricity_storage_7) --1 InvestmentFlowBlock_total(electricity_storage_2) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_2_8)_: -+1 flow(electricity_storage_8) --1 InvestmentFlowBlock_total(electricity_storage_2) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_3_9)_: -+1 flow(electricity_storage_9) --1 InvestmentFlowBlock_total(electricity_storage_3) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_3_10)_: -+1 flow(electricity_storage_10) --1 InvestmentFlowBlock_total(electricity_storage_3) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_3_11)_: -+1 flow(electricity_storage_11) --1 InvestmentFlowBlock_total(electricity_storage_3) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_4_12)_: -+1 flow(electricity_storage_12) --1 InvestmentFlowBlock_total(electricity_storage_4) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_4_13)_: -+1 flow(electricity_storage_13) --1 InvestmentFlowBlock_total(electricity_storage_4) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_4_14)_: -+1 flow(electricity_storage_14) --1 InvestmentFlowBlock_total(electricity_storage_4) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_5_15)_: -+1 flow(electricity_storage_15) --1 InvestmentFlowBlock_total(electricity_storage_5) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_5_16)_: -+1 flow(electricity_storage_16) --1 InvestmentFlowBlock_total(electricity_storage_5) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_5_17)_: -+1 flow(electricity_storage_17) --1 InvestmentFlowBlock_total(electricity_storage_5) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_6_18)_: -+1 flow(electricity_storage_18) --1 InvestmentFlowBlock_total(electricity_storage_6) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_6_19)_: -+1 flow(electricity_storage_19) --1 InvestmentFlowBlock_total(electricity_storage_6) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_6_20)_: -+1 flow(electricity_storage_20) --1 InvestmentFlowBlock_total(electricity_storage_6) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_7_21)_: -+1 flow(electricity_storage_21) --1 InvestmentFlowBlock_total(electricity_storage_7) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_7_22)_: -+1 flow(electricity_storage_22) --1 InvestmentFlowBlock_total(electricity_storage_7) -<= 0 - -c_u_InvestmentFlowBlock_max(electricity_storage_7_23)_: -+1 flow(electricity_storage_23) --1 InvestmentFlowBlock_total(electricity_storage_7) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_0)_: --1 GenericInvestmentStorageBlock_invest(storage_0) -+1 GenericInvestmentStorageBlock_total(storage_0) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_1)_: --1 GenericInvestmentStorageBlock_invest(storage_1) --1 GenericInvestmentStorageBlock_total(storage_0) -+1 GenericInvestmentStorageBlock_total(storage_1) -+1 GenericInvestmentStorageBlock_old(storage_1) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_2)_: --1 GenericInvestmentStorageBlock_invest(storage_2) --1 GenericInvestmentStorageBlock_total(storage_1) -+1 GenericInvestmentStorageBlock_total(storage_2) -+1 GenericInvestmentStorageBlock_old(storage_2) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_3)_: --1 GenericInvestmentStorageBlock_invest(storage_3) --1 GenericInvestmentStorageBlock_total(storage_2) -+1 GenericInvestmentStorageBlock_total(storage_3) -+1 GenericInvestmentStorageBlock_old(storage_3) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_4)_: --1 GenericInvestmentStorageBlock_invest(storage_4) --1 GenericInvestmentStorageBlock_total(storage_3) -+1 GenericInvestmentStorageBlock_total(storage_4) -+1 GenericInvestmentStorageBlock_old(storage_4) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_5)_: --1 GenericInvestmentStorageBlock_invest(storage_5) --1 GenericInvestmentStorageBlock_total(storage_4) -+1 GenericInvestmentStorageBlock_total(storage_5) -+1 GenericInvestmentStorageBlock_old(storage_5) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_6)_: --1 GenericInvestmentStorageBlock_invest(storage_6) --1 GenericInvestmentStorageBlock_total(storage_5) -+1 GenericInvestmentStorageBlock_total(storage_6) -+1 GenericInvestmentStorageBlock_old(storage_6) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_7)_: --1 GenericInvestmentStorageBlock_invest(storage_7) --1 GenericInvestmentStorageBlock_total(storage_6) -+1 GenericInvestmentStorageBlock_total(storage_7) -+1 GenericInvestmentStorageBlock_old(storage_7) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_0)_: -+1 GenericInvestmentStorageBlock_old_end(storage_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_1)_: --1 GenericInvestmentStorageBlock_invest(storage_0) -+1 GenericInvestmentStorageBlock_old_end(storage_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_2)_: -+1 GenericInvestmentStorageBlock_old_end(storage_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_3)_: --1 GenericInvestmentStorageBlock_invest(storage_1) -+1 GenericInvestmentStorageBlock_old_end(storage_3) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_4)_: -+1 GenericInvestmentStorageBlock_old_end(storage_4) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_5)_: --1 GenericInvestmentStorageBlock_invest(storage_2) -+1 GenericInvestmentStorageBlock_old_end(storage_5) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_6)_: --1 GenericInvestmentStorageBlock_invest(storage_3) --1 GenericInvestmentStorageBlock_invest(storage_4) -+1 GenericInvestmentStorageBlock_old_end(storage_6) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_7)_: --1 GenericInvestmentStorageBlock_invest(storage_5) --1 GenericInvestmentStorageBlock_invest(storage_6) -+1 GenericInvestmentStorageBlock_old_end(storage_7) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_0)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_1)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_2)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_3)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_3) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_4)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_4) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_5)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_5) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_6)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_6) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_7)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_7) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_0)_: -+1 GenericInvestmentStorageBlock_old(storage_0) --1 GenericInvestmentStorageBlock_old_end(storage_0) --1 GenericInvestmentStorageBlock_old_exo(storage_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_1)_: -+1 GenericInvestmentStorageBlock_old(storage_1) --1 GenericInvestmentStorageBlock_old_end(storage_1) --1 GenericInvestmentStorageBlock_old_exo(storage_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_2)_: -+1 GenericInvestmentStorageBlock_old(storage_2) --1 GenericInvestmentStorageBlock_old_end(storage_2) --1 GenericInvestmentStorageBlock_old_exo(storage_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_3)_: -+1 GenericInvestmentStorageBlock_old(storage_3) --1 GenericInvestmentStorageBlock_old_end(storage_3) --1 GenericInvestmentStorageBlock_old_exo(storage_3) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_4)_: -+1 GenericInvestmentStorageBlock_old(storage_4) --1 GenericInvestmentStorageBlock_old_end(storage_4) --1 GenericInvestmentStorageBlock_old_exo(storage_4) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_5)_: -+1 GenericInvestmentStorageBlock_old(storage_5) --1 GenericInvestmentStorageBlock_old_end(storage_5) --1 GenericInvestmentStorageBlock_old_exo(storage_5) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_6)_: -+1 GenericInvestmentStorageBlock_old(storage_6) --1 GenericInvestmentStorageBlock_old_end(storage_6) --1 GenericInvestmentStorageBlock_old_exo(storage_6) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_7)_: -+1 GenericInvestmentStorageBlock_old(storage_7) --1 GenericInvestmentStorageBlock_old_end(storage_7) --1 GenericInvestmentStorageBlock_old_exo(storage_7) -= 0 - -c_e_GenericInvestmentStorageBlock_initially_empty(storage_0)_: -+1 GenericInvestmentStorageBlock_storage_content(storage_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_0_1)_: --1 flow(electricity_storage_1) -+1 flow(storage_electricity_1) --1 GenericInvestmentStorageBlock_storage_content(storage_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_0_2)_: --1 flow(electricity_storage_2) -+1 flow(storage_electricity_2) --1 GenericInvestmentStorageBlock_storage_content(storage_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_1_3)_: --1 flow(electricity_storage_3) -+1 flow(storage_electricity_3) --1 GenericInvestmentStorageBlock_storage_content(storage_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_3) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_1_4)_: --1 flow(electricity_storage_4) -+1 flow(storage_electricity_4) --1 GenericInvestmentStorageBlock_storage_content(storage_3) -+1 GenericInvestmentStorageBlock_storage_content(storage_4) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_1_5)_: --1 flow(electricity_storage_5) -+1 flow(storage_electricity_5) --1 GenericInvestmentStorageBlock_storage_content(storage_4) -+1 GenericInvestmentStorageBlock_storage_content(storage_5) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_2_6)_: --1 flow(electricity_storage_6) -+1 flow(storage_electricity_6) --1 GenericInvestmentStorageBlock_storage_content(storage_5) -+1 GenericInvestmentStorageBlock_storage_content(storage_6) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_2_7)_: --1 flow(electricity_storage_7) -+1 flow(storage_electricity_7) --1 GenericInvestmentStorageBlock_storage_content(storage_6) -+1 GenericInvestmentStorageBlock_storage_content(storage_7) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_2_8)_: --1 flow(electricity_storage_8) -+1 flow(storage_electricity_8) --1 GenericInvestmentStorageBlock_storage_content(storage_7) -+1 GenericInvestmentStorageBlock_storage_content(storage_8) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_3_9)_: --1 flow(electricity_storage_9) -+1 flow(storage_electricity_9) --1 GenericInvestmentStorageBlock_storage_content(storage_8) -+1 GenericInvestmentStorageBlock_storage_content(storage_9) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_3_10)_: --1 flow(electricity_storage_10) -+1 flow(storage_electricity_10) --1 GenericInvestmentStorageBlock_storage_content(storage_9) -+1 GenericInvestmentStorageBlock_storage_content(storage_10) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_3_11)_: --1 flow(electricity_storage_11) -+1 flow(storage_electricity_11) --1 GenericInvestmentStorageBlock_storage_content(storage_10) -+1 GenericInvestmentStorageBlock_storage_content(storage_11) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_4_12)_: --1 flow(electricity_storage_12) -+1 flow(storage_electricity_12) --1 GenericInvestmentStorageBlock_storage_content(storage_11) -+1 GenericInvestmentStorageBlock_storage_content(storage_12) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_4_13)_: --1 flow(electricity_storage_13) -+1 flow(storage_electricity_13) --1 GenericInvestmentStorageBlock_storage_content(storage_12) -+1 GenericInvestmentStorageBlock_storage_content(storage_13) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_4_14)_: --1 flow(electricity_storage_14) -+1 flow(storage_electricity_14) --1 GenericInvestmentStorageBlock_storage_content(storage_13) -+1 GenericInvestmentStorageBlock_storage_content(storage_14) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_5_15)_: --1 flow(electricity_storage_15) -+1 flow(storage_electricity_15) --1 GenericInvestmentStorageBlock_storage_content(storage_14) -+1 GenericInvestmentStorageBlock_storage_content(storage_15) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_5_16)_: --1 flow(electricity_storage_16) -+1 flow(storage_electricity_16) --1 GenericInvestmentStorageBlock_storage_content(storage_15) -+1 GenericInvestmentStorageBlock_storage_content(storage_16) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_5_17)_: --1 flow(electricity_storage_17) -+1 flow(storage_electricity_17) --1 GenericInvestmentStorageBlock_storage_content(storage_16) -+1 GenericInvestmentStorageBlock_storage_content(storage_17) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_6_18)_: --1 flow(electricity_storage_18) -+1 flow(storage_electricity_18) --1 GenericInvestmentStorageBlock_storage_content(storage_17) -+1 GenericInvestmentStorageBlock_storage_content(storage_18) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_6_19)_: --1 flow(electricity_storage_19) -+1 flow(storage_electricity_19) --1 GenericInvestmentStorageBlock_storage_content(storage_18) -+1 GenericInvestmentStorageBlock_storage_content(storage_19) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_6_20)_: --1 flow(electricity_storage_20) -+1 flow(storage_electricity_20) --1 GenericInvestmentStorageBlock_storage_content(storage_19) -+1 GenericInvestmentStorageBlock_storage_content(storage_20) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_7_21)_: --1 flow(electricity_storage_21) -+1 flow(storage_electricity_21) --1 GenericInvestmentStorageBlock_storage_content(storage_20) -+1 GenericInvestmentStorageBlock_storage_content(storage_21) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_7_22)_: --1 flow(electricity_storage_22) -+1 flow(storage_electricity_22) --1 GenericInvestmentStorageBlock_storage_content(storage_21) -+1 GenericInvestmentStorageBlock_storage_content(storage_22) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_7_23)_: --1 flow(electricity_storage_23) -+1 flow(storage_electricity_23) --1 GenericInvestmentStorageBlock_storage_content(storage_22) -+1 GenericInvestmentStorageBlock_storage_content(storage_23) -= 0 - -c_e_GenericInvestmentStorageBlock_power_coupled(storage_0)_: -+1 InvestmentFlowBlock_total(storage_electricity_0) --1 InvestmentFlowBlock_total(electricity_storage_0) -= 0 - -c_e_GenericInvestmentStorageBlock_power_coupled(storage_1)_: -+1 InvestmentFlowBlock_total(storage_electricity_1) --1 InvestmentFlowBlock_total(electricity_storage_1) -= 0 - -c_e_GenericInvestmentStorageBlock_power_coupled(storage_2)_: -+1 InvestmentFlowBlock_total(storage_electricity_2) --1 InvestmentFlowBlock_total(electricity_storage_2) -= 0 - -c_e_GenericInvestmentStorageBlock_power_coupled(storage_3)_: -+1 InvestmentFlowBlock_total(storage_electricity_3) --1 InvestmentFlowBlock_total(electricity_storage_3) -= 0 - -c_e_GenericInvestmentStorageBlock_power_coupled(storage_4)_: -+1 InvestmentFlowBlock_total(storage_electricity_4) --1 InvestmentFlowBlock_total(electricity_storage_4) -= 0 - -c_e_GenericInvestmentStorageBlock_power_coupled(storage_5)_: -+1 InvestmentFlowBlock_total(storage_electricity_5) --1 InvestmentFlowBlock_total(electricity_storage_5) -= 0 - -c_e_GenericInvestmentStorageBlock_power_coupled(storage_6)_: -+1 InvestmentFlowBlock_total(storage_electricity_6) --1 InvestmentFlowBlock_total(electricity_storage_6) -= 0 - -c_e_GenericInvestmentStorageBlock_power_coupled(storage_7)_: -+1 InvestmentFlowBlock_total(storage_electricity_7) --1 InvestmentFlowBlock_total(electricity_storage_7) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_0)_: -+1 InvestmentFlowBlock_total(storage_electricity_0) --0.2 GenericInvestmentStorageBlock_total(storage_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_1)_: -+1 InvestmentFlowBlock_total(storage_electricity_1) --0.2 GenericInvestmentStorageBlock_total(storage_1) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_2)_: -+1 InvestmentFlowBlock_total(storage_electricity_2) --0.2 GenericInvestmentStorageBlock_total(storage_2) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_3)_: -+1 InvestmentFlowBlock_total(storage_electricity_3) --0.2 GenericInvestmentStorageBlock_total(storage_3) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_4)_: -+1 InvestmentFlowBlock_total(storage_electricity_4) --0.2 GenericInvestmentStorageBlock_total(storage_4) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_5)_: -+1 InvestmentFlowBlock_total(storage_electricity_5) --0.2 GenericInvestmentStorageBlock_total(storage_5) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_6)_: -+1 InvestmentFlowBlock_total(storage_electricity_6) --0.2 GenericInvestmentStorageBlock_total(storage_6) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_7)_: -+1 InvestmentFlowBlock_total(storage_electricity_7) --0.2 GenericInvestmentStorageBlock_total(storage_7) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_0_0)_: --1 GenericInvestmentStorageBlock_total(storage_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_0_1)_: --1 GenericInvestmentStorageBlock_total(storage_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_0_2)_: --1 GenericInvestmentStorageBlock_total(storage_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_1_3)_: --1 GenericInvestmentStorageBlock_total(storage_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_1_4)_: --1 GenericInvestmentStorageBlock_total(storage_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_1_5)_: --1 GenericInvestmentStorageBlock_total(storage_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_5) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_2_6)_: --1 GenericInvestmentStorageBlock_total(storage_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_6) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_2_7)_: --1 GenericInvestmentStorageBlock_total(storage_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_7) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_2_8)_: --1 GenericInvestmentStorageBlock_total(storage_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_8) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_3_9)_: --1 GenericInvestmentStorageBlock_total(storage_3) -+1 GenericInvestmentStorageBlock_storage_content(storage_9) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_3_10)_: --1 GenericInvestmentStorageBlock_total(storage_3) -+1 GenericInvestmentStorageBlock_storage_content(storage_10) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_3_11)_: --1 GenericInvestmentStorageBlock_total(storage_3) -+1 GenericInvestmentStorageBlock_storage_content(storage_11) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_4_12)_: --1 GenericInvestmentStorageBlock_total(storage_4) -+1 GenericInvestmentStorageBlock_storage_content(storage_12) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_4_13)_: --1 GenericInvestmentStorageBlock_total(storage_4) -+1 GenericInvestmentStorageBlock_storage_content(storage_13) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_4_14)_: --1 GenericInvestmentStorageBlock_total(storage_4) -+1 GenericInvestmentStorageBlock_storage_content(storage_14) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_5_15)_: --1 GenericInvestmentStorageBlock_total(storage_5) -+1 GenericInvestmentStorageBlock_storage_content(storage_15) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_5_16)_: --1 GenericInvestmentStorageBlock_total(storage_5) -+1 GenericInvestmentStorageBlock_storage_content(storage_16) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_5_17)_: --1 GenericInvestmentStorageBlock_total(storage_5) -+1 GenericInvestmentStorageBlock_storage_content(storage_17) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_6_18)_: --1 GenericInvestmentStorageBlock_total(storage_6) -+1 GenericInvestmentStorageBlock_storage_content(storage_18) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_6_19)_: --1 GenericInvestmentStorageBlock_total(storage_6) -+1 GenericInvestmentStorageBlock_storage_content(storage_19) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_6_20)_: --1 GenericInvestmentStorageBlock_total(storage_6) -+1 GenericInvestmentStorageBlock_storage_content(storage_20) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_7_21)_: --1 GenericInvestmentStorageBlock_total(storage_7) -+1 GenericInvestmentStorageBlock_storage_content(storage_21) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_7_22)_: --1 GenericInvestmentStorageBlock_total(storage_7) -+1 GenericInvestmentStorageBlock_storage_content(storage_22) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_7_23)_: --1 GenericInvestmentStorageBlock_total(storage_7) -+1 GenericInvestmentStorageBlock_storage_content(storage_23) -<= 0 - -c_e_SinkDSMDIWInvestmentBlock_total_dsm_rule(demand_dsm_diw_0)_: --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_0) -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_total_dsm_rule(demand_dsm_diw_1)_: --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_1) --1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_0) -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_1) -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_total_dsm_rule(demand_dsm_diw_2)_: --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_2) --1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_1) -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_2) -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_total_dsm_rule(demand_dsm_diw_3)_: --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_3) --1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_2) -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_3) -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_3) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_total_dsm_rule(demand_dsm_diw_4)_: --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_4) --1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_3) -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_4) -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_4) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_total_dsm_rule(demand_dsm_diw_5)_: --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_5) --1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_4) -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_5) -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_5) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_total_dsm_rule(demand_dsm_diw_6)_: --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_6) --1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_5) -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_6) -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_6) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_total_dsm_rule(demand_dsm_diw_7)_: --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_7) --1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_6) -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_7) -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_7) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_end(demand_dsm_diw_0)_: -+1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_end(demand_dsm_diw_1)_: --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_0) -+1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_end(demand_dsm_diw_2)_: -+1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_end(demand_dsm_diw_3)_: --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_1) -+1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_3) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_end(demand_dsm_diw_4)_: -+1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_4) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_end(demand_dsm_diw_5)_: --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_2) -+1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_5) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_end(demand_dsm_diw_6)_: --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_3) --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_4) -+1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_6) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_end(demand_dsm_diw_7)_: --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_5) --1 SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_6) -+1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_7) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_exo(demand_dsm_diw_0)_: -+1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_exo(demand_dsm_diw_1)_: -+1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_exo(demand_dsm_diw_2)_: -+1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_exo(demand_dsm_diw_3)_: -+1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_3) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_exo(demand_dsm_diw_4)_: -+1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_4) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_exo(demand_dsm_diw_5)_: -+1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_5) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_exo(demand_dsm_diw_6)_: -+1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_6) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_exo(demand_dsm_diw_7)_: -+1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_7) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule(demand_dsm_diw_0)_: -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_0) --1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_0) --1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule(demand_dsm_diw_1)_: -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_1) --1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_1) --1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule(demand_dsm_diw_2)_: -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_2) --1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_2) --1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule(demand_dsm_diw_3)_: -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_3) --1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_3) --1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_3) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule(demand_dsm_diw_4)_: -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_4) --1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_4) --1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_4) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule(demand_dsm_diw_5)_: -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_5) --1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_5) --1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_5) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule(demand_dsm_diw_6)_: -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_6) --1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_6) --1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_6) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule(demand_dsm_diw_7)_: -+1 SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_7) --1 SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_7) --1 SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_7) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_0) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_0) -+1 flow(electricity_demand_dsm_diw_0) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_1) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_1) -+1 flow(electricity_demand_dsm_diw_1) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_0_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_2) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_2) -+1 flow(electricity_demand_dsm_diw_2) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_1_3)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_3) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_3) -+1 flow(electricity_demand_dsm_diw_3) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_1_4)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_4) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_4) -+1 flow(electricity_demand_dsm_diw_4) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_1_5)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_5) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_5) -+1 flow(electricity_demand_dsm_diw_5) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_2_6)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_6) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_6) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_6) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_6) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_6) -+1 flow(electricity_demand_dsm_diw_6) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_2_7)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_7) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_7) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_7) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_7) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_7) -+1 flow(electricity_demand_dsm_diw_7) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_2_8)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_8) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_8) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_8) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_8) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_8) -+1 flow(electricity_demand_dsm_diw_8) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_3_9)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_9) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_9) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_9) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_9) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_9) -+1 flow(electricity_demand_dsm_diw_9) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_3_10)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_10) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_10) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_10) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_10) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_10) -+1 flow(electricity_demand_dsm_diw_10) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_3_11)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_11) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_11) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_11) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_11) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_11) -+1 flow(electricity_demand_dsm_diw_11) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_4_12)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_12) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_12) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_12) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_12) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_12) -+1 flow(electricity_demand_dsm_diw_12) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_4_13)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_13) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_13) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_13) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_13) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_13) -+1 flow(electricity_demand_dsm_diw_13) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_4_14)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_14) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_14) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_14) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_14) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_14) -+1 flow(electricity_demand_dsm_diw_14) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_5_15)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_15) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_15) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_15) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_15) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_15) -+1 flow(electricity_demand_dsm_diw_15) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_5_16)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_16) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_16) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_16) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_16) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_16) -+1 flow(electricity_demand_dsm_diw_16) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_5_17)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_17) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_17) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_17) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_17) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_17) -+1 flow(electricity_demand_dsm_diw_17) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_6_18)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_18) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_18) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_18) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_18) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_18) -+1 flow(electricity_demand_dsm_diw_18) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_6_19)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_19) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_19) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_19) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_19) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_19) -+1 flow(electricity_demand_dsm_diw_19) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_6_20)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_20) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_20) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_20) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_20) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_20) -+1 flow(electricity_demand_dsm_diw_20) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_7_21)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_21) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_21) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_21) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_21) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_21) -+1 flow(electricity_demand_dsm_diw_21) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_7_22)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_22) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_22) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_22) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_22) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_22) -+1 flow(electricity_demand_dsm_diw_22) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(demand_dsm_diw_7_23)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_23) --1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_23) -+1 flow(electricity_demand_dsm_diw_23) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_0)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_0) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_1)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_0) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_1) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_2)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_1) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_2) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_3) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_3)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_2) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_3) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_4) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_3) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_4)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_3) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_4) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_5) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_4) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_5)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_4) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_5) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_6) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_5) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_6)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_5) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_6) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_7) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_6) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_7)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_6) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_7) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_8) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_7) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_8)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_7) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_8) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_9) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_8) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_9)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_8) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_9) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_10) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_9) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_10)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_9) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_10) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_11) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_10) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_11)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_10) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_11) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_12) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_11) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_12)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_11) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_12) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_13) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_12) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_13)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_12) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_13) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_14) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_13) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_14)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_13) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_14) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_15) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_14) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_15)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_14) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_15) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_16) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_15) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_16)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_15) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_16) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_17) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_16) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_17)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_16) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_17) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_18) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_17) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_18)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_17) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_18) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_19) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_18) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_19)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_18) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_19) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_20) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_19) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_20)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_19) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_20) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_21) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_20) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_21)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_20) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_21) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_22) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_21) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_22)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_21) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_22) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_23) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_22) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(demand_dsm_diw_23)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_22) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_23) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_23) -= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_0) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_1) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_0_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_2) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_1_3)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_3) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_1_4)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_4) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_1_5)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_5) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_2_6)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_6) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_2_7)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_7) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_2_8)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_8) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_3_9)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_9) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_3) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_3_10)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_10) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_3) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_3_11)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_11) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_3) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_4_12)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_12) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_4) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_4_13)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_13) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_4) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_4_14)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_14) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_4) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_5_15)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_15) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_5) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_5_16)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_16) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_5) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_5_17)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_17) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_5) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_6_18)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_18) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_6) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_6_19)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_19) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_6) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_6_20)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_20) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_6) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_7_21)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_21) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_7) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_7_22)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_22) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_7) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(demand_dsm_diw_7_23)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_23) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_7) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_0) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_1) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_0_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_2) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_1_3)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_3) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_1_4)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_4) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_1_5)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_5) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_2_6)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_6) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_6) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_6) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_6) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_2_7)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_7) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_7) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_7) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_7) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_2_8)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_8) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_8) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_8) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_8) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_3_9)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_9) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_9) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_9) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_9) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_3) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_3_10)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_10) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_10) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_10) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_10) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_3) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_3_11)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_11) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_11) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_11) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_11) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_3) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_4_12)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_12) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_12) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_12) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_12) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_4) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_4_13)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_13) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_13) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_13) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_13) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_4) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_4_14)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_14) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_14) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_14) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_14) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_4) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_5_15)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_15) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_15) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_15) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_15) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_5) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_5_16)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_16) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_16) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_16) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_16) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_5) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_5_17)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_17) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_17) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_17) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_17) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_5) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_6_18)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_18) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_18) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_18) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_18) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_6) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_6_19)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_19) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_19) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_19) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_19) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_6) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_6_20)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_20) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_20) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_20) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_20) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_6) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_7_21)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_21) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_21) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_21) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_21) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_7) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_7_22)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_22) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_22) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_22) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_22) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_7) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(demand_dsm_diw_7_23)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_23) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_7) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_0) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_0) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_1) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_1) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_0_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_2) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_2) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_1_3)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_3) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_3) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_1_4)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_4) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_4) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_1_5)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_5) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_5) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_2_6)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_6) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_6) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_6) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_6) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_6) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_2_7)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_7) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_7) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_7) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_7) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_7) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_2_8)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_8) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_8) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_8) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_8) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_8) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_3_9)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_9) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_9) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_9) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_9) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_9) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_3) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_3_10)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_10) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_10) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_10) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_10) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_10) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_3) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_3_11)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_11) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_11) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_11) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_11) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_11) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_3) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_4_12)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_12) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_12) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_12) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_12) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_12) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_4) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_4_13)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_13) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_13) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_13) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_13) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_13) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_4) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_4_14)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_14) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_14) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_14) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_14) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_14) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_4) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_5_15)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_15) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_15) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_15) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_15) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_15) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_5) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_5_16)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_16) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_16) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_16) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_16) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_16) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_5) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_5_17)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_17) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_17) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_17) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_17) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_17) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_5) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_6_18)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_18) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_18) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_18) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_18) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_18) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_6) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_6_19)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_19) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_19) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_19) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_19) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_19) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_6) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_6_20)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_20) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_20) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_20) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_20) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_20) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_6) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_7_21)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_21) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_21) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_21) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_21) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_21) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_7) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_7_22)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_22) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_22) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_22) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_22) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_22) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_7) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(demand_dsm_diw_7_23)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_23) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_23) -+1 SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_23) --0.5 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_7) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_1) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_2) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_0_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_3) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_1_3)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_4) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_1_4)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_5) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_1_5)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_6) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_2_6)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_6) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_7) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_2_7)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_7) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_8) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_2_8)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_8) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_9) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_3_9)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_9) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_10) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_3) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_3_10)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_10) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_11) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_3) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_3_11)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_11) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_12) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_3) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_4_12)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_12) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_13) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_4) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_4_13)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_13) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_14) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_4) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_4_14)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_14) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_15) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_4) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_5_15)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_15) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_16) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_5) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_5_16)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_16) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_17) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_5) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_5_17)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_17) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_18) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_5) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_6_18)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_18) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_19) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_6) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_6_19)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_19) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_20) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_6) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_6_20)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_20) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_21) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_6) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_7_21)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_21) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_22) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_7) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_7_22)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_22) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_23) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_7) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_shed_limit_constraint(demand_dsm_diw_7_23)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_23) --1.0 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_7) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_overall_dsm_maximum(demand_dsm_diw_0)_: -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_0) -<= 1000 - -c_u_SinkDSMDIWInvestmentBlock_overall_dsm_maximum(demand_dsm_diw_1)_: -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_1) -<= 1000 - -c_u_SinkDSMDIWInvestmentBlock_overall_dsm_maximum(demand_dsm_diw_2)_: -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_2) -<= 1000 - -c_u_SinkDSMDIWInvestmentBlock_overall_dsm_maximum(demand_dsm_diw_3)_: -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_3) -<= 1000 - -c_u_SinkDSMDIWInvestmentBlock_overall_dsm_maximum(demand_dsm_diw_4)_: -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_4) -<= 1000 - -c_u_SinkDSMDIWInvestmentBlock_overall_dsm_maximum(demand_dsm_diw_5)_: -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_5) -<= 1000 - -c_u_SinkDSMDIWInvestmentBlock_overall_dsm_maximum(demand_dsm_diw_6)_: -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_6) -<= 1000 - -c_u_SinkDSMDIWInvestmentBlock_overall_dsm_maximum(demand_dsm_diw_7)_: -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_7) -<= 1000 - -c_l_SinkDSMDIWInvestmentBlock_overall_minimum(demand_dsm_diw)_: -+1 SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_7) ->= 5 - -c_e_SinkDSMDLRInvestmentBlock_total_dsm_rule(demand_dsm_dlr_0)_: --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_0) -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_total_dsm_rule(demand_dsm_dlr_1)_: --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_1) --1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_0) -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_1) -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_total_dsm_rule(demand_dsm_dlr_2)_: --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_2) --1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_1) -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_2) -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_total_dsm_rule(demand_dsm_dlr_3)_: --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_3) --1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_2) -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_3) -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_total_dsm_rule(demand_dsm_dlr_4)_: --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_4) --1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_3) -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_4) -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_total_dsm_rule(demand_dsm_dlr_5)_: --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_5) --1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_4) -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_5) -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_total_dsm_rule(demand_dsm_dlr_6)_: --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_6) --1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_5) -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_6) -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_6) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_total_dsm_rule(demand_dsm_dlr_7)_: --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_7) --1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_6) -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_7) -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_7) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_end(demand_dsm_dlr_0)_: -+1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_end(demand_dsm_dlr_1)_: --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_0) -+1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_end(demand_dsm_dlr_2)_: -+1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_end(demand_dsm_dlr_3)_: --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_1) -+1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_end(demand_dsm_dlr_4)_: -+1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_end(demand_dsm_dlr_5)_: --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_2) -+1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_end(demand_dsm_dlr_6)_: --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_3) --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_4) -+1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_6) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_end(demand_dsm_dlr_7)_: --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_5) --1 SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_6) -+1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_7) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_exo(demand_dsm_dlr_0)_: -+1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_exo(demand_dsm_dlr_1)_: -+1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_exo(demand_dsm_dlr_2)_: -+1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_exo(demand_dsm_dlr_3)_: -+1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_exo(demand_dsm_dlr_4)_: -+1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_exo(demand_dsm_dlr_5)_: -+1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_exo(demand_dsm_dlr_6)_: -+1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_6) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_exo(demand_dsm_dlr_7)_: -+1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_7) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule(demand_dsm_dlr_0)_: -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_0) --1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_0) --1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule(demand_dsm_dlr_1)_: -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_1) --1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_1) --1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule(demand_dsm_dlr_2)_: -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_2) --1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_2) --1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule(demand_dsm_dlr_3)_: -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_3) --1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_3) --1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule(demand_dsm_dlr_4)_: -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_4) --1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_4) --1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule(demand_dsm_dlr_5)_: -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_5) --1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_5) --1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule(demand_dsm_dlr_6)_: -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_6) --1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_6) --1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_6) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule(demand_dsm_dlr_7)_: -+1 SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_7) --1 SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_7) --1 SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_7) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_0_0)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_0) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_0) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_0) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_0) -+1 flow(electricity_demand_dsm_dlr_0) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_0_1)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_1) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_1) -+1 flow(electricity_demand_dsm_dlr_1) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_0_2)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_2) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_2) -+1 flow(electricity_demand_dsm_dlr_2) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_1_3)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_3) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_3) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_3) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_3) -+1 flow(electricity_demand_dsm_dlr_3) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_1_4)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_4) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_4) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_4) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_4) -+1 flow(electricity_demand_dsm_dlr_4) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_1_5)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_5) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_5) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_5) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_5) -+1 flow(electricity_demand_dsm_dlr_5) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_2_6)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_6) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_6) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_6) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_6) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_6) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_6) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_6) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_6) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_6) -+1 flow(electricity_demand_dsm_dlr_6) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_2_7)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_7) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_7) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_7) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_7) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_7) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_7) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_7) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_7) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_7) -+1 flow(electricity_demand_dsm_dlr_7) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_2_8)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_8) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_8) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_8) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_8) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_8) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_8) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_8) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_8) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_8) -+1 flow(electricity_demand_dsm_dlr_8) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_3_9)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_9) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_9) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_9) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_9) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_9) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_9) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_9) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_9) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_9) -+1 flow(electricity_demand_dsm_dlr_9) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_3_10)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_10) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_10) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_10) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_10) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_10) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_10) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_10) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_10) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_10) -+1 flow(electricity_demand_dsm_dlr_10) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_3_11)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_11) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_11) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_11) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_11) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_11) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_11) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_11) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_11) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_11) -+1 flow(electricity_demand_dsm_dlr_11) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_4_12)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_12) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_12) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_12) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_12) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_12) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_12) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_12) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_12) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_12) -+1 flow(electricity_demand_dsm_dlr_12) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_4_13)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_13) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_13) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_13) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_13) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_13) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_13) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_13) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_13) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_13) -+1 flow(electricity_demand_dsm_dlr_13) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_4_14)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_14) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_14) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_14) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_14) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_14) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_14) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_14) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_14) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_14) -+1 flow(electricity_demand_dsm_dlr_14) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_5_15)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_15) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_15) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_15) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_15) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_15) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_15) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_15) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_15) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_15) -+1 flow(electricity_demand_dsm_dlr_15) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_5_16)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_16) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_16) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_16) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_16) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_16) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_16) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_16) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_16) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_16) -+1 flow(electricity_demand_dsm_dlr_16) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_5_17)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_17) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_17) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_17) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_17) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_17) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_17) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_17) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_17) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_17) -+1 flow(electricity_demand_dsm_dlr_17) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_6_18)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_18) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_18) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_18) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_18) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_18) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_18) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_18) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_18) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_18) -+1 flow(electricity_demand_dsm_dlr_18) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_6_19)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_19) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_19) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_19) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_19) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_19) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_19) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_19) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_19) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_19) -+1 flow(electricity_demand_dsm_dlr_19) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_6_20)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_20) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_20) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_20) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_20) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_20) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_20) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_20) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_20) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_20) -+1 flow(electricity_demand_dsm_dlr_20) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_7_21)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_21) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_21) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_21) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_21) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_21) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_21) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_21) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_21) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_21) -+1 flow(electricity_demand_dsm_dlr_21) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_7_22)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_22) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_22) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_22) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_22) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_22) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_22) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_22) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_22) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_22) -+1 flow(electricity_demand_dsm_dlr_22) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(demand_dsm_dlr_7_23)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_23) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_23) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_23) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_23) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_23) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_23) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_23) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_23) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_23) -+1 flow(electricity_demand_dsm_dlr_23) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_0)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_1)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_1) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_2)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_2) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_3)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_3) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_4)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_4) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_5)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_5) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_6)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_6) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_7)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_7) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_6) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_8)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_8) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_7) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_9)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_9) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_8) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_10)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_10) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_9) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_11)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_11) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_10) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_12)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_12) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_11) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_13)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_13) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_12) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_14)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_14) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_13) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_15)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_15) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_14) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_16)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_16) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_15) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_17)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_17) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_16) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_18)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_18) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_17) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_19)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_19) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_18) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_20)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_20) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_19) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_21)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_21) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_20) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_22)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_22) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_21) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_1_23)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_23) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_22) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_0)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_2)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_2) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_3)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_3) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_4)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_4) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_5)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_5) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_6)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_6) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_7)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_7) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_8)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_8) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_6) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_9)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_9) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_7) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_10)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_10) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_8) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_11)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_11) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_9) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_12)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_12) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_10) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_13)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_13) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_11) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_14)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_14) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_12) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_15)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_15) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_13) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_16)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_16) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_14) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_17)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_17) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_15) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_18)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_18) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_16) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_19)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_19) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_17) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_20)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_20) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_18) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_21)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_21) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_19) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_22)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_22) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_20) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(demand_dsm_dlr_2_23)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_23) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_21) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_0)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_1)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_2)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_3)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_4)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_5)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_6)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_6) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_7)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_6) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_7) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_8)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_7) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_8) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_9)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_8) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_9) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_10)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_9) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_10) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_11)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_10) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_11) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_12)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_11) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_12) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_13)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_12) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_13) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_14)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_13) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_14) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_15)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_14) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_15) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_16)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_15) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_16) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_17)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_16) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_17) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_18)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_17) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_18) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_19)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_18) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_19) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_20)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_19) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_20) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_21)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_20) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_21) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_22)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_21) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_22) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_1_23)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_22) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_23) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_0)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_2)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_3)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_4)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_5)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_6)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_6) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_7)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_7) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_8)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_6) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_8) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_9)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_7) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_9) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_10)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_8) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_10) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_11)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_9) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_11) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_12)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_10) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_12) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_13)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_11) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_13) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_14)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_12) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_14) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_15)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_13) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_15) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_16)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_14) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_16) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_17)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_15) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_17) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_18)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_16) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_18) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_19)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_17) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_19) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_20)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_18) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_20) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_21)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_19) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_21) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_22)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_20) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_22) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(demand_dsm_dlr_2_23)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_21) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_23) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_red(demand_dsm_dlr_1_23)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_23) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_red(demand_dsm_dlr_2_22)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_22) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_red(demand_dsm_dlr_2_23)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_23) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_inc(demand_dsm_dlr_1_23)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_23) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_inc(demand_dsm_dlr_2_22)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_22) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_inc(demand_dsm_dlr_2_23)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_23) -= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_0_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_0) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_0_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_1) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_0_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_2) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_1_3)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_3) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_1_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_4) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_1_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_5) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_2_6)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_6) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_6) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_6) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_6) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_6) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_2_7)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_7) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_7) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_7) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_7) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_7) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_2_8)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_8) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_8) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_8) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_8) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_8) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_3_9)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_9) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_9) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_9) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_9) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_9) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_3) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_3_10)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_10) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_10) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_10) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_10) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_10) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_3) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_3_11)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_11) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_11) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_11) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_11) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_11) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_3) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_4_12)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_12) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_12) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_12) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_12) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_12) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_4) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_4_13)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_13) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_13) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_13) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_13) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_13) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_4) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_4_14)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_14) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_14) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_14) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_14) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_14) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_4) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_5_15)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_15) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_15) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_15) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_15) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_15) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_5) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_5_16)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_16) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_16) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_16) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_16) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_16) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_5) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_5_17)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_17) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_17) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_17) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_17) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_17) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_5) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_6_18)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_18) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_18) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_18) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_18) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_18) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_6) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_6_19)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_19) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_19) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_19) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_19) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_19) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_6) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_6_20)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_20) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_20) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_20) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_20) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_20) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_6) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_7_21)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_21) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_21) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_21) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_21) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_21) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_7) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_7_22)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_22) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_22) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_22) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_22) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_22) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_7) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(demand_dsm_dlr_7_23)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_23) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_23) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_23) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_23) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_23) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_7) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_0_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_0) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_0_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_1) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_0_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_2) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_1_3)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_3) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_1_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_4) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_1_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_5) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_2_6)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_6) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_6) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_6) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_6) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_2_7)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_7) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_7) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_7) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_7) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_2_8)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_8) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_8) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_8) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_8) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_3_9)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_9) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_9) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_9) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_9) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_3) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_3_10)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_10) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_10) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_10) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_10) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_3) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_3_11)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_11) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_11) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_11) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_11) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_3) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_4_12)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_12) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_12) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_12) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_12) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_4) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_4_13)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_13) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_13) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_13) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_13) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_4) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_4_14)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_14) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_14) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_14) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_14) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_4) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_5_15)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_15) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_15) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_15) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_15) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_5) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_5_16)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_16) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_16) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_16) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_16) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_5) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_5_17)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_17) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_17) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_17) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_17) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_5) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_6_18)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_18) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_18) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_18) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_18) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_6) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_6_19)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_19) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_19) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_19) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_19) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_6) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_6_20)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_20) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_20) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_20) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_20) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_6) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_7_21)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_21) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_21) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_21) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_21) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_7) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_7_22)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_22) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_22) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_22) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_22) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_7) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(demand_dsm_dlr_7_23)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_23) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_23) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_23) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_23) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_7) -<= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_0)_: --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_0) --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_1)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_0) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_2)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_1) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_3)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_3) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_2) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_4)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_4) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_3) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_5)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_5) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_4) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_6)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_6) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_6) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_6) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_6) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_5) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_6) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_7)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_7) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_7) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_7) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_7) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_6) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_7) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_8)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_8) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_8) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_8) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_8) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_7) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_8) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_9)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_9) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_9) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_9) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_9) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_8) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_9) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_10)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_10) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_10) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_10) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_10) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_9) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_10) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_11)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_11) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_11) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_11) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_11) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_10) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_11) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_12)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_12) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_12) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_12) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_12) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_11) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_12) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_13)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_13) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_13) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_13) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_13) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_12) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_13) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_14)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_14) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_14) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_14) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_14) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_13) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_14) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_15)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_15) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_15) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_15) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_15) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_14) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_15) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_16)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_16) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_16) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_16) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_16) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_15) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_16) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_17)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_17) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_17) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_17) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_17) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_16) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_17) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_18)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_18) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_18) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_18) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_18) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_17) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_18) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_19)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_19) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_19) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_19) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_19) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_18) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_19) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_20)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_20) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_20) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_20) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_20) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_19) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_20) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_21)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_21) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_21) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_21) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_21) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_20) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_21) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_22)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_22) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_22) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_22) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_22) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_21) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_22) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(demand_dsm_dlr_23)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_23) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_23) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_23) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_23) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_22) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_23) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_0)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_0) --1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_0) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_1) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_3)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_3) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_3) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_2) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_4) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_4) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_3) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_5) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_5) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_4) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_6)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_6) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_6) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_6) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_6) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_5) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_6) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_7)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_7) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_7) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_7) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_7) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_6) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_7) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_8)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_8) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_8) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_8) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_8) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_7) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_8) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_9)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_9) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_9) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_9) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_9) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_8) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_9) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_10)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_10) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_10) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_10) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_10) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_9) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_10) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_11)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_11) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_11) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_11) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_11) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_10) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_11) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_12)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_12) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_12) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_12) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_12) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_11) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_12) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_13)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_13) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_13) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_13) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_13) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_12) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_13) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_14)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_14) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_14) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_14) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_14) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_13) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_14) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_15)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_15) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_15) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_15) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_15) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_14) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_15) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_16)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_16) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_16) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_16) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_16) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_15) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_16) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_17)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_17) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_17) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_17) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_17) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_16) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_17) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_18)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_18) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_18) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_18) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_18) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_17) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_18) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_19)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_19) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_19) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_19) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_19) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_18) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_19) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_20)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_20) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_20) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_20) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_20) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_19) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_20) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_21)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_21) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_21) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_21) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_21) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_20) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_21) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_22)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_22) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_22) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_22) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_22) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_21) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_22) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(demand_dsm_dlr_23)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_23) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_23) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_23) --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_23) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_22) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_23) -= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_0_0)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_0_1)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_0_2)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_1_3)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_3) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_1_4)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_4) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_1_5)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_5) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_2_6)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_6) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_2_7)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_7) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_2_8)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_8) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_3_9)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_9) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_3_10)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_10) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_3_11)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_11) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_4_12)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_12) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_4_13)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_13) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_4_14)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_14) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_5_15)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_15) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_5_16)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_16) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_5_17)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_17) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_6_18)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_6) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_18) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_6_19)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_6) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_19) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_6_20)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_6) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_20) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_7_21)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_7) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_21) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_7_22)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_7) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_22) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(demand_dsm_dlr_7_23)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_7) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_23) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_0_0)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_0_1)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_0_2)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_1_3)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_3) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_1_4)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_4) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_1_5)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_5) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_2_6)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_6) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_2_7)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_7) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_2_8)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_8) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_3_9)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_3) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_9) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_3_10)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_3) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_10) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_3_11)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_3) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_11) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_4_12)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_4) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_12) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_4_13)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_4) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_13) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_4_14)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_4) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_14) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_5_15)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_5) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_15) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_5_16)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_5) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_16) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_5_17)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_5) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_17) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_6_18)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_6) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_18) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_6_19)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_6) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_19) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_6_20)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_6) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_20) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_7_21)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_7) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_21) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_7_22)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_7) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_22) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(demand_dsm_dlr_7_23)_: --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_7) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_23) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_yearly_limit_shed(demand_dsm_dlr_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_2) --50.0 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_yearly_limit_shed(demand_dsm_dlr_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_5) --50.0 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_yearly_limit_shed(demand_dsm_dlr_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_6) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_7) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_8) --50.0 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_yearly_limit_shed(demand_dsm_dlr_3)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_9) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_10) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_11) --50.0 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_3) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_yearly_limit_shed(demand_dsm_dlr_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_12) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_13) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_14) --50.0 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_4) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_yearly_limit_shed(demand_dsm_dlr_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_15) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_16) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_17) --50.0 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_5) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_yearly_limit_shed(demand_dsm_dlr_6)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_18) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_19) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_20) --50.0 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_6) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_yearly_limit_shed(demand_dsm_dlr_7)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_21) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_22) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_23) --50.0 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_7) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_0_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_0) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_0_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_1) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_0_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_2) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_1_3)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_3) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_1_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_4) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_1_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_5) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_2_6)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_6) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_6) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_6) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_6) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_6) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_6) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_6) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_6) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_6) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_2_7)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_7) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_7) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_7) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_7) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_7) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_7) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_7) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_7) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_7) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_2_8)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_8) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_8) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_8) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_8) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_8) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_8) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_8) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_8) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_8) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_3_9)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_9) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_9) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_9) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_9) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_9) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_9) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_9) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_9) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_9) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_3) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_3_10)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_10) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_10) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_10) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_10) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_10) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_10) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_10) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_10) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_10) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_3) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_3_11)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_11) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_11) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_11) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_11) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_11) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_11) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_11) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_11) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_11) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_3) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_4_12)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_12) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_12) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_12) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_12) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_12) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_12) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_12) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_12) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_12) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_4) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_4_13)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_13) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_13) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_13) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_13) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_13) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_13) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_13) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_13) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_13) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_4) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_4_14)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_14) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_14) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_14) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_14) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_14) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_14) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_14) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_14) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_14) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_4) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_5_15)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_15) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_15) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_15) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_15) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_15) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_15) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_15) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_15) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_15) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_5) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_5_16)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_16) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_16) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_16) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_16) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_16) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_16) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_16) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_16) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_16) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_5) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_5_17)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_17) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_17) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_17) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_17) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_17) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_17) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_17) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_17) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_17) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_5) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_6_18)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_18) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_18) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_18) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_18) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_18) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_18) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_18) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_18) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_18) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_6) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_6_19)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_19) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_19) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_19) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_19) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_19) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_19) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_19) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_19) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_19) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_6) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_6_20)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_20) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_20) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_20) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_20) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_20) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_20) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_20) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_20) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_20) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_6) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_7_21)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_21) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_21) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_21) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_21) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_21) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_21) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_21) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_21) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_21) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_7) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_7_22)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_22) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_22) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_22) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_22) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_22) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_22) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_22) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_22) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_22) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_7) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(demand_dsm_dlr_7_23)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_23) -+1 SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_23) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_23) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_23) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_23) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_23) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_23) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_23) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_23) --0.5 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_7) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_overall_dsm_maximum(demand_dsm_dlr_0)_: -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_0) -<= 1000 - -c_u_SinkDSMDLRInvestmentBlock_overall_dsm_maximum(demand_dsm_dlr_1)_: -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_1) -<= 1000 - -c_u_SinkDSMDLRInvestmentBlock_overall_dsm_maximum(demand_dsm_dlr_2)_: -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_2) -<= 1000 - -c_u_SinkDSMDLRInvestmentBlock_overall_dsm_maximum(demand_dsm_dlr_3)_: -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_3) -<= 1000 - -c_u_SinkDSMDLRInvestmentBlock_overall_dsm_maximum(demand_dsm_dlr_4)_: -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_4) -<= 1000 - -c_u_SinkDSMDLRInvestmentBlock_overall_dsm_maximum(demand_dsm_dlr_5)_: -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_5) -<= 1000 - -c_u_SinkDSMDLRInvestmentBlock_overall_dsm_maximum(demand_dsm_dlr_6)_: -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_6) -<= 1000 - -c_u_SinkDSMDLRInvestmentBlock_overall_dsm_maximum(demand_dsm_dlr_7)_: -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_7) -<= 1000 - -c_l_SinkDSMDLRInvestmentBlock_overall_minimum(demand_dsm_dlr)_: -+1 SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_7) ->= 5 - -c_e_SinkDSMOemofInvestmentBlock_total_dsm_rule(demand_dsm_oemof_0)_: --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_0) -= 50 - -c_e_SinkDSMOemofInvestmentBlock_total_dsm_rule(demand_dsm_oemof_1)_: --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_1) --1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_1) -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_1) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_total_dsm_rule(demand_dsm_oemof_2)_: --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_2) --1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_1) -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_2) -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_2) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_total_dsm_rule(demand_dsm_oemof_3)_: --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_3) --1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_2) -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_3) -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_3) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_total_dsm_rule(demand_dsm_oemof_4)_: --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_4) --1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_3) -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_4) -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_4) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_total_dsm_rule(demand_dsm_oemof_5)_: --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_5) --1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_4) -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_5) -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_5) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_total_dsm_rule(demand_dsm_oemof_6)_: --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_6) --1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_5) -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_6) -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_6) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_total_dsm_rule(demand_dsm_oemof_7)_: --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_7) --1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_6) -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_7) -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_7) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_end(demand_dsm_oemof_0)_: -+1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_0) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_end(demand_dsm_oemof_1)_: --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_1) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_end(demand_dsm_oemof_2)_: -+1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_2) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_end(demand_dsm_oemof_3)_: --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_1) -+1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_3) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_end(demand_dsm_oemof_4)_: -+1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_4) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_end(demand_dsm_oemof_5)_: --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_2) -+1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_5) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_end(demand_dsm_oemof_6)_: --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_3) --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_4) -+1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_6) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_end(demand_dsm_oemof_7)_: --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_5) --1 SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_6) -+1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_7) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_exo(demand_dsm_oemof_0)_: -+1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_0) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_exo(demand_dsm_oemof_1)_: -+1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_1) -= 50 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_exo(demand_dsm_oemof_2)_: -+1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_2) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_exo(demand_dsm_oemof_3)_: -+1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_3) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_exo(demand_dsm_oemof_4)_: -+1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_4) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_exo(demand_dsm_oemof_5)_: -+1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_5) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_exo(demand_dsm_oemof_6)_: -+1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_6) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_exo(demand_dsm_oemof_7)_: -+1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_7) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule(demand_dsm_oemof_0)_: -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_0) --1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_0) --1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_0) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule(demand_dsm_oemof_1)_: -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_1) --1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_1) --1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_1) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule(demand_dsm_oemof_2)_: -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_2) --1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_2) --1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_2) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule(demand_dsm_oemof_3)_: -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_3) --1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_3) --1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_3) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule(demand_dsm_oemof_4)_: -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_4) --1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_4) --1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_4) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule(demand_dsm_oemof_5)_: -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_5) --1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_5) --1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_5) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule(demand_dsm_oemof_6)_: -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_6) --1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_6) --1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_6) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule(demand_dsm_oemof_7)_: -+1 SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_7) --1 SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_7) --1 SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_7) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_0_0)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_0) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_0) -+1 flow(electricity_demand_dsm_oemof_0) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_0_1)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_1) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_1) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_1) -+1 flow(electricity_demand_dsm_oemof_1) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_0_2)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_2) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_2) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_2) -+1 flow(electricity_demand_dsm_oemof_2) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_1_3)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_3) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_3) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_3) -+1 flow(electricity_demand_dsm_oemof_3) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_1_4)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_4) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_4) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_4) -+1 flow(electricity_demand_dsm_oemof_4) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_1_5)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_5) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_5) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_5) -+1 flow(electricity_demand_dsm_oemof_5) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_2_6)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_6) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_6) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_6) -+1 flow(electricity_demand_dsm_oemof_6) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_2_7)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_7) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_7) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_7) -+1 flow(electricity_demand_dsm_oemof_7) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_2_8)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_8) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_8) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_8) -+1 flow(electricity_demand_dsm_oemof_8) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_3_9)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_9) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_9) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_9) -+1 flow(electricity_demand_dsm_oemof_9) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_3_10)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_10) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_10) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_10) -+1 flow(electricity_demand_dsm_oemof_10) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_3_11)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_11) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_11) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_11) -+1 flow(electricity_demand_dsm_oemof_11) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_4_12)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_12) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_12) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_12) -+1 flow(electricity_demand_dsm_oemof_12) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_4_13)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_13) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_13) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_13) -+1 flow(electricity_demand_dsm_oemof_13) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_4_14)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_14) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_14) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_14) -+1 flow(electricity_demand_dsm_oemof_14) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_5_15)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_15) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_15) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_15) -+1 flow(electricity_demand_dsm_oemof_15) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_5_16)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_16) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_16) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_16) -+1 flow(electricity_demand_dsm_oemof_16) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_5_17)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_17) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_17) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_17) -+1 flow(electricity_demand_dsm_oemof_17) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_6_18)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_18) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_18) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_18) -+1 flow(electricity_demand_dsm_oemof_18) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_6_19)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_19) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_19) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_19) -+1 flow(electricity_demand_dsm_oemof_19) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_6_20)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_20) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_20) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_20) -+1 flow(electricity_demand_dsm_oemof_20) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_7_21)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_21) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_21) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_21) -+1 flow(electricity_demand_dsm_oemof_21) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_7_22)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_22) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_22) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_22) -+1 flow(electricity_demand_dsm_oemof_22) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(demand_dsm_oemof_7_23)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_23) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_23) --1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_23) -+1 flow(electricity_demand_dsm_oemof_23) -= 1 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_0_0)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_0) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_0_1)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_1) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_0_2)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_2) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_1_3)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_3) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_1) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_1_4)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_4) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_1) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_1_5)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_5) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_1) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_2_6)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_6) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_2) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_2_7)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_7) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_2) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_2_8)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_8) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_2) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_3_9)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_9) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_3) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_3_10)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_10) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_3) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_3_11)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_11) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_3) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_4_12)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_12) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_4) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_4_13)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_13) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_4) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_4_14)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_14) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_4) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_5_15)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_15) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_5) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_5_16)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_16) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_5) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_5_17)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_17) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_5) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_6_18)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_18) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_6) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_6_19)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_19) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_6) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_6_20)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_20) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_6) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_7_21)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_21) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_7) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_7_22)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_22) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_7) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(demand_dsm_oemof_7_23)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_23) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_7) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_0_0)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_0) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_0_1)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_1) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_1) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_0_2)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_2) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_2) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_1_3)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_3) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_3) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_1) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_1_4)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_4) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_4) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_1) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_1_5)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_5) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_5) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_1) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_2_6)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_6) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_6) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_2) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_2_7)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_7) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_7) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_2) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_2_8)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_8) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_8) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_2) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_3_9)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_9) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_9) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_3) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_3_10)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_10) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_10) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_3) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_3_11)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_11) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_11) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_3) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_4_12)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_12) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_12) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_4) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_4_13)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_13) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_13) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_4) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_4_14)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_14) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_14) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_4) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_5_15)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_15) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_15) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_5) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_5_16)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_16) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_16) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_5) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_5_17)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_17) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_17) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_5) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_6_18)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_18) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_18) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_6) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_6_19)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_19) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_19) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_6) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_6_20)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_20) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_20) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_6) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_7_21)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_21) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_21) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_7) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_7_22)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_22) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_22) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_7) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(demand_dsm_oemof_7_23)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_23) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_23) --0.5 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_7) -<= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(demand_dsm_oemof_0)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_0) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_1) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_1) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(demand_dsm_oemof_2)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_2) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_3) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_2) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_3) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(demand_dsm_oemof_4)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_4) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_5) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_4) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_5) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(demand_dsm_oemof_6)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_6) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_7) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_6) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_7) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(demand_dsm_oemof_8)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_8) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_9) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_8) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_9) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(demand_dsm_oemof_10)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_10) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_11) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_10) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_11) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(demand_dsm_oemof_12)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_12) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_13) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_12) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_13) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(demand_dsm_oemof_14)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_14) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_15) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_14) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_15) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(demand_dsm_oemof_16)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_16) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_17) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_16) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_17) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(demand_dsm_oemof_18)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_18) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_19) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_18) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_19) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(demand_dsm_oemof_20)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_20) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_21) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_20) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_21) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(demand_dsm_oemof_22)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_22) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_23) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_22) -+1 SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_23) -= 0 - -c_u_SinkDSMOemofInvestmentBlock_overall_dsm_maximum(demand_dsm_oemof_0)_: -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_0) -<= 1000 - -c_u_SinkDSMOemofInvestmentBlock_overall_dsm_maximum(demand_dsm_oemof_1)_: -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_1) -<= 1000 - -c_u_SinkDSMOemofInvestmentBlock_overall_dsm_maximum(demand_dsm_oemof_2)_: -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_2) -<= 1000 - -c_u_SinkDSMOemofInvestmentBlock_overall_dsm_maximum(demand_dsm_oemof_3)_: -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_3) -<= 1000 - -c_u_SinkDSMOemofInvestmentBlock_overall_dsm_maximum(demand_dsm_oemof_4)_: -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_4) -<= 1000 - -c_u_SinkDSMOemofInvestmentBlock_overall_dsm_maximum(demand_dsm_oemof_5)_: -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_5) -<= 1000 - -c_u_SinkDSMOemofInvestmentBlock_overall_dsm_maximum(demand_dsm_oemof_6)_: -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_6) -<= 1000 - -c_u_SinkDSMOemofInvestmentBlock_overall_dsm_maximum(demand_dsm_oemof_7)_: -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_7) -<= 1000 - -c_l_SinkDSMOemofInvestmentBlock_overall_minimum(demand_dsm_oemof)_: -+1 SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_7) ->= 5 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= InvestmentFlowBlock_invest(storage_electricity_0) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_electricity_1) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_electricity_2) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_electricity_3) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_electricity_4) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_electricity_5) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_electricity_6) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_electricity_7) <= +inf - 0 <= InvestmentFlowBlock_invest(electricity_storage_0) <= +inf - 0 <= InvestmentFlowBlock_invest(electricity_storage_1) <= +inf - 0 <= InvestmentFlowBlock_invest(electricity_storage_2) <= +inf - 0 <= InvestmentFlowBlock_invest(electricity_storage_3) <= +inf - 0 <= InvestmentFlowBlock_invest(electricity_storage_4) <= +inf - 0 <= InvestmentFlowBlock_invest(electricity_storage_5) <= +inf - 0 <= InvestmentFlowBlock_invest(electricity_storage_6) <= +inf - 0 <= InvestmentFlowBlock_invest(electricity_storage_7) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_0) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_1) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_2) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_3) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_4) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_5) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_6) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_0_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_1_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_2_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_3_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_4_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_5_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_6_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_7_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_8_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_9_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_10_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_11_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_12_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_13_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_14_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_15_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_16_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_17_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_18_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_19_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_20_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_21_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_22_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(demand_dsm_diw_23_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(demand_dsm_diw_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_8) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_9) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_10) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_11) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_12) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_13) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_14) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_15) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_16) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_17) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_18) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_19) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_20) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_21) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_22) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(demand_dsm_diw_23) <= +inf - 33 <= SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_0) <= 100 - 33 <= SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_1) <= 100 - 33 <= SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_2) <= 100 - 33 <= SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_3) <= 100 - 33 <= SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_4) <= 100 - 33 <= SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_5) <= 100 - 33 <= SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_6) <= 100 - 33 <= SinkDSMDIWInvestmentBlock_invest(demand_dsm_diw_7) <= 100 - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_6) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_7) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_8) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_9) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_10) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_11) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_12) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_13) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_14) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_15) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_16) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_17) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_18) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_19) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_20) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_21) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_22) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_1_23) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_6) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_7) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_8) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_9) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_10) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_11) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_12) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_13) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_14) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_15) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_16) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_17) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_18) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_19) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_20) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_21) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_22) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(demand_dsm_dlr_2_23) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_6) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_7) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_8) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_9) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_10) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_11) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_12) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_13) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_14) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_15) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_16) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_17) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_18) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_19) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_20) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_21) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_22) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_1_23) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_6) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_7) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_8) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_9) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_10) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_11) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_12) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_13) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_14) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_15) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_16) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_17) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_18) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_19) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_20) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_21) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_22) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(demand_dsm_dlr_2_23) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_6) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_7) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_8) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_9) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_10) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_11) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_12) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_13) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_14) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_15) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_16) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_17) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_18) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_19) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_20) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_21) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_22) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_1_23) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_6) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_7) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_8) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_9) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_10) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_11) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_12) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_13) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_14) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_15) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_16) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_17) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_18) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_19) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_20) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_21) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_22) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(demand_dsm_dlr_2_23) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_6) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_7) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_8) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_9) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_10) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_11) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_12) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_13) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_14) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_15) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_16) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_17) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_18) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_19) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_20) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_21) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_22) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_1_23) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_6) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_7) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_8) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_9) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_10) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_11) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_12) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_13) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_14) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_15) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_16) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_17) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_18) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_19) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_20) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_21) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_22) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(demand_dsm_dlr_2_23) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_6) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_7) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_8) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_9) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_10) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_11) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_12) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_13) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_14) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_15) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_16) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_17) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_18) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_19) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_20) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_21) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_22) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(demand_dsm_dlr_23) <= +inf - 33 <= SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_0) <= 100 - 33 <= SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_1) <= 100 - 33 <= SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_2) <= 100 - 33 <= SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_3) <= 100 - 33 <= SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_4) <= 100 - 33 <= SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_5) <= 100 - 33 <= SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_6) <= 100 - 33 <= SinkDSMDLRInvestmentBlock_invest(demand_dsm_dlr_7) <= 100 - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_3) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_4) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_5) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_6) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_7) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_8) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_9) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_10) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_11) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_12) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_13) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_14) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_15) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_16) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_17) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_18) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_19) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_20) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_21) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_22) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(demand_dsm_oemof_23) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_3) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_4) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_5) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_6) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_7) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_8) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_9) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_10) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_11) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_12) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_13) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_14) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_15) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_16) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_17) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_18) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_19) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_20) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_21) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_22) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(demand_dsm_oemof_23) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_3) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_4) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_5) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_6) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_7) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_8) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_9) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_10) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_11) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_12) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_13) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_14) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_15) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_16) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_17) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_18) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_19) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_20) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_21) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_22) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(demand_dsm_oemof_23) <= +inf - 33 <= SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_0) <= 100 - 33 <= SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_1) <= 100 - 33 <= SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_2) <= 100 - 33 <= SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_3) <= 100 - 33 <= SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_4) <= 100 - 33 <= SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_5) <= 100 - 33 <= SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_6) <= 100 - 33 <= SinkDSMOemofInvestmentBlock_invest(demand_dsm_oemof_7) <= 100 - 0 <= flow(electricity_storage_0) <= +inf - 0 <= flow(electricity_storage_1) <= +inf - 0 <= flow(electricity_storage_2) <= +inf - 0 <= flow(electricity_storage_3) <= +inf - 0 <= flow(electricity_storage_4) <= +inf - 0 <= flow(electricity_storage_5) <= +inf - 0 <= flow(electricity_storage_6) <= +inf - 0 <= flow(electricity_storage_7) <= +inf - 0 <= flow(electricity_storage_8) <= +inf - 0 <= flow(electricity_storage_9) <= +inf - 0 <= flow(electricity_storage_10) <= +inf - 0 <= flow(electricity_storage_11) <= +inf - 0 <= flow(electricity_storage_12) <= +inf - 0 <= flow(electricity_storage_13) <= +inf - 0 <= flow(electricity_storage_14) <= +inf - 0 <= flow(electricity_storage_15) <= +inf - 0 <= flow(electricity_storage_16) <= +inf - 0 <= flow(electricity_storage_17) <= +inf - 0 <= flow(electricity_storage_18) <= +inf - 0 <= flow(electricity_storage_19) <= +inf - 0 <= flow(electricity_storage_20) <= +inf - 0 <= flow(electricity_storage_21) <= +inf - 0 <= flow(electricity_storage_22) <= +inf - 0 <= flow(electricity_storage_23) <= +inf - 0 <= flow(electricity_demand_dsm_diw_0) <= +inf - 0 <= flow(electricity_demand_dsm_diw_1) <= +inf - 0 <= flow(electricity_demand_dsm_diw_2) <= +inf - 0 <= flow(electricity_demand_dsm_diw_3) <= +inf - 0 <= flow(electricity_demand_dsm_diw_4) <= +inf - 0 <= flow(electricity_demand_dsm_diw_5) <= +inf - 0 <= flow(electricity_demand_dsm_diw_6) <= +inf - 0 <= flow(electricity_demand_dsm_diw_7) <= +inf - 0 <= flow(electricity_demand_dsm_diw_8) <= +inf - 0 <= flow(electricity_demand_dsm_diw_9) <= +inf - 0 <= flow(electricity_demand_dsm_diw_10) <= +inf - 0 <= flow(electricity_demand_dsm_diw_11) <= +inf - 0 <= flow(electricity_demand_dsm_diw_12) <= +inf - 0 <= flow(electricity_demand_dsm_diw_13) <= +inf - 0 <= flow(electricity_demand_dsm_diw_14) <= +inf - 0 <= flow(electricity_demand_dsm_diw_15) <= +inf - 0 <= flow(electricity_demand_dsm_diw_16) <= +inf - 0 <= flow(electricity_demand_dsm_diw_17) <= +inf - 0 <= flow(electricity_demand_dsm_diw_18) <= +inf - 0 <= flow(electricity_demand_dsm_diw_19) <= +inf - 0 <= flow(electricity_demand_dsm_diw_20) <= +inf - 0 <= flow(electricity_demand_dsm_diw_21) <= +inf - 0 <= flow(electricity_demand_dsm_diw_22) <= +inf - 0 <= flow(electricity_demand_dsm_diw_23) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_0) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_1) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_2) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_3) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_4) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_5) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_6) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_7) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_8) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_9) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_10) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_11) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_12) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_13) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_14) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_15) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_16) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_17) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_18) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_19) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_20) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_21) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_22) <= +inf - 0 <= flow(electricity_demand_dsm_dlr_23) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_0) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_1) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_2) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_3) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_4) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_5) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_6) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_7) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_8) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_9) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_10) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_11) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_12) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_13) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_14) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_15) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_16) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_17) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_18) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_19) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_20) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_21) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_22) <= +inf - 0 <= flow(electricity_demand_dsm_oemof_23) <= +inf - 0 <= flow(storage_electricity_0) <= +inf - 0 <= flow(storage_electricity_1) <= +inf - 0 <= flow(storage_electricity_2) <= +inf - 0 <= flow(storage_electricity_3) <= +inf - 0 <= flow(storage_electricity_4) <= +inf - 0 <= flow(storage_electricity_5) <= +inf - 0 <= flow(storage_electricity_6) <= +inf - 0 <= flow(storage_electricity_7) <= +inf - 0 <= flow(storage_electricity_8) <= +inf - 0 <= flow(storage_electricity_9) <= +inf - 0 <= flow(storage_electricity_10) <= +inf - 0 <= flow(storage_electricity_11) <= +inf - 0 <= flow(storage_electricity_12) <= +inf - 0 <= flow(storage_electricity_13) <= +inf - 0 <= flow(storage_electricity_14) <= +inf - 0 <= flow(storage_electricity_15) <= +inf - 0 <= flow(storage_electricity_16) <= +inf - 0 <= flow(storage_electricity_17) <= +inf - 0 <= flow(storage_electricity_18) <= +inf - 0 <= flow(storage_electricity_19) <= +inf - 0 <= flow(storage_electricity_20) <= +inf - 0 <= flow(storage_electricity_21) <= +inf - 0 <= flow(storage_electricity_22) <= +inf - 0 <= flow(storage_electricity_23) <= +inf - 0 <= InvestmentFlowBlock_total(storage_electricity_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage_electricity_1) <= +inf - 0 <= InvestmentFlowBlock_total(storage_electricity_2) <= +inf - 0 <= InvestmentFlowBlock_total(storage_electricity_3) <= +inf - 0 <= InvestmentFlowBlock_total(storage_electricity_4) <= +inf - 0 <= InvestmentFlowBlock_total(storage_electricity_5) <= +inf - 0 <= InvestmentFlowBlock_total(storage_electricity_6) <= +inf - 0 <= InvestmentFlowBlock_total(storage_electricity_7) <= +inf - 0 <= InvestmentFlowBlock_total(electricity_storage_0) <= +inf - 0 <= InvestmentFlowBlock_total(electricity_storage_1) <= +inf - 0 <= InvestmentFlowBlock_total(electricity_storage_2) <= +inf - 0 <= InvestmentFlowBlock_total(electricity_storage_3) <= +inf - 0 <= InvestmentFlowBlock_total(electricity_storage_4) <= +inf - 0 <= InvestmentFlowBlock_total(electricity_storage_5) <= +inf - 0 <= InvestmentFlowBlock_total(electricity_storage_6) <= +inf - 0 <= InvestmentFlowBlock_total(electricity_storage_7) <= +inf - 0 <= InvestmentFlowBlock_old(storage_electricity_0) <= +inf - 0 <= InvestmentFlowBlock_old(storage_electricity_1) <= +inf - 0 <= InvestmentFlowBlock_old(storage_electricity_2) <= +inf - 0 <= InvestmentFlowBlock_old(storage_electricity_3) <= +inf - 0 <= InvestmentFlowBlock_old(storage_electricity_4) <= +inf - 0 <= InvestmentFlowBlock_old(storage_electricity_5) <= +inf - 0 <= InvestmentFlowBlock_old(storage_electricity_6) <= +inf - 0 <= InvestmentFlowBlock_old(storage_electricity_7) <= +inf - 0 <= InvestmentFlowBlock_old(electricity_storage_0) <= +inf - 0 <= InvestmentFlowBlock_old(electricity_storage_1) <= +inf - 0 <= InvestmentFlowBlock_old(electricity_storage_2) <= +inf - 0 <= InvestmentFlowBlock_old(electricity_storage_3) <= +inf - 0 <= InvestmentFlowBlock_old(electricity_storage_4) <= +inf - 0 <= InvestmentFlowBlock_old(electricity_storage_5) <= +inf - 0 <= InvestmentFlowBlock_old(electricity_storage_6) <= +inf - 0 <= InvestmentFlowBlock_old(electricity_storage_7) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_electricity_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_electricity_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_electricity_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_electricity_3) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_electricity_4) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_electricity_5) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_electricity_6) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_electricity_7) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricity_storage_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricity_storage_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricity_storage_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricity_storage_3) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricity_storage_4) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricity_storage_5) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricity_storage_6) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricity_storage_7) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_electricity_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_electricity_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_electricity_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_electricity_3) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_electricity_4) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_electricity_5) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_electricity_6) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_electricity_7) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricity_storage_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricity_storage_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricity_storage_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricity_storage_3) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricity_storage_4) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricity_storage_5) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricity_storage_6) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricity_storage_7) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_1) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_2) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_3) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_4) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_5) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_6) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_7) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_3) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_4) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_5) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_6) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_7) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_3) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_4) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_5) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_6) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_7) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_3) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_4) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_5) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_6) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_7) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_3) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_4) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_5) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_6) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_7) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_8) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_9) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_10) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_11) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_12) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_13) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_14) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_15) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_16) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_17) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_18) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_19) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_20) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_21) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_22) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_23) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_total(demand_dsm_diw_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old(demand_dsm_diw_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_end(demand_dsm_diw_7) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_6) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_exo(demand_dsm_diw_7) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_6) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_total(demand_dsm_dlr_7) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_6) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old(demand_dsm_dlr_7) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_6) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_end(demand_dsm_dlr_7) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_6) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_exo(demand_dsm_dlr_7) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_6) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_7) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_8) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_9) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_10) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_11) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_12) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_13) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_14) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_15) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_16) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_17) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_18) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_19) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_20) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_21) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_22) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(demand_dsm_dlr_23) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_6) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_7) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_8) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_9) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_10) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_11) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_12) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_13) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_14) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_15) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_16) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_17) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_18) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_19) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_20) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_21) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_22) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(demand_dsm_dlr_23) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_3) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_4) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_5) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_6) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_total(demand_dsm_oemof_7) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_3) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_4) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_5) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_6) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old(demand_dsm_oemof_7) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_3) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_4) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_5) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_6) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_end(demand_dsm_oemof_7) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_3) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_4) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_5) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_6) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_exo(demand_dsm_oemof_7) <= +inf -end diff --git a/tests/lp_files/nominal_value_to_zero.lp b/tests/lp_files/nominal_value_to_zero.lp deleted file mode 100644 index 1c7a5ce7f..000000000 --- a/tests/lp_files/nominal_value_to_zero.lp +++ /dev/null @@ -1,26 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+0 ONE_VAR_CONSTANT - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(s1_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(s1_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(s1_electricityBus_2) -= 0 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= flow(s1_electricityBus_0) <= 0 - 0 <= flow(s1_electricityBus_1) <= 0 - 0 <= flow(s1_electricityBus_2) <= 0 -end diff --git a/tests/lp_files/nominal_value_to_zero_multi_period.lp b/tests/lp_files/nominal_value_to_zero_multi_period.lp deleted file mode 100644 index 820c79734..000000000 --- a/tests/lp_files/nominal_value_to_zero_multi_period.lp +++ /dev/null @@ -1,41 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+0 ONE_VAR_CONSTANT - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(s1_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(s1_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(s1_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(s1_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(s1_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(s1_electricityBus_5) -= 0 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= flow(s1_electricityBus_0) <= 0 - 0 <= flow(s1_electricityBus_1) <= 0 - 0 <= flow(s1_electricityBus_2) <= 0 - 0 <= flow(s1_electricityBus_3) <= 0 - 0 <= flow(s1_electricityBus_4) <= 0 - 0 <= flow(s1_electricityBus_5) <= 0 -end diff --git a/tests/lp_files/nonequidistant_timeindex.lp b/tests/lp_files/nonequidistant_timeindex.lp deleted file mode 100644 index 702f1efab..000000000 --- a/tests/lp_files/nonequidistant_timeindex.lp +++ /dev/null @@ -1,307 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+100 flow(gas_boiler_0) -+100 flow(gas_boiler_1) -+100 flow(gas_boiler_2) -+200.0 flow(gas_boiler_3) -+200.0 flow(gas_boiler_4) -+50.0 flow(gas_boiler_5) -+50.0 flow(gas_boiler_6) -+50.0 flow(gas_boiler_7) -+56 flow(heat_storage_0) -+56 flow(heat_storage_1) -+56 flow(heat_storage_2) -+112.0 flow(heat_storage_3) -+112.0 flow(heat_storage_4) -+28.0 flow(heat_storage_5) -+28.0 flow(heat_storage_6) -+28.0 flow(heat_storage_7) -+24 flow(storage_heat_0) -+24 flow(storage_heat_1) -+24 flow(storage_heat_2) -+48.0 flow(storage_heat_3) -+48.0 flow(storage_heat_4) -+12.0 flow(storage_heat_5) -+12.0 flow(storage_heat_6) -+12.0 flow(storage_heat_7) - -s.t. - -c_e_BusBlock_balance(gas_0)_: -+1 flow(gas_boiler_0) -= 0 - -c_e_BusBlock_balance(gas_1)_: -+1 flow(gas_boiler_1) -= 0 - -c_e_BusBlock_balance(gas_2)_: -+1 flow(gas_boiler_2) -= 0 - -c_e_BusBlock_balance(gas_3)_: -+1 flow(gas_boiler_3) -= 0 - -c_e_BusBlock_balance(gas_4)_: -+1 flow(gas_boiler_4) -= 0 - -c_e_BusBlock_balance(gas_5)_: -+1 flow(gas_boiler_5) -= 0 - -c_e_BusBlock_balance(gas_6)_: -+1 flow(gas_boiler_6) -= 0 - -c_e_BusBlock_balance(gas_7)_: -+1 flow(gas_boiler_7) -= 0 - -c_e_BusBlock_balance(heat_0)_: --1 flow(heat_storage_0) -+1 flow(boiler_heat_0) -+1 flow(storage_heat_0) -= 0 - -c_e_BusBlock_balance(heat_1)_: --1 flow(heat_storage_1) -+1 flow(boiler_heat_1) -+1 flow(storage_heat_1) -= 0 - -c_e_BusBlock_balance(heat_2)_: --1 flow(heat_storage_2) -+1 flow(boiler_heat_2) -+1 flow(storage_heat_2) -= 0 - -c_e_BusBlock_balance(heat_3)_: --1 flow(heat_storage_3) -+1 flow(boiler_heat_3) -+1 flow(storage_heat_3) -= 0 - -c_e_BusBlock_balance(heat_4)_: --1 flow(heat_storage_4) -+1 flow(boiler_heat_4) -+1 flow(storage_heat_4) -= 0 - -c_e_BusBlock_balance(heat_5)_: --1 flow(heat_storage_5) -+1 flow(boiler_heat_5) -+1 flow(storage_heat_5) -= 0 - -c_e_BusBlock_balance(heat_6)_: --1 flow(heat_storage_6) -+1 flow(boiler_heat_6) -+1 flow(storage_heat_6) -= 0 - -c_e_BusBlock_balance(heat_7)_: --1 flow(heat_storage_7) -+1 flow(boiler_heat_7) -+1 flow(storage_heat_7) -= 0 - -c_e_ConverterBlock_relation(boiler_gas_heat_0)_: -+1 flow(gas_boiler_0) --1 flow(boiler_heat_0) -= 0 - -c_e_ConverterBlock_relation(boiler_gas_heat_1)_: -+1 flow(gas_boiler_1) --1 flow(boiler_heat_1) -= 0 - -c_e_ConverterBlock_relation(boiler_gas_heat_2)_: -+1 flow(gas_boiler_2) --1 flow(boiler_heat_2) -= 0 - -c_e_ConverterBlock_relation(boiler_gas_heat_3)_: -+1 flow(gas_boiler_3) --1 flow(boiler_heat_3) -= 0 - -c_e_ConverterBlock_relation(boiler_gas_heat_4)_: -+1 flow(gas_boiler_4) --1 flow(boiler_heat_4) -= 0 - -c_e_ConverterBlock_relation(boiler_gas_heat_5)_: -+1 flow(gas_boiler_5) --1 flow(boiler_heat_5) -= 0 - -c_e_ConverterBlock_relation(boiler_gas_heat_6)_: -+1 flow(gas_boiler_6) --1 flow(boiler_heat_6) -= 0 - -c_e_ConverterBlock_relation(boiler_gas_heat_7)_: -+1 flow(gas_boiler_7) --1 flow(boiler_heat_7) -= 0 - -c_e_GenericStorageBlock_losses(storage_0)_: --1 GenericStorageBlock_storage_losses(storage_0) -= -30.0 - -c_e_GenericStorageBlock_losses(storage_1)_: --1 GenericStorageBlock_storage_losses(storage_1) -+0.1 GenericStorageBlock_storage_content(storage_1) -= 0 - -c_e_GenericStorageBlock_losses(storage_2)_: --1 GenericStorageBlock_storage_losses(storage_2) -+0.1 GenericStorageBlock_storage_content(storage_2) -= 0 - -c_e_GenericStorageBlock_losses(storage_3)_: --1 GenericStorageBlock_storage_losses(storage_3) -+0.19 GenericStorageBlock_storage_content(storage_3) -= 0 - -c_e_GenericStorageBlock_losses(storage_4)_: --1 GenericStorageBlock_storage_losses(storage_4) -+0.19 GenericStorageBlock_storage_content(storage_4) -= 0 - -c_e_GenericStorageBlock_losses(storage_5)_: --1 GenericStorageBlock_storage_losses(storage_5) -+0.05131670194948623 GenericStorageBlock_storage_content(storage_5) -= 0 - -c_e_GenericStorageBlock_losses(storage_6)_: --1 GenericStorageBlock_storage_losses(storage_6) -+0.05131670194948623 GenericStorageBlock_storage_content(storage_6) -= 0 - -c_e_GenericStorageBlock_losses(storage_7)_: --1 GenericStorageBlock_storage_losses(storage_7) -+0.05131670194948623 GenericStorageBlock_storage_content(storage_7) -= 0 - -c_e_GenericStorageBlock_balance(storage_0)_: -+1 flow(heat_storage_0) --1 flow(storage_heat_0) --1 GenericStorageBlock_storage_losses(storage_0) --1 GenericStorageBlock_storage_content(storage_1) -= -300 - -c_e_GenericStorageBlock_balance(storage_1)_: -+1 flow(heat_storage_1) --1 flow(storage_heat_1) --1 GenericStorageBlock_storage_losses(storage_1) -+1 GenericStorageBlock_storage_content(storage_1) --1 GenericStorageBlock_storage_content(storage_2) -= 0 - -c_e_GenericStorageBlock_balance(storage_2)_: -+1 flow(heat_storage_2) --1 flow(storage_heat_2) --1 GenericStorageBlock_storage_losses(storage_2) -+1 GenericStorageBlock_storage_content(storage_2) --1 GenericStorageBlock_storage_content(storage_3) -= 0 - -c_e_GenericStorageBlock_balance(storage_3)_: -+2.0 flow(heat_storage_3) --2.0 flow(storage_heat_3) --1 GenericStorageBlock_storage_losses(storage_3) -+1 GenericStorageBlock_storage_content(storage_3) --1 GenericStorageBlock_storage_content(storage_4) -= 0 - -c_e_GenericStorageBlock_balance(storage_4)_: -+2.0 flow(heat_storage_4) --2.0 flow(storage_heat_4) --1 GenericStorageBlock_storage_losses(storage_4) -+1 GenericStorageBlock_storage_content(storage_4) --1 GenericStorageBlock_storage_content(storage_5) -= 0 - -c_e_GenericStorageBlock_balance(storage_5)_: -+0.5 flow(heat_storage_5) --0.5 flow(storage_heat_5) --1 GenericStorageBlock_storage_losses(storage_5) -+1 GenericStorageBlock_storage_content(storage_5) --1 GenericStorageBlock_storage_content(storage_6) -= 0 - -c_e_GenericStorageBlock_balance(storage_6)_: -+0.5 flow(heat_storage_6) --0.5 flow(storage_heat_6) --1 GenericStorageBlock_storage_losses(storage_6) -+1 GenericStorageBlock_storage_content(storage_6) --1 GenericStorageBlock_storage_content(storage_7) -= 0 - -c_e_GenericStorageBlock_balance(storage_7)_: -+0.5 flow(heat_storage_7) --0.5 flow(storage_heat_7) --1 GenericStorageBlock_storage_losses(storage_7) -+1 GenericStorageBlock_storage_content(storage_7) --1 GenericStorageBlock_storage_content(storage_8) -= 0 - -c_e_GenericStorageBlock_balanced_cstr(storage)_: -+1 GenericStorageBlock_storage_content(storage_8) -= 300 - -bounds - 0 <= flow(gas_boiler_0) <= +inf - 0 <= flow(gas_boiler_1) <= +inf - 0 <= flow(gas_boiler_2) <= +inf - 0 <= flow(gas_boiler_3) <= +inf - 0 <= flow(gas_boiler_4) <= +inf - 0 <= flow(gas_boiler_5) <= +inf - 0 <= flow(gas_boiler_6) <= +inf - 0 <= flow(gas_boiler_7) <= +inf - 0 <= flow(heat_storage_0) <= 100 - 0 <= flow(heat_storage_1) <= 100 - 0 <= flow(heat_storage_2) <= 100 - 0 <= flow(heat_storage_3) <= 100 - 0 <= flow(heat_storage_4) <= 100 - 0 <= flow(heat_storage_5) <= 100 - 0 <= flow(heat_storage_6) <= 100 - 0 <= flow(heat_storage_7) <= 100 - 0 <= flow(boiler_heat_0) <= 200 - 0 <= flow(boiler_heat_1) <= 200 - 0 <= flow(boiler_heat_2) <= 200 - 0 <= flow(boiler_heat_3) <= 200 - 0 <= flow(boiler_heat_4) <= 200 - 0 <= flow(boiler_heat_5) <= 200 - 0 <= flow(boiler_heat_6) <= 200 - 0 <= flow(boiler_heat_7) <= 200 - 0 <= flow(storage_heat_0) <= 100 - 0 <= flow(storage_heat_1) <= 100 - 0 <= flow(storage_heat_2) <= 100 - 0 <= flow(storage_heat_3) <= 100 - 0 <= flow(storage_heat_4) <= 100 - 0 <= flow(storage_heat_5) <= 100 - 0 <= flow(storage_heat_6) <= 100 - 0 <= flow(storage_heat_7) <= 100 - -inf <= GenericStorageBlock_storage_losses(storage_0) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_1) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_2) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_3) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_4) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_5) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_6) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_7) <= +inf - 0 <= GenericStorageBlock_storage_content(storage_1) <= 300 - 0 <= GenericStorageBlock_storage_content(storage_2) <= 300 - 0 <= GenericStorageBlock_storage_content(storage_3) <= 300 - 0 <= GenericStorageBlock_storage_content(storage_4) <= 300 - 0 <= GenericStorageBlock_storage_content(storage_5) <= 300 - 0 <= GenericStorageBlock_storage_content(storage_6) <= 300 - 0 <= GenericStorageBlock_storage_content(storage_7) <= 300 - 0 <= GenericStorageBlock_storage_content(storage_8) <= 300 -end diff --git a/tests/lp_files/offsetconverter.lp b/tests/lp_files/offsetconverter.lp deleted file mode 100644 index 077dc1dc0..000000000 --- a/tests/lp_files/offsetconverter.lp +++ /dev/null @@ -1,114 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+0 ONE_VAR_CONSTANT - -s.t. - -c_e_BusBlock_balance(gasBus_0)_: -+1 flow(gasBus_gasboiler_0) -= 0 - -c_e_BusBlock_balance(gasBus_1)_: -+1 flow(gasBus_gasboiler_1) -= 0 - -c_e_BusBlock_balance(gasBus_2)_: -+1 flow(gasBus_gasboiler_2) -= 0 - -c_e_BusBlock_balance(thermalBus_0)_: -+1 flow(gasboiler_thermalBus_0) -= 0 - -c_e_BusBlock_balance(thermalBus_1)_: -+1 flow(gasboiler_thermalBus_1) -= 0 - -c_e_BusBlock_balance(thermalBus_2)_: -+1 flow(gasboiler_thermalBus_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(gasBus_gasboiler_0)_: -+1 NonConvexFlowBlock_status_nominal(gasBus_gasboiler_0) --100 NonConvexFlowBlock_status(gasBus_gasboiler_0) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(gasBus_gasboiler_1)_: -+1 NonConvexFlowBlock_status_nominal(gasBus_gasboiler_1) --100 NonConvexFlowBlock_status(gasBus_gasboiler_1) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(gasBus_gasboiler_2)_: -+1 NonConvexFlowBlock_status_nominal(gasBus_gasboiler_2) --100 NonConvexFlowBlock_status(gasBus_gasboiler_2) -= 0 - -c_u_NonConvexFlowBlock_min(gasBus_gasboiler_0)_: --1 flow(gasBus_gasboiler_0) -+0.32 NonConvexFlowBlock_status_nominal(gasBus_gasboiler_0) -<= 0 - -c_u_NonConvexFlowBlock_min(gasBus_gasboiler_1)_: --1 flow(gasBus_gasboiler_1) -+0.32 NonConvexFlowBlock_status_nominal(gasBus_gasboiler_1) -<= 0 - -c_u_NonConvexFlowBlock_min(gasBus_gasboiler_2)_: --1 flow(gasBus_gasboiler_2) -+0.32 NonConvexFlowBlock_status_nominal(gasBus_gasboiler_2) -<= 0 - -c_u_NonConvexFlowBlock_max(gasBus_gasboiler_0)_: -+1 flow(gasBus_gasboiler_0) --1 NonConvexFlowBlock_status_nominal(gasBus_gasboiler_0) -<= 0 - -c_u_NonConvexFlowBlock_max(gasBus_gasboiler_1)_: -+1 flow(gasBus_gasboiler_1) --1 NonConvexFlowBlock_status_nominal(gasBus_gasboiler_1) -<= 0 - -c_u_NonConvexFlowBlock_max(gasBus_gasboiler_2)_: -+1 flow(gasBus_gasboiler_2) --1 NonConvexFlowBlock_status_nominal(gasBus_gasboiler_2) -<= 0 - -c_e_OffsetConverterBlock_relation(gasboiler_0)_: -+0.9 flow(gasBus_gasboiler_0) --1 flow(gasboiler_thermalBus_0) --17 NonConvexFlowBlock_status(gasBus_gasboiler_0) -= 0 - -c_e_OffsetConverterBlock_relation(gasboiler_1)_: -+0.9 flow(gasBus_gasboiler_1) --1 flow(gasboiler_thermalBus_1) --17 NonConvexFlowBlock_status(gasBus_gasboiler_1) -= 0 - -c_e_OffsetConverterBlock_relation(gasboiler_2)_: -+0.9 flow(gasBus_gasboiler_2) --1 flow(gasboiler_thermalBus_2) --17 NonConvexFlowBlock_status(gasBus_gasboiler_2) -= 0 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= flow(gasBus_gasboiler_0) <= 100 - 0 <= flow(gasBus_gasboiler_1) <= 100 - 0 <= flow(gasBus_gasboiler_2) <= 100 - 0 <= flow(gasboiler_thermalBus_0) <= +inf - 0 <= flow(gasboiler_thermalBus_1) <= +inf - 0 <= flow(gasboiler_thermalBus_2) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(gasBus_gasboiler_0) <= +inf - 0 <= NonConvexFlowBlock_status(gasBus_gasboiler_0) <= 1 - 0 <= NonConvexFlowBlock_status_nominal(gasBus_gasboiler_1) <= +inf - 0 <= NonConvexFlowBlock_status(gasBus_gasboiler_1) <= 1 - 0 <= NonConvexFlowBlock_status_nominal(gasBus_gasboiler_2) <= +inf - 0 <= NonConvexFlowBlock_status(gasBus_gasboiler_2) <= 1 -binary - NonConvexFlowBlock_status(gasBus_gasboiler_0) - NonConvexFlowBlock_status(gasBus_gasboiler_1) - NonConvexFlowBlock_status(gasBus_gasboiler_2) -end diff --git a/tests/lp_files/offsetconverter_multi_period.lp b/tests/lp_files/offsetconverter_multi_period.lp deleted file mode 100644 index 48e583999..000000000 --- a/tests/lp_files/offsetconverter_multi_period.lp +++ /dev/null @@ -1,216 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+0 ONE_VAR_CONSTANT - -s.t. - -c_e_BusBlock_balance(gasBus_0)_: -+1 flow(gasBus_gasboiler_0) -= 0 - -c_e_BusBlock_balance(gasBus_1)_: -+1 flow(gasBus_gasboiler_1) -= 0 - -c_e_BusBlock_balance(gasBus_2)_: -+1 flow(gasBus_gasboiler_2) -= 0 - -c_e_BusBlock_balance(gasBus_3)_: -+1 flow(gasBus_gasboiler_3) -= 0 - -c_e_BusBlock_balance(gasBus_4)_: -+1 flow(gasBus_gasboiler_4) -= 0 - -c_e_BusBlock_balance(gasBus_5)_: -+1 flow(gasBus_gasboiler_5) -= 0 - -c_e_BusBlock_balance(thermalBus_0)_: -+1 flow(gasboiler_thermalBus_0) -= 0 - -c_e_BusBlock_balance(thermalBus_1)_: -+1 flow(gasboiler_thermalBus_1) -= 0 - -c_e_BusBlock_balance(thermalBus_2)_: -+1 flow(gasboiler_thermalBus_2) -= 0 - -c_e_BusBlock_balance(thermalBus_3)_: -+1 flow(gasboiler_thermalBus_3) -= 0 - -c_e_BusBlock_balance(thermalBus_4)_: -+1 flow(gasboiler_thermalBus_4) -= 0 - -c_e_BusBlock_balance(thermalBus_5)_: -+1 flow(gasboiler_thermalBus_5) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(gasboiler_thermalBus_0)_: -+1 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_0) --100 NonConvexFlowBlock_status(gasboiler_thermalBus_0) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(gasboiler_thermalBus_1)_: -+1 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_1) --100 NonConvexFlowBlock_status(gasboiler_thermalBus_1) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(gasboiler_thermalBus_2)_: -+1 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_2) --100 NonConvexFlowBlock_status(gasboiler_thermalBus_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(gasboiler_thermalBus_3)_: -+1 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_3) --100 NonConvexFlowBlock_status(gasboiler_thermalBus_3) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(gasboiler_thermalBus_4)_: -+1 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_4) --100 NonConvexFlowBlock_status(gasboiler_thermalBus_4) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(gasboiler_thermalBus_5)_: -+1 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_5) --100 NonConvexFlowBlock_status(gasboiler_thermalBus_5) -= 0 - -c_u_NonConvexFlowBlock_min(gasboiler_thermalBus_0)_: --1 flow(gasboiler_thermalBus_0) -+0.32 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_0) -<= 0 - -c_u_NonConvexFlowBlock_min(gasboiler_thermalBus_1)_: --1 flow(gasboiler_thermalBus_1) -+0.32 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_1) -<= 0 - -c_u_NonConvexFlowBlock_min(gasboiler_thermalBus_2)_: --1 flow(gasboiler_thermalBus_2) -+0.32 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_2) -<= 0 - -c_u_NonConvexFlowBlock_min(gasboiler_thermalBus_3)_: --1 flow(gasboiler_thermalBus_3) -+0.32 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_3) -<= 0 - -c_u_NonConvexFlowBlock_min(gasboiler_thermalBus_4)_: --1 flow(gasboiler_thermalBus_4) -+0.32 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_4) -<= 0 - -c_u_NonConvexFlowBlock_min(gasboiler_thermalBus_5)_: --1 flow(gasboiler_thermalBus_5) -+0.32 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_5) -<= 0 - -c_u_NonConvexFlowBlock_max(gasboiler_thermalBus_0)_: -+1 flow(gasboiler_thermalBus_0) --1 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_0) -<= 0 - -c_u_NonConvexFlowBlock_max(gasboiler_thermalBus_1)_: -+1 flow(gasboiler_thermalBus_1) --1 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_1) -<= 0 - -c_u_NonConvexFlowBlock_max(gasboiler_thermalBus_2)_: -+1 flow(gasboiler_thermalBus_2) --1 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_2) -<= 0 - -c_u_NonConvexFlowBlock_max(gasboiler_thermalBus_3)_: -+1 flow(gasboiler_thermalBus_3) --1 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_3) -<= 0 - -c_u_NonConvexFlowBlock_max(gasboiler_thermalBus_4)_: -+1 flow(gasboiler_thermalBus_4) --1 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_4) -<= 0 - -c_u_NonConvexFlowBlock_max(gasboiler_thermalBus_5)_: -+1 flow(gasboiler_thermalBus_5) --1 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_5) -<= 0 - -c_e_OffsetConverterBlock_relation(gasboiler_thermalBus_gasBus_0)_: --1 flow(gasBus_gasboiler_0) -+0.9617180205415501 flow(gasboiler_thermalBus_0) -+0.14939309056956107 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_0) -= 0 - -c_e_OffsetConverterBlock_relation(gasboiler_thermalBus_gasBus_1)_: --1 flow(gasBus_gasboiler_1) -+0.9617180205415501 flow(gasboiler_thermalBus_1) -+0.14939309056956107 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_1) -= 0 - -c_e_OffsetConverterBlock_relation(gasboiler_thermalBus_gasBus_2)_: --1 flow(gasBus_gasboiler_2) -+0.9617180205415501 flow(gasboiler_thermalBus_2) -+0.14939309056956107 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_2) -= 0 - -c_e_OffsetConverterBlock_relation(gasboiler_thermalBus_gasBus_3)_: --1 flow(gasBus_gasboiler_3) -+0.9617180205415501 flow(gasboiler_thermalBus_3) -+0.14939309056956107 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_3) -= 0 - -c_e_OffsetConverterBlock_relation(gasboiler_thermalBus_gasBus_4)_: --1 flow(gasBus_gasboiler_4) -+0.9617180205415501 flow(gasboiler_thermalBus_4) -+0.14939309056956107 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_4) -= 0 - -c_e_OffsetConverterBlock_relation(gasboiler_thermalBus_gasBus_5)_: --1 flow(gasBus_gasboiler_5) -+0.9617180205415501 flow(gasboiler_thermalBus_5) -+0.14939309056956107 NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_5) -= 0 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= flow(gasBus_gasboiler_0) <= +inf - 0 <= flow(gasBus_gasboiler_1) <= +inf - 0 <= flow(gasBus_gasboiler_2) <= +inf - 0 <= flow(gasBus_gasboiler_3) <= +inf - 0 <= flow(gasBus_gasboiler_4) <= +inf - 0 <= flow(gasBus_gasboiler_5) <= +inf - 0 <= flow(gasboiler_thermalBus_0) <= 100 - 0 <= flow(gasboiler_thermalBus_1) <= 100 - 0 <= flow(gasboiler_thermalBus_2) <= 100 - 0 <= flow(gasboiler_thermalBus_3) <= 100 - 0 <= flow(gasboiler_thermalBus_4) <= 100 - 0 <= flow(gasboiler_thermalBus_5) <= 100 - 0 <= NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_0) <= +inf - 0 <= NonConvexFlowBlock_status(gasboiler_thermalBus_0) <= 1 - 0 <= NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_1) <= +inf - 0 <= NonConvexFlowBlock_status(gasboiler_thermalBus_1) <= 1 - 0 <= NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_2) <= +inf - 0 <= NonConvexFlowBlock_status(gasboiler_thermalBus_2) <= 1 - 0 <= NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_3) <= +inf - 0 <= NonConvexFlowBlock_status(gasboiler_thermalBus_3) <= 1 - 0 <= NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_4) <= +inf - 0 <= NonConvexFlowBlock_status(gasboiler_thermalBus_4) <= 1 - 0 <= NonConvexFlowBlock_status_nominal(gasboiler_thermalBus_5) <= +inf - 0 <= NonConvexFlowBlock_status(gasboiler_thermalBus_5) <= 1 -binary - NonConvexFlowBlock_status(gasboiler_thermalBus_0) - NonConvexFlowBlock_status(gasboiler_thermalBus_1) - NonConvexFlowBlock_status(gasboiler_thermalBus_2) - NonConvexFlowBlock_status(gasboiler_thermalBus_3) - NonConvexFlowBlock_status(gasboiler_thermalBus_4) - NonConvexFlowBlock_status(gasboiler_thermalBus_5) -end diff --git a/tests/lp_files/offsetconverter_nonconvex.lp b/tests/lp_files/offsetconverter_nonconvex.lp deleted file mode 100644 index 3c2ffac0e..000000000 --- a/tests/lp_files/offsetconverter_nonconvex.lp +++ /dev/null @@ -1,114 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+0 ONE_VAR_CONSTANT - -s.t. - -c_e_BusBlock_balance(bus_diesel_0)_: -+1 flow(bus_diesel_diesel_genset_0) -= 0 - -c_e_BusBlock_balance(bus_diesel_1)_: -+1 flow(bus_diesel_diesel_genset_1) -= 0 - -c_e_BusBlock_balance(bus_diesel_2)_: -+1 flow(bus_diesel_diesel_genset_2) -= 0 - -c_e_BusBlock_balance(bus_electricity_0)_: -+1 flow(diesel_genset_bus_electricity_0) -= 0 - -c_e_BusBlock_balance(bus_electricity_1)_: -+1 flow(diesel_genset_bus_electricity_1) -= 0 - -c_e_BusBlock_balance(bus_electricity_2)_: -+1 flow(diesel_genset_bus_electricity_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(diesel_genset_bus_electricity_0)_: -+1 NonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_0) --100 NonConvexFlowBlock_status(diesel_genset_bus_electricity_0) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(diesel_genset_bus_electricity_1)_: -+1 NonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_1) --100 NonConvexFlowBlock_status(diesel_genset_bus_electricity_1) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(diesel_genset_bus_electricity_2)_: -+1 NonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_2) --100 NonConvexFlowBlock_status(diesel_genset_bus_electricity_2) -= 0 - -c_u_NonConvexFlowBlock_min(diesel_genset_bus_electricity_0)_: --1 flow(diesel_genset_bus_electricity_0) -+0.2 NonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_0) -<= 0 - -c_u_NonConvexFlowBlock_min(diesel_genset_bus_electricity_1)_: --1 flow(diesel_genset_bus_electricity_1) -+0.2 NonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_1) -<= 0 - -c_u_NonConvexFlowBlock_min(diesel_genset_bus_electricity_2)_: --1 flow(diesel_genset_bus_electricity_2) -+0.2 NonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_2) -<= 0 - -c_u_NonConvexFlowBlock_max(diesel_genset_bus_electricity_0)_: -+1 flow(diesel_genset_bus_electricity_0) --1 NonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_0) -<= 0 - -c_u_NonConvexFlowBlock_max(diesel_genset_bus_electricity_1)_: -+1 flow(diesel_genset_bus_electricity_1) --1 NonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_1) -<= 0 - -c_u_NonConvexFlowBlock_max(diesel_genset_bus_electricity_2)_: -+1 flow(diesel_genset_bus_electricity_2) --1 NonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_2) -<= 0 - -c_e_OffsetConverterBlock_relation(diesel_genset_bus_electricity_bus_diesel_0)_: --1 flow(bus_diesel_diesel_genset_0) -+2.410714285714285 flow(diesel_genset_bus_electricity_0) -+0.08928571428571486 NonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_0) -= 0 - -c_e_OffsetConverterBlock_relation(diesel_genset_bus_electricity_bus_diesel_1)_: --1 flow(bus_diesel_diesel_genset_1) -+2.410714285714285 flow(diesel_genset_bus_electricity_1) -+0.08928571428571486 NonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_1) -= 0 - -c_e_OffsetConverterBlock_relation(diesel_genset_bus_electricity_bus_diesel_2)_: --1 flow(bus_diesel_diesel_genset_2) -+2.410714285714285 flow(diesel_genset_bus_electricity_2) -+0.08928571428571486 NonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_2) -= 0 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= flow(bus_diesel_diesel_genset_0) <= +inf - 0 <= flow(bus_diesel_diesel_genset_1) <= +inf - 0 <= flow(bus_diesel_diesel_genset_2) <= +inf - 0 <= flow(diesel_genset_bus_electricity_0) <= 100 - 0 <= flow(diesel_genset_bus_electricity_1) <= 100 - 0 <= flow(diesel_genset_bus_electricity_2) <= 100 - 0 <= NonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_0) <= +inf - 0 <= NonConvexFlowBlock_status(diesel_genset_bus_electricity_0) <= 1 - 0 <= NonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_1) <= +inf - 0 <= NonConvexFlowBlock_status(diesel_genset_bus_electricity_1) <= 1 - 0 <= NonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_2) <= +inf - 0 <= NonConvexFlowBlock_status(diesel_genset_bus_electricity_2) <= 1 -binary - NonConvexFlowBlock_status(diesel_genset_bus_electricity_0) - NonConvexFlowBlock_status(diesel_genset_bus_electricity_1) - NonConvexFlowBlock_status(diesel_genset_bus_electricity_2) -end diff --git a/tests/lp_files/offsetconverter_nonconvex_investment.lp b/tests/lp_files/offsetconverter_nonconvex_investment.lp deleted file mode 100644 index 9b91b95ff..000000000 --- a/tests/lp_files/offsetconverter_nonconvex_investment.lp +++ /dev/null @@ -1,155 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+100 InvestNonConvexFlowBlock_invest(diesel_genset_bus_electricity_0) - -s.t. - -c_e_BusBlock_balance(bus_diesel_0)_: -+1 flow(bus_diesel_diesel_genset_0) -= 0 - -c_e_BusBlock_balance(bus_diesel_1)_: -+1 flow(bus_diesel_diesel_genset_1) -= 0 - -c_e_BusBlock_balance(bus_diesel_2)_: -+1 flow(bus_diesel_diesel_genset_2) -= 0 - -c_e_BusBlock_balance(bus_electricity_0)_: -+1 flow(diesel_genset_bus_electricity_0) -= 0 - -c_e_BusBlock_balance(bus_electricity_1)_: -+1 flow(diesel_genset_bus_electricity_1) -= 0 - -c_e_BusBlock_balance(bus_electricity_2)_: -+1 flow(diesel_genset_bus_electricity_2) -= 0 - -c_l_InvestNonConvexFlowBlock_minimum_investment(diesel_genset_bus_electricity_0)_: -+1 InvestNonConvexFlowBlock_invest(diesel_genset_bus_electricity_0) ->= 0 - -c_u_InvestNonConvexFlowBlock_maximum_investment(diesel_genset_bus_electricity_0)_: -+1 InvestNonConvexFlowBlock_invest(diesel_genset_bus_electricity_0) -<= 1234 - -c_u_InvestNonConvexFlowBlock_min(diesel_genset_bus_electricity_0)_: --1 flow(diesel_genset_bus_electricity_0) -+0.2 InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_0) -<= 0 - -c_u_InvestNonConvexFlowBlock_min(diesel_genset_bus_electricity_1)_: --1 flow(diesel_genset_bus_electricity_1) -+0.2 InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_1) -<= 0 - -c_u_InvestNonConvexFlowBlock_min(diesel_genset_bus_electricity_2)_: --1 flow(diesel_genset_bus_electricity_2) -+0.2 InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_2) -<= 0 - -c_u_InvestNonConvexFlowBlock_max(diesel_genset_bus_electricity_0)_: -+1 flow(diesel_genset_bus_electricity_0) --1 InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_0) -<= 0 - -c_u_InvestNonConvexFlowBlock_max(diesel_genset_bus_electricity_1)_: -+1 flow(diesel_genset_bus_electricity_1) --1 InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_1) -<= 0 - -c_u_InvestNonConvexFlowBlock_max(diesel_genset_bus_electricity_2)_: -+1 flow(diesel_genset_bus_electricity_2) --1 InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_2) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_one(diesel_genset_bus_electricity_0_0)_: -+1 InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_0) --1234 InvestNonConvexFlowBlock_status(diesel_genset_bus_electricity_0) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_one(diesel_genset_bus_electricity_0_1)_: -+1 InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_1) --1234 InvestNonConvexFlowBlock_status(diesel_genset_bus_electricity_1) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_one(diesel_genset_bus_electricity_0_2)_: -+1 InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_2) --1234 InvestNonConvexFlowBlock_status(diesel_genset_bus_electricity_2) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_two(diesel_genset_bus_electricity_0_0)_: --1 InvestNonConvexFlowBlock_invest(diesel_genset_bus_electricity_0) -+1 InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_0) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_two(diesel_genset_bus_electricity_0_1)_: --1 InvestNonConvexFlowBlock_invest(diesel_genset_bus_electricity_0) -+1 InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_1) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_two(diesel_genset_bus_electricity_0_2)_: --1 InvestNonConvexFlowBlock_invest(diesel_genset_bus_electricity_0) -+1 InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_2) -<= 0 - -c_u_InvestNonConvexFlowBlock_invest_nc_three(diesel_genset_bus_electricity_0_0)_: -+1 InvestNonConvexFlowBlock_invest(diesel_genset_bus_electricity_0) --1 InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_0) -+1234 InvestNonConvexFlowBlock_status(diesel_genset_bus_electricity_0) -<= 1234 - -c_u_InvestNonConvexFlowBlock_invest_nc_three(diesel_genset_bus_electricity_0_1)_: -+1 InvestNonConvexFlowBlock_invest(diesel_genset_bus_electricity_0) --1 InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_1) -+1234 InvestNonConvexFlowBlock_status(diesel_genset_bus_electricity_1) -<= 1234 - -c_u_InvestNonConvexFlowBlock_invest_nc_three(diesel_genset_bus_electricity_0_2)_: -+1 InvestNonConvexFlowBlock_invest(diesel_genset_bus_electricity_0) --1 InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_2) -+1234 InvestNonConvexFlowBlock_status(diesel_genset_bus_electricity_2) -<= 1234 - -c_e_OffsetConverterBlock_relation(diesel_genset_bus_electricity_bus_diesel_0)_: --1 flow(bus_diesel_diesel_genset_0) -+2.410714285714285 flow(diesel_genset_bus_electricity_0) -+0.08928571428571486 InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_0) -= 0 - -c_e_OffsetConverterBlock_relation(diesel_genset_bus_electricity_bus_diesel_1)_: --1 flow(bus_diesel_diesel_genset_1) -+2.410714285714285 flow(diesel_genset_bus_electricity_1) -+0.08928571428571486 InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_1) -= 0 - -c_e_OffsetConverterBlock_relation(diesel_genset_bus_electricity_bus_diesel_2)_: --1 flow(bus_diesel_diesel_genset_2) -+2.410714285714285 flow(diesel_genset_bus_electricity_2) -+0.08928571428571486 InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_2) -= 0 - -bounds - 0 <= InvestNonConvexFlowBlock_invest(diesel_genset_bus_electricity_0) <= 1234 - 0 <= flow(bus_diesel_diesel_genset_0) <= +inf - 0 <= flow(bus_diesel_diesel_genset_1) <= +inf - 0 <= flow(bus_diesel_diesel_genset_2) <= +inf - 0 <= flow(diesel_genset_bus_electricity_0) <= +inf - 0 <= flow(diesel_genset_bus_electricity_1) <= +inf - 0 <= flow(diesel_genset_bus_electricity_2) <= +inf - 0 <= InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_0) <= +inf - 0 <= InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_1) <= +inf - 0 <= InvestNonConvexFlowBlock_status_nominal(diesel_genset_bus_electricity_2) <= +inf - 0 <= InvestNonConvexFlowBlock_status(diesel_genset_bus_electricity_0) <= 1 - 0 <= InvestNonConvexFlowBlock_status(diesel_genset_bus_electricity_1) <= 1 - 0 <= InvestNonConvexFlowBlock_status(diesel_genset_bus_electricity_2) <= 1 -binary - InvestNonConvexFlowBlock_status(diesel_genset_bus_electricity_0) - InvestNonConvexFlowBlock_status(diesel_genset_bus_electricity_1) - InvestNonConvexFlowBlock_status(diesel_genset_bus_electricity_2) -end diff --git a/tests/lp_files/periodical_emission_limit.lp b/tests/lp_files/periodical_emission_limit.lp deleted file mode 100644 index 0a9d52220..000000000 --- a/tests/lp_files/periodical_emission_limit.lp +++ /dev/null @@ -1,44 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+0 ONE_VAR_CONSTANT - -s.t. - -c_u_periodical_integral_limit(0)_: -+0.5 flow(source1_electricityBus_0) --1.0 flow(source1_electricityBus_1) -+3.5 flow(source2_electricityBus_0) -+3.5 flow(source2_electricityBus_1) -<= 300 - -c_u_periodical_integral_limit(1)_: -+2.0 flow(source1_electricityBus_2) -+1 flow(source1_electricityBus_3) -+3.5 flow(source2_electricityBus_2) -+3.5 flow(source2_electricityBus_3) -<= 200 - -c_u_periodical_integral_limit(2)_: -+0.5 flow(source1_electricityBus_4) -+0.5 flow(source1_electricityBus_5) -+3.5 flow(source2_electricityBus_4) -+3.5 flow(source2_electricityBus_5) -<= 100 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= flow(source1_electricityBus_0) <= 100 - 0 <= flow(source1_electricityBus_1) <= 100 - 0 <= flow(source1_electricityBus_2) <= 100 - 0 <= flow(source1_electricityBus_3) <= 100 - 0 <= flow(source1_electricityBus_4) <= 100 - 0 <= flow(source1_electricityBus_5) <= 100 - 0 <= flow(source2_electricityBus_0) <= 100 - 0 <= flow(source2_electricityBus_1) <= 100 - 0 <= flow(source2_electricityBus_2) <= 100 - 0 <= flow(source2_electricityBus_3) <= 100 - 0 <= flow(source2_electricityBus_4) <= 100 - 0 <= flow(source2_electricityBus_5) <= 100 -end diff --git a/tests/lp_files/periodical_investment_limit.lp b/tests/lp_files/periodical_investment_limit.lp deleted file mode 100644 index 59996067f..000000000 --- a/tests/lp_files/periodical_investment_limit.lp +++ /dev/null @@ -1,583 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+8.230422488026955 InvestmentFlowBlock_invest(Source_Bus1_0) -+5.432444590842506 InvestmentFlowBlock_invest(Source_Bus1_1) -+2.6893290053675805 InvestmentFlowBlock_invest(Source_Bus1_2) -+18.670948783910358 GenericInvestmentStorageBlock_invest(storage_invest_limit_0) -+12.323655908867737 GenericInvestmentStorageBlock_invest(storage_invest_limit_1) -+6.1008197568652225 GenericInvestmentStorageBlock_invest(storage_invest_limit_2) - -s.t. - -c_u_investment_limit_per_period(0)_: -+8.230422488026955 InvestmentFlowBlock_invest(Source_Bus1_0) -+18.670948783910358 GenericInvestmentStorageBlock_invest(storage_invest_limit_0) -<= 500 - -c_u_investment_limit_per_period(1)_: -+5.432444590842506 InvestmentFlowBlock_invest(Source_Bus1_1) -+12.323655908867737 GenericInvestmentStorageBlock_invest(storage_invest_limit_1) -<= 400 - -c_u_investment_limit_per_period(2)_: -+2.6893290053675805 InvestmentFlowBlock_invest(Source_Bus1_2) -+6.1008197568652225 GenericInvestmentStorageBlock_invest(storage_invest_limit_2) -<= 300 - -c_e_BusBlock_balance(Bus1_0)_: --1 flow(Bus1_storage_invest_limit_0) -+1 flow(storage_invest_limit_Bus1_0) -+1 flow(Source_Bus1_0) -= 0 - -c_e_BusBlock_balance(Bus1_1)_: --1 flow(Bus1_storage_invest_limit_1) -+1 flow(storage_invest_limit_Bus1_1) -+1 flow(Source_Bus1_1) -= 0 - -c_e_BusBlock_balance(Bus1_2)_: --1 flow(Bus1_storage_invest_limit_2) -+1 flow(storage_invest_limit_Bus1_2) -+1 flow(Source_Bus1_2) -= 0 - -c_e_BusBlock_balance(Bus1_3)_: --1 flow(Bus1_storage_invest_limit_3) -+1 flow(storage_invest_limit_Bus1_3) -+1 flow(Source_Bus1_3) -= 0 - -c_e_BusBlock_balance(Bus1_4)_: --1 flow(Bus1_storage_invest_limit_4) -+1 flow(storage_invest_limit_Bus1_4) -+1 flow(Source_Bus1_4) -= 0 - -c_e_BusBlock_balance(Bus1_5)_: --1 flow(Bus1_storage_invest_limit_5) -+1 flow(storage_invest_limit_Bus1_5) -+1 flow(Source_Bus1_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Source_Bus1_0)_: --1 InvestmentFlowBlock_invest(Source_Bus1_0) -+1 InvestmentFlowBlock_total(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Source_Bus1_1)_: --1 InvestmentFlowBlock_invest(Source_Bus1_1) --1 InvestmentFlowBlock_total(Source_Bus1_0) -+1 InvestmentFlowBlock_total(Source_Bus1_1) -+1 InvestmentFlowBlock_old(Source_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Source_Bus1_2)_: --1 InvestmentFlowBlock_invest(Source_Bus1_2) --1 InvestmentFlowBlock_total(Source_Bus1_1) -+1 InvestmentFlowBlock_total(Source_Bus1_2) -+1 InvestmentFlowBlock_old(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_invest_limit_Bus1_0)_: --1 InvestmentFlowBlock_invest(storage_invest_limit_Bus1_0) -+1 InvestmentFlowBlock_total(storage_invest_limit_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_invest_limit_Bus1_1)_: --1 InvestmentFlowBlock_invest(storage_invest_limit_Bus1_1) --1 InvestmentFlowBlock_total(storage_invest_limit_Bus1_0) -+1 InvestmentFlowBlock_total(storage_invest_limit_Bus1_1) -+1 InvestmentFlowBlock_old(storage_invest_limit_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_invest_limit_Bus1_2)_: --1 InvestmentFlowBlock_invest(storage_invest_limit_Bus1_2) --1 InvestmentFlowBlock_total(storage_invest_limit_Bus1_1) -+1 InvestmentFlowBlock_total(storage_invest_limit_Bus1_2) -+1 InvestmentFlowBlock_old(storage_invest_limit_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Bus1_storage_invest_limit_0)_: --1 InvestmentFlowBlock_invest(Bus1_storage_invest_limit_0) -+1 InvestmentFlowBlock_total(Bus1_storage_invest_limit_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Bus1_storage_invest_limit_1)_: --1 InvestmentFlowBlock_invest(Bus1_storage_invest_limit_1) --1 InvestmentFlowBlock_total(Bus1_storage_invest_limit_0) -+1 InvestmentFlowBlock_total(Bus1_storage_invest_limit_1) -+1 InvestmentFlowBlock_old(Bus1_storage_invest_limit_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Bus1_storage_invest_limit_2)_: --1 InvestmentFlowBlock_invest(Bus1_storage_invest_limit_2) --1 InvestmentFlowBlock_total(Bus1_storage_invest_limit_1) -+1 InvestmentFlowBlock_total(Bus1_storage_invest_limit_2) -+1 InvestmentFlowBlock_old(Bus1_storage_invest_limit_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Source_Bus1_0)_: -+1 InvestmentFlowBlock_old_end(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Source_Bus1_1)_: -+1 InvestmentFlowBlock_old_end(Source_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Source_Bus1_2)_: -+1 InvestmentFlowBlock_old_end(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_invest_limit_Bus1_0)_: -+1 InvestmentFlowBlock_old_end(storage_invest_limit_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_invest_limit_Bus1_1)_: -+1 InvestmentFlowBlock_old_end(storage_invest_limit_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_invest_limit_Bus1_2)_: -+1 InvestmentFlowBlock_old_end(storage_invest_limit_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Bus1_storage_invest_limit_0)_: -+1 InvestmentFlowBlock_old_end(Bus1_storage_invest_limit_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Bus1_storage_invest_limit_1)_: -+1 InvestmentFlowBlock_old_end(Bus1_storage_invest_limit_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Bus1_storage_invest_limit_2)_: -+1 InvestmentFlowBlock_old_end(Bus1_storage_invest_limit_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Source_Bus1_0)_: -+1 InvestmentFlowBlock_old_exo(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Source_Bus1_1)_: -+1 InvestmentFlowBlock_old_exo(Source_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Source_Bus1_2)_: -+1 InvestmentFlowBlock_old_exo(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_invest_limit_Bus1_0)_: -+1 InvestmentFlowBlock_old_exo(storage_invest_limit_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_invest_limit_Bus1_1)_: -+1 InvestmentFlowBlock_old_exo(storage_invest_limit_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_invest_limit_Bus1_2)_: -+1 InvestmentFlowBlock_old_exo(storage_invest_limit_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Bus1_storage_invest_limit_0)_: -+1 InvestmentFlowBlock_old_exo(Bus1_storage_invest_limit_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Bus1_storage_invest_limit_1)_: -+1 InvestmentFlowBlock_old_exo(Bus1_storage_invest_limit_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Bus1_storage_invest_limit_2)_: -+1 InvestmentFlowBlock_old_exo(Bus1_storage_invest_limit_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Source_Bus1_0)_: -+1 InvestmentFlowBlock_old(Source_Bus1_0) --1 InvestmentFlowBlock_old_end(Source_Bus1_0) --1 InvestmentFlowBlock_old_exo(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Source_Bus1_1)_: -+1 InvestmentFlowBlock_old(Source_Bus1_1) --1 InvestmentFlowBlock_old_end(Source_Bus1_1) --1 InvestmentFlowBlock_old_exo(Source_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Source_Bus1_2)_: -+1 InvestmentFlowBlock_old(Source_Bus1_2) --1 InvestmentFlowBlock_old_end(Source_Bus1_2) --1 InvestmentFlowBlock_old_exo(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_invest_limit_Bus1_0)_: -+1 InvestmentFlowBlock_old(storage_invest_limit_Bus1_0) --1 InvestmentFlowBlock_old_end(storage_invest_limit_Bus1_0) --1 InvestmentFlowBlock_old_exo(storage_invest_limit_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_invest_limit_Bus1_1)_: -+1 InvestmentFlowBlock_old(storage_invest_limit_Bus1_1) --1 InvestmentFlowBlock_old_end(storage_invest_limit_Bus1_1) --1 InvestmentFlowBlock_old_exo(storage_invest_limit_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_invest_limit_Bus1_2)_: -+1 InvestmentFlowBlock_old(storage_invest_limit_Bus1_2) --1 InvestmentFlowBlock_old_end(storage_invest_limit_Bus1_2) --1 InvestmentFlowBlock_old_exo(storage_invest_limit_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Bus1_storage_invest_limit_0)_: -+1 InvestmentFlowBlock_old(Bus1_storage_invest_limit_0) --1 InvestmentFlowBlock_old_end(Bus1_storage_invest_limit_0) --1 InvestmentFlowBlock_old_exo(Bus1_storage_invest_limit_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Bus1_storage_invest_limit_1)_: -+1 InvestmentFlowBlock_old(Bus1_storage_invest_limit_1) --1 InvestmentFlowBlock_old_end(Bus1_storage_invest_limit_1) --1 InvestmentFlowBlock_old_exo(Bus1_storage_invest_limit_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Bus1_storage_invest_limit_2)_: -+1 InvestmentFlowBlock_old(Bus1_storage_invest_limit_2) --1 InvestmentFlowBlock_old_end(Bus1_storage_invest_limit_2) --1 InvestmentFlowBlock_old_exo(Bus1_storage_invest_limit_2) -= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_0)_: -+1 flow(Source_Bus1_0) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_1)_: -+1 flow(Source_Bus1_1) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_1_2)_: -+1 flow(Source_Bus1_2) --1 InvestmentFlowBlock_total(Source_Bus1_1) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_1_3)_: -+1 flow(Source_Bus1_3) --1 InvestmentFlowBlock_total(Source_Bus1_1) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_2_4)_: -+1 flow(Source_Bus1_4) --1 InvestmentFlowBlock_total(Source_Bus1_2) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_2_5)_: -+1 flow(Source_Bus1_5) --1 InvestmentFlowBlock_total(Source_Bus1_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_invest_limit_Bus1_0_0)_: -+1 flow(storage_invest_limit_Bus1_0) --1 InvestmentFlowBlock_total(storage_invest_limit_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_invest_limit_Bus1_0_1)_: -+1 flow(storage_invest_limit_Bus1_1) --1 InvestmentFlowBlock_total(storage_invest_limit_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_invest_limit_Bus1_1_2)_: -+1 flow(storage_invest_limit_Bus1_2) --1 InvestmentFlowBlock_total(storage_invest_limit_Bus1_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_invest_limit_Bus1_1_3)_: -+1 flow(storage_invest_limit_Bus1_3) --1 InvestmentFlowBlock_total(storage_invest_limit_Bus1_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_invest_limit_Bus1_2_4)_: -+1 flow(storage_invest_limit_Bus1_4) --1 InvestmentFlowBlock_total(storage_invest_limit_Bus1_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_invest_limit_Bus1_2_5)_: -+1 flow(storage_invest_limit_Bus1_5) --1 InvestmentFlowBlock_total(storage_invest_limit_Bus1_2) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_storage_invest_limit_0_0)_: -+1 flow(Bus1_storage_invest_limit_0) --1 InvestmentFlowBlock_total(Bus1_storage_invest_limit_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_storage_invest_limit_0_1)_: -+1 flow(Bus1_storage_invest_limit_1) --1 InvestmentFlowBlock_total(Bus1_storage_invest_limit_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_storage_invest_limit_1_2)_: -+1 flow(Bus1_storage_invest_limit_2) --1 InvestmentFlowBlock_total(Bus1_storage_invest_limit_1) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_storage_invest_limit_1_3)_: -+1 flow(Bus1_storage_invest_limit_3) --1 InvestmentFlowBlock_total(Bus1_storage_invest_limit_1) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_storage_invest_limit_2_4)_: -+1 flow(Bus1_storage_invest_limit_4) --1 InvestmentFlowBlock_total(Bus1_storage_invest_limit_2) -<= 0 - -c_u_InvestmentFlowBlock_max(Bus1_storage_invest_limit_2_5)_: -+1 flow(Bus1_storage_invest_limit_5) --1 InvestmentFlowBlock_total(Bus1_storage_invest_limit_2) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_invest_limit_0)_: --1 GenericInvestmentStorageBlock_invest(storage_invest_limit_0) -+1 GenericInvestmentStorageBlock_total(storage_invest_limit_0) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_invest_limit_1)_: --1 GenericInvestmentStorageBlock_invest(storage_invest_limit_1) --1 GenericInvestmentStorageBlock_total(storage_invest_limit_0) -+1 GenericInvestmentStorageBlock_total(storage_invest_limit_1) -+1 GenericInvestmentStorageBlock_old(storage_invest_limit_1) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_invest_limit_2)_: --1 GenericInvestmentStorageBlock_invest(storage_invest_limit_2) --1 GenericInvestmentStorageBlock_total(storage_invest_limit_1) -+1 GenericInvestmentStorageBlock_total(storage_invest_limit_2) -+1 GenericInvestmentStorageBlock_old(storage_invest_limit_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_invest_limit_0)_: -+1 GenericInvestmentStorageBlock_old_end(storage_invest_limit_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_invest_limit_1)_: -+1 GenericInvestmentStorageBlock_old_end(storage_invest_limit_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_invest_limit_2)_: -+1 GenericInvestmentStorageBlock_old_end(storage_invest_limit_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_invest_limit_0)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_invest_limit_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_invest_limit_1)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_invest_limit_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_invest_limit_2)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_invest_limit_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_invest_limit_0)_: -+1 GenericInvestmentStorageBlock_old(storage_invest_limit_0) --1 GenericInvestmentStorageBlock_old_end(storage_invest_limit_0) --1 GenericInvestmentStorageBlock_old_exo(storage_invest_limit_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_invest_limit_1)_: -+1 GenericInvestmentStorageBlock_old(storage_invest_limit_1) --1 GenericInvestmentStorageBlock_old_end(storage_invest_limit_1) --1 GenericInvestmentStorageBlock_old_exo(storage_invest_limit_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_invest_limit_2)_: -+1 GenericInvestmentStorageBlock_old(storage_invest_limit_2) --1 GenericInvestmentStorageBlock_old_end(storage_invest_limit_2) --1 GenericInvestmentStorageBlock_old_exo(storage_invest_limit_2) -= 0 - -c_e_GenericInvestmentStorageBlock_initially_empty(storage_invest_limit_0)_: -+1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_invest_limit_0_1)_: --1 flow(Bus1_storage_invest_limit_1) -+1 flow(storage_invest_limit_Bus1_1) --1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_invest_limit_1_2)_: --1 flow(Bus1_storage_invest_limit_2) -+1 flow(storage_invest_limit_Bus1_2) --1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_invest_limit_1_3)_: --1 flow(Bus1_storage_invest_limit_3) -+1 flow(storage_invest_limit_Bus1_3) --1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_3) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_invest_limit_2_4)_: --1 flow(Bus1_storage_invest_limit_4) -+1 flow(storage_invest_limit_Bus1_4) --1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_3) -+1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_4) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_invest_limit_2_5)_: --1 flow(Bus1_storage_invest_limit_5) -+1 flow(storage_invest_limit_Bus1_5) --1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_4) -+1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_5) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_invest_limit_0)_: -+1 InvestmentFlowBlock_total(Bus1_storage_invest_limit_0) --0.2 GenericInvestmentStorageBlock_total(storage_invest_limit_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_invest_limit_1)_: -+1 InvestmentFlowBlock_total(Bus1_storage_invest_limit_1) --0.2 GenericInvestmentStorageBlock_total(storage_invest_limit_1) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_invest_limit_2)_: -+1 InvestmentFlowBlock_total(Bus1_storage_invest_limit_2) --0.2 GenericInvestmentStorageBlock_total(storage_invest_limit_2) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_invest_limit_0)_: -+1 InvestmentFlowBlock_total(storage_invest_limit_Bus1_0) --0.2 GenericInvestmentStorageBlock_total(storage_invest_limit_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_invest_limit_1)_: -+1 InvestmentFlowBlock_total(storage_invest_limit_Bus1_1) --0.2 GenericInvestmentStorageBlock_total(storage_invest_limit_1) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_invest_limit_2)_: -+1 InvestmentFlowBlock_total(storage_invest_limit_Bus1_2) --0.2 GenericInvestmentStorageBlock_total(storage_invest_limit_2) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_invest_limit_0_0)_: --1 GenericInvestmentStorageBlock_total(storage_invest_limit_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_invest_limit_0_1)_: --1 GenericInvestmentStorageBlock_total(storage_invest_limit_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_invest_limit_1_2)_: --1 GenericInvestmentStorageBlock_total(storage_invest_limit_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_invest_limit_1_3)_: --1 GenericInvestmentStorageBlock_total(storage_invest_limit_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_invest_limit_2_4)_: --1 GenericInvestmentStorageBlock_total(storage_invest_limit_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_invest_limit_2_5)_: --1 GenericInvestmentStorageBlock_total(storage_invest_limit_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_invest_limit_5) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_invest(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_invest(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_invest_limit_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_invest_limit_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_invest_limit_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_invest(Bus1_storage_invest_limit_0) <= +inf - 0 <= InvestmentFlowBlock_invest(Bus1_storage_invest_limit_1) <= +inf - 0 <= InvestmentFlowBlock_invest(Bus1_storage_invest_limit_2) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_invest_limit_0) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_invest_limit_1) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_invest_limit_2) <= +inf - 0 <= flow(Bus1_storage_invest_limit_0) <= +inf - 0 <= flow(Bus1_storage_invest_limit_1) <= +inf - 0 <= flow(Bus1_storage_invest_limit_2) <= +inf - 0 <= flow(Bus1_storage_invest_limit_3) <= +inf - 0 <= flow(Bus1_storage_invest_limit_4) <= +inf - 0 <= flow(Bus1_storage_invest_limit_5) <= +inf - 0 <= flow(storage_invest_limit_Bus1_0) <= +inf - 0 <= flow(storage_invest_limit_Bus1_1) <= +inf - 0 <= flow(storage_invest_limit_Bus1_2) <= +inf - 0 <= flow(storage_invest_limit_Bus1_3) <= +inf - 0 <= flow(storage_invest_limit_Bus1_4) <= +inf - 0 <= flow(storage_invest_limit_Bus1_5) <= +inf - 0 <= flow(Source_Bus1_0) <= +inf - 0 <= flow(Source_Bus1_1) <= +inf - 0 <= flow(Source_Bus1_2) <= +inf - 0 <= flow(Source_Bus1_3) <= +inf - 0 <= flow(Source_Bus1_4) <= +inf - 0 <= flow(Source_Bus1_5) <= +inf - 0 <= InvestmentFlowBlock_total(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_total(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_total(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_total(storage_invest_limit_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage_invest_limit_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_total(storage_invest_limit_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_total(Bus1_storage_invest_limit_0) <= +inf - 0 <= InvestmentFlowBlock_total(Bus1_storage_invest_limit_1) <= +inf - 0 <= InvestmentFlowBlock_total(Bus1_storage_invest_limit_2) <= +inf - 0 <= InvestmentFlowBlock_old(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old(storage_invest_limit_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old(storage_invest_limit_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old(storage_invest_limit_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old(Bus1_storage_invest_limit_0) <= +inf - 0 <= InvestmentFlowBlock_old(Bus1_storage_invest_limit_1) <= +inf - 0 <= InvestmentFlowBlock_old(Bus1_storage_invest_limit_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_invest_limit_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_invest_limit_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_invest_limit_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(Bus1_storage_invest_limit_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(Bus1_storage_invest_limit_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(Bus1_storage_invest_limit_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_invest_limit_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_invest_limit_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_invest_limit_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Bus1_storage_invest_limit_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Bus1_storage_invest_limit_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Bus1_storage_invest_limit_2) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_invest_limit_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_invest_limit_1) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_invest_limit_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_invest_limit_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_invest_limit_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_invest_limit_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_invest_limit_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_invest_limit_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_invest_limit_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_invest_limit_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_invest_limit_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_invest_limit_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_invest_limit_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_invest_limit_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_invest_limit_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_invest_limit_3) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_invest_limit_4) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_invest_limit_5) <= +inf -end diff --git a/tests/lp_files/periodical_investment_limit_with_dsm_DIW.lp b/tests/lp_files/periodical_investment_limit_with_dsm_DIW.lp deleted file mode 100644 index d54ad5394..000000000 --- a/tests/lp_files/periodical_investment_limit_with_dsm_DIW.lp +++ /dev/null @@ -1,605 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+8.230422488026955 InvestmentFlowBlock_invest(Source_Bus1_0) -+5.432444590842506 InvestmentFlowBlock_invest(Source_Bus1_1) -+2.6893290053675805 InvestmentFlowBlock_invest(Source_Bus1_2) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_0) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_1) -+0.49019607843137253 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_2) -+0.49019607843137253 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_3) -+0.48058439061899266 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_4) -+0.48058439061899266 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_5) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_0) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_1) -+0.49019607843137253 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_2) -+0.49019607843137253 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_3) -+0.48058439061899266 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_4) -+0.48058439061899266 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_5) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_0) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_1) -+0.49019607843137253 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_2) -+0.49019607843137253 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_3) -+0.48058439061899266 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_4) -+0.48058439061899266 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_5) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_0) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_1) -+0.49019607843137253 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_2) -+0.49019607843137253 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_3) -+0.48058439061899266 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_4) -+0.48058439061899266 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_5) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_0) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_1) -+0.49019607843137253 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_2) -+0.49019607843137253 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_3) -+0.48058439061899266 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_4) -+0.48058439061899266 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_5) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_5_0) -+0.5 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_5_1) -+0.49019607843137253 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_5_2) -+0.49019607843137253 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_5_3) -+0.48058439061899266 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_5_4) -+0.48058439061899266 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_5_5) -+0.5 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_0) -+0.5 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_1) -+0.49019607843137253 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_2) -+0.49019607843137253 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_3) -+0.48058439061899266 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_4) -+0.48058439061899266 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_5) -+99.99999999999999 SinkDSMDIWInvestmentBlock_invest(sink_dsm_DIW_0) -+98.03921568627449 SinkDSMDIWInvestmentBlock_invest(sink_dsm_DIW_1) -+48.534265191225046 SinkDSMDIWInvestmentBlock_invest(sink_dsm_DIW_2) - -s.t. - -c_u_investment_limit_per_period(0)_: -+8.230422488026955 InvestmentFlowBlock_invest(Source_Bus1_0) -+99.99999999999999 SinkDSMDIWInvestmentBlock_invest(sink_dsm_DIW_0) -<= 400 - -c_u_investment_limit_per_period(1)_: -+5.432444590842506 InvestmentFlowBlock_invest(Source_Bus1_1) -+98.03921568627449 SinkDSMDIWInvestmentBlock_invest(sink_dsm_DIW_1) -<= 300 - -c_u_investment_limit_per_period(2)_: -+2.6893290053675805 InvestmentFlowBlock_invest(Source_Bus1_2) -+48.534265191225046 SinkDSMDIWInvestmentBlock_invest(sink_dsm_DIW_2) -<= 200 - -c_e_BusBlock_balance(Bus1_0)_: --1 flow(Bus1_sink_dsm_DIW_0) -+1 flow(Source_Bus1_0) -= 0 - -c_e_BusBlock_balance(Bus1_1)_: --1 flow(Bus1_sink_dsm_DIW_1) -+1 flow(Source_Bus1_1) -= 0 - -c_e_BusBlock_balance(Bus1_2)_: --1 flow(Bus1_sink_dsm_DIW_2) -+1 flow(Source_Bus1_2) -= 0 - -c_e_BusBlock_balance(Bus1_3)_: --1 flow(Bus1_sink_dsm_DIW_3) -+1 flow(Source_Bus1_3) -= 0 - -c_e_BusBlock_balance(Bus1_4)_: --1 flow(Bus1_sink_dsm_DIW_4) -+1 flow(Source_Bus1_4) -= 0 - -c_e_BusBlock_balance(Bus1_5)_: --1 flow(Bus1_sink_dsm_DIW_5) -+1 flow(Source_Bus1_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Source_Bus1_0)_: --1 InvestmentFlowBlock_invest(Source_Bus1_0) -+1 InvestmentFlowBlock_total(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Source_Bus1_1)_: --1 InvestmentFlowBlock_invest(Source_Bus1_1) --1 InvestmentFlowBlock_total(Source_Bus1_0) -+1 InvestmentFlowBlock_total(Source_Bus1_1) -+1 InvestmentFlowBlock_old(Source_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Source_Bus1_2)_: --1 InvestmentFlowBlock_invest(Source_Bus1_2) --1 InvestmentFlowBlock_total(Source_Bus1_1) -+1 InvestmentFlowBlock_total(Source_Bus1_2) -+1 InvestmentFlowBlock_old(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Source_Bus1_0)_: -+1 InvestmentFlowBlock_old_end(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Source_Bus1_1)_: -+1 InvestmentFlowBlock_old_end(Source_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Source_Bus1_2)_: -+1 InvestmentFlowBlock_old_end(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Source_Bus1_0)_: -+1 InvestmentFlowBlock_old_exo(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Source_Bus1_1)_: -+1 InvestmentFlowBlock_old_exo(Source_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Source_Bus1_2)_: -+1 InvestmentFlowBlock_old_exo(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Source_Bus1_0)_: -+1 InvestmentFlowBlock_old(Source_Bus1_0) --1 InvestmentFlowBlock_old_end(Source_Bus1_0) --1 InvestmentFlowBlock_old_exo(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Source_Bus1_1)_: -+1 InvestmentFlowBlock_old(Source_Bus1_1) --1 InvestmentFlowBlock_old_end(Source_Bus1_1) --1 InvestmentFlowBlock_old_exo(Source_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Source_Bus1_2)_: -+1 InvestmentFlowBlock_old(Source_Bus1_2) --1 InvestmentFlowBlock_old_end(Source_Bus1_2) --1 InvestmentFlowBlock_old_exo(Source_Bus1_2) -= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_0)_: -+1 flow(Source_Bus1_0) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_1)_: -+1 flow(Source_Bus1_1) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_1_2)_: -+1 flow(Source_Bus1_2) --1 InvestmentFlowBlock_total(Source_Bus1_1) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_1_3)_: -+1 flow(Source_Bus1_3) --1 InvestmentFlowBlock_total(Source_Bus1_1) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_2_4)_: -+1 flow(Source_Bus1_4) --1 InvestmentFlowBlock_total(Source_Bus1_2) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_2_5)_: -+1 flow(Source_Bus1_5) --1 InvestmentFlowBlock_total(Source_Bus1_2) -<= 0 - -c_e_SinkDSMDIWInvestmentBlock_total_dsm_rule(sink_dsm_DIW_0)_: --1 SinkDSMDIWInvestmentBlock_invest(sink_dsm_DIW_0) -+1 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) -= 50 - -c_e_SinkDSMDIWInvestmentBlock_total_dsm_rule(sink_dsm_DIW_1)_: --1 SinkDSMDIWInvestmentBlock_invest(sink_dsm_DIW_1) --1 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) -+1 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_1) -+1 SinkDSMDIWInvestmentBlock_old(sink_dsm_DIW_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_total_dsm_rule(sink_dsm_DIW_2)_: --1 SinkDSMDIWInvestmentBlock_invest(sink_dsm_DIW_2) --1 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_1) -+1 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_2) -+1 SinkDSMDIWInvestmentBlock_old(sink_dsm_DIW_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_end(sink_dsm_DIW_0)_: -+1 SinkDSMDIWInvestmentBlock_old_end(sink_dsm_DIW_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_end(sink_dsm_DIW_1)_: -+1 SinkDSMDIWInvestmentBlock_old_end(sink_dsm_DIW_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_end(sink_dsm_DIW_2)_: --1 SinkDSMDIWInvestmentBlock_invest(sink_dsm_DIW_0) -+1 SinkDSMDIWInvestmentBlock_old_end(sink_dsm_DIW_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_exo(sink_dsm_DIW_0)_: -+1 SinkDSMDIWInvestmentBlock_old_exo(sink_dsm_DIW_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_exo(sink_dsm_DIW_1)_: -+1 SinkDSMDIWInvestmentBlock_old_exo(sink_dsm_DIW_1) -= 50 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule_exo(sink_dsm_DIW_2)_: -+1 SinkDSMDIWInvestmentBlock_old_exo(sink_dsm_DIW_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule(sink_dsm_DIW_0)_: -+1 SinkDSMDIWInvestmentBlock_old(sink_dsm_DIW_0) --1 SinkDSMDIWInvestmentBlock_old_end(sink_dsm_DIW_0) --1 SinkDSMDIWInvestmentBlock_old_exo(sink_dsm_DIW_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule(sink_dsm_DIW_1)_: -+1 SinkDSMDIWInvestmentBlock_old(sink_dsm_DIW_1) --1 SinkDSMDIWInvestmentBlock_old_end(sink_dsm_DIW_1) --1 SinkDSMDIWInvestmentBlock_old_exo(sink_dsm_DIW_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_old_dsm_rule(sink_dsm_DIW_2)_: -+1 SinkDSMDIWInvestmentBlock_old(sink_dsm_DIW_2) --1 SinkDSMDIWInvestmentBlock_old_end(sink_dsm_DIW_2) --1 SinkDSMDIWInvestmentBlock_old_exo(sink_dsm_DIW_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_shift_shed_vars(sink_dsm_DIW_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_shift_shed_vars(sink_dsm_DIW_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_shift_shed_vars(sink_dsm_DIW_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_shift_shed_vars(sink_dsm_DIW_3)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_3) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_shift_shed_vars(sink_dsm_DIW_4)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_4) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_shift_shed_vars(sink_dsm_DIW_5)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_5) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(sink_dsm_DIW_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_0) --1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_0) -+1 flow(Bus1_sink_dsm_DIW_0) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(sink_dsm_DIW_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_1) --1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_1) -+1 flow(Bus1_sink_dsm_DIW_1) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(sink_dsm_DIW_1_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_2) --1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_2) -+1 flow(Bus1_sink_dsm_DIW_2) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(sink_dsm_DIW_1_3)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_3) --1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_3) -+1 flow(Bus1_sink_dsm_DIW_3) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(sink_dsm_DIW_2_4)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_5_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_4) --1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_4) -+1 flow(Bus1_sink_dsm_DIW_4) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_input_output_relation(sink_dsm_DIW_2_5)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_5_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_5) --1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_5) -+1 flow(Bus1_sink_dsm_DIW_5) -= 1 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(sink_dsm_DIW_0)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_0) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_0) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(sink_dsm_DIW_1)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_0) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_1) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_1) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(sink_dsm_DIW_2)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_1) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_2) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_3) -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_2) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(sink_dsm_DIW_3)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_2) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_3) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_4) -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_3) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(sink_dsm_DIW_4)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_3) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_4) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_5) -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_4) -= 0 - -c_e_SinkDSMDIWInvestmentBlock_dsm_updo_constraint(sink_dsm_DIW_5)_: --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_5_4) --1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_5_5) -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_5) -= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(sink_dsm_DIW_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_0) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(sink_dsm_DIW_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_1) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(sink_dsm_DIW_1_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_2) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(sink_dsm_DIW_1_3)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_3) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(sink_dsm_DIW_2_4)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_4) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_up_constraint(sink_dsm_DIW_2_5)_: -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_5) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(sink_dsm_DIW_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_0) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(sink_dsm_DIW_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_1) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(sink_dsm_DIW_1_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_2) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(sink_dsm_DIW_1_3)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_3) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(sink_dsm_DIW_2_4)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_5_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_4) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_dsm_do_constraint(sink_dsm_DIW_2_5)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_5_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_5) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(sink_dsm_DIW_0_0)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_0) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_0) -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_0) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(sink_dsm_DIW_0_1)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_1) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_1) -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_1) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(sink_dsm_DIW_1_2)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_2) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_2) -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_2) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(sink_dsm_DIW_1_3)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_3) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_3) -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_3) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_1) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(sink_dsm_DIW_2_4)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_5_4) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_4) -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_4) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_C2_constraint(sink_dsm_DIW_2_5)_: -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_5_5) -+1 SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_5) -+1 SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_5) --0.5 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_2) -<= 0 - -c_u_SinkDSMDIWInvestmentBlock_overall_dsm_maximum(sink_dsm_DIW_0)_: -+1 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) -<= 1000 - -c_u_SinkDSMDIWInvestmentBlock_overall_dsm_maximum(sink_dsm_DIW_1)_: -+1 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_1) -<= 1000 - -c_u_SinkDSMDIWInvestmentBlock_overall_dsm_maximum(sink_dsm_DIW_2)_: -+1 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_2) -<= 1000 - -c_l_SinkDSMDIWInvestmentBlock_overall_minimum(sink_dsm_DIW)_: -+1 SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_2) ->= 200 - -bounds - 0 <= InvestmentFlowBlock_invest(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_invest(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_invest(Source_Bus1_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_0_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_1_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_2_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_3_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_4_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_5_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_5_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_5_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_5_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_5_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shift(sink_dsm_DIW_5_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_do_shed(sink_dsm_DIW_5) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_3) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_4) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_dsm_up(sink_dsm_DIW_5) <= +inf - 33 <= SinkDSMDIWInvestmentBlock_invest(sink_dsm_DIW_0) <= 100 - 33 <= SinkDSMDIWInvestmentBlock_invest(sink_dsm_DIW_1) <= 100 - 33 <= SinkDSMDIWInvestmentBlock_invest(sink_dsm_DIW_2) <= 100 - 0 <= flow(Bus1_sink_dsm_DIW_0) <= +inf - 0 <= flow(Bus1_sink_dsm_DIW_1) <= +inf - 0 <= flow(Bus1_sink_dsm_DIW_2) <= +inf - 0 <= flow(Bus1_sink_dsm_DIW_3) <= +inf - 0 <= flow(Bus1_sink_dsm_DIW_4) <= +inf - 0 <= flow(Bus1_sink_dsm_DIW_5) <= +inf - 0 <= flow(Source_Bus1_0) <= +inf - 0 <= flow(Source_Bus1_1) <= +inf - 0 <= flow(Source_Bus1_2) <= +inf - 0 <= flow(Source_Bus1_3) <= +inf - 0 <= flow(Source_Bus1_4) <= +inf - 0 <= flow(Source_Bus1_5) <= +inf - 0 <= InvestmentFlowBlock_total(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_total(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_total(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Source_Bus1_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_total(sink_dsm_DIW_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old(sink_dsm_DIW_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old(sink_dsm_DIW_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old(sink_dsm_DIW_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_end(sink_dsm_DIW_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_end(sink_dsm_DIW_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_end(sink_dsm_DIW_2) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_exo(sink_dsm_DIW_0) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_exo(sink_dsm_DIW_1) <= +inf - 0 <= SinkDSMDIWInvestmentBlock_old_exo(sink_dsm_DIW_2) <= +inf -end diff --git a/tests/lp_files/periodical_investment_limit_with_dsm_DLR.lp b/tests/lp_files/periodical_investment_limit_with_dsm_DLR.lp deleted file mode 100644 index b71066c82..000000000 --- a/tests/lp_files/periodical_investment_limit_with_dsm_DLR.lp +++ /dev/null @@ -1,753 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+8.230422488026955 InvestmentFlowBlock_invest(Source_Bus1_0) -+5.432444590842506 InvestmentFlowBlock_invest(Source_Bus1_1) -+2.6893290053675805 InvestmentFlowBlock_invest(Source_Bus1_2) -+0.5 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_0) -+0.5 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_1) -+0.49019607843137253 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_2) -+0.49019607843137253 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_3) -+0.48058439061899266 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_4) -+0.48058439061899266 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_5) -+0.5 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_0) -+0.5 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_1) -+0.49019607843137253 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_2) -+0.49019607843137253 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_3) -+0.48058439061899266 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_4) -+0.48058439061899266 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_5) -+0.5 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_0) -+0.5 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_1) -+0.49019607843137253 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_2) -+0.49019607843137253 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_3) -+0.48058439061899266 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_4) -+0.48058439061899266 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_5) -+0.5 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_0) -+0.5 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_1) -+0.49019607843137253 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_2) -+0.49019607843137253 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_3) -+0.48058439061899266 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_4) -+0.48058439061899266 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_5) -+99.99999999999999 SinkDSMDLRInvestmentBlock_invest(sink_dsm_DLR_0) -+98.03921568627449 SinkDSMDLRInvestmentBlock_invest(sink_dsm_DLR_1) -+48.534265191225046 SinkDSMDLRInvestmentBlock_invest(sink_dsm_DLR_2) - -s.t. - -c_u_investment_limit_per_period(0)_: -+8.230422488026955 InvestmentFlowBlock_invest(Source_Bus1_0) -+99.99999999999999 SinkDSMDLRInvestmentBlock_invest(sink_dsm_DLR_0) -<= 400 - -c_u_investment_limit_per_period(1)_: -+5.432444590842506 InvestmentFlowBlock_invest(Source_Bus1_1) -+98.03921568627449 SinkDSMDLRInvestmentBlock_invest(sink_dsm_DLR_1) -<= 300 - -c_u_investment_limit_per_period(2)_: -+2.6893290053675805 InvestmentFlowBlock_invest(Source_Bus1_2) -+48.534265191225046 SinkDSMDLRInvestmentBlock_invest(sink_dsm_DLR_2) -<= 200 - -c_e_BusBlock_balance(Bus1_0)_: --1 flow(Bus1_sink_dsm_DLR_0) -+1 flow(Source_Bus1_0) -= 0 - -c_e_BusBlock_balance(Bus1_1)_: --1 flow(Bus1_sink_dsm_DLR_1) -+1 flow(Source_Bus1_1) -= 0 - -c_e_BusBlock_balance(Bus1_2)_: --1 flow(Bus1_sink_dsm_DLR_2) -+1 flow(Source_Bus1_2) -= 0 - -c_e_BusBlock_balance(Bus1_3)_: --1 flow(Bus1_sink_dsm_DLR_3) -+1 flow(Source_Bus1_3) -= 0 - -c_e_BusBlock_balance(Bus1_4)_: --1 flow(Bus1_sink_dsm_DLR_4) -+1 flow(Source_Bus1_4) -= 0 - -c_e_BusBlock_balance(Bus1_5)_: --1 flow(Bus1_sink_dsm_DLR_5) -+1 flow(Source_Bus1_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Source_Bus1_0)_: --1 InvestmentFlowBlock_invest(Source_Bus1_0) -+1 InvestmentFlowBlock_total(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Source_Bus1_1)_: --1 InvestmentFlowBlock_invest(Source_Bus1_1) --1 InvestmentFlowBlock_total(Source_Bus1_0) -+1 InvestmentFlowBlock_total(Source_Bus1_1) -+1 InvestmentFlowBlock_old(Source_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Source_Bus1_2)_: --1 InvestmentFlowBlock_invest(Source_Bus1_2) --1 InvestmentFlowBlock_total(Source_Bus1_1) -+1 InvestmentFlowBlock_total(Source_Bus1_2) -+1 InvestmentFlowBlock_old(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Source_Bus1_0)_: -+1 InvestmentFlowBlock_old_end(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Source_Bus1_1)_: -+1 InvestmentFlowBlock_old_end(Source_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Source_Bus1_2)_: -+1 InvestmentFlowBlock_old_end(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Source_Bus1_0)_: -+1 InvestmentFlowBlock_old_exo(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Source_Bus1_1)_: -+1 InvestmentFlowBlock_old_exo(Source_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Source_Bus1_2)_: -+1 InvestmentFlowBlock_old_exo(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Source_Bus1_0)_: -+1 InvestmentFlowBlock_old(Source_Bus1_0) --1 InvestmentFlowBlock_old_end(Source_Bus1_0) --1 InvestmentFlowBlock_old_exo(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Source_Bus1_1)_: -+1 InvestmentFlowBlock_old(Source_Bus1_1) --1 InvestmentFlowBlock_old_end(Source_Bus1_1) --1 InvestmentFlowBlock_old_exo(Source_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Source_Bus1_2)_: -+1 InvestmentFlowBlock_old(Source_Bus1_2) --1 InvestmentFlowBlock_old_end(Source_Bus1_2) --1 InvestmentFlowBlock_old_exo(Source_Bus1_2) -= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_0)_: -+1 flow(Source_Bus1_0) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_1)_: -+1 flow(Source_Bus1_1) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_1_2)_: -+1 flow(Source_Bus1_2) --1 InvestmentFlowBlock_total(Source_Bus1_1) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_1_3)_: -+1 flow(Source_Bus1_3) --1 InvestmentFlowBlock_total(Source_Bus1_1) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_2_4)_: -+1 flow(Source_Bus1_4) --1 InvestmentFlowBlock_total(Source_Bus1_2) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_2_5)_: -+1 flow(Source_Bus1_5) --1 InvestmentFlowBlock_total(Source_Bus1_2) -<= 0 - -c_e_SinkDSMDLRInvestmentBlock_total_dsm_rule(sink_dsm_DLR_0)_: --1 SinkDSMDLRInvestmentBlock_invest(sink_dsm_DLR_0) -+1 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -= 50 - -c_e_SinkDSMDLRInvestmentBlock_total_dsm_rule(sink_dsm_DLR_1)_: --1 SinkDSMDLRInvestmentBlock_invest(sink_dsm_DLR_1) --1 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -+1 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_1) -+1 SinkDSMDLRInvestmentBlock_old(sink_dsm_DLR_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_total_dsm_rule(sink_dsm_DLR_2)_: --1 SinkDSMDLRInvestmentBlock_invest(sink_dsm_DLR_2) --1 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_1) -+1 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_2) -+1 SinkDSMDLRInvestmentBlock_old(sink_dsm_DLR_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_end(sink_dsm_DLR_0)_: -+1 SinkDSMDLRInvestmentBlock_old_end(sink_dsm_DLR_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_end(sink_dsm_DLR_1)_: -+1 SinkDSMDLRInvestmentBlock_old_end(sink_dsm_DLR_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_end(sink_dsm_DLR_2)_: --1 SinkDSMDLRInvestmentBlock_invest(sink_dsm_DLR_0) -+1 SinkDSMDLRInvestmentBlock_old_end(sink_dsm_DLR_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_exo(sink_dsm_DLR_0)_: -+1 SinkDSMDLRInvestmentBlock_old_exo(sink_dsm_DLR_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_exo(sink_dsm_DLR_1)_: -+1 SinkDSMDLRInvestmentBlock_old_exo(sink_dsm_DLR_1) -= 50 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule_exo(sink_dsm_DLR_2)_: -+1 SinkDSMDLRInvestmentBlock_old_exo(sink_dsm_DLR_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule(sink_dsm_DLR_0)_: -+1 SinkDSMDLRInvestmentBlock_old(sink_dsm_DLR_0) --1 SinkDSMDLRInvestmentBlock_old_end(sink_dsm_DLR_0) --1 SinkDSMDLRInvestmentBlock_old_exo(sink_dsm_DLR_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule(sink_dsm_DLR_1)_: -+1 SinkDSMDLRInvestmentBlock_old(sink_dsm_DLR_1) --1 SinkDSMDLRInvestmentBlock_old_end(sink_dsm_DLR_1) --1 SinkDSMDLRInvestmentBlock_old_exo(sink_dsm_DLR_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_old_dsm_rule(sink_dsm_DLR_2)_: -+1 SinkDSMDLRInvestmentBlock_old(sink_dsm_DLR_2) --1 SinkDSMDLRInvestmentBlock_old_end(sink_dsm_DLR_2) --1 SinkDSMDLRInvestmentBlock_old_exo(sink_dsm_DLR_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_shift_shed_vars(sink_dsm_DLR_1_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_shift_shed_vars(sink_dsm_DLR_1_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_shift_shed_vars(sink_dsm_DLR_1_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_shift_shed_vars(sink_dsm_DLR_1_3)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_shift_shed_vars(sink_dsm_DLR_1_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_shift_shed_vars(sink_dsm_DLR_1_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(sink_dsm_DLR_0_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_0) --1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_0) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_0) -+1 flow(Bus1_sink_dsm_DLR_0) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(sink_dsm_DLR_0_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_1) --1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_1) -+1 flow(Bus1_sink_dsm_DLR_1) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(sink_dsm_DLR_1_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_2) --1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_2) -+1 flow(Bus1_sink_dsm_DLR_2) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(sink_dsm_DLR_1_3)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_3) --1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_3) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_3) -+1 flow(Bus1_sink_dsm_DLR_3) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(sink_dsm_DLR_2_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_4) --1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_4) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_4) -+1 flow(Bus1_sink_dsm_DLR_4) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_input_output_relation(sink_dsm_DLR_2_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_5) --1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_5) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_5) -+1 flow(Bus1_sink_dsm_DLR_5) -= 1 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(sink_dsm_DLR_1_0)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(sink_dsm_DLR_1_1)_: --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(sink_dsm_DLR_1_2)_: --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(sink_dsm_DLR_1_3)_: --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(sink_dsm_DLR_1_4)_: --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_red(sink_dsm_DLR_1_5)_: --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(sink_dsm_DLR_1_0)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(sink_dsm_DLR_1_1)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_1) --1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(sink_dsm_DLR_1_2)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_2) --1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(sink_dsm_DLR_1_3)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_3) --1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(sink_dsm_DLR_1_4)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_4) --1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_capacity_balance_inc(sink_dsm_DLR_1_5)_: -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_5) --1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_red(sink_dsm_DLR_1_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_no_comp_inc(sink_dsm_DLR_1_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_5) -= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(sink_dsm_DLR_0_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_0) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(sink_dsm_DLR_0_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_1) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(sink_dsm_DLR_1_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_2) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(sink_dsm_DLR_1_3)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_3) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(sink_dsm_DLR_2_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_4) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_red(sink_dsm_DLR_2_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_5) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(sink_dsm_DLR_0_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_0) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(sink_dsm_DLR_0_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_1) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(sink_dsm_DLR_1_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_2) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(sink_dsm_DLR_1_3)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_3) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(sink_dsm_DLR_2_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_4) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_availability_inc(sink_dsm_DLR_2_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_5) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_2) -<= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(sink_dsm_DLR_0)_: --1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(sink_dsm_DLR_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_1) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_0) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(sink_dsm_DLR_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_2) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_1) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(sink_dsm_DLR_3)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_3) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_2) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(sink_dsm_DLR_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_4) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_3) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_red(sink_dsm_DLR_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_5) --1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_4) --1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_5) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(sink_dsm_DLR_0)_: --1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_0) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(sink_dsm_DLR_1)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_0) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_1) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(sink_dsm_DLR_2)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_1) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_2) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(sink_dsm_DLR_3)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_2) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_3) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(sink_dsm_DLR_4)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_3) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_4) -= 0 - -c_e_SinkDSMDLRInvestmentBlock_dr_storage_inc(sink_dsm_DLR_5)_: --1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_4) --1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_5) -= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(sink_dsm_DLR_0_0)_: --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(sink_dsm_DLR_0_1)_: --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(sink_dsm_DLR_1_2)_: --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(sink_dsm_DLR_1_3)_: --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_3) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(sink_dsm_DLR_2_4)_: --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_4) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_red(sink_dsm_DLR_2_5)_: --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_5) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(sink_dsm_DLR_0_0)_: --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(sink_dsm_DLR_0_1)_: --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(sink_dsm_DLR_1_2)_: --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(sink_dsm_DLR_1_3)_: --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_3) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(sink_dsm_DLR_2_4)_: --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_4) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_storage_limit_inc(sink_dsm_DLR_2_5)_: --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_5) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(sink_dsm_DLR_0_0)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_0) -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_0) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_0) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(sink_dsm_DLR_0_1)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_1) -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_1) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_1) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(sink_dsm_DLR_1_2)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_2) -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_2) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_2) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(sink_dsm_DLR_1_3)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_3) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_3) -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_3) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_3) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_1) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(sink_dsm_DLR_2_4)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_4) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_4) -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_4) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_4) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_dr_logical_constraint(sink_dsm_DLR_2_5)_: -+1 SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_5) -+1 SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_5) -+1 SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_5) -+1 SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_5) --0.5 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_2) -<= 0 - -c_u_SinkDSMDLRInvestmentBlock_overall_dsm_maximum(sink_dsm_DLR_0)_: -+1 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) -<= 1000 - -c_u_SinkDSMDLRInvestmentBlock_overall_dsm_maximum(sink_dsm_DLR_1)_: -+1 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_1) -<= 1000 - -c_u_SinkDSMDLRInvestmentBlock_overall_dsm_maximum(sink_dsm_DLR_2)_: -+1 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_2) -<= 1000 - -c_l_SinkDSMDLRInvestmentBlock_overall_minimum(sink_dsm_DLR)_: -+1 SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_2) ->= 200 - -bounds - 0 <= InvestmentFlowBlock_invest(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_invest(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_invest(Source_Bus1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shift(sink_dsm_DLR_1_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_up(sink_dsm_DLR_1_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_shed(sink_dsm_DLR_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up(sink_dsm_DLR_1_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_balance_dsm_do(sink_dsm_DLR_1_5) <= +inf - 33 <= SinkDSMDLRInvestmentBlock_invest(sink_dsm_DLR_0) <= 100 - 33 <= SinkDSMDLRInvestmentBlock_invest(sink_dsm_DLR_1) <= 100 - 33 <= SinkDSMDLRInvestmentBlock_invest(sink_dsm_DLR_2) <= 100 - 0 <= flow(Bus1_sink_dsm_DLR_0) <= +inf - 0 <= flow(Bus1_sink_dsm_DLR_1) <= +inf - 0 <= flow(Bus1_sink_dsm_DLR_2) <= +inf - 0 <= flow(Bus1_sink_dsm_DLR_3) <= +inf - 0 <= flow(Bus1_sink_dsm_DLR_4) <= +inf - 0 <= flow(Bus1_sink_dsm_DLR_5) <= +inf - 0 <= flow(Source_Bus1_0) <= +inf - 0 <= flow(Source_Bus1_1) <= +inf - 0 <= flow(Source_Bus1_2) <= +inf - 0 <= flow(Source_Bus1_3) <= +inf - 0 <= flow(Source_Bus1_4) <= +inf - 0 <= flow(Source_Bus1_5) <= +inf - 0 <= InvestmentFlowBlock_total(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_total(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_total(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Source_Bus1_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_total(sink_dsm_DLR_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old(sink_dsm_DLR_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old(sink_dsm_DLR_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old(sink_dsm_DLR_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_end(sink_dsm_DLR_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_end(sink_dsm_DLR_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_end(sink_dsm_DLR_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_exo(sink_dsm_DLR_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_exo(sink_dsm_DLR_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_old_exo(sink_dsm_DLR_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_do_level(sink_dsm_DLR_5) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_0) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_1) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_2) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_3) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_4) <= +inf - 0 <= SinkDSMDLRInvestmentBlock_dsm_up_level(sink_dsm_DLR_5) <= +inf -end diff --git a/tests/lp_files/periodical_investment_limit_with_dsm_oemof.lp b/tests/lp_files/periodical_investment_limit_with_dsm_oemof.lp deleted file mode 100644 index 1d75b870a..000000000 --- a/tests/lp_files/periodical_investment_limit_with_dsm_oemof.lp +++ /dev/null @@ -1,454 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+8.230422488026955 InvestmentFlowBlock_invest(Source_Bus1_0) -+5.432444590842506 InvestmentFlowBlock_invest(Source_Bus1_1) -+2.6893290053675805 InvestmentFlowBlock_invest(Source_Bus1_2) -+0.5 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_0) -+0.5 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_1) -+0.49019607843137253 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_2) -+0.49019607843137253 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_3) -+0.48058439061899266 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_4) -+0.48058439061899266 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_5) -+0.5 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_0) -+0.5 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_1) -+0.49019607843137253 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_2) -+0.49019607843137253 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_3) -+0.48058439061899266 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_4) -+0.48058439061899266 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_5) -+99.99999999999999 SinkDSMOemofInvestmentBlock_invest(sink_dsm_oemof_0) -+98.03921568627449 SinkDSMOemofInvestmentBlock_invest(sink_dsm_oemof_1) -+48.534265191225046 SinkDSMOemofInvestmentBlock_invest(sink_dsm_oemof_2) - -s.t. - -c_u_investment_limit_per_period(0)_: -+8.230422488026955 InvestmentFlowBlock_invest(Source_Bus1_0) -+99.99999999999999 SinkDSMOemofInvestmentBlock_invest(sink_dsm_oemof_0) -<= 400 - -c_u_investment_limit_per_period(1)_: -+5.432444590842506 InvestmentFlowBlock_invest(Source_Bus1_1) -+98.03921568627449 SinkDSMOemofInvestmentBlock_invest(sink_dsm_oemof_1) -<= 300 - -c_u_investment_limit_per_period(2)_: -+2.6893290053675805 InvestmentFlowBlock_invest(Source_Bus1_2) -+48.534265191225046 SinkDSMOemofInvestmentBlock_invest(sink_dsm_oemof_2) -<= 200 - -c_e_BusBlock_balance(Bus1_0)_: --1 flow(Bus1_sink_dsm_oemof_0) -+1 flow(Source_Bus1_0) -= 0 - -c_e_BusBlock_balance(Bus1_1)_: --1 flow(Bus1_sink_dsm_oemof_1) -+1 flow(Source_Bus1_1) -= 0 - -c_e_BusBlock_balance(Bus1_2)_: --1 flow(Bus1_sink_dsm_oemof_2) -+1 flow(Source_Bus1_2) -= 0 - -c_e_BusBlock_balance(Bus1_3)_: --1 flow(Bus1_sink_dsm_oemof_3) -+1 flow(Source_Bus1_3) -= 0 - -c_e_BusBlock_balance(Bus1_4)_: --1 flow(Bus1_sink_dsm_oemof_4) -+1 flow(Source_Bus1_4) -= 0 - -c_e_BusBlock_balance(Bus1_5)_: --1 flow(Bus1_sink_dsm_oemof_5) -+1 flow(Source_Bus1_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Source_Bus1_0)_: --1 InvestmentFlowBlock_invest(Source_Bus1_0) -+1 InvestmentFlowBlock_total(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Source_Bus1_1)_: --1 InvestmentFlowBlock_invest(Source_Bus1_1) --1 InvestmentFlowBlock_total(Source_Bus1_0) -+1 InvestmentFlowBlock_total(Source_Bus1_1) -+1 InvestmentFlowBlock_old(Source_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(Source_Bus1_2)_: --1 InvestmentFlowBlock_invest(Source_Bus1_2) --1 InvestmentFlowBlock_total(Source_Bus1_1) -+1 InvestmentFlowBlock_total(Source_Bus1_2) -+1 InvestmentFlowBlock_old(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Source_Bus1_0)_: -+1 InvestmentFlowBlock_old_end(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Source_Bus1_1)_: -+1 InvestmentFlowBlock_old_end(Source_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(Source_Bus1_2)_: -+1 InvestmentFlowBlock_old_end(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Source_Bus1_0)_: -+1 InvestmentFlowBlock_old_exo(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Source_Bus1_1)_: -+1 InvestmentFlowBlock_old_exo(Source_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(Source_Bus1_2)_: -+1 InvestmentFlowBlock_old_exo(Source_Bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Source_Bus1_0)_: -+1 InvestmentFlowBlock_old(Source_Bus1_0) --1 InvestmentFlowBlock_old_end(Source_Bus1_0) --1 InvestmentFlowBlock_old_exo(Source_Bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Source_Bus1_1)_: -+1 InvestmentFlowBlock_old(Source_Bus1_1) --1 InvestmentFlowBlock_old_end(Source_Bus1_1) --1 InvestmentFlowBlock_old_exo(Source_Bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(Source_Bus1_2)_: -+1 InvestmentFlowBlock_old(Source_Bus1_2) --1 InvestmentFlowBlock_old_end(Source_Bus1_2) --1 InvestmentFlowBlock_old_exo(Source_Bus1_2) -= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_0)_: -+1 flow(Source_Bus1_0) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_0_1)_: -+1 flow(Source_Bus1_1) --1 InvestmentFlowBlock_total(Source_Bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_1_2)_: -+1 flow(Source_Bus1_2) --1 InvestmentFlowBlock_total(Source_Bus1_1) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_1_3)_: -+1 flow(Source_Bus1_3) --1 InvestmentFlowBlock_total(Source_Bus1_1) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_2_4)_: -+1 flow(Source_Bus1_4) --1 InvestmentFlowBlock_total(Source_Bus1_2) -<= 0 - -c_u_InvestmentFlowBlock_max(Source_Bus1_2_5)_: -+1 flow(Source_Bus1_5) --1 InvestmentFlowBlock_total(Source_Bus1_2) -<= 0 - -c_e_SinkDSMOemofInvestmentBlock_total_dsm_rule(sink_dsm_oemof_0)_: --1 SinkDSMOemofInvestmentBlock_invest(sink_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_0) -= 50 - -c_e_SinkDSMOemofInvestmentBlock_total_dsm_rule(sink_dsm_oemof_1)_: --1 SinkDSMOemofInvestmentBlock_invest(sink_dsm_oemof_1) --1 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_1) -+1 SinkDSMOemofInvestmentBlock_old(sink_dsm_oemof_1) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_total_dsm_rule(sink_dsm_oemof_2)_: --1 SinkDSMOemofInvestmentBlock_invest(sink_dsm_oemof_2) --1 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_1) -+1 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_2) -+1 SinkDSMOemofInvestmentBlock_old(sink_dsm_oemof_2) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_end(sink_dsm_oemof_0)_: -+1 SinkDSMOemofInvestmentBlock_old_end(sink_dsm_oemof_0) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_end(sink_dsm_oemof_1)_: -+1 SinkDSMOemofInvestmentBlock_old_end(sink_dsm_oemof_1) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_end(sink_dsm_oemof_2)_: --1 SinkDSMOemofInvestmentBlock_invest(sink_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_old_end(sink_dsm_oemof_2) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_exo(sink_dsm_oemof_0)_: -+1 SinkDSMOemofInvestmentBlock_old_exo(sink_dsm_oemof_0) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_exo(sink_dsm_oemof_1)_: -+1 SinkDSMOemofInvestmentBlock_old_exo(sink_dsm_oemof_1) -= 50 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule_exo(sink_dsm_oemof_2)_: -+1 SinkDSMOemofInvestmentBlock_old_exo(sink_dsm_oemof_2) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule(sink_dsm_oemof_0)_: -+1 SinkDSMOemofInvestmentBlock_old(sink_dsm_oemof_0) --1 SinkDSMOemofInvestmentBlock_old_end(sink_dsm_oemof_0) --1 SinkDSMOemofInvestmentBlock_old_exo(sink_dsm_oemof_0) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule(sink_dsm_oemof_1)_: -+1 SinkDSMOemofInvestmentBlock_old(sink_dsm_oemof_1) --1 SinkDSMOemofInvestmentBlock_old_end(sink_dsm_oemof_1) --1 SinkDSMOemofInvestmentBlock_old_exo(sink_dsm_oemof_1) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_old_dsm_rule(sink_dsm_oemof_2)_: -+1 SinkDSMOemofInvestmentBlock_old(sink_dsm_oemof_2) --1 SinkDSMOemofInvestmentBlock_old_end(sink_dsm_oemof_2) --1 SinkDSMOemofInvestmentBlock_old_exo(sink_dsm_oemof_2) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_shift_shed_vars(sink_dsm_oemof_0)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_0) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_shift_shed_vars(sink_dsm_oemof_1)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_1) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_shift_shed_vars(sink_dsm_oemof_2)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_2) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_shift_shed_vars(sink_dsm_oemof_3)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_3) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_shift_shed_vars(sink_dsm_oemof_4)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_4) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_shift_shed_vars(sink_dsm_oemof_5)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_5) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(sink_dsm_oemof_0_0)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_0) --1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_0) -+1 flow(Bus1_sink_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_0) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(sink_dsm_oemof_0_1)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_1) --1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_1) -+1 flow(Bus1_sink_dsm_oemof_1) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_1) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(sink_dsm_oemof_1_2)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_2) --1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_2) -+1 flow(Bus1_sink_dsm_oemof_2) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_2) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(sink_dsm_oemof_1_3)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_3) --1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_3) -+1 flow(Bus1_sink_dsm_oemof_3) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_3) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(sink_dsm_oemof_2_4)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_4) --1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_4) -+1 flow(Bus1_sink_dsm_oemof_4) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_4) -= 1 - -c_e_SinkDSMOemofInvestmentBlock_input_output_relation(sink_dsm_oemof_2_5)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_5) --1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_5) -+1 flow(Bus1_sink_dsm_oemof_5) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_5) -= 1 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(sink_dsm_oemof_0_0)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_0) --0.5 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(sink_dsm_oemof_0_1)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_1) --0.5 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(sink_dsm_oemof_1_2)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_2) --0.5 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_1) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(sink_dsm_oemof_1_3)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_3) --0.5 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_1) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(sink_dsm_oemof_2_4)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_4) --0.5 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_2) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_up_constraint(sink_dsm_oemof_2_5)_: -+1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_5) --0.5 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_2) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(sink_dsm_oemof_0_0)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_0) --0.5 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_0) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(sink_dsm_oemof_0_1)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_1) --0.5 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_1) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(sink_dsm_oemof_1_2)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_2) --0.5 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_1) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_2) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(sink_dsm_oemof_1_3)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_3) --0.5 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_1) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_3) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(sink_dsm_oemof_2_4)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_4) --0.5 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_2) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_4) -<= 0 - -c_u_SinkDSMOemofInvestmentBlock_dsm_down_constraint(sink_dsm_oemof_2_5)_: -+1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_5) --0.5 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_2) -+1 SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_5) -<= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(sink_dsm_oemof_0)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_0) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_1) -+1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_0) -+1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_1) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(sink_dsm_oemof_2)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_2) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_3) -+1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_2) -+1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_3) -= 0 - -c_e_SinkDSMOemofInvestmentBlock_dsm_sum_constraint(sink_dsm_oemof_4)_: --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_4) --1 SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_5) -+1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_4) -+1 SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_5) -= 0 - -c_u_SinkDSMOemofInvestmentBlock_overall_dsm_maximum(sink_dsm_oemof_0)_: -+1 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_0) -<= 1000 - -c_u_SinkDSMOemofInvestmentBlock_overall_dsm_maximum(sink_dsm_oemof_1)_: -+1 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_1) -<= 1000 - -c_u_SinkDSMOemofInvestmentBlock_overall_dsm_maximum(sink_dsm_oemof_2)_: -+1 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_2) -<= 1000 - -c_l_SinkDSMOemofInvestmentBlock_overall_minimum(sink_dsm_oemof)_: -+1 SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_2) ->= 200 - -bounds - 0 <= InvestmentFlowBlock_invest(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_invest(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_invest(Source_Bus1_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_3) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_4) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shift(sink_dsm_oemof_5) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_3) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_4) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_up(sink_dsm_oemof_5) <= +inf - 33 <= SinkDSMOemofInvestmentBlock_invest(sink_dsm_oemof_0) <= 100 - 33 <= SinkDSMOemofInvestmentBlock_invest(sink_dsm_oemof_1) <= 100 - 33 <= SinkDSMOemofInvestmentBlock_invest(sink_dsm_oemof_2) <= 100 - 0 <= flow(Bus1_sink_dsm_oemof_0) <= +inf - 0 <= flow(Bus1_sink_dsm_oemof_1) <= +inf - 0 <= flow(Bus1_sink_dsm_oemof_2) <= +inf - 0 <= flow(Bus1_sink_dsm_oemof_3) <= +inf - 0 <= flow(Bus1_sink_dsm_oemof_4) <= +inf - 0 <= flow(Bus1_sink_dsm_oemof_5) <= +inf - 0 <= flow(Source_Bus1_0) <= +inf - 0 <= flow(Source_Bus1_1) <= +inf - 0 <= flow(Source_Bus1_2) <= +inf - 0 <= flow(Source_Bus1_3) <= +inf - 0 <= flow(Source_Bus1_4) <= +inf - 0 <= flow(Source_Bus1_5) <= +inf - 0 <= InvestmentFlowBlock_total(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_total(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_total(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(Source_Bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Source_Bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Source_Bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(Source_Bus1_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_total(sink_dsm_oemof_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old(sink_dsm_oemof_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old(sink_dsm_oemof_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old(sink_dsm_oemof_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_end(sink_dsm_oemof_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_end(sink_dsm_oemof_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_end(sink_dsm_oemof_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_exo(sink_dsm_oemof_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_exo(sink_dsm_oemof_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_old_exo(sink_dsm_oemof_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_0) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_1) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_2) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_3) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_4) <= +inf - 0 <= SinkDSMOemofInvestmentBlock_dsm_do_shed(sink_dsm_oemof_5) <= +inf -end diff --git a/tests/lp_files/piecewise_linear_converter_cc.lp b/tests/lp_files/piecewise_linear_converter_cc.lp deleted file mode 100644 index edb6d51b2..000000000 --- a/tests/lp_files/piecewise_linear_converter_cc.lp +++ /dev/null @@ -1,295 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+1 flow(gasBus_pwltf_0) -+1 flow(gasBus_pwltf_1) -+1 flow(gasBus_pwltf_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(pwltf_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(pwltf_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(pwltf_electricityBus_2) -= 0 - -c_e_BusBlock_balance(gasBus_0)_: -+1 flow(gasBus_pwltf_0) -= 0 - -c_e_BusBlock_balance(gasBus_1)_: -+1 flow(gasBus_pwltf_1) -= 0 - -c_e_BusBlock_balance(gasBus_2)_: -+1 flow(gasBus_pwltf_2) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_in(pwltf_0)_: --1 flow(gasBus_pwltf_0) -+1 PiecewiseLinearConverterBlock_inflow(pwltf_0) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_in(pwltf_1)_: --1 flow(gasBus_pwltf_1) -+1 PiecewiseLinearConverterBlock_inflow(pwltf_1) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_in(pwltf_2)_: --1 flow(gasBus_pwltf_2) -+1 PiecewiseLinearConverterBlock_inflow(pwltf_2) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_out(pwltf_0)_: --1 flow(pwltf_electricityBus_0) -+1 PiecewiseLinearConverterBlock_outflow(pwltf_0) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_out(pwltf_1)_: --1 flow(pwltf_electricityBus_1) -+1 PiecewiseLinearConverterBlock_outflow(pwltf_1) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_out(pwltf_2)_: --1 flow(pwltf_electricityBus_2) -+1 PiecewiseLinearConverterBlock_outflow(pwltf_2) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_constraint1_: -+1 PiecewiseLinearConverterBlock_inflow(pwltf_0) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(2) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(3) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(4) --100 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_constraint2_: -+1 PiecewiseLinearConverterBlock_outflow(pwltf_0) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(2) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(3) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(4) --10000 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_constraint3_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(4) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(5) -= 1 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_constraint4(1)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(1) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_constraint4(2)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(2) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_constraint4(3)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(3) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_constraint4(4)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(4) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(4) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_constraint4(5)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(5) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(4) -<= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_constraint5_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(4) -= 1 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_constraint1_: -+1 PiecewiseLinearConverterBlock_inflow(pwltf_1) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(2) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(3) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(4) --100 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_constraint2_: -+1 PiecewiseLinearConverterBlock_outflow(pwltf_1) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(2) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(3) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(4) --10000 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_constraint3_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(4) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(5) -= 1 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_constraint4(1)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(1) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_constraint4(2)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(2) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_constraint4(3)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(3) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_constraint4(4)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(4) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(4) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_constraint4(5)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(5) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(4) -<= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_constraint5_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(4) -= 1 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_constraint1_: -+1 PiecewiseLinearConverterBlock_inflow(pwltf_2) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(2) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(3) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(4) --100 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_constraint2_: -+1 PiecewiseLinearConverterBlock_outflow(pwltf_2) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(2) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(3) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(4) --10000 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_constraint3_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(4) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(5) -= 1 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_constraint4(1)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(1) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_constraint4(2)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(2) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_constraint4(3)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(3) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_constraint4(4)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(4) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(4) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_constraint4(5)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(5) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(4) -<= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_constraint5_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(4) -= 1 - -bounds - 0 <= flow(gasBus_pwltf_0) <= 100 - 0 <= flow(gasBus_pwltf_1) <= 100 - 0 <= flow(gasBus_pwltf_2) <= 100 - 0 <= flow(pwltf_electricityBus_0) <= +inf - 0 <= flow(pwltf_electricityBus_1) <= +inf - 0 <= flow(pwltf_electricityBus_2) <= +inf - 0 <= PiecewiseLinearConverterBlock_inflow(pwltf_0) <= 100 - 0 <= PiecewiseLinearConverterBlock_inflow(pwltf_1) <= 100 - 0 <= PiecewiseLinearConverterBlock_inflow(pwltf_2) <= 100 - 0 <= PiecewiseLinearConverterBlock_outflow(pwltf_0) <= 10000 - 0 <= PiecewiseLinearConverterBlock_outflow(pwltf_1) <= 10000 - 0 <= PiecewiseLinearConverterBlock_outflow(pwltf_2) <= 10000 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(1) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(5) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(1) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(2) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(3) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(4) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(1) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(5) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(1) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(2) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(3) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(4) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(1) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(5) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(1) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(2) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(3) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(4) <= 1 -binary - PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(1) - PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(2) - PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(3) - PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(4) - PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(1) - PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(2) - PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(3) - PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(4) - PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(1) - PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(2) - PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(3) - PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(4) -end diff --git a/tests/lp_files/piecewise_linear_converter_cc_multi_period.lp b/tests/lp_files/piecewise_linear_converter_cc_multi_period.lp deleted file mode 100644 index b9860f475..000000000 --- a/tests/lp_files/piecewise_linear_converter_cc_multi_period.lp +++ /dev/null @@ -1,580 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+1 flow(gasBus_pwltf_0) -+1 flow(gasBus_pwltf_1) -+0.9803921568627451 flow(gasBus_pwltf_2) -+0.9803921568627451 flow(gasBus_pwltf_3) -+0.9611687812379853 flow(gasBus_pwltf_4) -+0.9611687812379853 flow(gasBus_pwltf_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(pwltf_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(pwltf_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(pwltf_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(pwltf_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(pwltf_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(pwltf_electricityBus_5) -= 0 - -c_e_BusBlock_balance(gasBus_0)_: -+1 flow(gasBus_pwltf_0) -= 0 - -c_e_BusBlock_balance(gasBus_1)_: -+1 flow(gasBus_pwltf_1) -= 0 - -c_e_BusBlock_balance(gasBus_2)_: -+1 flow(gasBus_pwltf_2) -= 0 - -c_e_BusBlock_balance(gasBus_3)_: -+1 flow(gasBus_pwltf_3) -= 0 - -c_e_BusBlock_balance(gasBus_4)_: -+1 flow(gasBus_pwltf_4) -= 0 - -c_e_BusBlock_balance(gasBus_5)_: -+1 flow(gasBus_pwltf_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_in(pwltf_0)_: --1 flow(gasBus_pwltf_0) -+1 PiecewiseLinearConverterBlock_inflow(pwltf_0) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_in(pwltf_1)_: --1 flow(gasBus_pwltf_1) -+1 PiecewiseLinearConverterBlock_inflow(pwltf_1) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_in(pwltf_2)_: --1 flow(gasBus_pwltf_2) -+1 PiecewiseLinearConverterBlock_inflow(pwltf_2) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_in(pwltf_3)_: --1 flow(gasBus_pwltf_3) -+1 PiecewiseLinearConverterBlock_inflow(pwltf_3) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_in(pwltf_4)_: --1 flow(gasBus_pwltf_4) -+1 PiecewiseLinearConverterBlock_inflow(pwltf_4) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_in(pwltf_5)_: --1 flow(gasBus_pwltf_5) -+1 PiecewiseLinearConverterBlock_inflow(pwltf_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_out(pwltf_0)_: --1 flow(pwltf_electricityBus_0) -+1 PiecewiseLinearConverterBlock_outflow(pwltf_0) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_out(pwltf_1)_: --1 flow(pwltf_electricityBus_1) -+1 PiecewiseLinearConverterBlock_outflow(pwltf_1) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_out(pwltf_2)_: --1 flow(pwltf_electricityBus_2) -+1 PiecewiseLinearConverterBlock_outflow(pwltf_2) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_out(pwltf_3)_: --1 flow(pwltf_electricityBus_3) -+1 PiecewiseLinearConverterBlock_outflow(pwltf_3) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_out(pwltf_4)_: --1 flow(pwltf_electricityBus_4) -+1 PiecewiseLinearConverterBlock_outflow(pwltf_4) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_out(pwltf_5)_: --1 flow(pwltf_electricityBus_5) -+1 PiecewiseLinearConverterBlock_outflow(pwltf_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_constraint1_: -+1 PiecewiseLinearConverterBlock_inflow(pwltf_0) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(2) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(3) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(4) --100 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_constraint2_: -+1 PiecewiseLinearConverterBlock_outflow(pwltf_0) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(2) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(3) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(4) --10000 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_constraint3_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(4) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(5) -= 1 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_constraint4(1)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(1) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_constraint4(2)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(2) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_constraint4(3)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(3) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_constraint4(4)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(4) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(4) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_constraint4(5)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(5) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(4) -<= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_constraint5_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(4) -= 1 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_constraint1_: -+1 PiecewiseLinearConverterBlock_inflow(pwltf_1) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(2) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(3) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(4) --100 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_constraint2_: -+1 PiecewiseLinearConverterBlock_outflow(pwltf_1) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(2) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(3) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(4) --10000 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_constraint3_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(4) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(5) -= 1 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_constraint4(1)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(1) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_constraint4(2)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(2) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_constraint4(3)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(3) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_constraint4(4)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(4) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(4) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_constraint4(5)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(5) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(4) -<= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_constraint5_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(4) -= 1 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_constraint1_: -+1 PiecewiseLinearConverterBlock_inflow(pwltf_2) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(2) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(3) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(4) --100 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_constraint2_: -+1 PiecewiseLinearConverterBlock_outflow(pwltf_2) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(2) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(3) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(4) --10000 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_constraint3_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(4) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(5) -= 1 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_constraint4(1)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(1) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_constraint4(2)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(2) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_constraint4(3)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(3) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_constraint4(4)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(4) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(4) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_constraint4(5)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(5) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(4) -<= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_constraint5_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(4) -= 1 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_constraint1_: -+1 PiecewiseLinearConverterBlock_inflow(pwltf_3) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(2) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(3) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(4) --100 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_constraint2_: -+1 PiecewiseLinearConverterBlock_outflow(pwltf_3) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(2) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(3) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(4) --10000 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_constraint3_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(4) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(5) -= 1 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_constraint4(1)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_bin_y(1) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_constraint4(2)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_bin_y(1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_bin_y(2) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_constraint4(3)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_bin_y(2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_bin_y(3) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_constraint4(4)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(4) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_bin_y(3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_bin_y(4) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_constraint4(5)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(5) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_bin_y(4) -<= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_constraint5_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_bin_y(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_bin_y(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_bin_y(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_bin_y(4) -= 1 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_constraint1_: -+1 PiecewiseLinearConverterBlock_inflow(pwltf_4) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(2) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(3) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(4) --100 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_constraint2_: -+1 PiecewiseLinearConverterBlock_outflow(pwltf_4) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(2) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(3) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(4) --10000 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_constraint3_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(4) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(5) -= 1 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_constraint4(1)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_bin_y(1) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_constraint4(2)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_bin_y(1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_bin_y(2) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_constraint4(3)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_bin_y(2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_bin_y(3) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_constraint4(4)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(4) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_bin_y(3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_bin_y(4) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_constraint4(5)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(5) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_bin_y(4) -<= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_constraint5_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_bin_y(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_bin_y(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_bin_y(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_bin_y(4) -= 1 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_constraint1_: -+1 PiecewiseLinearConverterBlock_inflow(pwltf_5) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(2) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(3) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(4) --100 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_constraint2_: -+1 PiecewiseLinearConverterBlock_outflow(pwltf_5) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(2) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(3) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(4) --10000 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_constraint3_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(4) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(5) -= 1 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_constraint4(1)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_bin_y(1) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_constraint4(2)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_bin_y(1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_bin_y(2) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_constraint4(3)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_bin_y(2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_bin_y(3) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_constraint4(4)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(4) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_bin_y(3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_bin_y(4) -<= 0 - -c_u_PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_constraint4(5)_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(5) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_bin_y(4) -<= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_constraint5_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_bin_y(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_bin_y(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_bin_y(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_bin_y(4) -= 1 - -bounds - 0 <= flow(gasBus_pwltf_0) <= 100 - 0 <= flow(gasBus_pwltf_1) <= 100 - 0 <= flow(gasBus_pwltf_2) <= 100 - 0 <= flow(gasBus_pwltf_3) <= 100 - 0 <= flow(gasBus_pwltf_4) <= 100 - 0 <= flow(gasBus_pwltf_5) <= 100 - 0 <= flow(pwltf_electricityBus_0) <= +inf - 0 <= flow(pwltf_electricityBus_1) <= +inf - 0 <= flow(pwltf_electricityBus_2) <= +inf - 0 <= flow(pwltf_electricityBus_3) <= +inf - 0 <= flow(pwltf_electricityBus_4) <= +inf - 0 <= flow(pwltf_electricityBus_5) <= +inf - 0 <= PiecewiseLinearConverterBlock_inflow(pwltf_0) <= 100 - 0 <= PiecewiseLinearConverterBlock_inflow(pwltf_1) <= 100 - 0 <= PiecewiseLinearConverterBlock_inflow(pwltf_2) <= 100 - 0 <= PiecewiseLinearConverterBlock_inflow(pwltf_3) <= 100 - 0 <= PiecewiseLinearConverterBlock_inflow(pwltf_4) <= 100 - 0 <= PiecewiseLinearConverterBlock_inflow(pwltf_5) <= 100 - 0 <= PiecewiseLinearConverterBlock_outflow(pwltf_0) <= 10000 - 0 <= PiecewiseLinearConverterBlock_outflow(pwltf_1) <= 10000 - 0 <= PiecewiseLinearConverterBlock_outflow(pwltf_2) <= 10000 - 0 <= PiecewiseLinearConverterBlock_outflow(pwltf_3) <= 10000 - 0 <= PiecewiseLinearConverterBlock_outflow(pwltf_4) <= 10000 - 0 <= PiecewiseLinearConverterBlock_outflow(pwltf_5) <= 10000 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(1) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_lambda(5) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(1) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(2) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(3) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(4) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(1) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_lambda(5) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(1) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(2) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(3) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(4) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(1) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_lambda(5) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(1) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(2) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(3) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(4) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(1) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_lambda(5) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_bin_y(1) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_bin_y(2) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_bin_y(3) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_bin_y(4) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(1) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_lambda(5) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_bin_y(1) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_bin_y(2) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_bin_y(3) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_bin_y(4) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(1) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_lambda(5) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_bin_y(1) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_bin_y(2) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_bin_y(3) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_bin_y(4) <= 1 -binary - PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(1) - PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(2) - PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(3) - PiecewiseLinearConverterBlock_piecewise(pwltf_0)_CC_bin_y(4) - PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(1) - PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(2) - PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(3) - PiecewiseLinearConverterBlock_piecewise(pwltf_1)_CC_bin_y(4) - PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(1) - PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(2) - PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(3) - PiecewiseLinearConverterBlock_piecewise(pwltf_2)_CC_bin_y(4) - PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_bin_y(1) - PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_bin_y(2) - PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_bin_y(3) - PiecewiseLinearConverterBlock_piecewise(pwltf_3)_CC_bin_y(4) - PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_bin_y(1) - PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_bin_y(2) - PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_bin_y(3) - PiecewiseLinearConverterBlock_piecewise(pwltf_4)_CC_bin_y(4) - PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_bin_y(1) - PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_bin_y(2) - PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_bin_y(3) - PiecewiseLinearConverterBlock_piecewise(pwltf_5)_CC_bin_y(4) -end diff --git a/tests/lp_files/piecewise_linear_converter_dcc.lp b/tests/lp_files/piecewise_linear_converter_dcc.lp deleted file mode 100644 index 2c96215e0..000000000 --- a/tests/lp_files/piecewise_linear_converter_dcc.lp +++ /dev/null @@ -1,286 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+1 flow(gasBus_pwltf_0) -+1 flow(gasBus_pwltf_1) -+1 flow(gasBus_pwltf_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(pwltf_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(pwltf_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(pwltf_electricityBus_2) -= 0 - -c_e_BusBlock_balance(gasBus_0)_: -+1 flow(gasBus_pwltf_0) -= 0 - -c_e_BusBlock_balance(gasBus_1)_: -+1 flow(gasBus_pwltf_1) -= 0 - -c_e_BusBlock_balance(gasBus_2)_: -+1 flow(gasBus_pwltf_2) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_in(pwltf_0)_: --1 flow(gasBus_pwltf_0) -+1 PiecewiseLinearConverterBlock_inflow(pwltf_0) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_in(pwltf_1)_: --1 flow(gasBus_pwltf_1) -+1 PiecewiseLinearConverterBlock_inflow(pwltf_1) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_in(pwltf_2)_: --1 flow(gasBus_pwltf_2) -+1 PiecewiseLinearConverterBlock_inflow(pwltf_2) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_out(pwltf_0)_: --1 flow(pwltf_electricityBus_0) -+1 PiecewiseLinearConverterBlock_outflow(pwltf_0) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_out(pwltf_1)_: --1 flow(pwltf_electricityBus_1) -+1 PiecewiseLinearConverterBlock_outflow(pwltf_1) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_out(pwltf_2)_: --1 flow(pwltf_electricityBus_2) -+1 PiecewiseLinearConverterBlock_outflow(pwltf_2) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_constraint1_: -+1 PiecewiseLinearConverterBlock_inflow(pwltf_0) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(1_2) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(2_2) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(2_3) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(3_3) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(3_4) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(4_4) --100 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(4_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_constraint2_: -+1 PiecewiseLinearConverterBlock_outflow(pwltf_0) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(1_2) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(2_2) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(2_3) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(3_3) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(3_4) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(4_4) --10000 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(4_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_constraint3(1)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(1_1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(1_2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(1) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_constraint3(2)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(2_2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(2_3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(2) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_constraint3(3)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(3_3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(3_4) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(3) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_constraint3(4)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(4_4) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(4_5) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(4) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_constraint4_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(4) -= 1 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_constraint1_: -+1 PiecewiseLinearConverterBlock_inflow(pwltf_1) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(1_2) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(2_2) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(2_3) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(3_3) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(3_4) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(4_4) --100 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(4_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_constraint2_: -+1 PiecewiseLinearConverterBlock_outflow(pwltf_1) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(1_2) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(2_2) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(2_3) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(3_3) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(3_4) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(4_4) --10000 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(4_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_constraint3(1)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(1_1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(1_2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(1) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_constraint3(2)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(2_2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(2_3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(2) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_constraint3(3)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(3_3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(3_4) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(3) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_constraint3(4)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(4_4) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(4_5) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(4) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_constraint4_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(4) -= 1 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_constraint1_: -+1 PiecewiseLinearConverterBlock_inflow(pwltf_2) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(1_2) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(2_2) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(2_3) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(3_3) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(3_4) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(4_4) --100 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(4_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_constraint2_: -+1 PiecewiseLinearConverterBlock_outflow(pwltf_2) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(1_2) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(2_2) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(2_3) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(3_3) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(3_4) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(4_4) --10000 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(4_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_constraint3(1)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(1_1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(1_2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(1) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_constraint3(2)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(2_2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(2_3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(2) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_constraint3(3)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(3_3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(3_4) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(3) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_constraint3(4)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(4_4) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(4_5) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(4) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_constraint4_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(4) -= 1 - -bounds - 0 <= flow(gasBus_pwltf_0) <= 100 - 0 <= flow(gasBus_pwltf_1) <= 100 - 0 <= flow(gasBus_pwltf_2) <= 100 - 0 <= flow(pwltf_electricityBus_0) <= +inf - 0 <= flow(pwltf_electricityBus_1) <= +inf - 0 <= flow(pwltf_electricityBus_2) <= +inf - 0 <= PiecewiseLinearConverterBlock_inflow(pwltf_0) <= 100 - 0 <= PiecewiseLinearConverterBlock_inflow(pwltf_1) <= 100 - 0 <= PiecewiseLinearConverterBlock_inflow(pwltf_2) <= 100 - 0 <= PiecewiseLinearConverterBlock_outflow(pwltf_0) <= 10000 - 0 <= PiecewiseLinearConverterBlock_outflow(pwltf_1) <= 10000 - 0 <= PiecewiseLinearConverterBlock_outflow(pwltf_2) <= 10000 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(1_1) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(1_2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(2_2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(2_3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(3_3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(3_4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(4_4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(4_5) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(1) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(2) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(3) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(4) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(1_1) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(1_2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(2_2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(2_3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(3_3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(3_4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(4_4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(4_5) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(1) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(2) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(3) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(4) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(1_1) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(1_2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(2_2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(2_3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(3_3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(3_4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(4_4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(4_5) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(1) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(2) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(3) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(4) <= 1 -binary - PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(1) - PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(2) - PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(3) - PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(4) - PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(1) - PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(2) - PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(3) - PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(4) - PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(1) - PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(2) - PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(3) - PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(4) -end diff --git a/tests/lp_files/piecewise_linear_converter_dcc_multi_period.lp b/tests/lp_files/piecewise_linear_converter_dcc_multi_period.lp deleted file mode 100644 index eb6a87193..000000000 --- a/tests/lp_files/piecewise_linear_converter_dcc_multi_period.lp +++ /dev/null @@ -1,562 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+1 flow(gasBus_pwltf_0) -+1 flow(gasBus_pwltf_1) -+0.9803921568627451 flow(gasBus_pwltf_2) -+0.9803921568627451 flow(gasBus_pwltf_3) -+0.9611687812379853 flow(gasBus_pwltf_4) -+0.9611687812379853 flow(gasBus_pwltf_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(pwltf_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(pwltf_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(pwltf_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(pwltf_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(pwltf_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(pwltf_electricityBus_5) -= 0 - -c_e_BusBlock_balance(gasBus_0)_: -+1 flow(gasBus_pwltf_0) -= 0 - -c_e_BusBlock_balance(gasBus_1)_: -+1 flow(gasBus_pwltf_1) -= 0 - -c_e_BusBlock_balance(gasBus_2)_: -+1 flow(gasBus_pwltf_2) -= 0 - -c_e_BusBlock_balance(gasBus_3)_: -+1 flow(gasBus_pwltf_3) -= 0 - -c_e_BusBlock_balance(gasBus_4)_: -+1 flow(gasBus_pwltf_4) -= 0 - -c_e_BusBlock_balance(gasBus_5)_: -+1 flow(gasBus_pwltf_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_in(pwltf_0)_: --1 flow(gasBus_pwltf_0) -+1 PiecewiseLinearConverterBlock_inflow(pwltf_0) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_in(pwltf_1)_: --1 flow(gasBus_pwltf_1) -+1 PiecewiseLinearConverterBlock_inflow(pwltf_1) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_in(pwltf_2)_: --1 flow(gasBus_pwltf_2) -+1 PiecewiseLinearConverterBlock_inflow(pwltf_2) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_in(pwltf_3)_: --1 flow(gasBus_pwltf_3) -+1 PiecewiseLinearConverterBlock_inflow(pwltf_3) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_in(pwltf_4)_: --1 flow(gasBus_pwltf_4) -+1 PiecewiseLinearConverterBlock_inflow(pwltf_4) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_in(pwltf_5)_: --1 flow(gasBus_pwltf_5) -+1 PiecewiseLinearConverterBlock_inflow(pwltf_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_out(pwltf_0)_: --1 flow(pwltf_electricityBus_0) -+1 PiecewiseLinearConverterBlock_outflow(pwltf_0) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_out(pwltf_1)_: --1 flow(pwltf_electricityBus_1) -+1 PiecewiseLinearConverterBlock_outflow(pwltf_1) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_out(pwltf_2)_: --1 flow(pwltf_electricityBus_2) -+1 PiecewiseLinearConverterBlock_outflow(pwltf_2) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_out(pwltf_3)_: --1 flow(pwltf_electricityBus_3) -+1 PiecewiseLinearConverterBlock_outflow(pwltf_3) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_out(pwltf_4)_: --1 flow(pwltf_electricityBus_4) -+1 PiecewiseLinearConverterBlock_outflow(pwltf_4) -= 0 - -c_e_PiecewiseLinearConverterBlock_equate_out(pwltf_5)_: --1 flow(pwltf_electricityBus_5) -+1 PiecewiseLinearConverterBlock_outflow(pwltf_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_constraint1_: -+1 PiecewiseLinearConverterBlock_inflow(pwltf_0) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(1_2) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(2_2) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(2_3) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(3_3) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(3_4) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(4_4) --100 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(4_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_constraint2_: -+1 PiecewiseLinearConverterBlock_outflow(pwltf_0) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(1_2) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(2_2) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(2_3) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(3_3) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(3_4) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(4_4) --10000 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(4_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_constraint3(1)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(1_1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(1_2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(1) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_constraint3(2)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(2_2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(2_3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(2) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_constraint3(3)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(3_3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(3_4) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(3) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_constraint3(4)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(4_4) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(4_5) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(4) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_constraint4_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(4) -= 1 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_constraint1_: -+1 PiecewiseLinearConverterBlock_inflow(pwltf_1) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(1_2) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(2_2) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(2_3) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(3_3) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(3_4) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(4_4) --100 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(4_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_constraint2_: -+1 PiecewiseLinearConverterBlock_outflow(pwltf_1) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(1_2) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(2_2) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(2_3) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(3_3) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(3_4) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(4_4) --10000 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(4_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_constraint3(1)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(1_1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(1_2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(1) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_constraint3(2)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(2_2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(2_3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(2) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_constraint3(3)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(3_3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(3_4) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(3) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_constraint3(4)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(4_4) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(4_5) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(4) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_constraint4_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(4) -= 1 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_constraint1_: -+1 PiecewiseLinearConverterBlock_inflow(pwltf_2) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(1_2) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(2_2) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(2_3) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(3_3) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(3_4) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(4_4) --100 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(4_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_constraint2_: -+1 PiecewiseLinearConverterBlock_outflow(pwltf_2) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(1_2) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(2_2) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(2_3) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(3_3) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(3_4) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(4_4) --10000 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(4_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_constraint3(1)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(1_1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(1_2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(1) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_constraint3(2)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(2_2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(2_3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(2) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_constraint3(3)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(3_3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(3_4) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(3) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_constraint3(4)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(4_4) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(4_5) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(4) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_constraint4_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(4) -= 1 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_constraint1_: -+1 PiecewiseLinearConverterBlock_inflow(pwltf_3) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(1_2) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(2_2) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(2_3) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(3_3) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(3_4) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(4_4) --100 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(4_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_constraint2_: -+1 PiecewiseLinearConverterBlock_outflow(pwltf_3) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(1_2) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(2_2) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(2_3) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(3_3) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(3_4) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(4_4) --10000 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(4_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_constraint3(1)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(1_1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(1_2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_bin_y(1) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_constraint3(2)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(2_2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(2_3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_bin_y(2) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_constraint3(3)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(3_3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(3_4) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_bin_y(3) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_constraint3(4)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(4_4) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(4_5) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_bin_y(4) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_constraint4_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_bin_y(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_bin_y(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_bin_y(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_bin_y(4) -= 1 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_constraint1_: -+1 PiecewiseLinearConverterBlock_inflow(pwltf_4) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(1_2) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(2_2) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(2_3) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(3_3) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(3_4) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(4_4) --100 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(4_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_constraint2_: -+1 PiecewiseLinearConverterBlock_outflow(pwltf_4) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(1_2) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(2_2) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(2_3) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(3_3) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(3_4) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(4_4) --10000 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(4_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_constraint3(1)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(1_1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(1_2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_bin_y(1) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_constraint3(2)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(2_2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(2_3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_bin_y(2) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_constraint3(3)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(3_3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(3_4) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_bin_y(3) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_constraint3(4)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(4_4) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(4_5) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_bin_y(4) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_constraint4_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_bin_y(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_bin_y(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_bin_y(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_bin_y(4) -= 1 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_constraint1_: -+1 PiecewiseLinearConverterBlock_inflow(pwltf_5) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(1_2) --25 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(2_2) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(2_3) --50 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(3_3) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(3_4) --75 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(4_4) --100 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(4_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_constraint2_: -+1 PiecewiseLinearConverterBlock_outflow(pwltf_5) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(1_2) --625 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(2_2) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(2_3) --2500 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(3_3) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(3_4) --5625 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(4_4) --10000 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(4_5) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_constraint3(1)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(1_1) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(1_2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_bin_y(1) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_constraint3(2)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(2_2) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(2_3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_bin_y(2) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_constraint3(3)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(3_3) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(3_4) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_bin_y(3) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_constraint3(4)_: --1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(4_4) --1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(4_5) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_bin_y(4) -= 0 - -c_e_PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_constraint4_: -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_bin_y(1) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_bin_y(2) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_bin_y(3) -+1 PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_bin_y(4) -= 1 - -bounds - 0 <= flow(gasBus_pwltf_0) <= 100 - 0 <= flow(gasBus_pwltf_1) <= 100 - 0 <= flow(gasBus_pwltf_2) <= 100 - 0 <= flow(gasBus_pwltf_3) <= 100 - 0 <= flow(gasBus_pwltf_4) <= 100 - 0 <= flow(gasBus_pwltf_5) <= 100 - 0 <= flow(pwltf_electricityBus_0) <= +inf - 0 <= flow(pwltf_electricityBus_1) <= +inf - 0 <= flow(pwltf_electricityBus_2) <= +inf - 0 <= flow(pwltf_electricityBus_3) <= +inf - 0 <= flow(pwltf_electricityBus_4) <= +inf - 0 <= flow(pwltf_electricityBus_5) <= +inf - 0 <= PiecewiseLinearConverterBlock_inflow(pwltf_0) <= 100 - 0 <= PiecewiseLinearConverterBlock_inflow(pwltf_1) <= 100 - 0 <= PiecewiseLinearConverterBlock_inflow(pwltf_2) <= 100 - 0 <= PiecewiseLinearConverterBlock_inflow(pwltf_3) <= 100 - 0 <= PiecewiseLinearConverterBlock_inflow(pwltf_4) <= 100 - 0 <= PiecewiseLinearConverterBlock_inflow(pwltf_5) <= 100 - 0 <= PiecewiseLinearConverterBlock_outflow(pwltf_0) <= 10000 - 0 <= PiecewiseLinearConverterBlock_outflow(pwltf_1) <= 10000 - 0 <= PiecewiseLinearConverterBlock_outflow(pwltf_2) <= 10000 - 0 <= PiecewiseLinearConverterBlock_outflow(pwltf_3) <= 10000 - 0 <= PiecewiseLinearConverterBlock_outflow(pwltf_4) <= 10000 - 0 <= PiecewiseLinearConverterBlock_outflow(pwltf_5) <= 10000 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(1_1) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(1_2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(2_2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(2_3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(3_3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(3_4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(4_4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_lambda(4_5) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(1) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(2) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(3) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(4) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(1_1) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(1_2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(2_2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(2_3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(3_3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(3_4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(4_4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_lambda(4_5) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(1) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(2) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(3) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(4) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(1_1) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(1_2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(2_2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(2_3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(3_3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(3_4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(4_4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_lambda(4_5) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(1) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(2) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(3) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(4) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(1_1) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(1_2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(2_2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(2_3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(3_3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(3_4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(4_4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_lambda(4_5) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_bin_y(1) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_bin_y(2) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_bin_y(3) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_bin_y(4) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(1_1) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(1_2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(2_2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(2_3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(3_3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(3_4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(4_4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_lambda(4_5) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_bin_y(1) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_bin_y(2) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_bin_y(3) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_bin_y(4) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(1_1) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(1_2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(2_2) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(2_3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(3_3) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(3_4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(4_4) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_lambda(4_5) <= +inf - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_bin_y(1) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_bin_y(2) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_bin_y(3) <= 1 - 0 <= PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_bin_y(4) <= 1 -binary - PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(1) - PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(2) - PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(3) - PiecewiseLinearConverterBlock_piecewise(pwltf_0)_DCC_bin_y(4) - PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(1) - PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(2) - PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(3) - PiecewiseLinearConverterBlock_piecewise(pwltf_1)_DCC_bin_y(4) - PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(1) - PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(2) - PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(3) - PiecewiseLinearConverterBlock_piecewise(pwltf_2)_DCC_bin_y(4) - PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_bin_y(1) - PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_bin_y(2) - PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_bin_y(3) - PiecewiseLinearConverterBlock_piecewise(pwltf_3)_DCC_bin_y(4) - PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_bin_y(1) - PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_bin_y(2) - PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_bin_y(3) - PiecewiseLinearConverterBlock_piecewise(pwltf_4)_DCC_bin_y(4) - PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_bin_y(1) - PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_bin_y(2) - PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_bin_y(3) - PiecewiseLinearConverterBlock_piecewise(pwltf_5)_DCC_bin_y(4) -end diff --git a/tests/lp_files/shared_limit.lp b/tests/lp_files/shared_limit.lp deleted file mode 100644 index 1050745b1..000000000 --- a/tests/lp_files/shared_limit.lp +++ /dev/null @@ -1,161 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+0 ONE_VAR_CONSTANT - -s.t. - -c_e_limit_storage_constraint(0)_: -+1.25 GenericStorageBlock_storage_content(storage2_0) -+0.5 GenericStorageBlock_storage_content(storage1_0) --1 limit_storage(0) -= 0 - -c_e_limit_storage_constraint(1)_: -+1.25 GenericStorageBlock_storage_content(storage2_1) -+0.5 GenericStorageBlock_storage_content(storage1_1) --1 limit_storage(1) -= 0 - -c_e_limit_storage_constraint(2)_: -+1.25 GenericStorageBlock_storage_content(storage2_2) -+0.5 GenericStorageBlock_storage_content(storage1_2) --1 limit_storage(2) -= 0 - -c_e_BusBlock_balance(bus_0)_: --1 flow(bus_storage1_0) --1 flow(bus_storage2_0) -+1 flow(storage1_bus_0) -+1 flow(storage2_bus_0) -= 0 - -c_e_BusBlock_balance(bus_1)_: --1 flow(bus_storage1_1) --1 flow(bus_storage2_1) -+1 flow(storage1_bus_1) -+1 flow(storage2_bus_1) -= 0 - -c_e_BusBlock_balance(bus_2)_: --1 flow(bus_storage1_2) --1 flow(bus_storage2_2) -+1 flow(storage1_bus_2) -+1 flow(storage2_bus_2) -= 0 - -c_e_GenericStorageBlock_losses(storage2_0)_: --1 GenericStorageBlock_storage_losses(storage2_0) -= 0 - -c_e_GenericStorageBlock_losses(storage2_1)_: --1 GenericStorageBlock_storage_losses(storage2_1) -= 0 - -c_e_GenericStorageBlock_losses(storage2_2)_: --1 GenericStorageBlock_storage_losses(storage2_2) -= 0 - -c_e_GenericStorageBlock_losses(storage1_0)_: --1 GenericStorageBlock_storage_losses(storage1_0) -= 0 - -c_e_GenericStorageBlock_losses(storage1_1)_: --1 GenericStorageBlock_storage_losses(storage1_1) -= 0 - -c_e_GenericStorageBlock_losses(storage1_2)_: --1 GenericStorageBlock_storage_losses(storage1_2) -= 0 - -c_e_GenericStorageBlock_balance(storage2_0)_: -+1 GenericStorageBlock_storage_content(storage2_0) --1 GenericStorageBlock_storage_content(storage2_1) -+1 flow(bus_storage2_0) --1 flow(storage2_bus_0) --1 GenericStorageBlock_storage_losses(storage2_0) -= 0 - -c_e_GenericStorageBlock_balance(storage2_1)_: -+1 GenericStorageBlock_storage_content(storage2_1) --1 GenericStorageBlock_storage_content(storage2_2) -+1 flow(bus_storage2_1) --1 flow(storage2_bus_1) --1 GenericStorageBlock_storage_losses(storage2_1) -= 0 - -c_e_GenericStorageBlock_balance(storage2_2)_: -+1 GenericStorageBlock_storage_content(storage2_2) --1 GenericStorageBlock_storage_content(storage2_3) -+1 flow(bus_storage2_2) --1 flow(storage2_bus_2) --1 GenericStorageBlock_storage_losses(storage2_2) -= 0 - -c_e_GenericStorageBlock_balance(storage1_0)_: -+1 GenericStorageBlock_storage_content(storage1_0) --1 GenericStorageBlock_storage_content(storage1_1) -+1 flow(bus_storage1_0) --1 flow(storage1_bus_0) --1 GenericStorageBlock_storage_losses(storage1_0) -= 0 - -c_e_GenericStorageBlock_balance(storage1_1)_: -+1 GenericStorageBlock_storage_content(storage1_1) --1 GenericStorageBlock_storage_content(storage1_2) -+1 flow(bus_storage1_1) --1 flow(storage1_bus_1) --1 GenericStorageBlock_storage_losses(storage1_1) -= 0 - -c_e_GenericStorageBlock_balance(storage1_2)_: -+1 GenericStorageBlock_storage_content(storage1_2) --1 GenericStorageBlock_storage_content(storage1_3) -+1 flow(bus_storage1_2) --1 flow(storage1_bus_2) --1 GenericStorageBlock_storage_losses(storage1_2) -= 0 - -c_e_GenericStorageBlock_balanced_cstr(storage2)_: --1 GenericStorageBlock_storage_content(storage2_0) -+1 GenericStorageBlock_storage_content(storage2_3) -= 0 - -c_e_GenericStorageBlock_balanced_cstr(storage1)_: --1 GenericStorageBlock_storage_content(storage1_0) -+1 GenericStorageBlock_storage_content(storage1_3) -= 0 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= GenericStorageBlock_storage_content(storage2_0) <= 5 - 0 <= GenericStorageBlock_storage_content(storage2_1) <= 5 - 0 <= GenericStorageBlock_storage_content(storage2_2) <= 5 - 0 <= GenericStorageBlock_storage_content(storage2_3) <= 5 - 0 <= GenericStorageBlock_storage_content(storage1_0) <= 5 - 0 <= GenericStorageBlock_storage_content(storage1_1) <= 5 - 0 <= GenericStorageBlock_storage_content(storage1_2) <= 5 - 0 <= GenericStorageBlock_storage_content(storage1_3) <= 5 - 0 <= limit_storage(0) <= 7 - 0 <= limit_storage(1) <= 7 - 0 <= limit_storage(2) <= 7 - 0 <= flow(bus_storage1_0) <= +inf - 0 <= flow(bus_storage1_1) <= +inf - 0 <= flow(bus_storage1_2) <= +inf - 0 <= flow(bus_storage2_0) <= +inf - 0 <= flow(bus_storage2_1) <= +inf - 0 <= flow(bus_storage2_2) <= +inf - 0 <= flow(storage1_bus_0) <= +inf - 0 <= flow(storage1_bus_1) <= +inf - 0 <= flow(storage1_bus_2) <= +inf - 0 <= flow(storage2_bus_0) <= +inf - 0 <= flow(storage2_bus_1) <= +inf - 0 <= flow(storage2_bus_2) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage2_0) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage2_1) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage2_2) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage1_0) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage1_1) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage1_2) <= +inf -end diff --git a/tests/lp_files/shared_limit_multi_period.lp b/tests/lp_files/shared_limit_multi_period.lp deleted file mode 100644 index 55796be2f..000000000 --- a/tests/lp_files/shared_limit_multi_period.lp +++ /dev/null @@ -1,299 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+0.0 ONE_VAR_CONSTANT - -s.t. - -c_e_limit_storage_constraint(0)_: -+1.25 GenericStorageBlock_storage_content(storage2_0) -+0.5 GenericStorageBlock_storage_content(storage1_0) --1 limit_storage(0) -= 0 - -c_e_limit_storage_constraint(1)_: -+1.25 GenericStorageBlock_storage_content(storage2_1) -+0.5 GenericStorageBlock_storage_content(storage1_1) --1 limit_storage(1) -= 0 - -c_e_limit_storage_constraint(2)_: -+1.25 GenericStorageBlock_storage_content(storage2_2) -+0.5 GenericStorageBlock_storage_content(storage1_2) --1 limit_storage(2) -= 0 - -c_e_limit_storage_constraint(3)_: -+1.25 GenericStorageBlock_storage_content(storage2_3) -+0.5 GenericStorageBlock_storage_content(storage1_3) --1 limit_storage(3) -= 0 - -c_e_limit_storage_constraint(4)_: -+1.25 GenericStorageBlock_storage_content(storage2_4) -+0.5 GenericStorageBlock_storage_content(storage1_4) --1 limit_storage(4) -= 0 - -c_e_limit_storage_constraint(5)_: -+1.25 GenericStorageBlock_storage_content(storage2_5) -+0.5 GenericStorageBlock_storage_content(storage1_5) --1 limit_storage(5) -= 0 - -c_e_BusBlock_balance(bus_0)_: --1 flow(bus_storage1_0) --1 flow(bus_storage2_0) -+1 flow(storage1_bus_0) -+1 flow(storage2_bus_0) -= 0 - -c_e_BusBlock_balance(bus_1)_: --1 flow(bus_storage1_1) --1 flow(bus_storage2_1) -+1 flow(storage1_bus_1) -+1 flow(storage2_bus_1) -= 0 - -c_e_BusBlock_balance(bus_2)_: --1 flow(bus_storage1_2) --1 flow(bus_storage2_2) -+1 flow(storage1_bus_2) -+1 flow(storage2_bus_2) -= 0 - -c_e_BusBlock_balance(bus_3)_: --1 flow(bus_storage1_3) --1 flow(bus_storage2_3) -+1 flow(storage1_bus_3) -+1 flow(storage2_bus_3) -= 0 - -c_e_BusBlock_balance(bus_4)_: --1 flow(bus_storage1_4) --1 flow(bus_storage2_4) -+1 flow(storage1_bus_4) -+1 flow(storage2_bus_4) -= 0 - -c_e_BusBlock_balance(bus_5)_: --1 flow(bus_storage1_5) --1 flow(bus_storage2_5) -+1 flow(storage1_bus_5) -+1 flow(storage2_bus_5) -= 0 - -c_e_GenericStorageBlock_losses(storage2_0)_: --1 GenericStorageBlock_storage_losses(storage2_0) -= 0 - -c_e_GenericStorageBlock_losses(storage2_1)_: --1 GenericStorageBlock_storage_losses(storage2_1) -= 0 - -c_e_GenericStorageBlock_losses(storage2_2)_: --1 GenericStorageBlock_storage_losses(storage2_2) -= 0 - -c_e_GenericStorageBlock_losses(storage2_3)_: --1 GenericStorageBlock_storage_losses(storage2_3) -= 0 - -c_e_GenericStorageBlock_losses(storage2_4)_: --1 GenericStorageBlock_storage_losses(storage2_4) -= 0 - -c_e_GenericStorageBlock_losses(storage2_5)_: --1 GenericStorageBlock_storage_losses(storage2_5) -= 0 - -c_e_GenericStorageBlock_losses(storage1_0)_: --1 GenericStorageBlock_storage_losses(storage1_0) -= 0 - -c_e_GenericStorageBlock_losses(storage1_1)_: --1 GenericStorageBlock_storage_losses(storage1_1) -= 0 - -c_e_GenericStorageBlock_losses(storage1_2)_: --1 GenericStorageBlock_storage_losses(storage1_2) -= 0 - -c_e_GenericStorageBlock_losses(storage1_3)_: --1 GenericStorageBlock_storage_losses(storage1_3) -= 0 - -c_e_GenericStorageBlock_losses(storage1_4)_: --1 GenericStorageBlock_storage_losses(storage1_4) -= 0 - -c_e_GenericStorageBlock_losses(storage1_5)_: --1 GenericStorageBlock_storage_losses(storage1_5) -= 0 - -c_e_GenericStorageBlock_balance(storage2_0)_: -+1 GenericStorageBlock_storage_content(storage2_0) --1 GenericStorageBlock_storage_content(storage2_1) -+1 flow(bus_storage2_0) --1 flow(storage2_bus_0) --1 GenericStorageBlock_storage_losses(storage2_0) -= 0 - -c_e_GenericStorageBlock_balance(storage2_1)_: -+1 GenericStorageBlock_storage_content(storage2_1) --1 GenericStorageBlock_storage_content(storage2_2) -+1 flow(bus_storage2_1) --1 flow(storage2_bus_1) --1 GenericStorageBlock_storage_losses(storage2_1) -= 0 - -c_e_GenericStorageBlock_balance(storage2_2)_: -+1 GenericStorageBlock_storage_content(storage2_2) --1 GenericStorageBlock_storage_content(storage2_3) -+1 flow(bus_storage2_2) --1 flow(storage2_bus_2) --1 GenericStorageBlock_storage_losses(storage2_2) -= 0 - -c_e_GenericStorageBlock_balance(storage2_3)_: -+1 GenericStorageBlock_storage_content(storage2_3) --1 GenericStorageBlock_storage_content(storage2_4) -+1 flow(bus_storage2_3) --1 flow(storage2_bus_3) --1 GenericStorageBlock_storage_losses(storage2_3) -= 0 - -c_e_GenericStorageBlock_balance(storage2_4)_: -+1 GenericStorageBlock_storage_content(storage2_4) --1 GenericStorageBlock_storage_content(storage2_5) -+1 flow(bus_storage2_4) --1 flow(storage2_bus_4) --1 GenericStorageBlock_storage_losses(storage2_4) -= 0 - -c_e_GenericStorageBlock_balance(storage2_5)_: -+1 GenericStorageBlock_storage_content(storage2_5) --1 GenericStorageBlock_storage_content(storage2_6) -+1 flow(bus_storage2_5) --1 flow(storage2_bus_5) --1 GenericStorageBlock_storage_losses(storage2_5) -= 0 - -c_e_GenericStorageBlock_balance(storage1_0)_: -+1 GenericStorageBlock_storage_content(storage1_0) --1 GenericStorageBlock_storage_content(storage1_1) -+1 flow(bus_storage1_0) --1 flow(storage1_bus_0) --1 GenericStorageBlock_storage_losses(storage1_0) -= 0 - -c_e_GenericStorageBlock_balance(storage1_1)_: -+1 GenericStorageBlock_storage_content(storage1_1) --1 GenericStorageBlock_storage_content(storage1_2) -+1 flow(bus_storage1_1) --1 flow(storage1_bus_1) --1 GenericStorageBlock_storage_losses(storage1_1) -= 0 - -c_e_GenericStorageBlock_balance(storage1_2)_: -+1 GenericStorageBlock_storage_content(storage1_2) --1 GenericStorageBlock_storage_content(storage1_3) -+1 flow(bus_storage1_2) --1 flow(storage1_bus_2) --1 GenericStorageBlock_storage_losses(storage1_2) -= 0 - -c_e_GenericStorageBlock_balance(storage1_3)_: -+1 GenericStorageBlock_storage_content(storage1_3) --1 GenericStorageBlock_storage_content(storage1_4) -+1 flow(bus_storage1_3) --1 flow(storage1_bus_3) --1 GenericStorageBlock_storage_losses(storage1_3) -= 0 - -c_e_GenericStorageBlock_balance(storage1_4)_: -+1 GenericStorageBlock_storage_content(storage1_4) --1 GenericStorageBlock_storage_content(storage1_5) -+1 flow(bus_storage1_4) --1 flow(storage1_bus_4) --1 GenericStorageBlock_storage_losses(storage1_4) -= 0 - -c_e_GenericStorageBlock_balance(storage1_5)_: -+1 GenericStorageBlock_storage_content(storage1_5) --1 GenericStorageBlock_storage_content(storage1_6) -+1 flow(bus_storage1_5) --1 flow(storage1_bus_5) --1 GenericStorageBlock_storage_losses(storage1_5) -= 0 - -c_e_GenericStorageBlock_balanced_cstr(storage2)_: --1 GenericStorageBlock_storage_content(storage2_0) -+1 GenericStorageBlock_storage_content(storage2_6) -= 0 - -c_e_GenericStorageBlock_balanced_cstr(storage1)_: --1 GenericStorageBlock_storage_content(storage1_0) -+1 GenericStorageBlock_storage_content(storage1_6) -= 0 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= GenericStorageBlock_storage_content(storage2_0) <= 5 - 0 <= GenericStorageBlock_storage_content(storage2_1) <= 5 - 0 <= GenericStorageBlock_storage_content(storage2_2) <= 5 - 0 <= GenericStorageBlock_storage_content(storage2_3) <= 5 - 0 <= GenericStorageBlock_storage_content(storage2_4) <= 5 - 0 <= GenericStorageBlock_storage_content(storage2_5) <= 5 - 0 <= GenericStorageBlock_storage_content(storage2_6) <= 5 - 0 <= GenericStorageBlock_storage_content(storage1_0) <= 5 - 0 <= GenericStorageBlock_storage_content(storage1_1) <= 5 - 0 <= GenericStorageBlock_storage_content(storage1_2) <= 5 - 0 <= GenericStorageBlock_storage_content(storage1_3) <= 5 - 0 <= GenericStorageBlock_storage_content(storage1_4) <= 5 - 0 <= GenericStorageBlock_storage_content(storage1_5) <= 5 - 0 <= GenericStorageBlock_storage_content(storage1_6) <= 5 - 0 <= limit_storage(0) <= 7 - 0 <= limit_storage(1) <= 7 - 0 <= limit_storage(2) <= 7 - 0 <= limit_storage(3) <= 7 - 0 <= limit_storage(4) <= 7 - 0 <= limit_storage(5) <= 7 - 0 <= flow(bus_storage1_0) <= +inf - 0 <= flow(bus_storage1_1) <= +inf - 0 <= flow(bus_storage1_2) <= +inf - 0 <= flow(bus_storage1_3) <= +inf - 0 <= flow(bus_storage1_4) <= +inf - 0 <= flow(bus_storage1_5) <= +inf - 0 <= flow(bus_storage2_0) <= +inf - 0 <= flow(bus_storage2_1) <= +inf - 0 <= flow(bus_storage2_2) <= +inf - 0 <= flow(bus_storage2_3) <= +inf - 0 <= flow(bus_storage2_4) <= +inf - 0 <= flow(bus_storage2_5) <= +inf - 0 <= flow(storage1_bus_0) <= +inf - 0 <= flow(storage1_bus_1) <= +inf - 0 <= flow(storage1_bus_2) <= +inf - 0 <= flow(storage1_bus_3) <= +inf - 0 <= flow(storage1_bus_4) <= +inf - 0 <= flow(storage1_bus_5) <= +inf - 0 <= flow(storage2_bus_0) <= +inf - 0 <= flow(storage2_bus_1) <= +inf - 0 <= flow(storage2_bus_2) <= +inf - 0 <= flow(storage2_bus_3) <= +inf - 0 <= flow(storage2_bus_4) <= +inf - 0 <= flow(storage2_bus_5) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage2_0) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage2_1) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage2_2) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage2_3) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage2_4) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage2_5) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage1_0) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage1_1) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage1_2) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage1_3) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage1_4) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage1_5) <= +inf -end diff --git a/tests/lp_files/source_with_gradient.lp b/tests/lp_files/source_with_gradient.lp deleted file mode 100644 index c65753b4c..000000000 --- a/tests/lp_files/source_with_gradient.lp +++ /dev/null @@ -1,65 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+23 flow(powerplant_electricityBus_0) -+23 flow(powerplant_electricityBus_1) -+23 flow(powerplant_electricityBus_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(powerplant_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(powerplant_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(powerplant_electricityBus_2) -= 0 - -c_e_SimpleFlowBlock_positive_gradient_constr(powerplant_electricityBus_0)_: -+1 SimpleFlowBlock_positive_gradient(powerplant_electricityBus_0) -= 0 - -c_u_SimpleFlowBlock_positive_gradient_constr(powerplant_electricityBus_1)_: --1 flow(powerplant_electricityBus_0) -+1 flow(powerplant_electricityBus_1) --1 SimpleFlowBlock_positive_gradient(powerplant_electricityBus_1) -<= 0 - -c_u_SimpleFlowBlock_positive_gradient_constr(powerplant_electricityBus_2)_: --1 flow(powerplant_electricityBus_1) -+1 flow(powerplant_electricityBus_2) --1 SimpleFlowBlock_positive_gradient(powerplant_electricityBus_2) -<= 0 - -c_e_SimpleFlowBlock_negative_gradient_constr(powerplant_electricityBus_0)_: -+1 SimpleFlowBlock_negative_gradient(powerplant_electricityBus_0) -= 0 - -c_u_SimpleFlowBlock_negative_gradient_constr(powerplant_electricityBus_1)_: -+1 flow(powerplant_electricityBus_0) --1 flow(powerplant_electricityBus_1) --1 SimpleFlowBlock_negative_gradient(powerplant_electricityBus_1) -<= 0 - -c_u_SimpleFlowBlock_negative_gradient_constr(powerplant_electricityBus_2)_: -+1 flow(powerplant_electricityBus_1) --1 flow(powerplant_electricityBus_2) --1 SimpleFlowBlock_negative_gradient(powerplant_electricityBus_2) -<= 0 - -bounds - 0 <= flow(powerplant_electricityBus_0) <= 999 - 0 <= flow(powerplant_electricityBus_1) <= 999 - 0 <= flow(powerplant_electricityBus_2) <= 999 - 0 <= SimpleFlowBlock_positive_gradient(powerplant_electricityBus_0) <= 29.97 - 0 <= SimpleFlowBlock_positive_gradient(powerplant_electricityBus_1) <= 29.97 - 0 <= SimpleFlowBlock_positive_gradient(powerplant_electricityBus_2) <= 29.97 - 0 <= SimpleFlowBlock_negative_gradient(powerplant_electricityBus_0) <= 49.95 - 0 <= SimpleFlowBlock_negative_gradient(powerplant_electricityBus_1) <= 49.95 - 0 <= SimpleFlowBlock_negative_gradient(powerplant_electricityBus_2) <= 49.95 -end diff --git a/tests/lp_files/source_with_gradient_multi_period.lp b/tests/lp_files/source_with_gradient_multi_period.lp deleted file mode 100644 index 4775248b3..000000000 --- a/tests/lp_files/source_with_gradient_multi_period.lp +++ /dev/null @@ -1,125 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+23 flow(powerplant_electricityBus_0) -+23 flow(powerplant_electricityBus_1) -+22.549019607843135 flow(powerplant_electricityBus_2) -+22.549019607843135 flow(powerplant_electricityBus_3) -+22.10688196847366 flow(powerplant_electricityBus_4) -+22.10688196847366 flow(powerplant_electricityBus_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(powerplant_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(powerplant_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(powerplant_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(powerplant_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(powerplant_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(powerplant_electricityBus_5) -= 0 - -c_e_SimpleFlowBlock_positive_gradient_constr(powerplant_electricityBus_0)_: -+1 SimpleFlowBlock_positive_gradient(powerplant_electricityBus_0) -= 0 - -c_u_SimpleFlowBlock_positive_gradient_constr(powerplant_electricityBus_1)_: --1 flow(powerplant_electricityBus_0) -+1 flow(powerplant_electricityBus_1) --1 SimpleFlowBlock_positive_gradient(powerplant_electricityBus_1) -<= 0 - -c_u_SimpleFlowBlock_positive_gradient_constr(powerplant_electricityBus_2)_: --1 flow(powerplant_electricityBus_1) -+1 flow(powerplant_electricityBus_2) --1 SimpleFlowBlock_positive_gradient(powerplant_electricityBus_2) -<= 0 - -c_u_SimpleFlowBlock_positive_gradient_constr(powerplant_electricityBus_3)_: --1 flow(powerplant_electricityBus_2) -+1 flow(powerplant_electricityBus_3) --1 SimpleFlowBlock_positive_gradient(powerplant_electricityBus_3) -<= 0 - -c_u_SimpleFlowBlock_positive_gradient_constr(powerplant_electricityBus_4)_: --1 flow(powerplant_electricityBus_3) -+1 flow(powerplant_electricityBus_4) --1 SimpleFlowBlock_positive_gradient(powerplant_electricityBus_4) -<= 0 - -c_u_SimpleFlowBlock_positive_gradient_constr(powerplant_electricityBus_5)_: --1 flow(powerplant_electricityBus_4) -+1 flow(powerplant_electricityBus_5) --1 SimpleFlowBlock_positive_gradient(powerplant_electricityBus_5) -<= 0 - -c_e_SimpleFlowBlock_negative_gradient_constr(powerplant_electricityBus_0)_: -+1 SimpleFlowBlock_negative_gradient(powerplant_electricityBus_0) -= 0 - -c_u_SimpleFlowBlock_negative_gradient_constr(powerplant_electricityBus_1)_: -+1 flow(powerplant_electricityBus_0) --1 flow(powerplant_electricityBus_1) --1 SimpleFlowBlock_negative_gradient(powerplant_electricityBus_1) -<= 0 - -c_u_SimpleFlowBlock_negative_gradient_constr(powerplant_electricityBus_2)_: -+1 flow(powerplant_electricityBus_1) --1 flow(powerplant_electricityBus_2) --1 SimpleFlowBlock_negative_gradient(powerplant_electricityBus_2) -<= 0 - -c_u_SimpleFlowBlock_negative_gradient_constr(powerplant_electricityBus_3)_: -+1 flow(powerplant_electricityBus_2) --1 flow(powerplant_electricityBus_3) --1 SimpleFlowBlock_negative_gradient(powerplant_electricityBus_3) -<= 0 - -c_u_SimpleFlowBlock_negative_gradient_constr(powerplant_electricityBus_4)_: -+1 flow(powerplant_electricityBus_3) --1 flow(powerplant_electricityBus_4) --1 SimpleFlowBlock_negative_gradient(powerplant_electricityBus_4) -<= 0 - -c_u_SimpleFlowBlock_negative_gradient_constr(powerplant_electricityBus_5)_: -+1 flow(powerplant_electricityBus_4) --1 flow(powerplant_electricityBus_5) --1 SimpleFlowBlock_negative_gradient(powerplant_electricityBus_5) -<= 0 - -bounds - 0 <= flow(powerplant_electricityBus_0) <= 999 - 0 <= flow(powerplant_electricityBus_1) <= 999 - 0 <= flow(powerplant_electricityBus_2) <= 999 - 0 <= flow(powerplant_electricityBus_3) <= 999 - 0 <= flow(powerplant_electricityBus_4) <= 999 - 0 <= flow(powerplant_electricityBus_5) <= 999 - 0 <= SimpleFlowBlock_positive_gradient(powerplant_electricityBus_0) <= 29.97 - 0 <= SimpleFlowBlock_positive_gradient(powerplant_electricityBus_1) <= 29.97 - 0 <= SimpleFlowBlock_positive_gradient(powerplant_electricityBus_2) <= 29.97 - 0 <= SimpleFlowBlock_positive_gradient(powerplant_electricityBus_3) <= 29.97 - 0 <= SimpleFlowBlock_positive_gradient(powerplant_electricityBus_4) <= 29.97 - 0 <= SimpleFlowBlock_positive_gradient(powerplant_electricityBus_5) <= 29.97 - 0 <= SimpleFlowBlock_negative_gradient(powerplant_electricityBus_0) <= 49.95 - 0 <= SimpleFlowBlock_negative_gradient(powerplant_electricityBus_1) <= 49.95 - 0 <= SimpleFlowBlock_negative_gradient(powerplant_electricityBus_2) <= 49.95 - 0 <= SimpleFlowBlock_negative_gradient(powerplant_electricityBus_3) <= 49.95 - 0 <= SimpleFlowBlock_negative_gradient(powerplant_electricityBus_4) <= 49.95 - 0 <= SimpleFlowBlock_negative_gradient(powerplant_electricityBus_5) <= 49.95 -end diff --git a/tests/lp_files/source_with_nonconvex_gradient.lp b/tests/lp_files/source_with_nonconvex_gradient.lp deleted file mode 100644 index 83c4223da..000000000 --- a/tests/lp_files/source_with_nonconvex_gradient.lp +++ /dev/null @@ -1,125 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+23 flow(powerplant_electricityBus_0) -+23 flow(powerplant_electricityBus_1) -+23 flow(powerplant_electricityBus_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(powerplant_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(powerplant_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(powerplant_electricityBus_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(powerplant_electricityBus_0)_: -+1 NonConvexFlowBlock_status_nominal(powerplant_electricityBus_0) --999 NonConvexFlowBlock_status(powerplant_electricityBus_0) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(powerplant_electricityBus_1)_: -+1 NonConvexFlowBlock_status_nominal(powerplant_electricityBus_1) --999 NonConvexFlowBlock_status(powerplant_electricityBus_1) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(powerplant_electricityBus_2)_: -+1 NonConvexFlowBlock_status_nominal(powerplant_electricityBus_2) --999 NonConvexFlowBlock_status(powerplant_electricityBus_2) -= 0 - -c_u_NonConvexFlowBlock_min(powerplant_electricityBus_0)_: --1 flow(powerplant_electricityBus_0) -<= 0 - -c_u_NonConvexFlowBlock_min(powerplant_electricityBus_1)_: --1 flow(powerplant_electricityBus_1) -<= 0 - -c_u_NonConvexFlowBlock_min(powerplant_electricityBus_2)_: --1 flow(powerplant_electricityBus_2) -<= 0 - -c_u_NonConvexFlowBlock_max(powerplant_electricityBus_0)_: -+1 flow(powerplant_electricityBus_0) --1 NonConvexFlowBlock_status_nominal(powerplant_electricityBus_0) -<= 0 - -c_u_NonConvexFlowBlock_max(powerplant_electricityBus_1)_: -+1 flow(powerplant_electricityBus_1) --1 NonConvexFlowBlock_status_nominal(powerplant_electricityBus_1) -<= 0 - -c_u_NonConvexFlowBlock_max(powerplant_electricityBus_2)_: -+1 flow(powerplant_electricityBus_2) --1 NonConvexFlowBlock_status_nominal(powerplant_electricityBus_2) -<= 0 - -c_e_NonConvexFlowBlock_positive_gradient_constr(powerplant_electricityBus_0)_: -+1 NonConvexFlowBlock_positive_gradient(powerplant_electricityBus_0) -= 0 - -c_u_NonConvexFlowBlock_positive_gradient_constr(powerplant_electricityBus_1)_: --1 NonConvexFlowBlock_positive_gradient(powerplant_electricityBus_1) -+ [ --1 flow(powerplant_electricityBus_0) * NonConvexFlowBlock_status(powerplant_electricityBus_0) -+1 flow(powerplant_electricityBus_1) * NonConvexFlowBlock_status(powerplant_electricityBus_1) -] -<= 0 - -c_u_NonConvexFlowBlock_positive_gradient_constr(powerplant_electricityBus_2)_: --1 NonConvexFlowBlock_positive_gradient(powerplant_electricityBus_2) -+ [ --1 flow(powerplant_electricityBus_1) * NonConvexFlowBlock_status(powerplant_electricityBus_1) -+1 flow(powerplant_electricityBus_2) * NonConvexFlowBlock_status(powerplant_electricityBus_2) -] -<= 0 - -c_e_NonConvexFlowBlock_negative_gradient_constr(powerplant_electricityBus_0)_: -+1 NonConvexFlowBlock_negative_gradient(powerplant_electricityBus_0) -= 0 - -c_u_NonConvexFlowBlock_negative_gradient_constr(powerplant_electricityBus_1)_: --1 NonConvexFlowBlock_negative_gradient(powerplant_electricityBus_1) -+ [ -+1 flow(powerplant_electricityBus_0) * NonConvexFlowBlock_status(powerplant_electricityBus_0) --1 flow(powerplant_electricityBus_1) * NonConvexFlowBlock_status(powerplant_electricityBus_1) -] -<= 0 - -c_u_NonConvexFlowBlock_negative_gradient_constr(powerplant_electricityBus_2)_: --1 NonConvexFlowBlock_negative_gradient(powerplant_electricityBus_2) -+ [ -+1 flow(powerplant_electricityBus_1) * NonConvexFlowBlock_status(powerplant_electricityBus_1) --1 flow(powerplant_electricityBus_2) * NonConvexFlowBlock_status(powerplant_electricityBus_2) -] -<= 0 - -bounds - 0 <= flow(powerplant_electricityBus_0) <= 999 - 0 <= flow(powerplant_electricityBus_1) <= 999 - 0 <= flow(powerplant_electricityBus_2) <= 999 - 0 <= NonConvexFlowBlock_status_nominal(powerplant_electricityBus_0) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(powerplant_electricityBus_1) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(powerplant_electricityBus_2) <= +inf - 0 <= NonConvexFlowBlock_status(powerplant_electricityBus_0) <= 1 - 0 <= NonConvexFlowBlock_status(powerplant_electricityBus_1) <= 1 - 0 <= NonConvexFlowBlock_status(powerplant_electricityBus_2) <= 1 - 0 <= NonConvexFlowBlock_positive_gradient(powerplant_electricityBus_0) <= +inf - 0 <= NonConvexFlowBlock_positive_gradient(powerplant_electricityBus_1) <= +inf - 0 <= NonConvexFlowBlock_positive_gradient(powerplant_electricityBus_2) <= +inf - 0 <= NonConvexFlowBlock_negative_gradient(powerplant_electricityBus_0) <= +inf - 0 <= NonConvexFlowBlock_negative_gradient(powerplant_electricityBus_1) <= +inf - 0 <= NonConvexFlowBlock_negative_gradient(powerplant_electricityBus_2) <= +inf -binary - NonConvexFlowBlock_status(powerplant_electricityBus_0) - NonConvexFlowBlock_status(powerplant_electricityBus_1) - NonConvexFlowBlock_status(powerplant_electricityBus_2) -end diff --git a/tests/lp_files/source_with_nonconvex_gradient_multi_period.lp b/tests/lp_files/source_with_nonconvex_gradient_multi_period.lp deleted file mode 100644 index 2085f666b..000000000 --- a/tests/lp_files/source_with_nonconvex_gradient_multi_period.lp +++ /dev/null @@ -1,248 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+23 flow(powerplant_electricityBus_0) -+23 flow(powerplant_electricityBus_1) -+22.549019607843135 flow(powerplant_electricityBus_2) -+22.549019607843135 flow(powerplant_electricityBus_3) -+22.10688196847366 flow(powerplant_electricityBus_4) -+22.10688196847366 flow(powerplant_electricityBus_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(powerplant_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(powerplant_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(powerplant_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(powerplant_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(powerplant_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(powerplant_electricityBus_5) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(powerplant_electricityBus_0)_: -+1 NonConvexFlowBlock_status_nominal(powerplant_electricityBus_0) --999 NonConvexFlowBlock_status(powerplant_electricityBus_0) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(powerplant_electricityBus_1)_: -+1 NonConvexFlowBlock_status_nominal(powerplant_electricityBus_1) --999 NonConvexFlowBlock_status(powerplant_electricityBus_1) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(powerplant_electricityBus_2)_: -+1 NonConvexFlowBlock_status_nominal(powerplant_electricityBus_2) --999 NonConvexFlowBlock_status(powerplant_electricityBus_2) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(powerplant_electricityBus_3)_: -+1 NonConvexFlowBlock_status_nominal(powerplant_electricityBus_3) --999 NonConvexFlowBlock_status(powerplant_electricityBus_3) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(powerplant_electricityBus_4)_: -+1 NonConvexFlowBlock_status_nominal(powerplant_electricityBus_4) --999 NonConvexFlowBlock_status(powerplant_electricityBus_4) -= 0 - -c_e_NonConvexFlowBlock_status_nominal_constraint(powerplant_electricityBus_5)_: -+1 NonConvexFlowBlock_status_nominal(powerplant_electricityBus_5) --999 NonConvexFlowBlock_status(powerplant_electricityBus_5) -= 0 - -c_u_NonConvexFlowBlock_min(powerplant_electricityBus_0)_: --1 flow(powerplant_electricityBus_0) -<= 0 - -c_u_NonConvexFlowBlock_min(powerplant_electricityBus_1)_: --1 flow(powerplant_electricityBus_1) -<= 0 - -c_u_NonConvexFlowBlock_min(powerplant_electricityBus_2)_: --1 flow(powerplant_electricityBus_2) -<= 0 - -c_u_NonConvexFlowBlock_min(powerplant_electricityBus_3)_: --1 flow(powerplant_electricityBus_3) -<= 0 - -c_u_NonConvexFlowBlock_min(powerplant_electricityBus_4)_: --1 flow(powerplant_electricityBus_4) -<= 0 - -c_u_NonConvexFlowBlock_min(powerplant_electricityBus_5)_: --1 flow(powerplant_electricityBus_5) -<= 0 - -c_u_NonConvexFlowBlock_max(powerplant_electricityBus_0)_: -+1 flow(powerplant_electricityBus_0) --1 NonConvexFlowBlock_status_nominal(powerplant_electricityBus_0) -<= 0 - -c_u_NonConvexFlowBlock_max(powerplant_electricityBus_1)_: -+1 flow(powerplant_electricityBus_1) --1 NonConvexFlowBlock_status_nominal(powerplant_electricityBus_1) -<= 0 - -c_u_NonConvexFlowBlock_max(powerplant_electricityBus_2)_: -+1 flow(powerplant_electricityBus_2) --1 NonConvexFlowBlock_status_nominal(powerplant_electricityBus_2) -<= 0 - -c_u_NonConvexFlowBlock_max(powerplant_electricityBus_3)_: -+1 flow(powerplant_electricityBus_3) --1 NonConvexFlowBlock_status_nominal(powerplant_electricityBus_3) -<= 0 - -c_u_NonConvexFlowBlock_max(powerplant_electricityBus_4)_: -+1 flow(powerplant_electricityBus_4) --1 NonConvexFlowBlock_status_nominal(powerplant_electricityBus_4) -<= 0 - -c_u_NonConvexFlowBlock_max(powerplant_electricityBus_5)_: -+1 flow(powerplant_electricityBus_5) --1 NonConvexFlowBlock_status_nominal(powerplant_electricityBus_5) -<= 0 - -c_e_NonConvexFlowBlock_positive_gradient_constr(powerplant_electricityBus_0)_: -+1 NonConvexFlowBlock_positive_gradient(powerplant_electricityBus_0) -= 0 - -c_u_NonConvexFlowBlock_positive_gradient_constr(powerplant_electricityBus_1)_: --1 NonConvexFlowBlock_positive_gradient(powerplant_electricityBus_1) -+ [ --1 flow(powerplant_electricityBus_0) * NonConvexFlowBlock_status(powerplant_electricityBus_0) -+1 flow(powerplant_electricityBus_1) * NonConvexFlowBlock_status(powerplant_electricityBus_1) -] -<= 0 - -c_u_NonConvexFlowBlock_positive_gradient_constr(powerplant_electricityBus_2)_: --1 NonConvexFlowBlock_positive_gradient(powerplant_electricityBus_2) -+ [ --1 flow(powerplant_electricityBus_1) * NonConvexFlowBlock_status(powerplant_electricityBus_1) -+1 flow(powerplant_electricityBus_2) * NonConvexFlowBlock_status(powerplant_electricityBus_2) -] -<= 0 - -c_u_NonConvexFlowBlock_positive_gradient_constr(powerplant_electricityBus_3)_: --1 NonConvexFlowBlock_positive_gradient(powerplant_electricityBus_3) -+ [ --1 flow(powerplant_electricityBus_2) * NonConvexFlowBlock_status(powerplant_electricityBus_2) -+1 flow(powerplant_electricityBus_3) * NonConvexFlowBlock_status(powerplant_electricityBus_3) -] -<= 0 - -c_u_NonConvexFlowBlock_positive_gradient_constr(powerplant_electricityBus_4)_: --1 NonConvexFlowBlock_positive_gradient(powerplant_electricityBus_4) -+ [ --1 flow(powerplant_electricityBus_3) * NonConvexFlowBlock_status(powerplant_electricityBus_3) -+1 flow(powerplant_electricityBus_4) * NonConvexFlowBlock_status(powerplant_electricityBus_4) -] -<= 0 - -c_u_NonConvexFlowBlock_positive_gradient_constr(powerplant_electricityBus_5)_: --1 NonConvexFlowBlock_positive_gradient(powerplant_electricityBus_5) -+ [ --1 flow(powerplant_electricityBus_4) * NonConvexFlowBlock_status(powerplant_electricityBus_4) -+1 flow(powerplant_electricityBus_5) * NonConvexFlowBlock_status(powerplant_electricityBus_5) -] -<= 0 - -c_e_NonConvexFlowBlock_negative_gradient_constr(powerplant_electricityBus_0)_: -+1 NonConvexFlowBlock_negative_gradient(powerplant_electricityBus_0) -= 0 - -c_u_NonConvexFlowBlock_negative_gradient_constr(powerplant_electricityBus_1)_: --1 NonConvexFlowBlock_negative_gradient(powerplant_electricityBus_1) -+ [ -+1 flow(powerplant_electricityBus_0) * NonConvexFlowBlock_status(powerplant_electricityBus_0) --1 flow(powerplant_electricityBus_1) * NonConvexFlowBlock_status(powerplant_electricityBus_1) -] -<= 0 - -c_u_NonConvexFlowBlock_negative_gradient_constr(powerplant_electricityBus_2)_: --1 NonConvexFlowBlock_negative_gradient(powerplant_electricityBus_2) -+ [ -+1 flow(powerplant_electricityBus_1) * NonConvexFlowBlock_status(powerplant_electricityBus_1) --1 flow(powerplant_electricityBus_2) * NonConvexFlowBlock_status(powerplant_electricityBus_2) -] -<= 0 - -c_u_NonConvexFlowBlock_negative_gradient_constr(powerplant_electricityBus_3)_: --1 NonConvexFlowBlock_negative_gradient(powerplant_electricityBus_3) -+ [ -+1 flow(powerplant_electricityBus_2) * NonConvexFlowBlock_status(powerplant_electricityBus_2) --1 flow(powerplant_electricityBus_3) * NonConvexFlowBlock_status(powerplant_electricityBus_3) -] -<= 0 - -c_u_NonConvexFlowBlock_negative_gradient_constr(powerplant_electricityBus_4)_: --1 NonConvexFlowBlock_negative_gradient(powerplant_electricityBus_4) -+ [ -+1 flow(powerplant_electricityBus_3) * NonConvexFlowBlock_status(powerplant_electricityBus_3) --1 flow(powerplant_electricityBus_4) * NonConvexFlowBlock_status(powerplant_electricityBus_4) -] -<= 0 - -c_u_NonConvexFlowBlock_negative_gradient_constr(powerplant_electricityBus_5)_: --1 NonConvexFlowBlock_negative_gradient(powerplant_electricityBus_5) -+ [ -+1 flow(powerplant_electricityBus_4) * NonConvexFlowBlock_status(powerplant_electricityBus_4) --1 flow(powerplant_electricityBus_5) * NonConvexFlowBlock_status(powerplant_electricityBus_5) -] -<= 0 - -bounds - 0 <= flow(powerplant_electricityBus_0) <= 999 - 0 <= flow(powerplant_electricityBus_1) <= 999 - 0 <= flow(powerplant_electricityBus_2) <= 999 - 0 <= flow(powerplant_electricityBus_3) <= 999 - 0 <= flow(powerplant_electricityBus_4) <= 999 - 0 <= flow(powerplant_electricityBus_5) <= 999 - 0 <= NonConvexFlowBlock_status_nominal(powerplant_electricityBus_0) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(powerplant_electricityBus_1) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(powerplant_electricityBus_2) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(powerplant_electricityBus_3) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(powerplant_electricityBus_4) <= +inf - 0 <= NonConvexFlowBlock_status_nominal(powerplant_electricityBus_5) <= +inf - 0 <= NonConvexFlowBlock_status(powerplant_electricityBus_0) <= 1 - 0 <= NonConvexFlowBlock_status(powerplant_electricityBus_1) <= 1 - 0 <= NonConvexFlowBlock_status(powerplant_electricityBus_2) <= 1 - 0 <= NonConvexFlowBlock_status(powerplant_electricityBus_3) <= 1 - 0 <= NonConvexFlowBlock_status(powerplant_electricityBus_4) <= 1 - 0 <= NonConvexFlowBlock_status(powerplant_electricityBus_5) <= 1 - 0 <= NonConvexFlowBlock_positive_gradient(powerplant_electricityBus_0) <= +inf - 0 <= NonConvexFlowBlock_positive_gradient(powerplant_electricityBus_1) <= +inf - 0 <= NonConvexFlowBlock_positive_gradient(powerplant_electricityBus_2) <= +inf - 0 <= NonConvexFlowBlock_positive_gradient(powerplant_electricityBus_3) <= +inf - 0 <= NonConvexFlowBlock_positive_gradient(powerplant_electricityBus_4) <= +inf - 0 <= NonConvexFlowBlock_positive_gradient(powerplant_electricityBus_5) <= +inf - 0 <= NonConvexFlowBlock_negative_gradient(powerplant_electricityBus_0) <= +inf - 0 <= NonConvexFlowBlock_negative_gradient(powerplant_electricityBus_1) <= +inf - 0 <= NonConvexFlowBlock_negative_gradient(powerplant_electricityBus_2) <= +inf - 0 <= NonConvexFlowBlock_negative_gradient(powerplant_electricityBus_3) <= +inf - 0 <= NonConvexFlowBlock_negative_gradient(powerplant_electricityBus_4) <= +inf - 0 <= NonConvexFlowBlock_negative_gradient(powerplant_electricityBus_5) <= +inf -binary - NonConvexFlowBlock_status(powerplant_electricityBus_0) - NonConvexFlowBlock_status(powerplant_electricityBus_1) - NonConvexFlowBlock_status(powerplant_electricityBus_2) - NonConvexFlowBlock_status(powerplant_electricityBus_3) - NonConvexFlowBlock_status(powerplant_electricityBus_4) - NonConvexFlowBlock_status(powerplant_electricityBus_5) -end diff --git a/tests/lp_files/storage.lp b/tests/lp_files/storage.lp deleted file mode 100644 index 603d6cbe6..000000000 --- a/tests/lp_files/storage.lp +++ /dev/null @@ -1,86 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+56 flow(electricityBus_storage_no_invest_0) -+56 flow(electricityBus_storage_no_invest_1) -+56 flow(electricityBus_storage_no_invest_2) -+24 flow(storage_no_invest_electricityBus_0) -+24 flow(storage_no_invest_electricityBus_1) -+24 flow(storage_no_invest_electricityBus_2) -+0.1 GenericStorageBlock_storage_content(storage_no_invest_1) -+0.2 GenericStorageBlock_storage_content(storage_no_invest_2) -+0.3 GenericStorageBlock_storage_content(storage_no_invest_3) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage_no_invest_0) -+1 flow(storage_no_invest_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage_no_invest_1) -+1 flow(storage_no_invest_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage_no_invest_2) -+1 flow(storage_no_invest_electricityBus_2) -= 0 - -c_e_GenericStorageBlock_losses(storage_no_invest_0)_: --1 GenericStorageBlock_storage_losses(storage_no_invest_0) -= -5200.0 - -c_e_GenericStorageBlock_losses(storage_no_invest_1)_: -+0.13 GenericStorageBlock_storage_content(storage_no_invest_1) --1 GenericStorageBlock_storage_losses(storage_no_invest_1) -= 0 - -c_e_GenericStorageBlock_losses(storage_no_invest_2)_: -+0.13 GenericStorageBlock_storage_content(storage_no_invest_2) --1 GenericStorageBlock_storage_losses(storage_no_invest_2) -= 0 - -c_e_GenericStorageBlock_balance(storage_no_invest_0)_: -+0.97 flow(electricityBus_storage_no_invest_0) --1.1627906976744187 flow(storage_no_invest_electricityBus_0) --1 GenericStorageBlock_storage_content(storage_no_invest_1) --1 GenericStorageBlock_storage_losses(storage_no_invest_0) -= -40000.0 - -c_e_GenericStorageBlock_balance(storage_no_invest_1)_: -+0.97 flow(electricityBus_storage_no_invest_1) --1.1627906976744187 flow(storage_no_invest_electricityBus_1) -+1 GenericStorageBlock_storage_content(storage_no_invest_1) --1 GenericStorageBlock_storage_content(storage_no_invest_2) --1 GenericStorageBlock_storage_losses(storage_no_invest_1) -= 0 - -c_e_GenericStorageBlock_balance(storage_no_invest_2)_: -+0.97 flow(electricityBus_storage_no_invest_2) --1.1627906976744187 flow(storage_no_invest_electricityBus_2) -+1 GenericStorageBlock_storage_content(storage_no_invest_2) --1 GenericStorageBlock_storage_content(storage_no_invest_3) --1 GenericStorageBlock_storage_losses(storage_no_invest_2) -= 0 - -c_e_GenericStorageBlock_balanced_cstr(storage_no_invest)_: -+1 GenericStorageBlock_storage_content(storage_no_invest_3) -= 40000.0 - -bounds - 0 <= flow(electricityBus_storage_no_invest_0) <= 16667 - 0 <= flow(electricityBus_storage_no_invest_1) <= 16667 - 0 <= flow(electricityBus_storage_no_invest_2) <= 16667 - 0 <= flow(storage_no_invest_electricityBus_0) <= 16667 - 0 <= flow(storage_no_invest_electricityBus_1) <= 16667 - 0 <= flow(storage_no_invest_electricityBus_2) <= 16667 - 0.0 <= GenericStorageBlock_storage_content(storage_no_invest_1) <= 100000.0 - 0.0 <= GenericStorageBlock_storage_content(storage_no_invest_2) <= 100000.0 - 0.0 <= GenericStorageBlock_storage_content(storage_no_invest_3) <= 100000.0 - -inf <= GenericStorageBlock_storage_losses(storage_no_invest_0) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_no_invest_1) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_no_invest_2) <= +inf -end diff --git a/tests/lp_files/storage_fixed_losses.lp b/tests/lp_files/storage_fixed_losses.lp deleted file mode 100644 index d0b53a8fd..000000000 --- a/tests/lp_files/storage_fixed_losses.lp +++ /dev/null @@ -1,83 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+56 flow(electricityBus_storage_no_invest_0) -+56 flow(electricityBus_storage_no_invest_1) -+56 flow(electricityBus_storage_no_invest_2) -+24 flow(storage_no_invest_electricityBus_0) -+24 flow(storage_no_invest_electricityBus_1) -+24 flow(storage_no_invest_electricityBus_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage_no_invest_0) -+1 flow(storage_no_invest_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage_no_invest_1) -+1 flow(storage_no_invest_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage_no_invest_2) -+1 flow(storage_no_invest_electricityBus_2) -= 0 - -c_e_GenericStorageBlock_losses(storage_no_invest_0)_: --1 GenericStorageBlock_storage_losses(storage_no_invest_0) -= -6203.0 - -c_e_GenericStorageBlock_losses(storage_no_invest_1)_: --1 GenericStorageBlock_storage_losses(storage_no_invest_1) -+0.13 GenericStorageBlock_storage_content(storage_no_invest_1) -= -1003.0 - -c_e_GenericStorageBlock_losses(storage_no_invest_2)_: --1 GenericStorageBlock_storage_losses(storage_no_invest_2) -+0.13 GenericStorageBlock_storage_content(storage_no_invest_2) -= -1003.0 - -c_e_GenericStorageBlock_balance(storage_no_invest_0)_: -+0.97 flow(electricityBus_storage_no_invest_0) --1.1627906976744187 flow(storage_no_invest_electricityBus_0) --1 GenericStorageBlock_storage_losses(storage_no_invest_0) --1 GenericStorageBlock_storage_content(storage_no_invest_1) -= -40000.0 - -c_e_GenericStorageBlock_balance(storage_no_invest_1)_: -+0.97 flow(electricityBus_storage_no_invest_1) --1.1627906976744187 flow(storage_no_invest_electricityBus_1) --1 GenericStorageBlock_storage_losses(storage_no_invest_1) -+1 GenericStorageBlock_storage_content(storage_no_invest_1) --1 GenericStorageBlock_storage_content(storage_no_invest_2) -= 0 - -c_e_GenericStorageBlock_balance(storage_no_invest_2)_: -+0.97 flow(electricityBus_storage_no_invest_2) --1.1627906976744187 flow(storage_no_invest_electricityBus_2) --1 GenericStorageBlock_storage_losses(storage_no_invest_2) -+1 GenericStorageBlock_storage_content(storage_no_invest_2) --1 GenericStorageBlock_storage_content(storage_no_invest_3) -= 0 - -c_e_GenericStorageBlock_balanced_cstr(storage_no_invest)_: -+1 GenericStorageBlock_storage_content(storage_no_invest_3) -= 40000.0 - -bounds - 0 <= flow(electricityBus_storage_no_invest_0) <= 16667 - 0 <= flow(electricityBus_storage_no_invest_1) <= 16667 - 0 <= flow(electricityBus_storage_no_invest_2) <= 16667 - 0 <= flow(storage_no_invest_electricityBus_0) <= 16667 - 0 <= flow(storage_no_invest_electricityBus_1) <= 16667 - 0 <= flow(storage_no_invest_electricityBus_2) <= 16667 - -inf <= GenericStorageBlock_storage_losses(storage_no_invest_0) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_no_invest_1) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_no_invest_2) <= +inf - 0.0 <= GenericStorageBlock_storage_content(storage_no_invest_1) <= 100000.0 - 0.0 <= GenericStorageBlock_storage_content(storage_no_invest_2) <= 100000.0 - 0.0 <= GenericStorageBlock_storage_content(storage_no_invest_3) <= 100000.0 -end diff --git a/tests/lp_files/storage_fixed_losses_multi_period.lp b/tests/lp_files/storage_fixed_losses_multi_period.lp deleted file mode 100644 index d75898a74..000000000 --- a/tests/lp_files/storage_fixed_losses_multi_period.lp +++ /dev/null @@ -1,155 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+56 flow(electricityBus_storage_no_invest_0) -+56 flow(electricityBus_storage_no_invest_1) -+54.90196078431372 flow(electricityBus_storage_no_invest_2) -+54.90196078431372 flow(electricityBus_storage_no_invest_3) -+53.82545174932718 flow(electricityBus_storage_no_invest_4) -+53.82545174932718 flow(electricityBus_storage_no_invest_5) -+24 flow(storage_no_invest_electricityBus_0) -+24 flow(storage_no_invest_electricityBus_1) -+23.52941176470588 flow(storage_no_invest_electricityBus_2) -+23.52941176470588 flow(storage_no_invest_electricityBus_3) -+23.06805074971165 flow(storage_no_invest_electricityBus_4) -+23.06805074971165 flow(storage_no_invest_electricityBus_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage_no_invest_0) -+1 flow(storage_no_invest_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage_no_invest_1) -+1 flow(storage_no_invest_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage_no_invest_2) -+1 flow(storage_no_invest_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: --1 flow(electricityBus_storage_no_invest_3) -+1 flow(storage_no_invest_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: --1 flow(electricityBus_storage_no_invest_4) -+1 flow(storage_no_invest_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: --1 flow(electricityBus_storage_no_invest_5) -+1 flow(storage_no_invest_electricityBus_5) -= 0 - -c_e_GenericStorageBlock_losses(storage_no_invest_0)_: --1 GenericStorageBlock_storage_losses(storage_no_invest_0) -= -6203.0 - -c_e_GenericStorageBlock_losses(storage_no_invest_1)_: --1 GenericStorageBlock_storage_losses(storage_no_invest_1) -+0.13 GenericStorageBlock_storage_content(storage_no_invest_1) -= -1003.0 - -c_e_GenericStorageBlock_losses(storage_no_invest_2)_: --1 GenericStorageBlock_storage_losses(storage_no_invest_2) -+0.13 GenericStorageBlock_storage_content(storage_no_invest_2) -= -1003.0 - -c_e_GenericStorageBlock_losses(storage_no_invest_3)_: --1 GenericStorageBlock_storage_losses(storage_no_invest_3) -+0.13 GenericStorageBlock_storage_content(storage_no_invest_3) -= -1003.0 - -c_e_GenericStorageBlock_losses(storage_no_invest_4)_: --1 GenericStorageBlock_storage_losses(storage_no_invest_4) -+0.13 GenericStorageBlock_storage_content(storage_no_invest_4) -= -1003.0 - -c_e_GenericStorageBlock_losses(storage_no_invest_5)_: --1 GenericStorageBlock_storage_losses(storage_no_invest_5) -+0.13 GenericStorageBlock_storage_content(storage_no_invest_5) -= -1003.0 - -c_e_GenericStorageBlock_balance(storage_no_invest_0)_: -+0.97 flow(electricityBus_storage_no_invest_0) --1.1627906976744187 flow(storage_no_invest_electricityBus_0) --1 GenericStorageBlock_storage_losses(storage_no_invest_0) --1 GenericStorageBlock_storage_content(storage_no_invest_1) -= -40000.0 - -c_e_GenericStorageBlock_balance(storage_no_invest_1)_: -+0.97 flow(electricityBus_storage_no_invest_1) --1.1627906976744187 flow(storage_no_invest_electricityBus_1) --1 GenericStorageBlock_storage_losses(storage_no_invest_1) -+1 GenericStorageBlock_storage_content(storage_no_invest_1) --1 GenericStorageBlock_storage_content(storage_no_invest_2) -= 0 - -c_e_GenericStorageBlock_balance(storage_no_invest_2)_: -+0.97 flow(electricityBus_storage_no_invest_2) --1.1627906976744187 flow(storage_no_invest_electricityBus_2) --1 GenericStorageBlock_storage_losses(storage_no_invest_2) -+1 GenericStorageBlock_storage_content(storage_no_invest_2) --1 GenericStorageBlock_storage_content(storage_no_invest_3) -= 0 - -c_e_GenericStorageBlock_balance(storage_no_invest_3)_: -+0.97 flow(electricityBus_storage_no_invest_3) --1.1627906976744187 flow(storage_no_invest_electricityBus_3) --1 GenericStorageBlock_storage_losses(storage_no_invest_3) -+1 GenericStorageBlock_storage_content(storage_no_invest_3) --1 GenericStorageBlock_storage_content(storage_no_invest_4) -= 0 - -c_e_GenericStorageBlock_balance(storage_no_invest_4)_: -+0.97 flow(electricityBus_storage_no_invest_4) --1.1627906976744187 flow(storage_no_invest_electricityBus_4) --1 GenericStorageBlock_storage_losses(storage_no_invest_4) -+1 GenericStorageBlock_storage_content(storage_no_invest_4) --1 GenericStorageBlock_storage_content(storage_no_invest_5) -= 0 - -c_e_GenericStorageBlock_balance(storage_no_invest_5)_: -+0.97 flow(electricityBus_storage_no_invest_5) --1.1627906976744187 flow(storage_no_invest_electricityBus_5) --1 GenericStorageBlock_storage_losses(storage_no_invest_5) -+1 GenericStorageBlock_storage_content(storage_no_invest_5) --1 GenericStorageBlock_storage_content(storage_no_invest_6) -= 0 - -c_e_GenericStorageBlock_balanced_cstr(storage_no_invest)_: -+1 GenericStorageBlock_storage_content(storage_no_invest_6) -= 40000.0 - -bounds - 0 <= flow(electricityBus_storage_no_invest_0) <= 16667 - 0 <= flow(electricityBus_storage_no_invest_1) <= 16667 - 0 <= flow(electricityBus_storage_no_invest_2) <= 16667 - 0 <= flow(electricityBus_storage_no_invest_3) <= 16667 - 0 <= flow(electricityBus_storage_no_invest_4) <= 16667 - 0 <= flow(electricityBus_storage_no_invest_5) <= 16667 - 0 <= flow(storage_no_invest_electricityBus_0) <= 16667 - 0 <= flow(storage_no_invest_electricityBus_1) <= 16667 - 0 <= flow(storage_no_invest_electricityBus_2) <= 16667 - 0 <= flow(storage_no_invest_electricityBus_3) <= 16667 - 0 <= flow(storage_no_invest_electricityBus_4) <= 16667 - 0 <= flow(storage_no_invest_electricityBus_5) <= 16667 - -inf <= GenericStorageBlock_storage_losses(storage_no_invest_0) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_no_invest_1) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_no_invest_2) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_no_invest_3) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_no_invest_4) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_no_invest_5) <= +inf - 0.0 <= GenericStorageBlock_storage_content(storage_no_invest_1) <= 100000.0 - 0.0 <= GenericStorageBlock_storage_content(storage_no_invest_2) <= 100000.0 - 0.0 <= GenericStorageBlock_storage_content(storage_no_invest_3) <= 100000.0 - 0.0 <= GenericStorageBlock_storage_content(storage_no_invest_4) <= 100000.0 - 0.0 <= GenericStorageBlock_storage_content(storage_no_invest_5) <= 100000.0 - 0.0 <= GenericStorageBlock_storage_content(storage_no_invest_6) <= 100000.0 -end diff --git a/tests/lp_files/storage_invest_1.lp b/tests/lp_files/storage_invest_1.lp deleted file mode 100644 index c6f8a4183..000000000 --- a/tests/lp_files/storage_invest_1.lp +++ /dev/null @@ -1,163 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+56 flow(electricityBus_storage1_0) -+56 flow(electricityBus_storage1_1) -+56 flow(electricityBus_storage1_2) -+24 flow(storage1_electricityBus_0) -+24 flow(storage1_electricityBus_1) -+24 flow(storage1_electricityBus_2) -+145 GenericInvestmentStorageBlock_invest(storage1_0) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage1_0) -+1 flow(storage1_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage1_1) -+1 flow(storage1_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage1_2) -+1 flow(storage1_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage1_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage1_0) --1 InvestmentFlowBlock_invest(electricityBus_storage1_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage1_electricityBus_0)_: -+1 InvestmentFlowBlock_total(storage1_electricityBus_0) --1 InvestmentFlowBlock_invest(storage1_electricityBus_0) -= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_0_0)_: -+1 flow(electricityBus_storage1_0) --1 InvestmentFlowBlock_total(electricityBus_storage1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_0_1)_: -+1 flow(electricityBus_storage1_1) --1 InvestmentFlowBlock_total(electricityBus_storage1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_0_2)_: -+1 flow(electricityBus_storage1_2) --1 InvestmentFlowBlock_total(electricityBus_storage1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_0_0)_: -+1 flow(storage1_electricityBus_0) --1 InvestmentFlowBlock_total(storage1_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_0_1)_: -+1 flow(storage1_electricityBus_1) --1 InvestmentFlowBlock_total(storage1_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_0_2)_: -+1 flow(storage1_electricityBus_2) --1 InvestmentFlowBlock_total(storage1_electricityBus_0) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage1_0)_: --1 GenericInvestmentStorageBlock_invest(storage1_0) -+1 GenericInvestmentStorageBlock_total(storage1_0) -= 0 - -c_u_GenericInvestmentStorageBlock_init_content_limit(storage1)_: --1 GenericInvestmentStorageBlock_invest(storage1_0) -+1 GenericInvestmentStorageBlock_init_content(storage1) -<= 0 - -c_e_GenericInvestmentStorageBlock_balance_first(storage1)_: --0.97 flow(electricityBus_storage1_0) -+1.1627906976744187 flow(storage1_electricityBus_0) --0.87 GenericInvestmentStorageBlock_init_content(storage1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_0_1)_: --0.97 flow(electricityBus_storage1_1) -+1.1627906976744187 flow(storage1_electricityBus_1) --0.87 GenericInvestmentStorageBlock_storage_content(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_0_2)_: --0.97 flow(electricityBus_storage1_2) -+1.1627906976744187 flow(storage1_electricityBus_2) --0.87 GenericInvestmentStorageBlock_storage_content(storage1_1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balanced_cstr(storage1)_: --1 GenericInvestmentStorageBlock_init_content(storage1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage1_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage1_0) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage1_0)_: -+1 InvestmentFlowBlock_total(storage1_electricityBus_0) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage1_0) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_0_0)_: --0.9 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_0_1)_: --0.9 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_0_2)_: --0.9 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage1_0_0)_: -+0.1 GenericInvestmentStorageBlock_total(storage1_0) --1 GenericInvestmentStorageBlock_storage_content(storage1_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage1_0_1)_: -+0.1 GenericInvestmentStorageBlock_total(storage1_0) --1 GenericInvestmentStorageBlock_storage_content(storage1_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage1_0_2)_: -+0.1 GenericInvestmentStorageBlock_total(storage1_0) --1 GenericInvestmentStorageBlock_storage_content(storage1_2) -<= 0 - -bounds - 0 <= flow(electricityBus_storage1_0) <= +inf - 0 <= flow(electricityBus_storage1_1) <= +inf - 0 <= flow(electricityBus_storage1_2) <= +inf - 0 <= flow(storage1_electricityBus_0) <= +inf - 0 <= flow(storage1_electricityBus_1) <= +inf - 0 <= flow(storage1_electricityBus_2) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage1_0) <= 234 - 0 <= InvestmentFlowBlock_total(electricityBus_storage1_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage1_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage1_0) <= +inf - 0 <= InvestmentFlowBlock_invest(storage1_electricityBus_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_init_content(storage1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_2) <= +inf -end diff --git a/tests/lp_files/storage_invest_1_fixed_losses.lp b/tests/lp_files/storage_invest_1_fixed_losses.lp deleted file mode 100644 index 7675fad1e..000000000 --- a/tests/lp_files/storage_invest_1_fixed_losses.lp +++ /dev/null @@ -1,166 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+56 flow(electricityBus_storage1_0) -+56 flow(electricityBus_storage1_1) -+56 flow(electricityBus_storage1_2) -+24 flow(storage1_electricityBus_0) -+24 flow(storage1_electricityBus_1) -+24 flow(storage1_electricityBus_2) -+145 GenericInvestmentStorageBlock_invest(storage1_0) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage1_0) -+1 flow(storage1_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage1_1) -+1 flow(storage1_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage1_2) -+1 flow(storage1_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage1_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage1_0) --1 InvestmentFlowBlock_invest(electricityBus_storage1_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage1_electricityBus_0)_: -+1 InvestmentFlowBlock_total(storage1_electricityBus_0) --1 InvestmentFlowBlock_invest(storage1_electricityBus_0) -= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_0_0)_: -+1 flow(electricityBus_storage1_0) --1 InvestmentFlowBlock_total(electricityBus_storage1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_0_1)_: -+1 flow(electricityBus_storage1_1) --1 InvestmentFlowBlock_total(electricityBus_storage1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_0_2)_: -+1 flow(electricityBus_storage1_2) --1 InvestmentFlowBlock_total(electricityBus_storage1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_0_0)_: -+1 flow(storage1_electricityBus_0) --1 InvestmentFlowBlock_total(storage1_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_0_1)_: -+1 flow(storage1_electricityBus_1) --1 InvestmentFlowBlock_total(storage1_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_0_2)_: -+1 flow(storage1_electricityBus_2) --1 InvestmentFlowBlock_total(storage1_electricityBus_0) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage1_0)_: --1 GenericInvestmentStorageBlock_invest(storage1_0) -+1 GenericInvestmentStorageBlock_total(storage1_0) -= 0 - -c_u_GenericInvestmentStorageBlock_init_content_limit(storage1)_: --1 GenericInvestmentStorageBlock_invest(storage1_0) -+1 GenericInvestmentStorageBlock_init_content(storage1) -<= 0 - -c_e_GenericInvestmentStorageBlock_balance_first(storage1)_: --0.97 flow(electricityBus_storage1_0) -+1.1627906976744187 flow(storage1_electricityBus_0) -+0.01 GenericInvestmentStorageBlock_invest(storage1_0) --0.87 GenericInvestmentStorageBlock_init_content(storage1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_0) -= -3.0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_0_1)_: --0.97 flow(electricityBus_storage1_1) -+1.1627906976744187 flow(storage1_electricityBus_1) -+0.01 GenericInvestmentStorageBlock_total(storage1_0) --0.87 GenericInvestmentStorageBlock_storage_content(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_1) -= -3.0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_0_2)_: --0.97 flow(electricityBus_storage1_2) -+1.1627906976744187 flow(storage1_electricityBus_2) -+0.01 GenericInvestmentStorageBlock_total(storage1_0) --0.87 GenericInvestmentStorageBlock_storage_content(storage1_1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_2) -= -3.0 - -c_e_GenericInvestmentStorageBlock_balanced_cstr(storage1)_: --1 GenericInvestmentStorageBlock_init_content(storage1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage1_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage1_0) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage1_0)_: -+1 InvestmentFlowBlock_total(storage1_electricityBus_0) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage1_0) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_0_0)_: --0.9 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_0_1)_: --0.9 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_0_2)_: --0.9 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage1_0_0)_: -+0.1 GenericInvestmentStorageBlock_total(storage1_0) --1 GenericInvestmentStorageBlock_storage_content(storage1_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage1_0_1)_: -+0.1 GenericInvestmentStorageBlock_total(storage1_0) --1 GenericInvestmentStorageBlock_storage_content(storage1_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage1_0_2)_: -+0.1 GenericInvestmentStorageBlock_total(storage1_0) --1 GenericInvestmentStorageBlock_storage_content(storage1_2) -<= 0 - -bounds - 0 <= flow(electricityBus_storage1_0) <= +inf - 0 <= flow(electricityBus_storage1_1) <= +inf - 0 <= flow(electricityBus_storage1_2) <= +inf - 0 <= flow(storage1_electricityBus_0) <= +inf - 0 <= flow(storage1_electricityBus_1) <= +inf - 0 <= flow(storage1_electricityBus_2) <= +inf - 1 <= GenericInvestmentStorageBlock_invest(storage1_0) <= 234 - 0 <= InvestmentFlowBlock_total(electricityBus_storage1_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage1_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage1_0) <= +inf - 0 <= InvestmentFlowBlock_invest(storage1_electricityBus_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_init_content(storage1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_2) <= +inf -end diff --git a/tests/lp_files/storage_invest_1_multi_period.lp b/tests/lp_files/storage_invest_1_multi_period.lp deleted file mode 100644 index 09a4b975e..000000000 --- a/tests/lp_files/storage_invest_1_multi_period.lp +++ /dev/null @@ -1,505 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+56 flow(electricityBus_storage1_0) -+56 flow(electricityBus_storage1_1) -+54.90196078431372 flow(electricityBus_storage1_2) -+54.90196078431372 flow(electricityBus_storage1_3) -+53.82545174932718 flow(electricityBus_storage1_4) -+53.82545174932718 flow(electricityBus_storage1_5) -+24 flow(storage1_electricityBus_0) -+24 flow(storage1_electricityBus_1) -+23.52941176470588 flow(storage1_electricityBus_2) -+23.52941176470588 flow(storage1_electricityBus_3) -+23.06805074971165 flow(storage1_electricityBus_4) -+23.06805074971165 flow(storage1_electricityBus_5) -+31.685467778602654 GenericInvestmentStorageBlock_invest(storage1_0) -+21.210358847924045 GenericInvestmentStorageBlock_invest(storage1_1) -+10.650825820334894 GenericInvestmentStorageBlock_invest(storage1_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage1_0) -+1 flow(storage1_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage1_1) -+1 flow(storage1_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage1_2) -+1 flow(storage1_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: --1 flow(electricityBus_storage1_3) -+1 flow(storage1_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: --1 flow(electricityBus_storage1_4) -+1 flow(storage1_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: --1 flow(electricityBus_storage1_5) -+1 flow(storage1_electricityBus_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage1_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage1_0) --1 InvestmentFlowBlock_invest(electricityBus_storage1_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage1_1)_: --1 InvestmentFlowBlock_total(electricityBus_storage1_0) -+1 InvestmentFlowBlock_total(electricityBus_storage1_1) --1 InvestmentFlowBlock_invest(electricityBus_storage1_1) -+1 InvestmentFlowBlock_old(electricityBus_storage1_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage1_2)_: --1 InvestmentFlowBlock_total(electricityBus_storage1_1) -+1 InvestmentFlowBlock_total(electricityBus_storage1_2) --1 InvestmentFlowBlock_invest(electricityBus_storage1_2) -+1 InvestmentFlowBlock_old(electricityBus_storage1_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage1_electricityBus_0)_: -+1 InvestmentFlowBlock_total(storage1_electricityBus_0) --1 InvestmentFlowBlock_invest(storage1_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage1_electricityBus_1)_: --1 InvestmentFlowBlock_total(storage1_electricityBus_0) -+1 InvestmentFlowBlock_total(storage1_electricityBus_1) --1 InvestmentFlowBlock_invest(storage1_electricityBus_1) -+1 InvestmentFlowBlock_old(storage1_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage1_electricityBus_2)_: --1 InvestmentFlowBlock_total(storage1_electricityBus_1) -+1 InvestmentFlowBlock_total(storage1_electricityBus_2) --1 InvestmentFlowBlock_invest(storage1_electricityBus_2) -+1 InvestmentFlowBlock_old(storage1_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage1_0)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage1_1)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage1_2)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage1_electricityBus_0)_: -+1 InvestmentFlowBlock_old_end(storage1_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage1_electricityBus_1)_: -+1 InvestmentFlowBlock_old_end(storage1_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage1_electricityBus_2)_: -+1 InvestmentFlowBlock_old_end(storage1_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage1_0)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage1_1)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage1_2)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage1_electricityBus_0)_: -+1 InvestmentFlowBlock_old_exo(storage1_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage1_electricityBus_1)_: -+1 InvestmentFlowBlock_old_exo(storage1_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage1_electricityBus_2)_: -+1 InvestmentFlowBlock_old_exo(storage1_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage1_0)_: -+1 InvestmentFlowBlock_old(electricityBus_storage1_0) --1 InvestmentFlowBlock_old_end(electricityBus_storage1_0) --1 InvestmentFlowBlock_old_exo(electricityBus_storage1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage1_1)_: -+1 InvestmentFlowBlock_old(electricityBus_storage1_1) --1 InvestmentFlowBlock_old_end(electricityBus_storage1_1) --1 InvestmentFlowBlock_old_exo(electricityBus_storage1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage1_2)_: -+1 InvestmentFlowBlock_old(electricityBus_storage1_2) --1 InvestmentFlowBlock_old_end(electricityBus_storage1_2) --1 InvestmentFlowBlock_old_exo(electricityBus_storage1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage1_electricityBus_0)_: -+1 InvestmentFlowBlock_old(storage1_electricityBus_0) --1 InvestmentFlowBlock_old_end(storage1_electricityBus_0) --1 InvestmentFlowBlock_old_exo(storage1_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage1_electricityBus_1)_: -+1 InvestmentFlowBlock_old(storage1_electricityBus_1) --1 InvestmentFlowBlock_old_end(storage1_electricityBus_1) --1 InvestmentFlowBlock_old_exo(storage1_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage1_electricityBus_2)_: -+1 InvestmentFlowBlock_old(storage1_electricityBus_2) --1 InvestmentFlowBlock_old_end(storage1_electricityBus_2) --1 InvestmentFlowBlock_old_exo(storage1_electricityBus_2) -= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_0_0)_: -+1 flow(electricityBus_storage1_0) --1 InvestmentFlowBlock_total(electricityBus_storage1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_0_1)_: -+1 flow(electricityBus_storage1_1) --1 InvestmentFlowBlock_total(electricityBus_storage1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_1_2)_: -+1 flow(electricityBus_storage1_2) --1 InvestmentFlowBlock_total(electricityBus_storage1_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_1_3)_: -+1 flow(electricityBus_storage1_3) --1 InvestmentFlowBlock_total(electricityBus_storage1_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_2_4)_: -+1 flow(electricityBus_storage1_4) --1 InvestmentFlowBlock_total(electricityBus_storage1_2) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_2_5)_: -+1 flow(electricityBus_storage1_5) --1 InvestmentFlowBlock_total(electricityBus_storage1_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_0_0)_: -+1 flow(storage1_electricityBus_0) --1 InvestmentFlowBlock_total(storage1_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_0_1)_: -+1 flow(storage1_electricityBus_1) --1 InvestmentFlowBlock_total(storage1_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_1_2)_: -+1 flow(storage1_electricityBus_2) --1 InvestmentFlowBlock_total(storage1_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_1_3)_: -+1 flow(storage1_electricityBus_3) --1 InvestmentFlowBlock_total(storage1_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_2_4)_: -+1 flow(storage1_electricityBus_4) --1 InvestmentFlowBlock_total(storage1_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_2_5)_: -+1 flow(storage1_electricityBus_5) --1 InvestmentFlowBlock_total(storage1_electricityBus_2) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage1_0)_: --1 GenericInvestmentStorageBlock_invest(storage1_0) -+1 GenericInvestmentStorageBlock_total(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage1_1)_: --1 GenericInvestmentStorageBlock_invest(storage1_1) --1 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_total(storage1_1) -+1 GenericInvestmentStorageBlock_old(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage1_2)_: --1 GenericInvestmentStorageBlock_invest(storage1_2) --1 GenericInvestmentStorageBlock_total(storage1_1) -+1 GenericInvestmentStorageBlock_total(storage1_2) -+1 GenericInvestmentStorageBlock_old(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage1_0)_: -+1 GenericInvestmentStorageBlock_old_end(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage1_1)_: -+1 GenericInvestmentStorageBlock_old_end(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage1_2)_: -+1 GenericInvestmentStorageBlock_old_end(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage1_0)_: -+1 GenericInvestmentStorageBlock_old_exo(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage1_1)_: -+1 GenericInvestmentStorageBlock_old_exo(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage1_2)_: -+1 GenericInvestmentStorageBlock_old_exo(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage1_0)_: -+1 GenericInvestmentStorageBlock_old(storage1_0) --1 GenericInvestmentStorageBlock_old_end(storage1_0) --1 GenericInvestmentStorageBlock_old_exo(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage1_1)_: -+1 GenericInvestmentStorageBlock_old(storage1_1) --1 GenericInvestmentStorageBlock_old_end(storage1_1) --1 GenericInvestmentStorageBlock_old_exo(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage1_2)_: -+1 GenericInvestmentStorageBlock_old(storage1_2) --1 GenericInvestmentStorageBlock_old_end(storage1_2) --1 GenericInvestmentStorageBlock_old_exo(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_initially_empty(storage1_0)_: -+1 GenericInvestmentStorageBlock_storage_content(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_0_1)_: --0.97 flow(electricityBus_storage1_1) -+1.1627906976744187 flow(storage1_electricityBus_1) --0.87 GenericInvestmentStorageBlock_storage_content(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_1_2)_: --0.97 flow(electricityBus_storage1_2) -+1.1627906976744187 flow(storage1_electricityBus_2) --0.87 GenericInvestmentStorageBlock_storage_content(storage1_1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_1_3)_: --0.97 flow(electricityBus_storage1_3) -+1.1627906976744187 flow(storage1_electricityBus_3) --0.87 GenericInvestmentStorageBlock_storage_content(storage1_2) -+1 GenericInvestmentStorageBlock_storage_content(storage1_3) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_2_4)_: --0.97 flow(electricityBus_storage1_4) -+1.1627906976744187 flow(storage1_electricityBus_4) --0.87 GenericInvestmentStorageBlock_storage_content(storage1_3) -+1 GenericInvestmentStorageBlock_storage_content(storage1_4) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_2_5)_: --0.97 flow(electricityBus_storage1_5) -+1.1627906976744187 flow(storage1_electricityBus_5) --0.87 GenericInvestmentStorageBlock_storage_content(storage1_4) -+1 GenericInvestmentStorageBlock_storage_content(storage1_5) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage1_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage1_0) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage1_1)_: -+1 InvestmentFlowBlock_total(electricityBus_storage1_1) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage1_2)_: -+1 InvestmentFlowBlock_total(electricityBus_storage1_2) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage1_0)_: -+1 InvestmentFlowBlock_total(storage1_electricityBus_0) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage1_1)_: -+1 InvestmentFlowBlock_total(storage1_electricityBus_1) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage1_2)_: -+1 InvestmentFlowBlock_total(storage1_electricityBus_2) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage1_2) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_0_0)_: --0.9 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_0_1)_: --0.9 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_1_2)_: --0.9 GenericInvestmentStorageBlock_total(storage1_1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_1_3)_: --0.9 GenericInvestmentStorageBlock_total(storage1_1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_2_4)_: --0.9 GenericInvestmentStorageBlock_total(storage1_2) -+1 GenericInvestmentStorageBlock_storage_content(storage1_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_2_5)_: --0.9 GenericInvestmentStorageBlock_total(storage1_2) -+1 GenericInvestmentStorageBlock_storage_content(storage1_5) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage1_0_0)_: -+0.1 GenericInvestmentStorageBlock_total(storage1_0) --1 GenericInvestmentStorageBlock_storage_content(storage1_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage1_0_1)_: -+0.1 GenericInvestmentStorageBlock_total(storage1_0) --1 GenericInvestmentStorageBlock_storage_content(storage1_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage1_1_2)_: -+0.1 GenericInvestmentStorageBlock_total(storage1_1) --1 GenericInvestmentStorageBlock_storage_content(storage1_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage1_1_3)_: -+0.1 GenericInvestmentStorageBlock_total(storage1_1) --1 GenericInvestmentStorageBlock_storage_content(storage1_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage1_2_4)_: -+0.1 GenericInvestmentStorageBlock_total(storage1_2) --1 GenericInvestmentStorageBlock_storage_content(storage1_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage1_2_5)_: -+0.1 GenericInvestmentStorageBlock_total(storage1_2) --1 GenericInvestmentStorageBlock_storage_content(storage1_5) -<= 0 - -c_u_GenericInvestmentStorageBlock_overall_storage_maximum(storage1_0)_: -+1 GenericInvestmentStorageBlock_total(storage1_0) -<= 1000 - -c_u_GenericInvestmentStorageBlock_overall_storage_maximum(storage1_1)_: -+1 GenericInvestmentStorageBlock_total(storage1_1) -<= 1000 - -c_u_GenericInvestmentStorageBlock_overall_storage_maximum(storage1_2)_: -+1 GenericInvestmentStorageBlock_total(storage1_2) -<= 1000 - -c_l_GenericInvestmentStorageBlock_overall_minimum(storage1)_: -+1 GenericInvestmentStorageBlock_total(storage1_2) ->= 2 - -bounds - 0 <= flow(electricityBus_storage1_0) <= +inf - 0 <= flow(electricityBus_storage1_1) <= +inf - 0 <= flow(electricityBus_storage1_2) <= +inf - 0 <= flow(electricityBus_storage1_3) <= +inf - 0 <= flow(electricityBus_storage1_4) <= +inf - 0 <= flow(electricityBus_storage1_5) <= +inf - 0 <= flow(storage1_electricityBus_0) <= +inf - 0 <= flow(storage1_electricityBus_1) <= +inf - 0 <= flow(storage1_electricityBus_2) <= +inf - 0 <= flow(storage1_electricityBus_3) <= +inf - 0 <= flow(storage1_electricityBus_4) <= +inf - 0 <= flow(storage1_electricityBus_5) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage1_0) <= 234 - 0 <= GenericInvestmentStorageBlock_invest(storage1_1) <= 234 - 0 <= GenericInvestmentStorageBlock_invest(storage1_2) <= 234 - 0 <= InvestmentFlowBlock_total(electricityBus_storage1_0) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage1_1) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage1_2) <= +inf - 0 <= InvestmentFlowBlock_total(storage1_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage1_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_total(storage1_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage1_0) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage1_1) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage1_2) <= +inf - 0 <= InvestmentFlowBlock_invest(storage1_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_invest(storage1_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_invest(storage1_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage1_0) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage1_1) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage1_2) <= +inf - 0 <= InvestmentFlowBlock_old(storage1_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old(storage1_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old(storage1_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage1_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage1_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage1_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage1_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage1_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage1_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage1_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage1_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage1_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage1_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage1_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage1_electricityBus_2) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_3) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_4) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_5) <= +inf -end diff --git a/tests/lp_files/storage_invest_1_multi_period_remaining_value.lp b/tests/lp_files/storage_invest_1_multi_period_remaining_value.lp deleted file mode 100644 index ec26ba614..000000000 --- a/tests/lp_files/storage_invest_1_multi_period_remaining_value.lp +++ /dev/null @@ -1,505 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+56 flow(electricityBus_storage1_0) -+56 flow(electricityBus_storage1_1) -+54.90196078431372 flow(electricityBus_storage1_2) -+54.90196078431372 flow(electricityBus_storage1_3) -+53.82545174932718 flow(electricityBus_storage1_4) -+53.82545174932718 flow(electricityBus_storage1_5) -+24 flow(storage1_electricityBus_0) -+24 flow(storage1_electricityBus_1) -+23.52941176470588 flow(storage1_electricityBus_2) -+23.52941176470588 flow(storage1_electricityBus_3) -+23.06805074971165 flow(storage1_electricityBus_4) -+23.06805074971165 flow(storage1_electricityBus_5) -+3.415797742191323 GenericInvestmentStorageBlock_invest(storage1_0) -+4.881348776484851 GenericInvestmentStorageBlock_invest(storage1_1) -+8.44720668509319 GenericInvestmentStorageBlock_invest(storage1_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage1_0) -+1 flow(storage1_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage1_1) -+1 flow(storage1_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage1_2) -+1 flow(storage1_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: --1 flow(electricityBus_storage1_3) -+1 flow(storage1_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: --1 flow(electricityBus_storage1_4) -+1 flow(storage1_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: --1 flow(electricityBus_storage1_5) -+1 flow(storage1_electricityBus_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage1_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage1_0) --1 InvestmentFlowBlock_invest(electricityBus_storage1_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage1_1)_: --1 InvestmentFlowBlock_total(electricityBus_storage1_0) -+1 InvestmentFlowBlock_total(electricityBus_storage1_1) --1 InvestmentFlowBlock_invest(electricityBus_storage1_1) -+1 InvestmentFlowBlock_old(electricityBus_storage1_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage1_2)_: --1 InvestmentFlowBlock_total(electricityBus_storage1_1) -+1 InvestmentFlowBlock_total(electricityBus_storage1_2) --1 InvestmentFlowBlock_invest(electricityBus_storage1_2) -+1 InvestmentFlowBlock_old(electricityBus_storage1_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage1_electricityBus_0)_: -+1 InvestmentFlowBlock_total(storage1_electricityBus_0) --1 InvestmentFlowBlock_invest(storage1_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage1_electricityBus_1)_: --1 InvestmentFlowBlock_total(storage1_electricityBus_0) -+1 InvestmentFlowBlock_total(storage1_electricityBus_1) --1 InvestmentFlowBlock_invest(storage1_electricityBus_1) -+1 InvestmentFlowBlock_old(storage1_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage1_electricityBus_2)_: --1 InvestmentFlowBlock_total(storage1_electricityBus_1) -+1 InvestmentFlowBlock_total(storage1_electricityBus_2) --1 InvestmentFlowBlock_invest(storage1_electricityBus_2) -+1 InvestmentFlowBlock_old(storage1_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage1_0)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage1_1)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage1_2)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage1_electricityBus_0)_: -+1 InvestmentFlowBlock_old_end(storage1_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage1_electricityBus_1)_: -+1 InvestmentFlowBlock_old_end(storage1_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage1_electricityBus_2)_: -+1 InvestmentFlowBlock_old_end(storage1_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage1_0)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage1_1)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage1_2)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage1_electricityBus_0)_: -+1 InvestmentFlowBlock_old_exo(storage1_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage1_electricityBus_1)_: -+1 InvestmentFlowBlock_old_exo(storage1_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage1_electricityBus_2)_: -+1 InvestmentFlowBlock_old_exo(storage1_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage1_0)_: -+1 InvestmentFlowBlock_old(electricityBus_storage1_0) --1 InvestmentFlowBlock_old_end(electricityBus_storage1_0) --1 InvestmentFlowBlock_old_exo(electricityBus_storage1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage1_1)_: -+1 InvestmentFlowBlock_old(electricityBus_storage1_1) --1 InvestmentFlowBlock_old_end(electricityBus_storage1_1) --1 InvestmentFlowBlock_old_exo(electricityBus_storage1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage1_2)_: -+1 InvestmentFlowBlock_old(electricityBus_storage1_2) --1 InvestmentFlowBlock_old_end(electricityBus_storage1_2) --1 InvestmentFlowBlock_old_exo(electricityBus_storage1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage1_electricityBus_0)_: -+1 InvestmentFlowBlock_old(storage1_electricityBus_0) --1 InvestmentFlowBlock_old_end(storage1_electricityBus_0) --1 InvestmentFlowBlock_old_exo(storage1_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage1_electricityBus_1)_: -+1 InvestmentFlowBlock_old(storage1_electricityBus_1) --1 InvestmentFlowBlock_old_end(storage1_electricityBus_1) --1 InvestmentFlowBlock_old_exo(storage1_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage1_electricityBus_2)_: -+1 InvestmentFlowBlock_old(storage1_electricityBus_2) --1 InvestmentFlowBlock_old_end(storage1_electricityBus_2) --1 InvestmentFlowBlock_old_exo(storage1_electricityBus_2) -= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_0_0)_: -+1 flow(electricityBus_storage1_0) --1 InvestmentFlowBlock_total(electricityBus_storage1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_0_1)_: -+1 flow(electricityBus_storage1_1) --1 InvestmentFlowBlock_total(electricityBus_storage1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_1_2)_: -+1 flow(electricityBus_storage1_2) --1 InvestmentFlowBlock_total(electricityBus_storage1_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_1_3)_: -+1 flow(electricityBus_storage1_3) --1 InvestmentFlowBlock_total(electricityBus_storage1_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_2_4)_: -+1 flow(electricityBus_storage1_4) --1 InvestmentFlowBlock_total(electricityBus_storage1_2) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_2_5)_: -+1 flow(electricityBus_storage1_5) --1 InvestmentFlowBlock_total(electricityBus_storage1_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_0_0)_: -+1 flow(storage1_electricityBus_0) --1 InvestmentFlowBlock_total(storage1_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_0_1)_: -+1 flow(storage1_electricityBus_1) --1 InvestmentFlowBlock_total(storage1_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_1_2)_: -+1 flow(storage1_electricityBus_2) --1 InvestmentFlowBlock_total(storage1_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_1_3)_: -+1 flow(storage1_electricityBus_3) --1 InvestmentFlowBlock_total(storage1_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_2_4)_: -+1 flow(storage1_electricityBus_4) --1 InvestmentFlowBlock_total(storage1_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_2_5)_: -+1 flow(storage1_electricityBus_5) --1 InvestmentFlowBlock_total(storage1_electricityBus_2) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage1_0)_: --1 GenericInvestmentStorageBlock_invest(storage1_0) -+1 GenericInvestmentStorageBlock_total(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage1_1)_: --1 GenericInvestmentStorageBlock_invest(storage1_1) --1 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_total(storage1_1) -+1 GenericInvestmentStorageBlock_old(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage1_2)_: --1 GenericInvestmentStorageBlock_invest(storage1_2) --1 GenericInvestmentStorageBlock_total(storage1_1) -+1 GenericInvestmentStorageBlock_total(storage1_2) -+1 GenericInvestmentStorageBlock_old(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage1_0)_: -+1 GenericInvestmentStorageBlock_old_end(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage1_1)_: -+1 GenericInvestmentStorageBlock_old_end(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage1_2)_: -+1 GenericInvestmentStorageBlock_old_end(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage1_0)_: -+1 GenericInvestmentStorageBlock_old_exo(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage1_1)_: -+1 GenericInvestmentStorageBlock_old_exo(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage1_2)_: -+1 GenericInvestmentStorageBlock_old_exo(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage1_0)_: -+1 GenericInvestmentStorageBlock_old(storage1_0) --1 GenericInvestmentStorageBlock_old_end(storage1_0) --1 GenericInvestmentStorageBlock_old_exo(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage1_1)_: -+1 GenericInvestmentStorageBlock_old(storage1_1) --1 GenericInvestmentStorageBlock_old_end(storage1_1) --1 GenericInvestmentStorageBlock_old_exo(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage1_2)_: -+1 GenericInvestmentStorageBlock_old(storage1_2) --1 GenericInvestmentStorageBlock_old_end(storage1_2) --1 GenericInvestmentStorageBlock_old_exo(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_initially_empty(storage1_0)_: -+1 GenericInvestmentStorageBlock_storage_content(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_0_1)_: --0.97 flow(electricityBus_storage1_1) -+1.1627906976744187 flow(storage1_electricityBus_1) --0.87 GenericInvestmentStorageBlock_storage_content(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_1_2)_: --0.97 flow(electricityBus_storage1_2) -+1.1627906976744187 flow(storage1_electricityBus_2) --0.87 GenericInvestmentStorageBlock_storage_content(storage1_1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_1_3)_: --0.97 flow(electricityBus_storage1_3) -+1.1627906976744187 flow(storage1_electricityBus_3) --0.87 GenericInvestmentStorageBlock_storage_content(storage1_2) -+1 GenericInvestmentStorageBlock_storage_content(storage1_3) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_2_4)_: --0.97 flow(electricityBus_storage1_4) -+1.1627906976744187 flow(storage1_electricityBus_4) --0.87 GenericInvestmentStorageBlock_storage_content(storage1_3) -+1 GenericInvestmentStorageBlock_storage_content(storage1_4) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_2_5)_: --0.97 flow(electricityBus_storage1_5) -+1.1627906976744187 flow(storage1_electricityBus_5) --0.87 GenericInvestmentStorageBlock_storage_content(storage1_4) -+1 GenericInvestmentStorageBlock_storage_content(storage1_5) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage1_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage1_0) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage1_1)_: -+1 InvestmentFlowBlock_total(electricityBus_storage1_1) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage1_2)_: -+1 InvestmentFlowBlock_total(electricityBus_storage1_2) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage1_0)_: -+1 InvestmentFlowBlock_total(storage1_electricityBus_0) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage1_1)_: -+1 InvestmentFlowBlock_total(storage1_electricityBus_1) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage1_2)_: -+1 InvestmentFlowBlock_total(storage1_electricityBus_2) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage1_2) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_0_0)_: --0.9 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_0_1)_: --0.9 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_1_2)_: --0.9 GenericInvestmentStorageBlock_total(storage1_1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_1_3)_: --0.9 GenericInvestmentStorageBlock_total(storage1_1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_2_4)_: --0.9 GenericInvestmentStorageBlock_total(storage1_2) -+1 GenericInvestmentStorageBlock_storage_content(storage1_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_2_5)_: --0.9 GenericInvestmentStorageBlock_total(storage1_2) -+1 GenericInvestmentStorageBlock_storage_content(storage1_5) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage1_0_0)_: -+0.1 GenericInvestmentStorageBlock_total(storage1_0) --1 GenericInvestmentStorageBlock_storage_content(storage1_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage1_0_1)_: -+0.1 GenericInvestmentStorageBlock_total(storage1_0) --1 GenericInvestmentStorageBlock_storage_content(storage1_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage1_1_2)_: -+0.1 GenericInvestmentStorageBlock_total(storage1_1) --1 GenericInvestmentStorageBlock_storage_content(storage1_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage1_1_3)_: -+0.1 GenericInvestmentStorageBlock_total(storage1_1) --1 GenericInvestmentStorageBlock_storage_content(storage1_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage1_2_4)_: -+0.1 GenericInvestmentStorageBlock_total(storage1_2) --1 GenericInvestmentStorageBlock_storage_content(storage1_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage1_2_5)_: -+0.1 GenericInvestmentStorageBlock_total(storage1_2) --1 GenericInvestmentStorageBlock_storage_content(storage1_5) -<= 0 - -c_u_GenericInvestmentStorageBlock_overall_storage_maximum(storage1_0)_: -+1 GenericInvestmentStorageBlock_total(storage1_0) -<= 1000 - -c_u_GenericInvestmentStorageBlock_overall_storage_maximum(storage1_1)_: -+1 GenericInvestmentStorageBlock_total(storage1_1) -<= 1000 - -c_u_GenericInvestmentStorageBlock_overall_storage_maximum(storage1_2)_: -+1 GenericInvestmentStorageBlock_total(storage1_2) -<= 1000 - -c_l_GenericInvestmentStorageBlock_overall_minimum(storage1)_: -+1 GenericInvestmentStorageBlock_total(storage1_2) ->= 2 - -bounds - 0 <= flow(electricityBus_storage1_0) <= +inf - 0 <= flow(electricityBus_storage1_1) <= +inf - 0 <= flow(electricityBus_storage1_2) <= +inf - 0 <= flow(electricityBus_storage1_3) <= +inf - 0 <= flow(electricityBus_storage1_4) <= +inf - 0 <= flow(electricityBus_storage1_5) <= +inf - 0 <= flow(storage1_electricityBus_0) <= +inf - 0 <= flow(storage1_electricityBus_1) <= +inf - 0 <= flow(storage1_electricityBus_2) <= +inf - 0 <= flow(storage1_electricityBus_3) <= +inf - 0 <= flow(storage1_electricityBus_4) <= +inf - 0 <= flow(storage1_electricityBus_5) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage1_0) <= 234 - 0 <= GenericInvestmentStorageBlock_invest(storage1_1) <= 234 - 0 <= GenericInvestmentStorageBlock_invest(storage1_2) <= 234 - 0 <= InvestmentFlowBlock_total(electricityBus_storage1_0) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage1_1) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage1_2) <= +inf - 0 <= InvestmentFlowBlock_total(storage1_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage1_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_total(storage1_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage1_0) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage1_1) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage1_2) <= +inf - 0 <= InvestmentFlowBlock_invest(storage1_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_invest(storage1_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_invest(storage1_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage1_0) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage1_1) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage1_2) <= +inf - 0 <= InvestmentFlowBlock_old(storage1_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old(storage1_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old(storage1_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage1_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage1_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage1_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage1_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage1_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage1_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage1_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage1_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage1_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage1_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage1_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage1_electricityBus_2) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_3) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_4) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_5) <= +inf -end diff --git a/tests/lp_files/storage_invest_2.lp b/tests/lp_files/storage_invest_2.lp deleted file mode 100644 index 3f62ef36b..000000000 --- a/tests/lp_files/storage_invest_2.lp +++ /dev/null @@ -1,134 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+99 InvestmentFlowBlock_invest(electricityBus_storage2_0) -+9 InvestmentFlowBlock_invest(storage2_electricityBus_0) -+145 GenericInvestmentStorageBlock_invest(storage2_0) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage2_0) -+1 flow(storage2_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage2_1) -+1 flow(storage2_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage2_2) -+1 flow(storage2_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage2_0)_: --1 InvestmentFlowBlock_invest(electricityBus_storage2_0) -+1 InvestmentFlowBlock_total(electricityBus_storage2_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage2_electricityBus_0)_: --1 InvestmentFlowBlock_invest(storage2_electricityBus_0) -+1 InvestmentFlowBlock_total(storage2_electricityBus_0) -= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage2_0_0)_: -+1 flow(electricityBus_storage2_0) --1 InvestmentFlowBlock_total(electricityBus_storage2_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage2_0_1)_: -+1 flow(electricityBus_storage2_1) --1 InvestmentFlowBlock_total(electricityBus_storage2_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage2_0_2)_: -+1 flow(electricityBus_storage2_2) --1 InvestmentFlowBlock_total(electricityBus_storage2_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage2_electricityBus_0_0)_: -+1 flow(storage2_electricityBus_0) --1 InvestmentFlowBlock_total(storage2_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage2_electricityBus_0_1)_: -+1 flow(storage2_electricityBus_1) --1 InvestmentFlowBlock_total(storage2_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage2_electricityBus_0_2)_: -+1 flow(storage2_electricityBus_2) --1 InvestmentFlowBlock_total(storage2_electricityBus_0) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage2_0)_: --1 GenericInvestmentStorageBlock_invest(storage2_0) -+1 GenericInvestmentStorageBlock_total(storage2_0) -= 0 - -c_e_GenericInvestmentStorageBlock_init_content_fix(storage2)_: --0.5 GenericInvestmentStorageBlock_invest(storage2_0) -+1 GenericInvestmentStorageBlock_init_content(storage2) -= 0 - -c_e_GenericInvestmentStorageBlock_balance_first(storage2)_: --1 flow(electricityBus_storage2_0) -+1 flow(storage2_electricityBus_0) --1 GenericInvestmentStorageBlock_init_content(storage2) -+1 GenericInvestmentStorageBlock_storage_content(storage2_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage2_0_1)_: --1 flow(electricityBus_storage2_1) -+1 flow(storage2_electricityBus_1) --1 GenericInvestmentStorageBlock_storage_content(storage2_0) -+1 GenericInvestmentStorageBlock_storage_content(storage2_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage2_0_2)_: --1 flow(electricityBus_storage2_2) -+1 flow(storage2_electricityBus_2) --1 GenericInvestmentStorageBlock_storage_content(storage2_1) -+1 GenericInvestmentStorageBlock_storage_content(storage2_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balanced_cstr(storage2)_: --1 GenericInvestmentStorageBlock_init_content(storage2) -+1 GenericInvestmentStorageBlock_storage_content(storage2_2) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage2_0_0)_: --1 GenericInvestmentStorageBlock_total(storage2_0) -+1 GenericInvestmentStorageBlock_storage_content(storage2_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage2_0_1)_: --1 GenericInvestmentStorageBlock_total(storage2_0) -+1 GenericInvestmentStorageBlock_storage_content(storage2_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage2_0_2)_: --1 GenericInvestmentStorageBlock_total(storage2_0) -+1 GenericInvestmentStorageBlock_storage_content(storage2_2) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(electricityBus_storage2_0) <= +inf - 0 <= InvestmentFlowBlock_invest(storage2_electricityBus_0) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage2_0) <= +inf - 0 <= flow(electricityBus_storage2_0) <= +inf - 0 <= flow(electricityBus_storage2_1) <= +inf - 0 <= flow(electricityBus_storage2_2) <= +inf - 0 <= flow(storage2_electricityBus_0) <= +inf - 0 <= flow(storage2_electricityBus_1) <= +inf - 0 <= flow(storage2_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage2_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage2_electricityBus_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage2_0) <= +inf - 0 <= GenericInvestmentStorageBlock_init_content(storage2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage2_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage2_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage2_2) <= +inf -end diff --git a/tests/lp_files/storage_invest_2_multi_period.lp b/tests/lp_files/storage_invest_2_multi_period.lp deleted file mode 100644 index e21fc5743..000000000 --- a/tests/lp_files/storage_invest_2_multi_period.lp +++ /dev/null @@ -1,423 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+17.46051480474446 InvestmentFlowBlock_invest(electricityBus_storage2_0) -+11.524715692583884 InvestmentFlowBlock_invest(electricityBus_storage2_1) -+5.705304798308859 InvestmentFlowBlock_invest(electricityBus_storage2_2) -+1.5873195277040417 InvestmentFlowBlock_invest(storage2_electricityBus_0) -+1.0477014265985347 InvestmentFlowBlock_invest(storage2_electricityBus_1) -+0.5186640725735326 InvestmentFlowBlock_invest(storage2_electricityBus_2) -+25.57348127967623 GenericInvestmentStorageBlock_invest(storage2_0) -+16.879634095198618 GenericInvestmentStorageBlock_invest(storage2_1) -+8.35625450257358 GenericInvestmentStorageBlock_invest(storage2_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage2_0) -+1 flow(storage2_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage2_1) -+1 flow(storage2_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage2_2) -+1 flow(storage2_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: --1 flow(electricityBus_storage2_3) -+1 flow(storage2_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: --1 flow(electricityBus_storage2_4) -+1 flow(storage2_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: --1 flow(electricityBus_storage2_5) -+1 flow(storage2_electricityBus_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage2_0)_: --1 InvestmentFlowBlock_invest(electricityBus_storage2_0) -+1 InvestmentFlowBlock_total(electricityBus_storage2_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage2_1)_: --1 InvestmentFlowBlock_invest(electricityBus_storage2_1) --1 InvestmentFlowBlock_total(electricityBus_storage2_0) -+1 InvestmentFlowBlock_total(electricityBus_storage2_1) -+1 InvestmentFlowBlock_old(electricityBus_storage2_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage2_2)_: --1 InvestmentFlowBlock_invest(electricityBus_storage2_2) --1 InvestmentFlowBlock_total(electricityBus_storage2_1) -+1 InvestmentFlowBlock_total(electricityBus_storage2_2) -+1 InvestmentFlowBlock_old(electricityBus_storage2_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage2_electricityBus_0)_: --1 InvestmentFlowBlock_invest(storage2_electricityBus_0) -+1 InvestmentFlowBlock_total(storage2_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage2_electricityBus_1)_: --1 InvestmentFlowBlock_invest(storage2_electricityBus_1) --1 InvestmentFlowBlock_total(storage2_electricityBus_0) -+1 InvestmentFlowBlock_total(storage2_electricityBus_1) -+1 InvestmentFlowBlock_old(storage2_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage2_electricityBus_2)_: --1 InvestmentFlowBlock_invest(storage2_electricityBus_2) --1 InvestmentFlowBlock_total(storage2_electricityBus_1) -+1 InvestmentFlowBlock_total(storage2_electricityBus_2) -+1 InvestmentFlowBlock_old(storage2_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage2_0)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage2_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage2_1)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage2_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage2_2)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage2_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage2_electricityBus_0)_: -+1 InvestmentFlowBlock_old_end(storage2_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage2_electricityBus_1)_: -+1 InvestmentFlowBlock_old_end(storage2_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage2_electricityBus_2)_: -+1 InvestmentFlowBlock_old_end(storage2_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage2_0)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage2_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage2_1)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage2_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage2_2)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage2_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage2_electricityBus_0)_: -+1 InvestmentFlowBlock_old_exo(storage2_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage2_electricityBus_1)_: -+1 InvestmentFlowBlock_old_exo(storage2_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage2_electricityBus_2)_: -+1 InvestmentFlowBlock_old_exo(storage2_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage2_0)_: -+1 InvestmentFlowBlock_old(electricityBus_storage2_0) --1 InvestmentFlowBlock_old_end(electricityBus_storage2_0) --1 InvestmentFlowBlock_old_exo(electricityBus_storage2_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage2_1)_: -+1 InvestmentFlowBlock_old(electricityBus_storage2_1) --1 InvestmentFlowBlock_old_end(electricityBus_storage2_1) --1 InvestmentFlowBlock_old_exo(electricityBus_storage2_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage2_2)_: -+1 InvestmentFlowBlock_old(electricityBus_storage2_2) --1 InvestmentFlowBlock_old_end(electricityBus_storage2_2) --1 InvestmentFlowBlock_old_exo(electricityBus_storage2_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage2_electricityBus_0)_: -+1 InvestmentFlowBlock_old(storage2_electricityBus_0) --1 InvestmentFlowBlock_old_end(storage2_electricityBus_0) --1 InvestmentFlowBlock_old_exo(storage2_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage2_electricityBus_1)_: -+1 InvestmentFlowBlock_old(storage2_electricityBus_1) --1 InvestmentFlowBlock_old_end(storage2_electricityBus_1) --1 InvestmentFlowBlock_old_exo(storage2_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage2_electricityBus_2)_: -+1 InvestmentFlowBlock_old(storage2_electricityBus_2) --1 InvestmentFlowBlock_old_end(storage2_electricityBus_2) --1 InvestmentFlowBlock_old_exo(storage2_electricityBus_2) -= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage2_0_0)_: -+1 flow(electricityBus_storage2_0) --1 InvestmentFlowBlock_total(electricityBus_storage2_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage2_0_1)_: -+1 flow(electricityBus_storage2_1) --1 InvestmentFlowBlock_total(electricityBus_storage2_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage2_1_2)_: -+1 flow(electricityBus_storage2_2) --1 InvestmentFlowBlock_total(electricityBus_storage2_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage2_1_3)_: -+1 flow(electricityBus_storage2_3) --1 InvestmentFlowBlock_total(electricityBus_storage2_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage2_2_4)_: -+1 flow(electricityBus_storage2_4) --1 InvestmentFlowBlock_total(electricityBus_storage2_2) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage2_2_5)_: -+1 flow(electricityBus_storage2_5) --1 InvestmentFlowBlock_total(electricityBus_storage2_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage2_electricityBus_0_0)_: -+1 flow(storage2_electricityBus_0) --1 InvestmentFlowBlock_total(storage2_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage2_electricityBus_0_1)_: -+1 flow(storage2_electricityBus_1) --1 InvestmentFlowBlock_total(storage2_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage2_electricityBus_1_2)_: -+1 flow(storage2_electricityBus_2) --1 InvestmentFlowBlock_total(storage2_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage2_electricityBus_1_3)_: -+1 flow(storage2_electricityBus_3) --1 InvestmentFlowBlock_total(storage2_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage2_electricityBus_2_4)_: -+1 flow(storage2_electricityBus_4) --1 InvestmentFlowBlock_total(storage2_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage2_electricityBus_2_5)_: -+1 flow(storage2_electricityBus_5) --1 InvestmentFlowBlock_total(storage2_electricityBus_2) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage2_0)_: --1 GenericInvestmentStorageBlock_invest(storage2_0) -+1 GenericInvestmentStorageBlock_total(storage2_0) -= 20 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage2_1)_: --1 GenericInvestmentStorageBlock_invest(storage2_1) --1 GenericInvestmentStorageBlock_total(storage2_0) -+1 GenericInvestmentStorageBlock_total(storage2_1) -+1 GenericInvestmentStorageBlock_old(storage2_1) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage2_2)_: --1 GenericInvestmentStorageBlock_invest(storage2_2) --1 GenericInvestmentStorageBlock_total(storage2_1) -+1 GenericInvestmentStorageBlock_total(storage2_2) -+1 GenericInvestmentStorageBlock_old(storage2_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage2_0)_: -+1 GenericInvestmentStorageBlock_old_end(storage2_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage2_1)_: -+1 GenericInvestmentStorageBlock_old_end(storage2_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage2_2)_: -+1 GenericInvestmentStorageBlock_old_end(storage2_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage2_0)_: -+1 GenericInvestmentStorageBlock_old_exo(storage2_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage2_1)_: -+1 GenericInvestmentStorageBlock_old_exo(storage2_1) -= 20 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage2_2)_: -+1 GenericInvestmentStorageBlock_old_exo(storage2_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage2_0)_: -+1 GenericInvestmentStorageBlock_old(storage2_0) --1 GenericInvestmentStorageBlock_old_end(storage2_0) --1 GenericInvestmentStorageBlock_old_exo(storage2_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage2_1)_: -+1 GenericInvestmentStorageBlock_old(storage2_1) --1 GenericInvestmentStorageBlock_old_end(storage2_1) --1 GenericInvestmentStorageBlock_old_exo(storage2_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage2_2)_: -+1 GenericInvestmentStorageBlock_old(storage2_2) --1 GenericInvestmentStorageBlock_old_end(storage2_2) --1 GenericInvestmentStorageBlock_old_exo(storage2_2) -= 0 - -c_e_GenericInvestmentStorageBlock_initially_empty(storage2_0)_: -+1 GenericInvestmentStorageBlock_storage_content(storage2_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage2_0_1)_: --1 flow(electricityBus_storage2_1) -+1 flow(storage2_electricityBus_1) --1 GenericInvestmentStorageBlock_storage_content(storage2_0) -+1 GenericInvestmentStorageBlock_storage_content(storage2_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage2_1_2)_: --1 flow(electricityBus_storage2_2) -+1 flow(storage2_electricityBus_2) --1 GenericInvestmentStorageBlock_storage_content(storage2_1) -+1 GenericInvestmentStorageBlock_storage_content(storage2_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage2_1_3)_: --1 flow(electricityBus_storage2_3) -+1 flow(storage2_electricityBus_3) --1 GenericInvestmentStorageBlock_storage_content(storage2_2) -+1 GenericInvestmentStorageBlock_storage_content(storage2_3) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage2_2_4)_: --1 flow(electricityBus_storage2_4) -+1 flow(storage2_electricityBus_4) --1 GenericInvestmentStorageBlock_storage_content(storage2_3) -+1 GenericInvestmentStorageBlock_storage_content(storage2_4) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage2_2_5)_: --1 flow(electricityBus_storage2_5) -+1 flow(storage2_electricityBus_5) --1 GenericInvestmentStorageBlock_storage_content(storage2_4) -+1 GenericInvestmentStorageBlock_storage_content(storage2_5) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage2_0_0)_: --1 GenericInvestmentStorageBlock_total(storage2_0) -+1 GenericInvestmentStorageBlock_storage_content(storage2_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage2_0_1)_: --1 GenericInvestmentStorageBlock_total(storage2_0) -+1 GenericInvestmentStorageBlock_storage_content(storage2_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage2_1_2)_: --1 GenericInvestmentStorageBlock_total(storage2_1) -+1 GenericInvestmentStorageBlock_storage_content(storage2_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage2_1_3)_: --1 GenericInvestmentStorageBlock_total(storage2_1) -+1 GenericInvestmentStorageBlock_storage_content(storage2_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage2_2_4)_: --1 GenericInvestmentStorageBlock_total(storage2_2) -+1 GenericInvestmentStorageBlock_storage_content(storage2_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage2_2_5)_: --1 GenericInvestmentStorageBlock_total(storage2_2) -+1 GenericInvestmentStorageBlock_storage_content(storage2_5) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(electricityBus_storage2_0) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage2_1) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage2_2) <= +inf - 0 <= InvestmentFlowBlock_invest(storage2_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_invest(storage2_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_invest(storage2_electricityBus_2) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage2_0) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage2_1) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage2_2) <= +inf - 0 <= flow(electricityBus_storage2_0) <= +inf - 0 <= flow(electricityBus_storage2_1) <= +inf - 0 <= flow(electricityBus_storage2_2) <= +inf - 0 <= flow(electricityBus_storage2_3) <= +inf - 0 <= flow(electricityBus_storage2_4) <= +inf - 0 <= flow(electricityBus_storage2_5) <= +inf - 0 <= flow(storage2_electricityBus_0) <= +inf - 0 <= flow(storage2_electricityBus_1) <= +inf - 0 <= flow(storage2_electricityBus_2) <= +inf - 0 <= flow(storage2_electricityBus_3) <= +inf - 0 <= flow(storage2_electricityBus_4) <= +inf - 0 <= flow(storage2_electricityBus_5) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage2_0) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage2_1) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage2_2) <= +inf - 0 <= InvestmentFlowBlock_total(storage2_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage2_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_total(storage2_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage2_0) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage2_1) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage2_2) <= +inf - 0 <= InvestmentFlowBlock_old(storage2_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old(storage2_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old(storage2_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage2_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage2_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage2_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage2_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage2_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage2_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage2_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage2_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage2_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage2_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage2_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage2_electricityBus_2) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage2_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage2_1) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage2_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage2_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage2_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage2_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage2_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage2_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage2_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage2_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage2_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage2_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage2_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage2_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage2_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage2_3) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage2_4) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage2_5) <= +inf -end diff --git a/tests/lp_files/storage_invest_3.lp b/tests/lp_files/storage_invest_3.lp deleted file mode 100644 index 443171841..000000000 --- a/tests/lp_files/storage_invest_3.lp +++ /dev/null @@ -1,124 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+9 InvestmentFlowBlock_invest(storage3_electricityBus_0) -+99 InvestmentFlowBlock_invest(electricityBus_storage3_0) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage3_0) -+1 flow(storage3_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage3_1) -+1 flow(storage3_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage3_2) -+1 flow(storage3_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage3_electricityBus_0)_: --1 InvestmentFlowBlock_invest(storage3_electricityBus_0) -+1 InvestmentFlowBlock_total(storage3_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage3_0)_: --1 InvestmentFlowBlock_invest(electricityBus_storage3_0) -+1 InvestmentFlowBlock_total(electricityBus_storage3_0) -= 0 - -c_u_InvestmentFlowBlock_max(storage3_electricityBus_0_0)_: -+1 flow(storage3_electricityBus_0) --1 InvestmentFlowBlock_total(storage3_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage3_electricityBus_0_1)_: -+1 flow(storage3_electricityBus_1) --1 InvestmentFlowBlock_total(storage3_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage3_electricityBus_0_2)_: -+1 flow(storage3_electricityBus_2) --1 InvestmentFlowBlock_total(storage3_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage3_0_0)_: -+1 flow(electricityBus_storage3_0) --1 InvestmentFlowBlock_total(electricityBus_storage3_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage3_0_1)_: -+1 flow(electricityBus_storage3_1) --1 InvestmentFlowBlock_total(electricityBus_storage3_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage3_0_2)_: -+1 flow(electricityBus_storage3_2) --1 InvestmentFlowBlock_total(electricityBus_storage3_0) -<= 0 - -c_e_GenericStorageBlock_losses(storage3_0)_: --1 GenericStorageBlock_storage_losses(storage3_0) -= 0 - -c_e_GenericStorageBlock_losses(storage3_1)_: --1 GenericStorageBlock_storage_losses(storage3_1) -= 0 - -c_e_GenericStorageBlock_losses(storage3_2)_: --1 GenericStorageBlock_storage_losses(storage3_2) -= 0 - -c_e_GenericStorageBlock_balance(storage3_0)_: -+1 flow(electricityBus_storage3_0) --1 flow(storage3_electricityBus_0) --1 GenericStorageBlock_storage_losses(storage3_0) -+1 GenericStorageBlock_storage_content(storage3_0) --1 GenericStorageBlock_storage_content(storage3_1) -= 0 - -c_e_GenericStorageBlock_balance(storage3_1)_: -+1 flow(electricityBus_storage3_1) --1 flow(storage3_electricityBus_1) --1 GenericStorageBlock_storage_losses(storage3_1) -+1 GenericStorageBlock_storage_content(storage3_1) --1 GenericStorageBlock_storage_content(storage3_2) -= 0 - -c_e_GenericStorageBlock_balance(storage3_2)_: -+1 flow(electricityBus_storage3_2) --1 flow(storage3_electricityBus_2) --1 GenericStorageBlock_storage_losses(storage3_2) -+1 GenericStorageBlock_storage_content(storage3_2) --1 GenericStorageBlock_storage_content(storage3_3) -= 0 - -c_e_GenericStorageBlock_balanced_cstr(storage3)_: --1 GenericStorageBlock_storage_content(storage3_0) -+1 GenericStorageBlock_storage_content(storage3_3) -= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(storage3_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage3_0) <= +inf - 0 <= flow(electricityBus_storage3_0) <= +inf - 0 <= flow(electricityBus_storage3_1) <= +inf - 0 <= flow(electricityBus_storage3_2) <= +inf - 0 <= flow(storage3_electricityBus_0) <= +inf - 0 <= flow(storage3_electricityBus_1) <= +inf - 0 <= flow(storage3_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_total(storage3_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage3_0) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage3_0) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage3_1) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage3_2) <= +inf - 0 <= GenericStorageBlock_storage_content(storage3_0) <= 5000 - 0 <= GenericStorageBlock_storage_content(storage3_1) <= 5000 - 0 <= GenericStorageBlock_storage_content(storage3_2) <= 5000 - 0 <= GenericStorageBlock_storage_content(storage3_3) <= 5000 -end diff --git a/tests/lp_files/storage_invest_3_multi_period.lp b/tests/lp_files/storage_invest_3_multi_period.lp deleted file mode 100644 index 0c24907ff..000000000 --- a/tests/lp_files/storage_invest_3_multi_period.lp +++ /dev/null @@ -1,360 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+1.5873195277040417 InvestmentFlowBlock_invest(storage3_electricityBus_0) -+1.0477014265985347 InvestmentFlowBlock_invest(storage3_electricityBus_1) -+0.5186640725735326 InvestmentFlowBlock_invest(storage3_electricityBus_2) -+98.99999999999999 InvestmentFlowBlock_invest(electricityBus_storage3_0) -+97.05882352941174 InvestmentFlowBlock_invest(electricityBus_storage3_1) -+48.0489225393128 InvestmentFlowBlock_invest(electricityBus_storage3_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage3_0) -+1 flow(storage3_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage3_1) -+1 flow(storage3_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage3_2) -+1 flow(storage3_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: --1 flow(electricityBus_storage3_3) -+1 flow(storage3_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: --1 flow(electricityBus_storage3_4) -+1 flow(storage3_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: --1 flow(electricityBus_storage3_5) -+1 flow(storage3_electricityBus_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage3_electricityBus_0)_: --1 InvestmentFlowBlock_invest(storage3_electricityBus_0) -+1 InvestmentFlowBlock_total(storage3_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage3_electricityBus_1)_: --1 InvestmentFlowBlock_invest(storage3_electricityBus_1) --1 InvestmentFlowBlock_total(storage3_electricityBus_0) -+1 InvestmentFlowBlock_total(storage3_electricityBus_1) -+1 InvestmentFlowBlock_old(storage3_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage3_electricityBus_2)_: --1 InvestmentFlowBlock_invest(storage3_electricityBus_2) --1 InvestmentFlowBlock_total(storage3_electricityBus_1) -+1 InvestmentFlowBlock_total(storage3_electricityBus_2) -+1 InvestmentFlowBlock_old(storage3_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage3_0)_: --1 InvestmentFlowBlock_invest(electricityBus_storage3_0) -+1 InvestmentFlowBlock_total(electricityBus_storage3_0) -= 10 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage3_1)_: --1 InvestmentFlowBlock_invest(electricityBus_storage3_1) --1 InvestmentFlowBlock_total(electricityBus_storage3_0) -+1 InvestmentFlowBlock_total(electricityBus_storage3_1) -+1 InvestmentFlowBlock_old(electricityBus_storage3_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage3_2)_: --1 InvestmentFlowBlock_invest(electricityBus_storage3_2) --1 InvestmentFlowBlock_total(electricityBus_storage3_1) -+1 InvestmentFlowBlock_total(electricityBus_storage3_2) -+1 InvestmentFlowBlock_old(electricityBus_storage3_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage3_electricityBus_0)_: -+1 InvestmentFlowBlock_old_end(storage3_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage3_electricityBus_1)_: -+1 InvestmentFlowBlock_old_end(storage3_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage3_electricityBus_2)_: -+1 InvestmentFlowBlock_old_end(storage3_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage3_0)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage3_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage3_1)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage3_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage3_2)_: --1 InvestmentFlowBlock_invest(electricityBus_storage3_0) -+1 InvestmentFlowBlock_old_end(electricityBus_storage3_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage3_electricityBus_0)_: -+1 InvestmentFlowBlock_old_exo(storage3_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage3_electricityBus_1)_: -+1 InvestmentFlowBlock_old_exo(storage3_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage3_electricityBus_2)_: -+1 InvestmentFlowBlock_old_exo(storage3_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage3_0)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage3_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage3_1)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage3_1) -= 10 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage3_2)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage3_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage3_electricityBus_0)_: -+1 InvestmentFlowBlock_old(storage3_electricityBus_0) --1 InvestmentFlowBlock_old_end(storage3_electricityBus_0) --1 InvestmentFlowBlock_old_exo(storage3_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage3_electricityBus_1)_: -+1 InvestmentFlowBlock_old(storage3_electricityBus_1) --1 InvestmentFlowBlock_old_end(storage3_electricityBus_1) --1 InvestmentFlowBlock_old_exo(storage3_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage3_electricityBus_2)_: -+1 InvestmentFlowBlock_old(storage3_electricityBus_2) --1 InvestmentFlowBlock_old_end(storage3_electricityBus_2) --1 InvestmentFlowBlock_old_exo(storage3_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage3_0)_: -+1 InvestmentFlowBlock_old(electricityBus_storage3_0) --1 InvestmentFlowBlock_old_end(electricityBus_storage3_0) --1 InvestmentFlowBlock_old_exo(electricityBus_storage3_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage3_1)_: -+1 InvestmentFlowBlock_old(electricityBus_storage3_1) --1 InvestmentFlowBlock_old_end(electricityBus_storage3_1) --1 InvestmentFlowBlock_old_exo(electricityBus_storage3_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage3_2)_: -+1 InvestmentFlowBlock_old(electricityBus_storage3_2) --1 InvestmentFlowBlock_old_end(electricityBus_storage3_2) --1 InvestmentFlowBlock_old_exo(electricityBus_storage3_2) -= 0 - -c_u_InvestmentFlowBlock_max(storage3_electricityBus_0_0)_: -+1 flow(storage3_electricityBus_0) --1 InvestmentFlowBlock_total(storage3_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage3_electricityBus_0_1)_: -+1 flow(storage3_electricityBus_1) --1 InvestmentFlowBlock_total(storage3_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage3_electricityBus_1_2)_: -+1 flow(storage3_electricityBus_2) --1 InvestmentFlowBlock_total(storage3_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage3_electricityBus_1_3)_: -+1 flow(storage3_electricityBus_3) --1 InvestmentFlowBlock_total(storage3_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage3_electricityBus_2_4)_: -+1 flow(storage3_electricityBus_4) --1 InvestmentFlowBlock_total(storage3_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage3_electricityBus_2_5)_: -+1 flow(storage3_electricityBus_5) --1 InvestmentFlowBlock_total(storage3_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage3_0_0)_: -+1 flow(electricityBus_storage3_0) --1 InvestmentFlowBlock_total(electricityBus_storage3_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage3_0_1)_: -+1 flow(electricityBus_storage3_1) --1 InvestmentFlowBlock_total(electricityBus_storage3_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage3_1_2)_: -+1 flow(electricityBus_storage3_2) --1 InvestmentFlowBlock_total(electricityBus_storage3_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage3_1_3)_: -+1 flow(electricityBus_storage3_3) --1 InvestmentFlowBlock_total(electricityBus_storage3_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage3_2_4)_: -+1 flow(electricityBus_storage3_4) --1 InvestmentFlowBlock_total(electricityBus_storage3_2) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage3_2_5)_: -+1 flow(electricityBus_storage3_5) --1 InvestmentFlowBlock_total(electricityBus_storage3_2) -<= 0 - -c_e_GenericStorageBlock_losses(storage3_0)_: --1 GenericStorageBlock_storage_losses(storage3_0) -= 0 - -c_e_GenericStorageBlock_losses(storage3_1)_: --1 GenericStorageBlock_storage_losses(storage3_1) -= 0 - -c_e_GenericStorageBlock_losses(storage3_2)_: --1 GenericStorageBlock_storage_losses(storage3_2) -= 0 - -c_e_GenericStorageBlock_losses(storage3_3)_: --1 GenericStorageBlock_storage_losses(storage3_3) -= 0 - -c_e_GenericStorageBlock_losses(storage3_4)_: --1 GenericStorageBlock_storage_losses(storage3_4) -= 0 - -c_e_GenericStorageBlock_losses(storage3_5)_: --1 GenericStorageBlock_storage_losses(storage3_5) -= 0 - -c_e_GenericStorageBlock_balance(storage3_0)_: -+1 flow(electricityBus_storage3_0) --1 flow(storage3_electricityBus_0) --1 GenericStorageBlock_storage_losses(storage3_0) -+1 GenericStorageBlock_storage_content(storage3_0) --1 GenericStorageBlock_storage_content(storage3_1) -= 0 - -c_e_GenericStorageBlock_balance(storage3_1)_: -+1 flow(electricityBus_storage3_1) --1 flow(storage3_electricityBus_1) --1 GenericStorageBlock_storage_losses(storage3_1) -+1 GenericStorageBlock_storage_content(storage3_1) --1 GenericStorageBlock_storage_content(storage3_2) -= 0 - -c_e_GenericStorageBlock_balance(storage3_2)_: -+1 flow(electricityBus_storage3_2) --1 flow(storage3_electricityBus_2) --1 GenericStorageBlock_storage_losses(storage3_2) -+1 GenericStorageBlock_storage_content(storage3_2) --1 GenericStorageBlock_storage_content(storage3_3) -= 0 - -c_e_GenericStorageBlock_balance(storage3_3)_: -+1 flow(electricityBus_storage3_3) --1 flow(storage3_electricityBus_3) --1 GenericStorageBlock_storage_losses(storage3_3) -+1 GenericStorageBlock_storage_content(storage3_3) --1 GenericStorageBlock_storage_content(storage3_4) -= 0 - -c_e_GenericStorageBlock_balance(storage3_4)_: -+1 flow(electricityBus_storage3_4) --1 flow(storage3_electricityBus_4) --1 GenericStorageBlock_storage_losses(storage3_4) -+1 GenericStorageBlock_storage_content(storage3_4) --1 GenericStorageBlock_storage_content(storage3_5) -= 0 - -c_e_GenericStorageBlock_balance(storage3_5)_: -+1 flow(electricityBus_storage3_5) --1 flow(storage3_electricityBus_5) --1 GenericStorageBlock_storage_losses(storage3_5) -+1 GenericStorageBlock_storage_content(storage3_5) --1 GenericStorageBlock_storage_content(storage3_6) -= 0 - -c_e_GenericStorageBlock_balanced_cstr(storage3)_: --1 GenericStorageBlock_storage_content(storage3_0) -+1 GenericStorageBlock_storage_content(storage3_6) -= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(storage3_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_invest(storage3_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_invest(storage3_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage3_0) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage3_1) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage3_2) <= +inf - 0 <= flow(electricityBus_storage3_0) <= +inf - 0 <= flow(electricityBus_storage3_1) <= +inf - 0 <= flow(electricityBus_storage3_2) <= +inf - 0 <= flow(electricityBus_storage3_3) <= +inf - 0 <= flow(electricityBus_storage3_4) <= +inf - 0 <= flow(electricityBus_storage3_5) <= +inf - 0 <= flow(storage3_electricityBus_0) <= +inf - 0 <= flow(storage3_electricityBus_1) <= +inf - 0 <= flow(storage3_electricityBus_2) <= +inf - 0 <= flow(storage3_electricityBus_3) <= +inf - 0 <= flow(storage3_electricityBus_4) <= +inf - 0 <= flow(storage3_electricityBus_5) <= +inf - 0 <= InvestmentFlowBlock_total(storage3_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage3_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_total(storage3_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage3_0) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage3_1) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage3_2) <= +inf - 0 <= InvestmentFlowBlock_old(storage3_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old(storage3_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old(storage3_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage3_0) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage3_1) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage3_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage3_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage3_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage3_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage3_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage3_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage3_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage3_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage3_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage3_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage3_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage3_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage3_2) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage3_0) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage3_1) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage3_2) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage3_3) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage3_4) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage3_5) <= +inf - 0 <= GenericStorageBlock_storage_content(storage3_0) <= 5000 - 0 <= GenericStorageBlock_storage_content(storage3_1) <= 5000 - 0 <= GenericStorageBlock_storage_content(storage3_2) <= 5000 - 0 <= GenericStorageBlock_storage_content(storage3_3) <= 5000 - 0 <= GenericStorageBlock_storage_content(storage3_4) <= 5000 - 0 <= GenericStorageBlock_storage_content(storage3_5) <= 5000 - 0 <= GenericStorageBlock_storage_content(storage3_6) <= 5000 -end diff --git a/tests/lp_files/storage_invest_4.lp b/tests/lp_files/storage_invest_4.lp deleted file mode 100644 index 2b90dd479..000000000 --- a/tests/lp_files/storage_invest_4.lp +++ /dev/null @@ -1,88 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+145 GenericInvestmentStorageBlock_invest(storage4_0) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage4_0) -+1 flow(storage4_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage4_1) -+1 flow(storage4_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage4_2) -+1 flow(storage4_electricityBus_2) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage4_0)_: --1 GenericInvestmentStorageBlock_invest(storage4_0) -+1 GenericInvestmentStorageBlock_total(storage4_0) -= 0 - -c_u_GenericInvestmentStorageBlock_init_content_limit(storage4)_: --1 GenericInvestmentStorageBlock_invest(storage4_0) -+1 GenericInvestmentStorageBlock_init_content(storage4) -<= 0 - -c_e_GenericInvestmentStorageBlock_balance_first(storage4)_: --1 flow(electricityBus_storage4_0) -+1 flow(storage4_electricityBus_0) --1 GenericInvestmentStorageBlock_init_content(storage4) -+1 GenericInvestmentStorageBlock_storage_content(storage4_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage4_0_1)_: --1 flow(electricityBus_storage4_1) -+1 flow(storage4_electricityBus_1) --1 GenericInvestmentStorageBlock_storage_content(storage4_0) -+1 GenericInvestmentStorageBlock_storage_content(storage4_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage4_0_2)_: --1 flow(electricityBus_storage4_2) -+1 flow(storage4_electricityBus_2) --1 GenericInvestmentStorageBlock_storage_content(storage4_1) -+1 GenericInvestmentStorageBlock_storage_content(storage4_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balanced_cstr(storage4)_: --1 GenericInvestmentStorageBlock_init_content(storage4) -+1 GenericInvestmentStorageBlock_storage_content(storage4_2) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage4_0_0)_: --1 GenericInvestmentStorageBlock_total(storage4_0) -+1 GenericInvestmentStorageBlock_storage_content(storage4_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage4_0_1)_: --1 GenericInvestmentStorageBlock_total(storage4_0) -+1 GenericInvestmentStorageBlock_storage_content(storage4_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage4_0_2)_: --1 GenericInvestmentStorageBlock_total(storage4_0) -+1 GenericInvestmentStorageBlock_storage_content(storage4_2) -<= 0 - -bounds - 0 <= GenericInvestmentStorageBlock_invest(storage4_0) <= 500 - 0 <= flow(electricityBus_storage4_0) <= 80 - 0 <= flow(electricityBus_storage4_1) <= 80 - 0 <= flow(electricityBus_storage4_2) <= 80 - 0 <= flow(storage4_electricityBus_0) <= 100 - 0 <= flow(storage4_electricityBus_1) <= 100 - 0 <= flow(storage4_electricityBus_2) <= 100 - 0 <= GenericInvestmentStorageBlock_total(storage4_0) <= +inf - 0 <= GenericInvestmentStorageBlock_init_content(storage4) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage4_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage4_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage4_2) <= +inf -end diff --git a/tests/lp_files/storage_invest_4_multi_period.lp b/tests/lp_files/storage_invest_4_multi_period.lp deleted file mode 100644 index 9d7674d84..000000000 --- a/tests/lp_files/storage_invest_4_multi_period.lp +++ /dev/null @@ -1,206 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+145.0 GenericInvestmentStorageBlock_invest(storage4_0) -+142.15686274509804 GenericInvestmentStorageBlock_invest(storage4_1) -+70.37468452727633 GenericInvestmentStorageBlock_invest(storage4_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage4_0) -+1 flow(storage4_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage4_1) -+1 flow(storage4_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage4_2) -+1 flow(storage4_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: --1 flow(electricityBus_storage4_3) -+1 flow(storage4_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: --1 flow(electricityBus_storage4_4) -+1 flow(storage4_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: --1 flow(electricityBus_storage4_5) -+1 flow(storage4_electricityBus_5) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage4_0)_: --1 GenericInvestmentStorageBlock_invest(storage4_0) -+1 GenericInvestmentStorageBlock_total(storage4_0) -= 100 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage4_1)_: --1 GenericInvestmentStorageBlock_invest(storage4_1) --1 GenericInvestmentStorageBlock_total(storage4_0) -+1 GenericInvestmentStorageBlock_total(storage4_1) -+1 GenericInvestmentStorageBlock_old(storage4_1) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage4_2)_: --1 GenericInvestmentStorageBlock_invest(storage4_2) --1 GenericInvestmentStorageBlock_total(storage4_1) -+1 GenericInvestmentStorageBlock_total(storage4_2) -+1 GenericInvestmentStorageBlock_old(storage4_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage4_0)_: -+1 GenericInvestmentStorageBlock_old_end(storage4_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage4_1)_: -+1 GenericInvestmentStorageBlock_old_end(storage4_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage4_2)_: --1 GenericInvestmentStorageBlock_invest(storage4_0) -+1 GenericInvestmentStorageBlock_old_end(storage4_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage4_0)_: -+1 GenericInvestmentStorageBlock_old_exo(storage4_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage4_1)_: -+1 GenericInvestmentStorageBlock_old_exo(storage4_1) -= 100 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage4_2)_: -+1 GenericInvestmentStorageBlock_old_exo(storage4_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage4_0)_: -+1 GenericInvestmentStorageBlock_old(storage4_0) --1 GenericInvestmentStorageBlock_old_end(storage4_0) --1 GenericInvestmentStorageBlock_old_exo(storage4_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage4_1)_: -+1 GenericInvestmentStorageBlock_old(storage4_1) --1 GenericInvestmentStorageBlock_old_end(storage4_1) --1 GenericInvestmentStorageBlock_old_exo(storage4_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage4_2)_: -+1 GenericInvestmentStorageBlock_old(storage4_2) --1 GenericInvestmentStorageBlock_old_end(storage4_2) --1 GenericInvestmentStorageBlock_old_exo(storage4_2) -= 0 - -c_e_GenericInvestmentStorageBlock_initially_empty(storage4_0)_: -+1 GenericInvestmentStorageBlock_storage_content(storage4_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage4_0_1)_: --1 flow(electricityBus_storage4_1) -+1 flow(storage4_electricityBus_1) --1 GenericInvestmentStorageBlock_storage_content(storage4_0) -+1 GenericInvestmentStorageBlock_storage_content(storage4_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage4_1_2)_: --1 flow(electricityBus_storage4_2) -+1 flow(storage4_electricityBus_2) --1 GenericInvestmentStorageBlock_storage_content(storage4_1) -+1 GenericInvestmentStorageBlock_storage_content(storage4_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage4_1_3)_: --1 flow(electricityBus_storage4_3) -+1 flow(storage4_electricityBus_3) --1 GenericInvestmentStorageBlock_storage_content(storage4_2) -+1 GenericInvestmentStorageBlock_storage_content(storage4_3) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage4_2_4)_: --1 flow(electricityBus_storage4_4) -+1 flow(storage4_electricityBus_4) --1 GenericInvestmentStorageBlock_storage_content(storage4_3) -+1 GenericInvestmentStorageBlock_storage_content(storage4_4) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage4_2_5)_: --1 flow(electricityBus_storage4_5) -+1 flow(storage4_electricityBus_5) --1 GenericInvestmentStorageBlock_storage_content(storage4_4) -+1 GenericInvestmentStorageBlock_storage_content(storage4_5) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage4_0_0)_: --1 GenericInvestmentStorageBlock_total(storage4_0) -+1 GenericInvestmentStorageBlock_storage_content(storage4_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage4_0_1)_: --1 GenericInvestmentStorageBlock_total(storage4_0) -+1 GenericInvestmentStorageBlock_storage_content(storage4_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage4_1_2)_: --1 GenericInvestmentStorageBlock_total(storage4_1) -+1 GenericInvestmentStorageBlock_storage_content(storage4_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage4_1_3)_: --1 GenericInvestmentStorageBlock_total(storage4_1) -+1 GenericInvestmentStorageBlock_storage_content(storage4_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage4_2_4)_: --1 GenericInvestmentStorageBlock_total(storage4_2) -+1 GenericInvestmentStorageBlock_storage_content(storage4_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage4_2_5)_: --1 GenericInvestmentStorageBlock_total(storage4_2) -+1 GenericInvestmentStorageBlock_storage_content(storage4_5) -<= 0 - -bounds - 0 <= GenericInvestmentStorageBlock_invest(storage4_0) <= 500 - 0 <= GenericInvestmentStorageBlock_invest(storage4_1) <= 500 - 0 <= GenericInvestmentStorageBlock_invest(storage4_2) <= 500 - 0 <= flow(electricityBus_storage4_0) <= 80 - 0 <= flow(electricityBus_storage4_1) <= 80 - 0 <= flow(electricityBus_storage4_2) <= 80 - 0 <= flow(electricityBus_storage4_3) <= 80 - 0 <= flow(electricityBus_storage4_4) <= 80 - 0 <= flow(electricityBus_storage4_5) <= 80 - 0 <= flow(storage4_electricityBus_0) <= 100 - 0 <= flow(storage4_electricityBus_1) <= 100 - 0 <= flow(storage4_electricityBus_2) <= 100 - 0 <= flow(storage4_electricityBus_3) <= 100 - 0 <= flow(storage4_electricityBus_4) <= 100 - 0 <= flow(storage4_electricityBus_5) <= 100 - 0 <= GenericInvestmentStorageBlock_total(storage4_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage4_1) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage4_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage4_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage4_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage4_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage4_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage4_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage4_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage4_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage4_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage4_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage4_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage4_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage4_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage4_3) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage4_4) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage4_5) <= +inf -end diff --git a/tests/lp_files/storage_invest_5.lp b/tests/lp_files/storage_invest_5.lp deleted file mode 100644 index cdc84a4ca..000000000 --- a/tests/lp_files/storage_invest_5.lp +++ /dev/null @@ -1,128 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+99 InvestmentFlowBlock_invest(electricityBus_storage5_0) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage5_0) -+1 flow(storage5_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage5_1) -+1 flow(storage5_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage5_2) -+1 flow(storage5_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage5_electricityBus_0)_: --1 InvestmentFlowBlock_invest(storage5_electricityBus_0) -+1 InvestmentFlowBlock_total(storage5_electricityBus_0) -= 100 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage5_0)_: --1 InvestmentFlowBlock_invest(electricityBus_storage5_0) -+1 InvestmentFlowBlock_total(electricityBus_storage5_0) -= 110 - -c_u_InvestmentFlowBlock_max(storage5_electricityBus_0_0)_: -+1 flow(storage5_electricityBus_0) --1 InvestmentFlowBlock_total(storage5_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage5_electricityBus_0_1)_: -+1 flow(storage5_electricityBus_1) --1 InvestmentFlowBlock_total(storage5_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage5_electricityBus_0_2)_: -+1 flow(storage5_electricityBus_2) --1 InvestmentFlowBlock_total(storage5_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage5_0_0)_: -+1 flow(electricityBus_storage5_0) --1 InvestmentFlowBlock_total(electricityBus_storage5_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage5_0_1)_: -+1 flow(electricityBus_storage5_1) --1 InvestmentFlowBlock_total(electricityBus_storage5_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage5_0_2)_: -+1 flow(electricityBus_storage5_2) --1 InvestmentFlowBlock_total(electricityBus_storage5_0) -<= 0 - -c_e_GenericStorageBlock_losses(storage5_0)_: --1 GenericStorageBlock_storage_losses(storage5_0) -= 0 - -c_e_GenericStorageBlock_losses(storage5_1)_: --1 GenericStorageBlock_storage_losses(storage5_1) -= 0 - -c_e_GenericStorageBlock_losses(storage5_2)_: --1 GenericStorageBlock_storage_losses(storage5_2) -= 0 - -c_e_GenericStorageBlock_balance(storage5_0)_: -+1 flow(electricityBus_storage5_0) --1 flow(storage5_electricityBus_0) --1 GenericStorageBlock_storage_losses(storage5_0) -+1 GenericStorageBlock_storage_content(storage5_0) --1 GenericStorageBlock_storage_content(storage5_1) -= 0 - -c_e_GenericStorageBlock_balance(storage5_1)_: -+1 flow(electricityBus_storage5_1) --1 flow(storage5_electricityBus_1) --1 GenericStorageBlock_storage_losses(storage5_1) -+1 GenericStorageBlock_storage_content(storage5_1) --1 GenericStorageBlock_storage_content(storage5_2) -= 0 - -c_e_GenericStorageBlock_balance(storage5_2)_: -+1 flow(electricityBus_storage5_2) --1 flow(storage5_electricityBus_2) --1 GenericStorageBlock_storage_losses(storage5_2) -+1 GenericStorageBlock_storage_content(storage5_2) --1 GenericStorageBlock_storage_content(storage5_3) -= 0 - -c_e_GenericStorageBlock_balanced_cstr(storage5)_: --1 GenericStorageBlock_storage_content(storage5_0) -+1 GenericStorageBlock_storage_content(storage5_3) -= 0 - -c_e_GenericStorageBlock_power_coupled(storage5_0)_: -+1.1 InvestmentFlowBlock_total(storage5_electricityBus_0) --1 InvestmentFlowBlock_total(electricityBus_storage5_0) -= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(storage5_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage5_0) <= +inf - 0 <= flow(electricityBus_storage5_0) <= +inf - 0 <= flow(electricityBus_storage5_1) <= +inf - 0 <= flow(electricityBus_storage5_2) <= +inf - 0 <= flow(storage5_electricityBus_0) <= +inf - 0 <= flow(storage5_electricityBus_1) <= +inf - 0 <= flow(storage5_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_total(storage5_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage5_0) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage5_0) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage5_1) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage5_2) <= +inf - 0 <= GenericStorageBlock_storage_content(storage5_0) <= 10000 - 0 <= GenericStorageBlock_storage_content(storage5_1) <= 10000 - 0 <= GenericStorageBlock_storage_content(storage5_2) <= 10000 - 0 <= GenericStorageBlock_storage_content(storage5_3) <= 10000 -end diff --git a/tests/lp_files/storage_invest_5_multi_period.lp b/tests/lp_files/storage_invest_5_multi_period.lp deleted file mode 100644 index 9559e9eac..000000000 --- a/tests/lp_files/storage_invest_5_multi_period.lp +++ /dev/null @@ -1,371 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+17.46051480474446 InvestmentFlowBlock_invest(electricityBus_storage5_0) -+11.524715692583884 InvestmentFlowBlock_invest(electricityBus_storage5_1) -+5.705304798308859 InvestmentFlowBlock_invest(electricityBus_storage5_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage5_0) -+1 flow(storage5_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage5_1) -+1 flow(storage5_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage5_2) -+1 flow(storage5_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: --1 flow(electricityBus_storage5_3) -+1 flow(storage5_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: --1 flow(electricityBus_storage5_4) -+1 flow(storage5_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: --1 flow(electricityBus_storage5_5) -+1 flow(storage5_electricityBus_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage5_electricityBus_0)_: --1 InvestmentFlowBlock_invest(storage5_electricityBus_0) -+1 InvestmentFlowBlock_total(storage5_electricityBus_0) -= 100 - -c_e_InvestmentFlowBlock_total_rule(storage5_electricityBus_1)_: --1 InvestmentFlowBlock_invest(storage5_electricityBus_1) --1 InvestmentFlowBlock_total(storage5_electricityBus_0) -+1 InvestmentFlowBlock_total(storage5_electricityBus_1) -+1 InvestmentFlowBlock_old(storage5_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage5_electricityBus_2)_: --1 InvestmentFlowBlock_invest(storage5_electricityBus_2) --1 InvestmentFlowBlock_total(storage5_electricityBus_1) -+1 InvestmentFlowBlock_total(storage5_electricityBus_2) -+1 InvestmentFlowBlock_old(storage5_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage5_0)_: --1 InvestmentFlowBlock_invest(electricityBus_storage5_0) -+1 InvestmentFlowBlock_total(electricityBus_storage5_0) -= 110 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage5_1)_: --1 InvestmentFlowBlock_invest(electricityBus_storage5_1) --1 InvestmentFlowBlock_total(electricityBus_storage5_0) -+1 InvestmentFlowBlock_total(electricityBus_storage5_1) -+1 InvestmentFlowBlock_old(electricityBus_storage5_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage5_2)_: --1 InvestmentFlowBlock_invest(electricityBus_storage5_2) --1 InvestmentFlowBlock_total(electricityBus_storage5_1) -+1 InvestmentFlowBlock_total(electricityBus_storage5_2) -+1 InvestmentFlowBlock_old(electricityBus_storage5_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage5_electricityBus_0)_: -+1 InvestmentFlowBlock_old_end(storage5_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage5_electricityBus_1)_: -+1 InvestmentFlowBlock_old_end(storage5_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage5_electricityBus_2)_: -+1 InvestmentFlowBlock_old_end(storage5_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage5_0)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage5_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage5_1)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage5_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage5_2)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage5_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage5_electricityBus_0)_: -+1 InvestmentFlowBlock_old_exo(storage5_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage5_electricityBus_1)_: -+1 InvestmentFlowBlock_old_exo(storage5_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage5_electricityBus_2)_: -+1 InvestmentFlowBlock_old_exo(storage5_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage5_0)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage5_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage5_1)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage5_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage5_2)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage5_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage5_electricityBus_0)_: -+1 InvestmentFlowBlock_old(storage5_electricityBus_0) --1 InvestmentFlowBlock_old_end(storage5_electricityBus_0) --1 InvestmentFlowBlock_old_exo(storage5_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage5_electricityBus_1)_: -+1 InvestmentFlowBlock_old(storage5_electricityBus_1) --1 InvestmentFlowBlock_old_end(storage5_electricityBus_1) --1 InvestmentFlowBlock_old_exo(storage5_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage5_electricityBus_2)_: -+1 InvestmentFlowBlock_old(storage5_electricityBus_2) --1 InvestmentFlowBlock_old_end(storage5_electricityBus_2) --1 InvestmentFlowBlock_old_exo(storage5_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage5_0)_: -+1 InvestmentFlowBlock_old(electricityBus_storage5_0) --1 InvestmentFlowBlock_old_end(electricityBus_storage5_0) --1 InvestmentFlowBlock_old_exo(electricityBus_storage5_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage5_1)_: -+1 InvestmentFlowBlock_old(electricityBus_storage5_1) --1 InvestmentFlowBlock_old_end(electricityBus_storage5_1) --1 InvestmentFlowBlock_old_exo(electricityBus_storage5_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage5_2)_: -+1 InvestmentFlowBlock_old(electricityBus_storage5_2) --1 InvestmentFlowBlock_old_end(electricityBus_storage5_2) --1 InvestmentFlowBlock_old_exo(electricityBus_storage5_2) -= 0 - -c_u_InvestmentFlowBlock_max(storage5_electricityBus_0_0)_: -+1 flow(storage5_electricityBus_0) --1 InvestmentFlowBlock_total(storage5_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage5_electricityBus_0_1)_: -+1 flow(storage5_electricityBus_1) --1 InvestmentFlowBlock_total(storage5_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage5_electricityBus_1_2)_: -+1 flow(storage5_electricityBus_2) --1 InvestmentFlowBlock_total(storage5_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage5_electricityBus_1_3)_: -+1 flow(storage5_electricityBus_3) --1 InvestmentFlowBlock_total(storage5_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage5_electricityBus_2_4)_: -+1 flow(storage5_electricityBus_4) --1 InvestmentFlowBlock_total(storage5_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage5_electricityBus_2_5)_: -+1 flow(storage5_electricityBus_5) --1 InvestmentFlowBlock_total(storage5_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage5_0_0)_: -+1 flow(electricityBus_storage5_0) --1 InvestmentFlowBlock_total(electricityBus_storage5_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage5_0_1)_: -+1 flow(electricityBus_storage5_1) --1 InvestmentFlowBlock_total(electricityBus_storage5_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage5_1_2)_: -+1 flow(electricityBus_storage5_2) --1 InvestmentFlowBlock_total(electricityBus_storage5_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage5_1_3)_: -+1 flow(electricityBus_storage5_3) --1 InvestmentFlowBlock_total(electricityBus_storage5_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage5_2_4)_: -+1 flow(electricityBus_storage5_4) --1 InvestmentFlowBlock_total(electricityBus_storage5_2) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage5_2_5)_: -+1 flow(electricityBus_storage5_5) --1 InvestmentFlowBlock_total(electricityBus_storage5_2) -<= 0 - -c_e_GenericStorageBlock_losses(storage5_0)_: --1 GenericStorageBlock_storage_losses(storage5_0) -= 0 - -c_e_GenericStorageBlock_losses(storage5_1)_: --1 GenericStorageBlock_storage_losses(storage5_1) -= 0 - -c_e_GenericStorageBlock_losses(storage5_2)_: --1 GenericStorageBlock_storage_losses(storage5_2) -= 0 - -c_e_GenericStorageBlock_losses(storage5_3)_: --1 GenericStorageBlock_storage_losses(storage5_3) -= 0 - -c_e_GenericStorageBlock_losses(storage5_4)_: --1 GenericStorageBlock_storage_losses(storage5_4) -= 0 - -c_e_GenericStorageBlock_losses(storage5_5)_: --1 GenericStorageBlock_storage_losses(storage5_5) -= 0 - -c_e_GenericStorageBlock_balance(storage5_0)_: -+1 flow(electricityBus_storage5_0) --1 flow(storage5_electricityBus_0) --1 GenericStorageBlock_storage_losses(storage5_0) -+1 GenericStorageBlock_storage_content(storage5_0) --1 GenericStorageBlock_storage_content(storage5_1) -= 0 - -c_e_GenericStorageBlock_balance(storage5_1)_: -+1 flow(electricityBus_storage5_1) --1 flow(storage5_electricityBus_1) --1 GenericStorageBlock_storage_losses(storage5_1) -+1 GenericStorageBlock_storage_content(storage5_1) --1 GenericStorageBlock_storage_content(storage5_2) -= 0 - -c_e_GenericStorageBlock_balance(storage5_2)_: -+1 flow(electricityBus_storage5_2) --1 flow(storage5_electricityBus_2) --1 GenericStorageBlock_storage_losses(storage5_2) -+1 GenericStorageBlock_storage_content(storage5_2) --1 GenericStorageBlock_storage_content(storage5_3) -= 0 - -c_e_GenericStorageBlock_balance(storage5_3)_: -+1 flow(electricityBus_storage5_3) --1 flow(storage5_electricityBus_3) --1 GenericStorageBlock_storage_losses(storage5_3) -+1 GenericStorageBlock_storage_content(storage5_3) --1 GenericStorageBlock_storage_content(storage5_4) -= 0 - -c_e_GenericStorageBlock_balance(storage5_4)_: -+1 flow(electricityBus_storage5_4) --1 flow(storage5_electricityBus_4) --1 GenericStorageBlock_storage_losses(storage5_4) -+1 GenericStorageBlock_storage_content(storage5_4) --1 GenericStorageBlock_storage_content(storage5_5) -= 0 - -c_e_GenericStorageBlock_balance(storage5_5)_: -+1 flow(electricityBus_storage5_5) --1 flow(storage5_electricityBus_5) --1 GenericStorageBlock_storage_losses(storage5_5) -+1 GenericStorageBlock_storage_content(storage5_5) --1 GenericStorageBlock_storage_content(storage5_6) -= 0 - -c_e_GenericStorageBlock_balanced_cstr(storage5)_: --1 GenericStorageBlock_storage_content(storage5_0) -+1 GenericStorageBlock_storage_content(storage5_6) -= 0 - -c_e_GenericStorageBlock_power_coupled(storage5_0)_: -+1.1 InvestmentFlowBlock_total(storage5_electricityBus_0) --1 InvestmentFlowBlock_total(electricityBus_storage5_0) -= 0 - -c_e_GenericStorageBlock_power_coupled(storage5_1)_: -+1.1 InvestmentFlowBlock_total(storage5_electricityBus_1) --1 InvestmentFlowBlock_total(electricityBus_storage5_1) -= 0 - -c_e_GenericStorageBlock_power_coupled(storage5_2)_: -+1.1 InvestmentFlowBlock_total(storage5_electricityBus_2) --1 InvestmentFlowBlock_total(electricityBus_storage5_2) -= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(storage5_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_invest(storage5_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_invest(storage5_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage5_0) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage5_1) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage5_2) <= +inf - 0 <= flow(electricityBus_storage5_0) <= +inf - 0 <= flow(electricityBus_storage5_1) <= +inf - 0 <= flow(electricityBus_storage5_2) <= +inf - 0 <= flow(electricityBus_storage5_3) <= +inf - 0 <= flow(electricityBus_storage5_4) <= +inf - 0 <= flow(electricityBus_storage5_5) <= +inf - 0 <= flow(storage5_electricityBus_0) <= +inf - 0 <= flow(storage5_electricityBus_1) <= +inf - 0 <= flow(storage5_electricityBus_2) <= +inf - 0 <= flow(storage5_electricityBus_3) <= +inf - 0 <= flow(storage5_electricityBus_4) <= +inf - 0 <= flow(storage5_electricityBus_5) <= +inf - 0 <= InvestmentFlowBlock_total(storage5_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage5_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_total(storage5_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage5_0) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage5_1) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage5_2) <= +inf - 0 <= InvestmentFlowBlock_old(storage5_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old(storage5_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old(storage5_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage5_0) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage5_1) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage5_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage5_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage5_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage5_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage5_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage5_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage5_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage5_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage5_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage5_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage5_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage5_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage5_2) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage5_0) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage5_1) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage5_2) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage5_3) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage5_4) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage5_5) <= +inf - 0 <= GenericStorageBlock_storage_content(storage5_0) <= 10000 - 0 <= GenericStorageBlock_storage_content(storage5_1) <= 10000 - 0 <= GenericStorageBlock_storage_content(storage5_2) <= 10000 - 0 <= GenericStorageBlock_storage_content(storage5_3) <= 10000 - 0 <= GenericStorageBlock_storage_content(storage5_4) <= 10000 - 0 <= GenericStorageBlock_storage_content(storage5_5) <= 10000 - 0 <= GenericStorageBlock_storage_content(storage5_6) <= 10000 -end diff --git a/tests/lp_files/storage_invest_6.lp b/tests/lp_files/storage_invest_6.lp deleted file mode 100644 index 6969982c1..000000000 --- a/tests/lp_files/storage_invest_6.lp +++ /dev/null @@ -1,138 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+99 InvestmentFlowBlock_invest(electricityBus_storage6_0) -+145 GenericInvestmentStorageBlock_invest(storage6_0) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage6_0) -+1 flow(storage6_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage6_1) -+1 flow(storage6_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage6_2) -+1 flow(storage6_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage6_electricityBus_0)_: --1 InvestmentFlowBlock_invest(storage6_electricityBus_0) -+1 InvestmentFlowBlock_total(storage6_electricityBus_0) -= 100 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage6_0)_: --1 InvestmentFlowBlock_invest(electricityBus_storage6_0) -+1 InvestmentFlowBlock_total(electricityBus_storage6_0) -= 110 - -c_u_InvestmentFlowBlock_max(storage6_electricityBus_0_0)_: -+1 flow(storage6_electricityBus_0) --1 InvestmentFlowBlock_total(storage6_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage6_electricityBus_0_1)_: -+1 flow(storage6_electricityBus_1) --1 InvestmentFlowBlock_total(storage6_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage6_electricityBus_0_2)_: -+1 flow(storage6_electricityBus_2) --1 InvestmentFlowBlock_total(storage6_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage6_0_0)_: -+1 flow(electricityBus_storage6_0) --1 InvestmentFlowBlock_total(electricityBus_storage6_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage6_0_1)_: -+1 flow(electricityBus_storage6_1) --1 InvestmentFlowBlock_total(electricityBus_storage6_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage6_0_2)_: -+1 flow(electricityBus_storage6_2) --1 InvestmentFlowBlock_total(electricityBus_storage6_0) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage6_0)_: --1 GenericInvestmentStorageBlock_invest(storage6_0) -+1 GenericInvestmentStorageBlock_total(storage6_0) -= 10000 - -c_u_GenericInvestmentStorageBlock_init_content_limit(storage6)_: --1 GenericInvestmentStorageBlock_invest(storage6_0) -+1 GenericInvestmentStorageBlock_init_content(storage6) -<= 10000 - -c_e_GenericInvestmentStorageBlock_balance_first(storage6)_: --1 flow(electricityBus_storage6_0) -+1 flow(storage6_electricityBus_0) --1 GenericInvestmentStorageBlock_init_content(storage6) -+1 GenericInvestmentStorageBlock_storage_content(storage6_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage6_0_1)_: --1 flow(electricityBus_storage6_1) -+1 flow(storage6_electricityBus_1) --1 GenericInvestmentStorageBlock_storage_content(storage6_0) -+1 GenericInvestmentStorageBlock_storage_content(storage6_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage6_0_2)_: --1 flow(electricityBus_storage6_2) -+1 flow(storage6_electricityBus_2) --1 GenericInvestmentStorageBlock_storage_content(storage6_1) -+1 GenericInvestmentStorageBlock_storage_content(storage6_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balanced_cstr(storage6)_: --1 GenericInvestmentStorageBlock_init_content(storage6) -+1 GenericInvestmentStorageBlock_storage_content(storage6_2) -= 0 - -c_e_GenericInvestmentStorageBlock_power_coupled(storage6_0)_: -+1.1 InvestmentFlowBlock_total(storage6_electricityBus_0) --1 InvestmentFlowBlock_total(electricityBus_storage6_0) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage6_0_0)_: --1 GenericInvestmentStorageBlock_total(storage6_0) -+1 GenericInvestmentStorageBlock_storage_content(storage6_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage6_0_1)_: --1 GenericInvestmentStorageBlock_total(storage6_0) -+1 GenericInvestmentStorageBlock_storage_content(storage6_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage6_0_2)_: --1 GenericInvestmentStorageBlock_total(storage6_0) -+1 GenericInvestmentStorageBlock_storage_content(storage6_2) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(storage6_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage6_0) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage6_0) <= +inf - 0 <= flow(electricityBus_storage6_0) <= +inf - 0 <= flow(electricityBus_storage6_1) <= +inf - 0 <= flow(electricityBus_storage6_2) <= +inf - 0 <= flow(storage6_electricityBus_0) <= +inf - 0 <= flow(storage6_electricityBus_1) <= +inf - 0 <= flow(storage6_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_total(storage6_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage6_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage6_0) <= +inf - 0 <= GenericInvestmentStorageBlock_init_content(storage6) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage6_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage6_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage6_2) <= +inf -end diff --git a/tests/lp_files/storage_invest_6_multi_period.lp b/tests/lp_files/storage_invest_6_multi_period.lp deleted file mode 100644 index fac0a4278..000000000 --- a/tests/lp_files/storage_invest_6_multi_period.lp +++ /dev/null @@ -1,435 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+17.46051480474446 InvestmentFlowBlock_invest(electricityBus_storage6_0) -+11.524715692583884 InvestmentFlowBlock_invest(electricityBus_storage6_1) -+5.705304798308859 InvestmentFlowBlock_invest(electricityBus_storage6_2) -+25.57348127967623 GenericInvestmentStorageBlock_invest(storage6_0) -+16.879634095198618 GenericInvestmentStorageBlock_invest(storage6_1) -+8.35625450257358 GenericInvestmentStorageBlock_invest(storage6_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage6_0) -+1 flow(storage6_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage6_1) -+1 flow(storage6_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage6_2) -+1 flow(storage6_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: --1 flow(electricityBus_storage6_3) -+1 flow(storage6_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: --1 flow(electricityBus_storage6_4) -+1 flow(storage6_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: --1 flow(electricityBus_storage6_5) -+1 flow(storage6_electricityBus_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage6_electricityBus_0)_: --1 InvestmentFlowBlock_invest(storage6_electricityBus_0) -+1 InvestmentFlowBlock_total(storage6_electricityBus_0) -= 100 - -c_e_InvestmentFlowBlock_total_rule(storage6_electricityBus_1)_: --1 InvestmentFlowBlock_invest(storage6_electricityBus_1) --1 InvestmentFlowBlock_total(storage6_electricityBus_0) -+1 InvestmentFlowBlock_total(storage6_electricityBus_1) -+1 InvestmentFlowBlock_old(storage6_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage6_electricityBus_2)_: --1 InvestmentFlowBlock_invest(storage6_electricityBus_2) --1 InvestmentFlowBlock_total(storage6_electricityBus_1) -+1 InvestmentFlowBlock_total(storage6_electricityBus_2) -+1 InvestmentFlowBlock_old(storage6_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage6_0)_: --1 InvestmentFlowBlock_invest(electricityBus_storage6_0) -+1 InvestmentFlowBlock_total(electricityBus_storage6_0) -= 110 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage6_1)_: --1 InvestmentFlowBlock_invest(electricityBus_storage6_1) --1 InvestmentFlowBlock_total(electricityBus_storage6_0) -+1 InvestmentFlowBlock_total(electricityBus_storage6_1) -+1 InvestmentFlowBlock_old(electricityBus_storage6_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage6_2)_: --1 InvestmentFlowBlock_invest(electricityBus_storage6_2) --1 InvestmentFlowBlock_total(electricityBus_storage6_1) -+1 InvestmentFlowBlock_total(electricityBus_storage6_2) -+1 InvestmentFlowBlock_old(electricityBus_storage6_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage6_electricityBus_0)_: -+1 InvestmentFlowBlock_old_end(storage6_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage6_electricityBus_1)_: -+1 InvestmentFlowBlock_old_end(storage6_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage6_electricityBus_2)_: -+1 InvestmentFlowBlock_old_end(storage6_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage6_0)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage6_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage6_1)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage6_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage6_2)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage6_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage6_electricityBus_0)_: -+1 InvestmentFlowBlock_old_exo(storage6_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage6_electricityBus_1)_: -+1 InvestmentFlowBlock_old_exo(storage6_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage6_electricityBus_2)_: -+1 InvestmentFlowBlock_old_exo(storage6_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage6_0)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage6_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage6_1)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage6_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage6_2)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage6_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage6_electricityBus_0)_: -+1 InvestmentFlowBlock_old(storage6_electricityBus_0) --1 InvestmentFlowBlock_old_end(storage6_electricityBus_0) --1 InvestmentFlowBlock_old_exo(storage6_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage6_electricityBus_1)_: -+1 InvestmentFlowBlock_old(storage6_electricityBus_1) --1 InvestmentFlowBlock_old_end(storage6_electricityBus_1) --1 InvestmentFlowBlock_old_exo(storage6_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage6_electricityBus_2)_: -+1 InvestmentFlowBlock_old(storage6_electricityBus_2) --1 InvestmentFlowBlock_old_end(storage6_electricityBus_2) --1 InvestmentFlowBlock_old_exo(storage6_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage6_0)_: -+1 InvestmentFlowBlock_old(electricityBus_storage6_0) --1 InvestmentFlowBlock_old_end(electricityBus_storage6_0) --1 InvestmentFlowBlock_old_exo(electricityBus_storage6_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage6_1)_: -+1 InvestmentFlowBlock_old(electricityBus_storage6_1) --1 InvestmentFlowBlock_old_end(electricityBus_storage6_1) --1 InvestmentFlowBlock_old_exo(electricityBus_storage6_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage6_2)_: -+1 InvestmentFlowBlock_old(electricityBus_storage6_2) --1 InvestmentFlowBlock_old_end(electricityBus_storage6_2) --1 InvestmentFlowBlock_old_exo(electricityBus_storage6_2) -= 0 - -c_u_InvestmentFlowBlock_max(storage6_electricityBus_0_0)_: -+1 flow(storage6_electricityBus_0) --1 InvestmentFlowBlock_total(storage6_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage6_electricityBus_0_1)_: -+1 flow(storage6_electricityBus_1) --1 InvestmentFlowBlock_total(storage6_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage6_electricityBus_1_2)_: -+1 flow(storage6_electricityBus_2) --1 InvestmentFlowBlock_total(storage6_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage6_electricityBus_1_3)_: -+1 flow(storage6_electricityBus_3) --1 InvestmentFlowBlock_total(storage6_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage6_electricityBus_2_4)_: -+1 flow(storage6_electricityBus_4) --1 InvestmentFlowBlock_total(storage6_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage6_electricityBus_2_5)_: -+1 flow(storage6_electricityBus_5) --1 InvestmentFlowBlock_total(storage6_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage6_0_0)_: -+1 flow(electricityBus_storage6_0) --1 InvestmentFlowBlock_total(electricityBus_storage6_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage6_0_1)_: -+1 flow(electricityBus_storage6_1) --1 InvestmentFlowBlock_total(electricityBus_storage6_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage6_1_2)_: -+1 flow(electricityBus_storage6_2) --1 InvestmentFlowBlock_total(electricityBus_storage6_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage6_1_3)_: -+1 flow(electricityBus_storage6_3) --1 InvestmentFlowBlock_total(electricityBus_storage6_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage6_2_4)_: -+1 flow(electricityBus_storage6_4) --1 InvestmentFlowBlock_total(electricityBus_storage6_2) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage6_2_5)_: -+1 flow(electricityBus_storage6_5) --1 InvestmentFlowBlock_total(electricityBus_storage6_2) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage6_0)_: --1 GenericInvestmentStorageBlock_invest(storage6_0) -+1 GenericInvestmentStorageBlock_total(storage6_0) -= 1000 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage6_1)_: --1 GenericInvestmentStorageBlock_invest(storage6_1) --1 GenericInvestmentStorageBlock_total(storage6_0) -+1 GenericInvestmentStorageBlock_total(storage6_1) -+1 GenericInvestmentStorageBlock_old(storage6_1) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage6_2)_: --1 GenericInvestmentStorageBlock_invest(storage6_2) --1 GenericInvestmentStorageBlock_total(storage6_1) -+1 GenericInvestmentStorageBlock_total(storage6_2) -+1 GenericInvestmentStorageBlock_old(storage6_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage6_0)_: -+1 GenericInvestmentStorageBlock_old_end(storage6_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage6_1)_: -+1 GenericInvestmentStorageBlock_old_end(storage6_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage6_2)_: -+1 GenericInvestmentStorageBlock_old_end(storage6_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage6_0)_: -+1 GenericInvestmentStorageBlock_old_exo(storage6_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage6_1)_: -+1 GenericInvestmentStorageBlock_old_exo(storage6_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage6_2)_: -+1 GenericInvestmentStorageBlock_old_exo(storage6_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage6_0)_: -+1 GenericInvestmentStorageBlock_old(storage6_0) --1 GenericInvestmentStorageBlock_old_end(storage6_0) --1 GenericInvestmentStorageBlock_old_exo(storage6_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage6_1)_: -+1 GenericInvestmentStorageBlock_old(storage6_1) --1 GenericInvestmentStorageBlock_old_end(storage6_1) --1 GenericInvestmentStorageBlock_old_exo(storage6_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage6_2)_: -+1 GenericInvestmentStorageBlock_old(storage6_2) --1 GenericInvestmentStorageBlock_old_end(storage6_2) --1 GenericInvestmentStorageBlock_old_exo(storage6_2) -= 0 - -c_e_GenericInvestmentStorageBlock_initially_empty(storage6_0)_: -+1 GenericInvestmentStorageBlock_storage_content(storage6_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage6_0_1)_: --1 flow(electricityBus_storage6_1) -+1 flow(storage6_electricityBus_1) --1 GenericInvestmentStorageBlock_storage_content(storage6_0) -+1 GenericInvestmentStorageBlock_storage_content(storage6_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage6_1_2)_: --1 flow(electricityBus_storage6_2) -+1 flow(storage6_electricityBus_2) --1 GenericInvestmentStorageBlock_storage_content(storage6_1) -+1 GenericInvestmentStorageBlock_storage_content(storage6_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage6_1_3)_: --1 flow(electricityBus_storage6_3) -+1 flow(storage6_electricityBus_3) --1 GenericInvestmentStorageBlock_storage_content(storage6_2) -+1 GenericInvestmentStorageBlock_storage_content(storage6_3) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage6_2_4)_: --1 flow(electricityBus_storage6_4) -+1 flow(storage6_electricityBus_4) --1 GenericInvestmentStorageBlock_storage_content(storage6_3) -+1 GenericInvestmentStorageBlock_storage_content(storage6_4) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage6_2_5)_: --1 flow(electricityBus_storage6_5) -+1 flow(storage6_electricityBus_5) --1 GenericInvestmentStorageBlock_storage_content(storage6_4) -+1 GenericInvestmentStorageBlock_storage_content(storage6_5) -= 0 - -c_e_GenericInvestmentStorageBlock_power_coupled(storage6_0)_: -+1.1 InvestmentFlowBlock_total(storage6_electricityBus_0) --1 InvestmentFlowBlock_total(electricityBus_storage6_0) -= 0 - -c_e_GenericInvestmentStorageBlock_power_coupled(storage6_1)_: -+1.1 InvestmentFlowBlock_total(storage6_electricityBus_1) --1 InvestmentFlowBlock_total(electricityBus_storage6_1) -= 0 - -c_e_GenericInvestmentStorageBlock_power_coupled(storage6_2)_: -+1.1 InvestmentFlowBlock_total(storage6_electricityBus_2) --1 InvestmentFlowBlock_total(electricityBus_storage6_2) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage6_0_0)_: --1 GenericInvestmentStorageBlock_total(storage6_0) -+1 GenericInvestmentStorageBlock_storage_content(storage6_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage6_0_1)_: --1 GenericInvestmentStorageBlock_total(storage6_0) -+1 GenericInvestmentStorageBlock_storage_content(storage6_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage6_1_2)_: --1 GenericInvestmentStorageBlock_total(storage6_1) -+1 GenericInvestmentStorageBlock_storage_content(storage6_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage6_1_3)_: --1 GenericInvestmentStorageBlock_total(storage6_1) -+1 GenericInvestmentStorageBlock_storage_content(storage6_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage6_2_4)_: --1 GenericInvestmentStorageBlock_total(storage6_2) -+1 GenericInvestmentStorageBlock_storage_content(storage6_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage6_2_5)_: --1 GenericInvestmentStorageBlock_total(storage6_2) -+1 GenericInvestmentStorageBlock_storage_content(storage6_5) -<= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(storage6_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_invest(storage6_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_invest(storage6_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage6_0) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage6_1) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage6_2) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage6_0) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage6_1) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage6_2) <= +inf - 0 <= flow(electricityBus_storage6_0) <= +inf - 0 <= flow(electricityBus_storage6_1) <= +inf - 0 <= flow(electricityBus_storage6_2) <= +inf - 0 <= flow(electricityBus_storage6_3) <= +inf - 0 <= flow(electricityBus_storage6_4) <= +inf - 0 <= flow(electricityBus_storage6_5) <= +inf - 0 <= flow(storage6_electricityBus_0) <= +inf - 0 <= flow(storage6_electricityBus_1) <= +inf - 0 <= flow(storage6_electricityBus_2) <= +inf - 0 <= flow(storage6_electricityBus_3) <= +inf - 0 <= flow(storage6_electricityBus_4) <= +inf - 0 <= flow(storage6_electricityBus_5) <= +inf - 0 <= InvestmentFlowBlock_total(storage6_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage6_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_total(storage6_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage6_0) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage6_1) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage6_2) <= +inf - 0 <= InvestmentFlowBlock_old(storage6_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old(storage6_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old(storage6_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage6_0) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage6_1) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage6_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage6_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage6_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage6_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage6_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage6_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage6_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage6_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage6_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage6_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage6_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage6_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage6_2) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage6_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage6_1) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage6_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage6_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage6_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage6_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage6_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage6_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage6_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage6_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage6_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage6_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage6_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage6_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage6_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage6_3) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage6_4) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage6_5) <= +inf -end diff --git a/tests/lp_files/storage_invest_all_nonconvex.lp b/tests/lp_files/storage_invest_all_nonconvex.lp deleted file mode 100644 index 9b92cf049..000000000 --- a/tests/lp_files/storage_invest_all_nonconvex.lp +++ /dev/null @@ -1,174 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+10 InvestmentFlowBlock_invest(bus1_storage_all_nonconvex_0) -+10 InvestmentFlowBlock_invest(storage_all_nonconvex_bus1_0) -+10 InvestmentFlowBlock_invest_status(bus1_storage_all_nonconvex_0) -+15 InvestmentFlowBlock_invest_status(storage_all_nonconvex_bus1_0) -+20 GenericInvestmentStorageBlock_invest(storage_all_nonconvex_0) -+30 GenericInvestmentStorageBlock_invest_status(storage_all_nonconvex_0) - -s.t. - -c_e_BusBlock_balance(bus1_0)_: --1 flow(bus1_storage_all_nonconvex_0) -+1 flow(storage_all_nonconvex_bus1_0) -= 0 - -c_e_BusBlock_balance(bus1_1)_: --1 flow(bus1_storage_all_nonconvex_1) -+1 flow(storage_all_nonconvex_bus1_1) -= 0 - -c_e_BusBlock_balance(bus1_2)_: --1 flow(bus1_storage_all_nonconvex_2) -+1 flow(storage_all_nonconvex_bus1_2) -= 0 - -c_u_InvestmentFlowBlock_minimum_rule(bus1_storage_all_nonconvex_0)_: --1 InvestmentFlowBlock_invest(bus1_storage_all_nonconvex_0) -+5 InvestmentFlowBlock_invest_status(bus1_storage_all_nonconvex_0) -<= 0 - -c_u_InvestmentFlowBlock_minimum_rule(storage_all_nonconvex_bus1_0)_: --1 InvestmentFlowBlock_invest(storage_all_nonconvex_bus1_0) -+8 InvestmentFlowBlock_invest_status(storage_all_nonconvex_bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(bus1_storage_all_nonconvex_0)_: -+1 InvestmentFlowBlock_invest(bus1_storage_all_nonconvex_0) --30 InvestmentFlowBlock_invest_status(bus1_storage_all_nonconvex_0) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(storage_all_nonconvex_bus1_0)_: -+1 InvestmentFlowBlock_invest(storage_all_nonconvex_bus1_0) --20 InvestmentFlowBlock_invest_status(storage_all_nonconvex_bus1_0) -<= 0 - -c_e_InvestmentFlowBlock_total_rule(bus1_storage_all_nonconvex_0)_: --1 InvestmentFlowBlock_invest(bus1_storage_all_nonconvex_0) -+1 InvestmentFlowBlock_total(bus1_storage_all_nonconvex_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_all_nonconvex_bus1_0)_: --1 InvestmentFlowBlock_invest(storage_all_nonconvex_bus1_0) -+1 InvestmentFlowBlock_total(storage_all_nonconvex_bus1_0) -= 0 - -c_u_InvestmentFlowBlock_max(bus1_storage_all_nonconvex_0_0)_: -+1 flow(bus1_storage_all_nonconvex_0) --1 InvestmentFlowBlock_total(bus1_storage_all_nonconvex_0) -<= 0 - -c_u_InvestmentFlowBlock_max(bus1_storage_all_nonconvex_0_1)_: -+1 flow(bus1_storage_all_nonconvex_1) --1 InvestmentFlowBlock_total(bus1_storage_all_nonconvex_0) -<= 0 - -c_u_InvestmentFlowBlock_max(bus1_storage_all_nonconvex_0_2)_: -+1 flow(bus1_storage_all_nonconvex_2) --1 InvestmentFlowBlock_total(bus1_storage_all_nonconvex_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_all_nonconvex_bus1_0_0)_: -+1 flow(storage_all_nonconvex_bus1_0) --1 InvestmentFlowBlock_total(storage_all_nonconvex_bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_all_nonconvex_bus1_0_1)_: -+1 flow(storage_all_nonconvex_bus1_1) --1 InvestmentFlowBlock_total(storage_all_nonconvex_bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_all_nonconvex_bus1_0_2)_: -+1 flow(storage_all_nonconvex_bus1_2) --1 InvestmentFlowBlock_total(storage_all_nonconvex_bus1_0) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_all_nonconvex_0)_: --1 GenericInvestmentStorageBlock_invest(storage_all_nonconvex_0) -+1 GenericInvestmentStorageBlock_total(storage_all_nonconvex_0) -= 0 - -c_u_GenericInvestmentStorageBlock_init_content_limit(storage_all_nonconvex)_: --1 GenericInvestmentStorageBlock_invest(storage_all_nonconvex_0) -+1 GenericInvestmentStorageBlock_init_content(storage_all_nonconvex) -<= 0 - -c_e_GenericInvestmentStorageBlock_balance_first(storage_all_nonconvex)_: --1 flow(bus1_storage_all_nonconvex_0) -+1 flow(storage_all_nonconvex_bus1_0) --1 GenericInvestmentStorageBlock_init_content(storage_all_nonconvex) -+1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_all_nonconvex_0_1)_: --1 flow(bus1_storage_all_nonconvex_1) -+1 flow(storage_all_nonconvex_bus1_1) --1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_all_nonconvex_0_2)_: --1 flow(bus1_storage_all_nonconvex_2) -+1 flow(storage_all_nonconvex_bus1_2) --1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balanced_cstr(storage_all_nonconvex)_: --1 GenericInvestmentStorageBlock_init_content(storage_all_nonconvex) -+1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_2) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_all_nonconvex_0_0)_: --1 GenericInvestmentStorageBlock_total(storage_all_nonconvex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_all_nonconvex_0_1)_: --1 GenericInvestmentStorageBlock_total(storage_all_nonconvex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_all_nonconvex_0_2)_: --1 GenericInvestmentStorageBlock_total(storage_all_nonconvex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_2) -<= 0 - -c_l_GenericInvestmentStorageBlock_limit_max(storage_all_nonconvex_0)_: --1 GenericInvestmentStorageBlock_invest(storage_all_nonconvex_0) -+100 GenericInvestmentStorageBlock_invest_status(storage_all_nonconvex_0) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_min(storage_all_nonconvex_0)_: -+1 GenericInvestmentStorageBlock_invest(storage_all_nonconvex_0) --20 GenericInvestmentStorageBlock_invest_status(storage_all_nonconvex_0) ->= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(bus1_storage_all_nonconvex_0) <= 30 - 0 <= InvestmentFlowBlock_invest(storage_all_nonconvex_bus1_0) <= 20 - 0 <= InvestmentFlowBlock_invest_status(bus1_storage_all_nonconvex_0) <= 1 - 0 <= InvestmentFlowBlock_invest_status(storage_all_nonconvex_bus1_0) <= 1 - 0 <= GenericInvestmentStorageBlock_invest(storage_all_nonconvex_0) <= 100 - 0 <= GenericInvestmentStorageBlock_invest_status(storage_all_nonconvex_0) <= 1 - 0 <= flow(bus1_storage_all_nonconvex_0) <= +inf - 0 <= flow(bus1_storage_all_nonconvex_1) <= +inf - 0 <= flow(bus1_storage_all_nonconvex_2) <= +inf - 0 <= flow(storage_all_nonconvex_bus1_0) <= +inf - 0 <= flow(storage_all_nonconvex_bus1_1) <= +inf - 0 <= flow(storage_all_nonconvex_bus1_2) <= +inf - 0 <= InvestmentFlowBlock_total(bus1_storage_all_nonconvex_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage_all_nonconvex_bus1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_all_nonconvex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_init_content(storage_all_nonconvex) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_2) <= +inf -binary - InvestmentFlowBlock_invest_status(bus1_storage_all_nonconvex_0) - InvestmentFlowBlock_invest_status(storage_all_nonconvex_bus1_0) - GenericInvestmentStorageBlock_invest_status(storage_all_nonconvex_0) -end diff --git a/tests/lp_files/storage_invest_all_nonconvex_multi_period.lp b/tests/lp_files/storage_invest_all_nonconvex_multi_period.lp deleted file mode 100644 index 15fbce66f..000000000 --- a/tests/lp_files/storage_invest_all_nonconvex_multi_period.lp +++ /dev/null @@ -1,541 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+1.7636883641156018 InvestmentFlowBlock_invest(bus1_storage_all_nonconvex_0) -+1.164112696220594 InvestmentFlowBlock_invest(bus1_storage_all_nonconvex_1) -+0.5762934139705919 InvestmentFlowBlock_invest(bus1_storage_all_nonconvex_2) -+1.7636883641156018 InvestmentFlowBlock_invest(storage_all_nonconvex_bus1_0) -+1.164112696220594 InvestmentFlowBlock_invest(storage_all_nonconvex_bus1_1) -+0.5762934139705919 InvestmentFlowBlock_invest(storage_all_nonconvex_bus1_2) -+10 InvestmentFlowBlock_invest_status(bus1_storage_all_nonconvex_0) -+9.80392156862745 InvestmentFlowBlock_invest_status(bus1_storage_all_nonconvex_1) -+9.611687812379854 InvestmentFlowBlock_invest_status(bus1_storage_all_nonconvex_2) -+15 InvestmentFlowBlock_invest_status(storage_all_nonconvex_bus1_0) -+14.705882352941176 InvestmentFlowBlock_invest_status(storage_all_nonconvex_bus1_1) -+14.41753171856978 InvestmentFlowBlock_invest_status(storage_all_nonconvex_bus1_2) -+3.5273767282312036 GenericInvestmentStorageBlock_invest(storage_all_nonconvex_0) -+2.328225392441188 GenericInvestmentStorageBlock_invest(storage_all_nonconvex_1) -+1.1525868279411837 GenericInvestmentStorageBlock_invest(storage_all_nonconvex_2) -+30 GenericInvestmentStorageBlock_invest_status(storage_all_nonconvex_0) -+29.41176470588235 GenericInvestmentStorageBlock_invest_status(storage_all_nonconvex_1) -+28.83506343713956 GenericInvestmentStorageBlock_invest_status(storage_all_nonconvex_2) - -s.t. - -c_e_BusBlock_balance(bus1_0)_: --1 flow(bus1_storage_all_nonconvex_0) -+1 flow(storage_all_nonconvex_bus1_0) -= 0 - -c_e_BusBlock_balance(bus1_1)_: --1 flow(bus1_storage_all_nonconvex_1) -+1 flow(storage_all_nonconvex_bus1_1) -= 0 - -c_e_BusBlock_balance(bus1_2)_: --1 flow(bus1_storage_all_nonconvex_2) -+1 flow(storage_all_nonconvex_bus1_2) -= 0 - -c_e_BusBlock_balance(bus1_3)_: --1 flow(bus1_storage_all_nonconvex_3) -+1 flow(storage_all_nonconvex_bus1_3) -= 0 - -c_e_BusBlock_balance(bus1_4)_: --1 flow(bus1_storage_all_nonconvex_4) -+1 flow(storage_all_nonconvex_bus1_4) -= 0 - -c_e_BusBlock_balance(bus1_5)_: --1 flow(bus1_storage_all_nonconvex_5) -+1 flow(storage_all_nonconvex_bus1_5) -= 0 - -c_u_InvestmentFlowBlock_minimum_rule(bus1_storage_all_nonconvex_0)_: --1 InvestmentFlowBlock_invest(bus1_storage_all_nonconvex_0) -+5 InvestmentFlowBlock_invest_status(bus1_storage_all_nonconvex_0) -<= 0 - -c_u_InvestmentFlowBlock_minimum_rule(bus1_storage_all_nonconvex_1)_: --1 InvestmentFlowBlock_invest(bus1_storage_all_nonconvex_1) -+5 InvestmentFlowBlock_invest_status(bus1_storage_all_nonconvex_1) -<= 0 - -c_u_InvestmentFlowBlock_minimum_rule(bus1_storage_all_nonconvex_2)_: --1 InvestmentFlowBlock_invest(bus1_storage_all_nonconvex_2) -+5 InvestmentFlowBlock_invest_status(bus1_storage_all_nonconvex_2) -<= 0 - -c_u_InvestmentFlowBlock_minimum_rule(storage_all_nonconvex_bus1_0)_: --1 InvestmentFlowBlock_invest(storage_all_nonconvex_bus1_0) -+8 InvestmentFlowBlock_invest_status(storage_all_nonconvex_bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_minimum_rule(storage_all_nonconvex_bus1_1)_: --1 InvestmentFlowBlock_invest(storage_all_nonconvex_bus1_1) -+8 InvestmentFlowBlock_invest_status(storage_all_nonconvex_bus1_1) -<= 0 - -c_u_InvestmentFlowBlock_minimum_rule(storage_all_nonconvex_bus1_2)_: --1 InvestmentFlowBlock_invest(storage_all_nonconvex_bus1_2) -+8 InvestmentFlowBlock_invest_status(storage_all_nonconvex_bus1_2) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(bus1_storage_all_nonconvex_0)_: -+1 InvestmentFlowBlock_invest(bus1_storage_all_nonconvex_0) --30 InvestmentFlowBlock_invest_status(bus1_storage_all_nonconvex_0) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(bus1_storage_all_nonconvex_1)_: -+1 InvestmentFlowBlock_invest(bus1_storage_all_nonconvex_1) --30 InvestmentFlowBlock_invest_status(bus1_storage_all_nonconvex_1) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(bus1_storage_all_nonconvex_2)_: -+1 InvestmentFlowBlock_invest(bus1_storage_all_nonconvex_2) --30 InvestmentFlowBlock_invest_status(bus1_storage_all_nonconvex_2) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(storage_all_nonconvex_bus1_0)_: -+1 InvestmentFlowBlock_invest(storage_all_nonconvex_bus1_0) --20 InvestmentFlowBlock_invest_status(storage_all_nonconvex_bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(storage_all_nonconvex_bus1_1)_: -+1 InvestmentFlowBlock_invest(storage_all_nonconvex_bus1_1) --20 InvestmentFlowBlock_invest_status(storage_all_nonconvex_bus1_1) -<= 0 - -c_u_InvestmentFlowBlock_maximum_rule(storage_all_nonconvex_bus1_2)_: -+1 InvestmentFlowBlock_invest(storage_all_nonconvex_bus1_2) --20 InvestmentFlowBlock_invest_status(storage_all_nonconvex_bus1_2) -<= 0 - -c_e_InvestmentFlowBlock_total_rule(bus1_storage_all_nonconvex_0)_: --1 InvestmentFlowBlock_invest(bus1_storage_all_nonconvex_0) -+1 InvestmentFlowBlock_total(bus1_storage_all_nonconvex_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(bus1_storage_all_nonconvex_1)_: --1 InvestmentFlowBlock_invest(bus1_storage_all_nonconvex_1) --1 InvestmentFlowBlock_total(bus1_storage_all_nonconvex_0) -+1 InvestmentFlowBlock_total(bus1_storage_all_nonconvex_1) -+1 InvestmentFlowBlock_old(bus1_storage_all_nonconvex_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(bus1_storage_all_nonconvex_2)_: --1 InvestmentFlowBlock_invest(bus1_storage_all_nonconvex_2) --1 InvestmentFlowBlock_total(bus1_storage_all_nonconvex_1) -+1 InvestmentFlowBlock_total(bus1_storage_all_nonconvex_2) -+1 InvestmentFlowBlock_old(bus1_storage_all_nonconvex_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_all_nonconvex_bus1_0)_: --1 InvestmentFlowBlock_invest(storage_all_nonconvex_bus1_0) -+1 InvestmentFlowBlock_total(storage_all_nonconvex_bus1_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_all_nonconvex_bus1_1)_: --1 InvestmentFlowBlock_invest(storage_all_nonconvex_bus1_1) --1 InvestmentFlowBlock_total(storage_all_nonconvex_bus1_0) -+1 InvestmentFlowBlock_total(storage_all_nonconvex_bus1_1) -+1 InvestmentFlowBlock_old(storage_all_nonconvex_bus1_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_all_nonconvex_bus1_2)_: --1 InvestmentFlowBlock_invest(storage_all_nonconvex_bus1_2) --1 InvestmentFlowBlock_total(storage_all_nonconvex_bus1_1) -+1 InvestmentFlowBlock_total(storage_all_nonconvex_bus1_2) -+1 InvestmentFlowBlock_old(storage_all_nonconvex_bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(bus1_storage_all_nonconvex_0)_: -+1 InvestmentFlowBlock_old_end(bus1_storage_all_nonconvex_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(bus1_storage_all_nonconvex_1)_: -+1 InvestmentFlowBlock_old_end(bus1_storage_all_nonconvex_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(bus1_storage_all_nonconvex_2)_: -+1 InvestmentFlowBlock_old_end(bus1_storage_all_nonconvex_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_all_nonconvex_bus1_0)_: -+1 InvestmentFlowBlock_old_end(storage_all_nonconvex_bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_all_nonconvex_bus1_1)_: -+1 InvestmentFlowBlock_old_end(storage_all_nonconvex_bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_all_nonconvex_bus1_2)_: -+1 InvestmentFlowBlock_old_end(storage_all_nonconvex_bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(bus1_storage_all_nonconvex_0)_: -+1 InvestmentFlowBlock_old_exo(bus1_storage_all_nonconvex_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(bus1_storage_all_nonconvex_1)_: -+1 InvestmentFlowBlock_old_exo(bus1_storage_all_nonconvex_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(bus1_storage_all_nonconvex_2)_: -+1 InvestmentFlowBlock_old_exo(bus1_storage_all_nonconvex_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_all_nonconvex_bus1_0)_: -+1 InvestmentFlowBlock_old_exo(storage_all_nonconvex_bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_all_nonconvex_bus1_1)_: -+1 InvestmentFlowBlock_old_exo(storage_all_nonconvex_bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_all_nonconvex_bus1_2)_: -+1 InvestmentFlowBlock_old_exo(storage_all_nonconvex_bus1_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(bus1_storage_all_nonconvex_0)_: -+1 InvestmentFlowBlock_old(bus1_storage_all_nonconvex_0) --1 InvestmentFlowBlock_old_end(bus1_storage_all_nonconvex_0) --1 InvestmentFlowBlock_old_exo(bus1_storage_all_nonconvex_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(bus1_storage_all_nonconvex_1)_: -+1 InvestmentFlowBlock_old(bus1_storage_all_nonconvex_1) --1 InvestmentFlowBlock_old_end(bus1_storage_all_nonconvex_1) --1 InvestmentFlowBlock_old_exo(bus1_storage_all_nonconvex_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(bus1_storage_all_nonconvex_2)_: -+1 InvestmentFlowBlock_old(bus1_storage_all_nonconvex_2) --1 InvestmentFlowBlock_old_end(bus1_storage_all_nonconvex_2) --1 InvestmentFlowBlock_old_exo(bus1_storage_all_nonconvex_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_all_nonconvex_bus1_0)_: -+1 InvestmentFlowBlock_old(storage_all_nonconvex_bus1_0) --1 InvestmentFlowBlock_old_end(storage_all_nonconvex_bus1_0) --1 InvestmentFlowBlock_old_exo(storage_all_nonconvex_bus1_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_all_nonconvex_bus1_1)_: -+1 InvestmentFlowBlock_old(storage_all_nonconvex_bus1_1) --1 InvestmentFlowBlock_old_end(storage_all_nonconvex_bus1_1) --1 InvestmentFlowBlock_old_exo(storage_all_nonconvex_bus1_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_all_nonconvex_bus1_2)_: -+1 InvestmentFlowBlock_old(storage_all_nonconvex_bus1_2) --1 InvestmentFlowBlock_old_end(storage_all_nonconvex_bus1_2) --1 InvestmentFlowBlock_old_exo(storage_all_nonconvex_bus1_2) -= 0 - -c_u_InvestmentFlowBlock_max(bus1_storage_all_nonconvex_0_0)_: -+1 flow(bus1_storage_all_nonconvex_0) --1 InvestmentFlowBlock_total(bus1_storage_all_nonconvex_0) -<= 0 - -c_u_InvestmentFlowBlock_max(bus1_storage_all_nonconvex_0_1)_: -+1 flow(bus1_storage_all_nonconvex_1) --1 InvestmentFlowBlock_total(bus1_storage_all_nonconvex_0) -<= 0 - -c_u_InvestmentFlowBlock_max(bus1_storage_all_nonconvex_1_2)_: -+1 flow(bus1_storage_all_nonconvex_2) --1 InvestmentFlowBlock_total(bus1_storage_all_nonconvex_1) -<= 0 - -c_u_InvestmentFlowBlock_max(bus1_storage_all_nonconvex_1_3)_: -+1 flow(bus1_storage_all_nonconvex_3) --1 InvestmentFlowBlock_total(bus1_storage_all_nonconvex_1) -<= 0 - -c_u_InvestmentFlowBlock_max(bus1_storage_all_nonconvex_2_4)_: -+1 flow(bus1_storage_all_nonconvex_4) --1 InvestmentFlowBlock_total(bus1_storage_all_nonconvex_2) -<= 0 - -c_u_InvestmentFlowBlock_max(bus1_storage_all_nonconvex_2_5)_: -+1 flow(bus1_storage_all_nonconvex_5) --1 InvestmentFlowBlock_total(bus1_storage_all_nonconvex_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_all_nonconvex_bus1_0_0)_: -+1 flow(storage_all_nonconvex_bus1_0) --1 InvestmentFlowBlock_total(storage_all_nonconvex_bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_all_nonconvex_bus1_0_1)_: -+1 flow(storage_all_nonconvex_bus1_1) --1 InvestmentFlowBlock_total(storage_all_nonconvex_bus1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_all_nonconvex_bus1_1_2)_: -+1 flow(storage_all_nonconvex_bus1_2) --1 InvestmentFlowBlock_total(storage_all_nonconvex_bus1_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_all_nonconvex_bus1_1_3)_: -+1 flow(storage_all_nonconvex_bus1_3) --1 InvestmentFlowBlock_total(storage_all_nonconvex_bus1_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_all_nonconvex_bus1_2_4)_: -+1 flow(storage_all_nonconvex_bus1_4) --1 InvestmentFlowBlock_total(storage_all_nonconvex_bus1_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_all_nonconvex_bus1_2_5)_: -+1 flow(storage_all_nonconvex_bus1_5) --1 InvestmentFlowBlock_total(storage_all_nonconvex_bus1_2) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_all_nonconvex_0)_: --1 GenericInvestmentStorageBlock_invest(storage_all_nonconvex_0) -+1 GenericInvestmentStorageBlock_total(storage_all_nonconvex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_all_nonconvex_1)_: --1 GenericInvestmentStorageBlock_invest(storage_all_nonconvex_1) --1 GenericInvestmentStorageBlock_total(storage_all_nonconvex_0) -+1 GenericInvestmentStorageBlock_total(storage_all_nonconvex_1) -+1 GenericInvestmentStorageBlock_old(storage_all_nonconvex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_all_nonconvex_2)_: --1 GenericInvestmentStorageBlock_invest(storage_all_nonconvex_2) --1 GenericInvestmentStorageBlock_total(storage_all_nonconvex_1) -+1 GenericInvestmentStorageBlock_total(storage_all_nonconvex_2) -+1 GenericInvestmentStorageBlock_old(storage_all_nonconvex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_all_nonconvex_0)_: -+1 GenericInvestmentStorageBlock_old_end(storage_all_nonconvex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_all_nonconvex_1)_: -+1 GenericInvestmentStorageBlock_old_end(storage_all_nonconvex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_all_nonconvex_2)_: -+1 GenericInvestmentStorageBlock_old_end(storage_all_nonconvex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_all_nonconvex_0)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_all_nonconvex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_all_nonconvex_1)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_all_nonconvex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_all_nonconvex_2)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_all_nonconvex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_all_nonconvex_0)_: -+1 GenericInvestmentStorageBlock_old(storage_all_nonconvex_0) --1 GenericInvestmentStorageBlock_old_end(storage_all_nonconvex_0) --1 GenericInvestmentStorageBlock_old_exo(storage_all_nonconvex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_all_nonconvex_1)_: -+1 GenericInvestmentStorageBlock_old(storage_all_nonconvex_1) --1 GenericInvestmentStorageBlock_old_end(storage_all_nonconvex_1) --1 GenericInvestmentStorageBlock_old_exo(storage_all_nonconvex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_all_nonconvex_2)_: -+1 GenericInvestmentStorageBlock_old(storage_all_nonconvex_2) --1 GenericInvestmentStorageBlock_old_end(storage_all_nonconvex_2) --1 GenericInvestmentStorageBlock_old_exo(storage_all_nonconvex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_initially_empty(storage_all_nonconvex_0)_: -+1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_all_nonconvex_0_1)_: --1 flow(bus1_storage_all_nonconvex_1) -+1 flow(storage_all_nonconvex_bus1_1) --1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_all_nonconvex_1_2)_: --1 flow(bus1_storage_all_nonconvex_2) -+1 flow(storage_all_nonconvex_bus1_2) --1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_all_nonconvex_1_3)_: --1 flow(bus1_storage_all_nonconvex_3) -+1 flow(storage_all_nonconvex_bus1_3) --1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_3) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_all_nonconvex_2_4)_: --1 flow(bus1_storage_all_nonconvex_4) -+1 flow(storage_all_nonconvex_bus1_4) --1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_3) -+1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_4) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_all_nonconvex_2_5)_: --1 flow(bus1_storage_all_nonconvex_5) -+1 flow(storage_all_nonconvex_bus1_5) --1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_4) -+1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_5) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_all_nonconvex_0_0)_: --1 GenericInvestmentStorageBlock_total(storage_all_nonconvex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_all_nonconvex_0_1)_: --1 GenericInvestmentStorageBlock_total(storage_all_nonconvex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_all_nonconvex_1_2)_: --1 GenericInvestmentStorageBlock_total(storage_all_nonconvex_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_all_nonconvex_1_3)_: --1 GenericInvestmentStorageBlock_total(storage_all_nonconvex_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_all_nonconvex_2_4)_: --1 GenericInvestmentStorageBlock_total(storage_all_nonconvex_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_all_nonconvex_2_5)_: --1 GenericInvestmentStorageBlock_total(storage_all_nonconvex_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_5) -<= 0 - -c_l_GenericInvestmentStorageBlock_limit_max(storage_all_nonconvex_0)_: --1 GenericInvestmentStorageBlock_invest(storage_all_nonconvex_0) -+100 GenericInvestmentStorageBlock_invest_status(storage_all_nonconvex_0) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_max(storage_all_nonconvex_1)_: --1 GenericInvestmentStorageBlock_invest(storage_all_nonconvex_1) -+100 GenericInvestmentStorageBlock_invest_status(storage_all_nonconvex_1) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_max(storage_all_nonconvex_2)_: --1 GenericInvestmentStorageBlock_invest(storage_all_nonconvex_2) -+100 GenericInvestmentStorageBlock_invest_status(storage_all_nonconvex_2) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_min(storage_all_nonconvex_0)_: -+1 GenericInvestmentStorageBlock_invest(storage_all_nonconvex_0) --20 GenericInvestmentStorageBlock_invest_status(storage_all_nonconvex_0) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_min(storage_all_nonconvex_1)_: -+1 GenericInvestmentStorageBlock_invest(storage_all_nonconvex_1) --20 GenericInvestmentStorageBlock_invest_status(storage_all_nonconvex_1) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_min(storage_all_nonconvex_2)_: -+1 GenericInvestmentStorageBlock_invest(storage_all_nonconvex_2) --20 GenericInvestmentStorageBlock_invest_status(storage_all_nonconvex_2) ->= 0 - -bounds - 0 <= InvestmentFlowBlock_invest(bus1_storage_all_nonconvex_0) <= 30 - 0 <= InvestmentFlowBlock_invest(bus1_storage_all_nonconvex_1) <= 30 - 0 <= InvestmentFlowBlock_invest(bus1_storage_all_nonconvex_2) <= 30 - 0 <= InvestmentFlowBlock_invest(storage_all_nonconvex_bus1_0) <= 20 - 0 <= InvestmentFlowBlock_invest(storage_all_nonconvex_bus1_1) <= 20 - 0 <= InvestmentFlowBlock_invest(storage_all_nonconvex_bus1_2) <= 20 - 0 <= InvestmentFlowBlock_invest_status(bus1_storage_all_nonconvex_0) <= 1 - 0 <= InvestmentFlowBlock_invest_status(bus1_storage_all_nonconvex_1) <= 1 - 0 <= InvestmentFlowBlock_invest_status(bus1_storage_all_nonconvex_2) <= 1 - 0 <= InvestmentFlowBlock_invest_status(storage_all_nonconvex_bus1_0) <= 1 - 0 <= InvestmentFlowBlock_invest_status(storage_all_nonconvex_bus1_1) <= 1 - 0 <= InvestmentFlowBlock_invest_status(storage_all_nonconvex_bus1_2) <= 1 - 0 <= GenericInvestmentStorageBlock_invest(storage_all_nonconvex_0) <= 100 - 0 <= GenericInvestmentStorageBlock_invest(storage_all_nonconvex_1) <= 100 - 0 <= GenericInvestmentStorageBlock_invest(storage_all_nonconvex_2) <= 100 - 0 <= GenericInvestmentStorageBlock_invest_status(storage_all_nonconvex_0) <= 1 - 0 <= GenericInvestmentStorageBlock_invest_status(storage_all_nonconvex_1) <= 1 - 0 <= GenericInvestmentStorageBlock_invest_status(storage_all_nonconvex_2) <= 1 - 0 <= flow(bus1_storage_all_nonconvex_0) <= +inf - 0 <= flow(bus1_storage_all_nonconvex_1) <= +inf - 0 <= flow(bus1_storage_all_nonconvex_2) <= +inf - 0 <= flow(bus1_storage_all_nonconvex_3) <= +inf - 0 <= flow(bus1_storage_all_nonconvex_4) <= +inf - 0 <= flow(bus1_storage_all_nonconvex_5) <= +inf - 0 <= flow(storage_all_nonconvex_bus1_0) <= +inf - 0 <= flow(storage_all_nonconvex_bus1_1) <= +inf - 0 <= flow(storage_all_nonconvex_bus1_2) <= +inf - 0 <= flow(storage_all_nonconvex_bus1_3) <= +inf - 0 <= flow(storage_all_nonconvex_bus1_4) <= +inf - 0 <= flow(storage_all_nonconvex_bus1_5) <= +inf - 0 <= InvestmentFlowBlock_total(bus1_storage_all_nonconvex_0) <= +inf - 0 <= InvestmentFlowBlock_total(bus1_storage_all_nonconvex_1) <= +inf - 0 <= InvestmentFlowBlock_total(bus1_storage_all_nonconvex_2) <= +inf - 0 <= InvestmentFlowBlock_total(storage_all_nonconvex_bus1_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage_all_nonconvex_bus1_1) <= +inf - 0 <= InvestmentFlowBlock_total(storage_all_nonconvex_bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old(bus1_storage_all_nonconvex_0) <= +inf - 0 <= InvestmentFlowBlock_old(bus1_storage_all_nonconvex_1) <= +inf - 0 <= InvestmentFlowBlock_old(bus1_storage_all_nonconvex_2) <= +inf - 0 <= InvestmentFlowBlock_old(storage_all_nonconvex_bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old(storage_all_nonconvex_bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old(storage_all_nonconvex_bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(bus1_storage_all_nonconvex_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(bus1_storage_all_nonconvex_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(bus1_storage_all_nonconvex_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_all_nonconvex_bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_all_nonconvex_bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_all_nonconvex_bus1_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(bus1_storage_all_nonconvex_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(bus1_storage_all_nonconvex_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(bus1_storage_all_nonconvex_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_all_nonconvex_bus1_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_all_nonconvex_bus1_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_all_nonconvex_bus1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_all_nonconvex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_all_nonconvex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_all_nonconvex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_all_nonconvex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_all_nonconvex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_all_nonconvex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_all_nonconvex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_all_nonconvex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_all_nonconvex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_all_nonconvex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_all_nonconvex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_all_nonconvex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_3) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_4) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_all_nonconvex_5) <= +inf -binary - InvestmentFlowBlock_invest_status(bus1_storage_all_nonconvex_0) - InvestmentFlowBlock_invest_status(bus1_storage_all_nonconvex_1) - InvestmentFlowBlock_invest_status(bus1_storage_all_nonconvex_2) - InvestmentFlowBlock_invest_status(storage_all_nonconvex_bus1_0) - InvestmentFlowBlock_invest_status(storage_all_nonconvex_bus1_1) - InvestmentFlowBlock_invest_status(storage_all_nonconvex_bus1_2) - GenericInvestmentStorageBlock_invest_status(storage_all_nonconvex_0) - GenericInvestmentStorageBlock_invest_status(storage_all_nonconvex_1) - GenericInvestmentStorageBlock_invest_status(storage_all_nonconvex_2) -end diff --git a/tests/lp_files/storage_invest_minimum.lp b/tests/lp_files/storage_invest_minimum.lp deleted file mode 100644 index be41ebe5e..000000000 --- a/tests/lp_files/storage_invest_minimum.lp +++ /dev/null @@ -1,88 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+145 GenericInvestmentStorageBlock_invest(storage1_0) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage1_0) -+1 flow(storage1_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage1_1) -+1 flow(storage1_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage1_2) -+1 flow(storage1_electricityBus_2) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage1_0)_: --1 GenericInvestmentStorageBlock_invest(storage1_0) -+1 GenericInvestmentStorageBlock_total(storage1_0) -= 0 - -c_u_GenericInvestmentStorageBlock_init_content_limit(storage1)_: --1 GenericInvestmentStorageBlock_invest(storage1_0) -+1 GenericInvestmentStorageBlock_init_content(storage1) -<= 0 - -c_e_GenericInvestmentStorageBlock_balance_first(storage1)_: --1 flow(electricityBus_storage1_0) -+1 flow(storage1_electricityBus_0) --1 GenericInvestmentStorageBlock_init_content(storage1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_0_1)_: --1 flow(electricityBus_storage1_1) -+1 flow(storage1_electricityBus_1) --1 GenericInvestmentStorageBlock_storage_content(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_0_2)_: --1 flow(electricityBus_storage1_2) -+1 flow(storage1_electricityBus_2) --1 GenericInvestmentStorageBlock_storage_content(storage1_1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balanced_cstr(storage1)_: --1 GenericInvestmentStorageBlock_init_content(storage1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_2) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_0_0)_: --1 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_0_1)_: --1 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_0_2)_: --1 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_2) -<= 0 - -bounds - 100 <= GenericInvestmentStorageBlock_invest(storage1_0) <= 200 - 0 <= flow(electricityBus_storage1_0) <= +inf - 0 <= flow(electricityBus_storage1_1) <= +inf - 0 <= flow(electricityBus_storage1_2) <= +inf - 0 <= flow(storage1_electricityBus_0) <= +inf - 0 <= flow(storage1_electricityBus_1) <= +inf - 0 <= flow(storage1_electricityBus_2) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_init_content(storage1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_2) <= +inf -end diff --git a/tests/lp_files/storage_invest_minimum_multi_period.lp b/tests/lp_files/storage_invest_minimum_multi_period.lp deleted file mode 100644 index d1854ec25..000000000 --- a/tests/lp_files/storage_invest_minimum_multi_period.lp +++ /dev/null @@ -1,205 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+15.2862638908257 GenericInvestmentStorageBlock_invest(storage1_0) -+10.089613468653715 GenericInvestmentStorageBlock_invest(storage1_1) -+4.994858152798875 GenericInvestmentStorageBlock_invest(storage1_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage1_0) -+1 flow(storage1_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage1_1) -+1 flow(storage1_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage1_2) -+1 flow(storage1_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: --1 flow(electricityBus_storage1_3) -+1 flow(storage1_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: --1 flow(electricityBus_storage1_4) -+1 flow(storage1_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: --1 flow(electricityBus_storage1_5) -+1 flow(storage1_electricityBus_5) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage1_0)_: --1 GenericInvestmentStorageBlock_invest(storage1_0) -+1 GenericInvestmentStorageBlock_total(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage1_1)_: --1 GenericInvestmentStorageBlock_invest(storage1_1) --1 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_total(storage1_1) -+1 GenericInvestmentStorageBlock_old(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage1_2)_: --1 GenericInvestmentStorageBlock_invest(storage1_2) --1 GenericInvestmentStorageBlock_total(storage1_1) -+1 GenericInvestmentStorageBlock_total(storage1_2) -+1 GenericInvestmentStorageBlock_old(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage1_0)_: -+1 GenericInvestmentStorageBlock_old_end(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage1_1)_: -+1 GenericInvestmentStorageBlock_old_end(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage1_2)_: -+1 GenericInvestmentStorageBlock_old_end(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage1_0)_: -+1 GenericInvestmentStorageBlock_old_exo(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage1_1)_: -+1 GenericInvestmentStorageBlock_old_exo(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage1_2)_: -+1 GenericInvestmentStorageBlock_old_exo(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage1_0)_: -+1 GenericInvestmentStorageBlock_old(storage1_0) --1 GenericInvestmentStorageBlock_old_end(storage1_0) --1 GenericInvestmentStorageBlock_old_exo(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage1_1)_: -+1 GenericInvestmentStorageBlock_old(storage1_1) --1 GenericInvestmentStorageBlock_old_end(storage1_1) --1 GenericInvestmentStorageBlock_old_exo(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage1_2)_: -+1 GenericInvestmentStorageBlock_old(storage1_2) --1 GenericInvestmentStorageBlock_old_end(storage1_2) --1 GenericInvestmentStorageBlock_old_exo(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_initially_empty(storage1_0)_: -+1 GenericInvestmentStorageBlock_storage_content(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_0_1)_: --1 flow(electricityBus_storage1_1) -+1 flow(storage1_electricityBus_1) --1 GenericInvestmentStorageBlock_storage_content(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_1_2)_: --1 flow(electricityBus_storage1_2) -+1 flow(storage1_electricityBus_2) --1 GenericInvestmentStorageBlock_storage_content(storage1_1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_1_3)_: --1 flow(electricityBus_storage1_3) -+1 flow(storage1_electricityBus_3) --1 GenericInvestmentStorageBlock_storage_content(storage1_2) -+1 GenericInvestmentStorageBlock_storage_content(storage1_3) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_2_4)_: --1 flow(electricityBus_storage1_4) -+1 flow(storage1_electricityBus_4) --1 GenericInvestmentStorageBlock_storage_content(storage1_3) -+1 GenericInvestmentStorageBlock_storage_content(storage1_4) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_2_5)_: --1 flow(electricityBus_storage1_5) -+1 flow(storage1_electricityBus_5) --1 GenericInvestmentStorageBlock_storage_content(storage1_4) -+1 GenericInvestmentStorageBlock_storage_content(storage1_5) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_0_0)_: --1 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_0_1)_: --1 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_1_2)_: --1 GenericInvestmentStorageBlock_total(storage1_1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_1_3)_: --1 GenericInvestmentStorageBlock_total(storage1_1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_2_4)_: --1 GenericInvestmentStorageBlock_total(storage1_2) -+1 GenericInvestmentStorageBlock_storage_content(storage1_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_2_5)_: --1 GenericInvestmentStorageBlock_total(storage1_2) -+1 GenericInvestmentStorageBlock_storage_content(storage1_5) -<= 0 - -bounds - 100 <= GenericInvestmentStorageBlock_invest(storage1_0) <= 200 - 100 <= GenericInvestmentStorageBlock_invest(storage1_1) <= 200 - 100 <= GenericInvestmentStorageBlock_invest(storage1_2) <= 200 - 0 <= flow(electricityBus_storage1_0) <= +inf - 0 <= flow(electricityBus_storage1_1) <= +inf - 0 <= flow(electricityBus_storage1_2) <= +inf - 0 <= flow(electricityBus_storage1_3) <= +inf - 0 <= flow(electricityBus_storage1_4) <= +inf - 0 <= flow(electricityBus_storage1_5) <= +inf - 0 <= flow(storage1_electricityBus_0) <= +inf - 0 <= flow(storage1_electricityBus_1) <= +inf - 0 <= flow(storage1_electricityBus_2) <= +inf - 0 <= flow(storage1_electricityBus_3) <= +inf - 0 <= flow(storage1_electricityBus_4) <= +inf - 0 <= flow(storage1_electricityBus_5) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_3) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_4) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_5) <= +inf -end diff --git a/tests/lp_files/storage_invest_multi_period.lp b/tests/lp_files/storage_invest_multi_period.lp deleted file mode 100644 index 34c877f70..000000000 --- a/tests/lp_files/storage_invest_multi_period.lp +++ /dev/null @@ -1,223 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+250.0 ONE_VAR_CONSTANT -+29.994068581329355 GenericInvestmentStorageBlock_invest(storage1_0) -+19.797418159157367 GenericInvestmentStorageBlock_invest(storage1_1) -+9.8007020589888 GenericInvestmentStorageBlock_invest(storage1_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage1_0) -+1 flow(storage1_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage1_1) -+1 flow(storage1_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage1_2) -+1 flow(storage1_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: --1 flow(electricityBus_storage1_3) -+1 flow(storage1_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: --1 flow(electricityBus_storage1_4) -+1 flow(storage1_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: --1 flow(electricityBus_storage1_5) -+1 flow(storage1_electricityBus_5) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage1_0)_: --1 GenericInvestmentStorageBlock_invest(storage1_0) -+1 GenericInvestmentStorageBlock_total(storage1_0) -= 50 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage1_1)_: --1 GenericInvestmentStorageBlock_invest(storage1_1) --1 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_total(storage1_1) -+1 GenericInvestmentStorageBlock_old(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage1_2)_: --1 GenericInvestmentStorageBlock_invest(storage1_2) --1 GenericInvestmentStorageBlock_total(storage1_1) -+1 GenericInvestmentStorageBlock_total(storage1_2) -+1 GenericInvestmentStorageBlock_old(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage1_0)_: -+1 GenericInvestmentStorageBlock_old_end(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage1_1)_: -+1 GenericInvestmentStorageBlock_old_end(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage1_2)_: -+1 GenericInvestmentStorageBlock_old_end(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage1_0)_: -+1 GenericInvestmentStorageBlock_old_exo(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage1_1)_: -+1 GenericInvestmentStorageBlock_old_exo(storage1_1) -= 50 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage1_2)_: -+1 GenericInvestmentStorageBlock_old_exo(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage1_0)_: -+1 GenericInvestmentStorageBlock_old(storage1_0) --1 GenericInvestmentStorageBlock_old_end(storage1_0) --1 GenericInvestmentStorageBlock_old_exo(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage1_1)_: -+1 GenericInvestmentStorageBlock_old(storage1_1) --1 GenericInvestmentStorageBlock_old_end(storage1_1) --1 GenericInvestmentStorageBlock_old_exo(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage1_2)_: -+1 GenericInvestmentStorageBlock_old(storage1_2) --1 GenericInvestmentStorageBlock_old_end(storage1_2) --1 GenericInvestmentStorageBlock_old_exo(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_initially_empty(storage1_0)_: -+1 GenericInvestmentStorageBlock_storage_content(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_0_1)_: --1 flow(electricityBus_storage1_1) -+1 flow(storage1_electricityBus_1) --1 GenericInvestmentStorageBlock_storage_content(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_1_2)_: --1 flow(electricityBus_storage1_2) -+1 flow(storage1_electricityBus_2) --1 GenericInvestmentStorageBlock_storage_content(storage1_1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_1_3)_: --1 flow(electricityBus_storage1_3) -+1 flow(storage1_electricityBus_3) --1 GenericInvestmentStorageBlock_storage_content(storage1_2) -+1 GenericInvestmentStorageBlock_storage_content(storage1_3) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_2_4)_: --1 flow(electricityBus_storage1_4) -+1 flow(storage1_electricityBus_4) --1 GenericInvestmentStorageBlock_storage_content(storage1_3) -+1 GenericInvestmentStorageBlock_storage_content(storage1_4) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_2_5)_: --1 flow(electricityBus_storage1_5) -+1 flow(storage1_electricityBus_5) --1 GenericInvestmentStorageBlock_storage_content(storage1_4) -+1 GenericInvestmentStorageBlock_storage_content(storage1_5) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_0_0)_: --1 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_0_1)_: --1 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_1_2)_: --1 GenericInvestmentStorageBlock_total(storage1_1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_1_3)_: --1 GenericInvestmentStorageBlock_total(storage1_1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_2_4)_: --1 GenericInvestmentStorageBlock_total(storage1_2) -+1 GenericInvestmentStorageBlock_storage_content(storage1_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_2_5)_: --1 GenericInvestmentStorageBlock_total(storage1_2) -+1 GenericInvestmentStorageBlock_storage_content(storage1_5) -<= 0 - -c_u_GenericInvestmentStorageBlock_overall_storage_maximum(storage1_0)_: -+1 GenericInvestmentStorageBlock_total(storage1_0) -<= 500 - -c_u_GenericInvestmentStorageBlock_overall_storage_maximum(storage1_1)_: -+1 GenericInvestmentStorageBlock_total(storage1_1) -<= 500 - -c_u_GenericInvestmentStorageBlock_overall_storage_maximum(storage1_2)_: -+1 GenericInvestmentStorageBlock_total(storage1_2) -<= 500 - -c_l_GenericInvestmentStorageBlock_overall_minimum(storage1)_: -+1 GenericInvestmentStorageBlock_total(storage1_2) ->= 10 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 100 <= GenericInvestmentStorageBlock_invest(storage1_0) <= 200 - 100 <= GenericInvestmentStorageBlock_invest(storage1_1) <= 200 - 100 <= GenericInvestmentStorageBlock_invest(storage1_2) <= 200 - 0 <= flow(electricityBus_storage1_0) <= +inf - 0 <= flow(electricityBus_storage1_1) <= +inf - 0 <= flow(electricityBus_storage1_2) <= +inf - 0 <= flow(electricityBus_storage1_3) <= +inf - 0 <= flow(electricityBus_storage1_4) <= +inf - 0 <= flow(electricityBus_storage1_5) <= +inf - 0 <= flow(storage1_electricityBus_0) <= +inf - 0 <= flow(storage1_electricityBus_1) <= +inf - 0 <= flow(storage1_electricityBus_2) <= +inf - 0 <= flow(storage1_electricityBus_3) <= +inf - 0 <= flow(storage1_electricityBus_4) <= +inf - 0 <= flow(storage1_electricityBus_5) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_3) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_4) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_5) <= +inf -end diff --git a/tests/lp_files/storage_invest_unbalanced.lp b/tests/lp_files/storage_invest_unbalanced.lp deleted file mode 100644 index a26377921..000000000 --- a/tests/lp_files/storage_invest_unbalanced.lp +++ /dev/null @@ -1,137 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+145 GenericInvestmentStorageBlock_invest(storage1_0) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage1_0) -+1 flow(storage1_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage1_1) -+1 flow(storage1_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage1_2) -+1 flow(storage1_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage1_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage1_0) --1 InvestmentFlowBlock_invest(electricityBus_storage1_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage1_electricityBus_0)_: -+1 InvestmentFlowBlock_total(storage1_electricityBus_0) --1 InvestmentFlowBlock_invest(storage1_electricityBus_0) -= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_0_0)_: -+1 flow(electricityBus_storage1_0) --1 InvestmentFlowBlock_total(electricityBus_storage1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_0_1)_: -+1 flow(electricityBus_storage1_1) --1 InvestmentFlowBlock_total(electricityBus_storage1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage1_0_2)_: -+1 flow(electricityBus_storage1_2) --1 InvestmentFlowBlock_total(electricityBus_storage1_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_0_0)_: -+1 flow(storage1_electricityBus_0) --1 InvestmentFlowBlock_total(storage1_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_0_1)_: -+1 flow(storage1_electricityBus_1) --1 InvestmentFlowBlock_total(storage1_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage1_electricityBus_0_2)_: -+1 flow(storage1_electricityBus_2) --1 InvestmentFlowBlock_total(storage1_electricityBus_0) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage1_0)_: --1 GenericInvestmentStorageBlock_invest(storage1_0) -+1 GenericInvestmentStorageBlock_total(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_init_content_fix(storage1)_: --0.5 GenericInvestmentStorageBlock_invest(storage1_0) -+1 GenericInvestmentStorageBlock_init_content(storage1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance_first(storage1)_: --1 flow(electricityBus_storage1_0) -+1 flow(storage1_electricityBus_0) --1 GenericInvestmentStorageBlock_init_content(storage1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_0_1)_: --1 flow(electricityBus_storage1_1) -+1 flow(storage1_electricityBus_1) --1 GenericInvestmentStorageBlock_storage_content(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage1_0_2)_: --1 flow(electricityBus_storage1_2) -+1 flow(storage1_electricityBus_2) --1 GenericInvestmentStorageBlock_storage_content(storage1_1) -+1 GenericInvestmentStorageBlock_storage_content(storage1_2) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage1_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage1_0) --1 GenericInvestmentStorageBlock_total(storage1_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage1_0)_: -+1 InvestmentFlowBlock_total(storage1_electricityBus_0) --1 GenericInvestmentStorageBlock_total(storage1_0) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_0_0)_: --1 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_0_1)_: --1 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage1_0_2)_: --1 GenericInvestmentStorageBlock_total(storage1_0) -+1 GenericInvestmentStorageBlock_storage_content(storage1_2) -<= 0 - -bounds - 0 <= GenericInvestmentStorageBlock_invest(storage1_0) <= +inf - 0 <= flow(electricityBus_storage1_0) <= +inf - 0 <= flow(electricityBus_storage1_1) <= +inf - 0 <= flow(electricityBus_storage1_2) <= +inf - 0 <= flow(storage1_electricityBus_0) <= +inf - 0 <= flow(storage1_electricityBus_1) <= +inf - 0 <= flow(storage1_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage1_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage1_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage1_0) <= +inf - 0 <= InvestmentFlowBlock_invest(storage1_electricityBus_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_init_content(storage1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage1_2) <= +inf -end diff --git a/tests/lp_files/storage_invest_with_offset.lp b/tests/lp_files/storage_invest_with_offset.lp deleted file mode 100644 index ccc18b41f..000000000 --- a/tests/lp_files/storage_invest_with_offset.lp +++ /dev/null @@ -1,177 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+56 flow(electricityBus_storage_non_convex_0) -+56 flow(electricityBus_storage_non_convex_1) -+56 flow(electricityBus_storage_non_convex_2) -+24 flow(storage_non_convex_electricityBus_0) -+24 flow(storage_non_convex_electricityBus_1) -+24 flow(storage_non_convex_electricityBus_2) -+145 GenericInvestmentStorageBlock_invest(storage_non_convex_0) -+5 GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage_non_convex_0) -+1 flow(storage_non_convex_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage_non_convex_1) -+1 flow(storage_non_convex_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage_non_convex_2) -+1 flow(storage_non_convex_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage_non_convex_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) --1 InvestmentFlowBlock_invest(electricityBus_storage_non_convex_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_non_convex_electricityBus_0)_: -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) --1 InvestmentFlowBlock_invest(storage_non_convex_electricityBus_0) -= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_0_0)_: -+1 flow(electricityBus_storage_non_convex_0) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_0_1)_: -+1 flow(electricityBus_storage_non_convex_1) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_0_2)_: -+1 flow(electricityBus_storage_non_convex_2) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_0_0)_: -+1 flow(storage_non_convex_electricityBus_0) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_0_1)_: -+1 flow(storage_non_convex_electricityBus_1) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_0_2)_: -+1 flow(storage_non_convex_electricityBus_2) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_non_convex_0)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_total(storage_non_convex_0) -= 0 - -c_u_GenericInvestmentStorageBlock_init_content_limit(storage_non_convex)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_init_content(storage_non_convex) -<= 0 - -c_e_GenericInvestmentStorageBlock_balance_first(storage_non_convex)_: --0.97 flow(electricityBus_storage_non_convex_0) -+1.1627906976744187 flow(storage_non_convex_electricityBus_0) --0.87 GenericInvestmentStorageBlock_init_content(storage_non_convex) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_0_1)_: --0.97 flow(electricityBus_storage_non_convex_1) -+1.1627906976744187 flow(storage_non_convex_electricityBus_1) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_0_2)_: --0.97 flow(electricityBus_storage_non_convex_2) -+1.1627906976744187 flow(storage_non_convex_electricityBus_2) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balanced_cstr(storage_non_convex)_: --1 GenericInvestmentStorageBlock_init_content(storage_non_convex) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_non_convex_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_non_convex_0)_: -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_0) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_0_0)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_0_1)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_0_2)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_0_0)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_0) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_0_1)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_0) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_0_2)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_0) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -<= 0 - -c_l_GenericInvestmentStorageBlock_limit_max(storage_non_convex_0)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_0) -+1454 GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_min(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_invest(storage_non_convex_0) --19 GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) ->= 0 - -bounds - 0 <= flow(electricityBus_storage_non_convex_0) <= +inf - 0 <= flow(electricityBus_storage_non_convex_1) <= +inf - 0 <= flow(electricityBus_storage_non_convex_2) <= +inf - 0 <= flow(storage_non_convex_electricityBus_0) <= +inf - 0 <= flow(storage_non_convex_electricityBus_1) <= +inf - 0 <= flow(storage_non_convex_electricityBus_2) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_non_convex_0) <= 1454 - 0 <= GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) <= 1 - 0 <= InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_non_convex_electricityBus_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_init_content(storage_non_convex) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) <= +inf -binary - GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) -end diff --git a/tests/lp_files/storage_invest_with_offset_multi_period.lp b/tests/lp_files/storage_invest_with_offset_multi_period.lp deleted file mode 100644 index 71d9e8e07..000000000 --- a/tests/lp_files/storage_invest_with_offset_multi_period.lp +++ /dev/null @@ -1,529 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+56 flow(electricityBus_storage_non_convex_0) -+56 flow(electricityBus_storage_non_convex_1) -+54.90196078431372 flow(electricityBus_storage_non_convex_2) -+54.90196078431372 flow(electricityBus_storage_non_convex_3) -+53.82545174932718 flow(electricityBus_storage_non_convex_4) -+53.82545174932718 flow(electricityBus_storage_non_convex_5) -+24 flow(storage_non_convex_electricityBus_0) -+24 flow(storage_non_convex_electricityBus_1) -+23.52941176470588 flow(storage_non_convex_electricityBus_2) -+23.52941176470588 flow(storage_non_convex_electricityBus_3) -+23.06805074971165 flow(storage_non_convex_electricityBus_4) -+23.06805074971165 flow(storage_non_convex_electricityBus_5) -+25.57348127967623 GenericInvestmentStorageBlock_invest(storage_non_convex_0) -+16.879634095198618 GenericInvestmentStorageBlock_invest(storage_non_convex_1) -+8.35625450257358 GenericInvestmentStorageBlock_invest(storage_non_convex_2) -+5 GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) -+4.901960784313725 GenericInvestmentStorageBlock_invest_status(storage_non_convex_1) -+4.805843906189927 GenericInvestmentStorageBlock_invest_status(storage_non_convex_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage_non_convex_0) -+1 flow(storage_non_convex_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage_non_convex_1) -+1 flow(storage_non_convex_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage_non_convex_2) -+1 flow(storage_non_convex_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: --1 flow(electricityBus_storage_non_convex_3) -+1 flow(storage_non_convex_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: --1 flow(electricityBus_storage_non_convex_4) -+1 flow(storage_non_convex_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: --1 flow(electricityBus_storage_non_convex_5) -+1 flow(storage_non_convex_electricityBus_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage_non_convex_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) --1 InvestmentFlowBlock_invest(electricityBus_storage_non_convex_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage_non_convex_1)_: --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) --1 InvestmentFlowBlock_invest(electricityBus_storage_non_convex_1) -+1 InvestmentFlowBlock_old(electricityBus_storage_non_convex_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage_non_convex_2)_: --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_2) --1 InvestmentFlowBlock_invest(electricityBus_storage_non_convex_2) -+1 InvestmentFlowBlock_old(electricityBus_storage_non_convex_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_non_convex_electricityBus_0)_: -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) --1 InvestmentFlowBlock_invest(storage_non_convex_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_non_convex_electricityBus_1)_: --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) --1 InvestmentFlowBlock_invest(storage_non_convex_electricityBus_1) -+1 InvestmentFlowBlock_old(storage_non_convex_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_non_convex_electricityBus_2)_: --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_2) --1 InvestmentFlowBlock_invest(storage_non_convex_electricityBus_2) -+1 InvestmentFlowBlock_old(storage_non_convex_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage_non_convex_0)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage_non_convex_1)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage_non_convex_2)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_non_convex_electricityBus_0)_: -+1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_non_convex_electricityBus_1)_: -+1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_non_convex_electricityBus_2)_: -+1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage_non_convex_0)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage_non_convex_1)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage_non_convex_2)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_non_convex_electricityBus_0)_: -+1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_non_convex_electricityBus_1)_: -+1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_non_convex_electricityBus_2)_: -+1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage_non_convex_0)_: -+1 InvestmentFlowBlock_old(electricityBus_storage_non_convex_0) --1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_0) --1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage_non_convex_1)_: -+1 InvestmentFlowBlock_old(electricityBus_storage_non_convex_1) --1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_1) --1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage_non_convex_2)_: -+1 InvestmentFlowBlock_old(electricityBus_storage_non_convex_2) --1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_2) --1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_non_convex_electricityBus_0)_: -+1 InvestmentFlowBlock_old(storage_non_convex_electricityBus_0) --1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_0) --1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_non_convex_electricityBus_1)_: -+1 InvestmentFlowBlock_old(storage_non_convex_electricityBus_1) --1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_1) --1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_non_convex_electricityBus_2)_: -+1 InvestmentFlowBlock_old(storage_non_convex_electricityBus_2) --1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_2) --1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_2) -= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_0_0)_: -+1 flow(electricityBus_storage_non_convex_0) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_0_1)_: -+1 flow(electricityBus_storage_non_convex_1) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_1_2)_: -+1 flow(electricityBus_storage_non_convex_2) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_1_3)_: -+1 flow(electricityBus_storage_non_convex_3) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_2_4)_: -+1 flow(electricityBus_storage_non_convex_4) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_2) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_2_5)_: -+1 flow(electricityBus_storage_non_convex_5) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_0_0)_: -+1 flow(storage_non_convex_electricityBus_0) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_0_1)_: -+1 flow(storage_non_convex_electricityBus_1) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_1_2)_: -+1 flow(storage_non_convex_electricityBus_2) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_1_3)_: -+1 flow(storage_non_convex_electricityBus_3) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_2_4)_: -+1 flow(storage_non_convex_electricityBus_4) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_2_5)_: -+1 flow(storage_non_convex_electricityBus_5) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_2) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_non_convex_0)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_total(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_non_convex_1)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_1) --1 GenericInvestmentStorageBlock_total(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_total(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_old(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_non_convex_2)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_2) --1 GenericInvestmentStorageBlock_total(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_total(storage_non_convex_2) -+1 GenericInvestmentStorageBlock_old(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_old_end(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_non_convex_1)_: -+1 GenericInvestmentStorageBlock_old_end(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_non_convex_2)_: -+1 GenericInvestmentStorageBlock_old_end(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_non_convex_1)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_non_convex_2)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_old(storage_non_convex_0) --1 GenericInvestmentStorageBlock_old_end(storage_non_convex_0) --1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_non_convex_1)_: -+1 GenericInvestmentStorageBlock_old(storage_non_convex_1) --1 GenericInvestmentStorageBlock_old_end(storage_non_convex_1) --1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_non_convex_2)_: -+1 GenericInvestmentStorageBlock_old(storage_non_convex_2) --1 GenericInvestmentStorageBlock_old_end(storage_non_convex_2) --1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_initially_empty(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_0_1)_: --0.97 flow(electricityBus_storage_non_convex_1) -+1.1627906976744187 flow(storage_non_convex_electricityBus_1) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_1_2)_: --0.97 flow(electricityBus_storage_non_convex_2) -+1.1627906976744187 flow(storage_non_convex_electricityBus_2) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_1_3)_: --0.97 flow(electricityBus_storage_non_convex_3) -+1.1627906976744187 flow(storage_non_convex_electricityBus_3) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_3) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_2_4)_: --0.97 flow(electricityBus_storage_non_convex_4) -+1.1627906976744187 flow(storage_non_convex_electricityBus_4) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_3) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_4) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_2_5)_: --0.97 flow(electricityBus_storage_non_convex_5) -+1.1627906976744187 flow(storage_non_convex_electricityBus_5) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_4) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_5) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_non_convex_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_non_convex_1)_: -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_non_convex_2)_: -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_2) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_non_convex_0)_: -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_non_convex_1)_: -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_non_convex_2)_: -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_2) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_2) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_0_0)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_0_1)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_1_2)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_1_3)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_2_4)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_2_5)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_5) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_0_0)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_0) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_0_1)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_0) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_1_2)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_1) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_1_3)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_1) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_2_4)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_2) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_2_5)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_2) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_5) -<= 0 - -c_l_GenericInvestmentStorageBlock_limit_max(storage_non_convex_0)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_0) -+1454 GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_max(storage_non_convex_1)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_1) -+1454 GenericInvestmentStorageBlock_invest_status(storage_non_convex_1) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_max(storage_non_convex_2)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_2) -+1454 GenericInvestmentStorageBlock_invest_status(storage_non_convex_2) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_min(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_invest(storage_non_convex_0) --19 GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_min(storage_non_convex_1)_: -+1 GenericInvestmentStorageBlock_invest(storage_non_convex_1) --19 GenericInvestmentStorageBlock_invest_status(storage_non_convex_1) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_min(storage_non_convex_2)_: -+1 GenericInvestmentStorageBlock_invest(storage_non_convex_2) --19 GenericInvestmentStorageBlock_invest_status(storage_non_convex_2) ->= 0 - -bounds - 0 <= flow(electricityBus_storage_non_convex_0) <= +inf - 0 <= flow(electricityBus_storage_non_convex_1) <= +inf - 0 <= flow(electricityBus_storage_non_convex_2) <= +inf - 0 <= flow(electricityBus_storage_non_convex_3) <= +inf - 0 <= flow(electricityBus_storage_non_convex_4) <= +inf - 0 <= flow(electricityBus_storage_non_convex_5) <= +inf - 0 <= flow(storage_non_convex_electricityBus_0) <= +inf - 0 <= flow(storage_non_convex_electricityBus_1) <= +inf - 0 <= flow(storage_non_convex_electricityBus_2) <= +inf - 0 <= flow(storage_non_convex_electricityBus_3) <= +inf - 0 <= flow(storage_non_convex_electricityBus_4) <= +inf - 0 <= flow(storage_non_convex_electricityBus_5) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_non_convex_0) <= 1454 - 0 <= GenericInvestmentStorageBlock_invest(storage_non_convex_1) <= 1454 - 0 <= GenericInvestmentStorageBlock_invest(storage_non_convex_2) <= 1454 - 0 <= GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) <= 1 - 0 <= GenericInvestmentStorageBlock_invest_status(storage_non_convex_1) <= 1 - 0 <= GenericInvestmentStorageBlock_invest_status(storage_non_convex_2) <= 1 - 0 <= InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage_non_convex_2) <= +inf - 0 <= InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_total(storage_non_convex_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage_non_convex_1) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage_non_convex_2) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_non_convex_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_non_convex_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage_non_convex_1) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage_non_convex_2) <= +inf - 0 <= InvestmentFlowBlock_old(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old(storage_non_convex_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old(storage_non_convex_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_2) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_3) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_4) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_5) <= +inf -binary - GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) - GenericInvestmentStorageBlock_invest_status(storage_non_convex_1) - GenericInvestmentStorageBlock_invest_status(storage_non_convex_2) -end diff --git a/tests/lp_files/storage_invest_with_offset_multi_period_remaining_value.lp b/tests/lp_files/storage_invest_with_offset_multi_period_remaining_value.lp deleted file mode 100644 index 71d9e8e07..000000000 --- a/tests/lp_files/storage_invest_with_offset_multi_period_remaining_value.lp +++ /dev/null @@ -1,529 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+56 flow(electricityBus_storage_non_convex_0) -+56 flow(electricityBus_storage_non_convex_1) -+54.90196078431372 flow(electricityBus_storage_non_convex_2) -+54.90196078431372 flow(electricityBus_storage_non_convex_3) -+53.82545174932718 flow(electricityBus_storage_non_convex_4) -+53.82545174932718 flow(electricityBus_storage_non_convex_5) -+24 flow(storage_non_convex_electricityBus_0) -+24 flow(storage_non_convex_electricityBus_1) -+23.52941176470588 flow(storage_non_convex_electricityBus_2) -+23.52941176470588 flow(storage_non_convex_electricityBus_3) -+23.06805074971165 flow(storage_non_convex_electricityBus_4) -+23.06805074971165 flow(storage_non_convex_electricityBus_5) -+25.57348127967623 GenericInvestmentStorageBlock_invest(storage_non_convex_0) -+16.879634095198618 GenericInvestmentStorageBlock_invest(storage_non_convex_1) -+8.35625450257358 GenericInvestmentStorageBlock_invest(storage_non_convex_2) -+5 GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) -+4.901960784313725 GenericInvestmentStorageBlock_invest_status(storage_non_convex_1) -+4.805843906189927 GenericInvestmentStorageBlock_invest_status(storage_non_convex_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage_non_convex_0) -+1 flow(storage_non_convex_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage_non_convex_1) -+1 flow(storage_non_convex_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage_non_convex_2) -+1 flow(storage_non_convex_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: --1 flow(electricityBus_storage_non_convex_3) -+1 flow(storage_non_convex_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: --1 flow(electricityBus_storage_non_convex_4) -+1 flow(storage_non_convex_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: --1 flow(electricityBus_storage_non_convex_5) -+1 flow(storage_non_convex_electricityBus_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage_non_convex_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) --1 InvestmentFlowBlock_invest(electricityBus_storage_non_convex_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage_non_convex_1)_: --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) --1 InvestmentFlowBlock_invest(electricityBus_storage_non_convex_1) -+1 InvestmentFlowBlock_old(electricityBus_storage_non_convex_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage_non_convex_2)_: --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_2) --1 InvestmentFlowBlock_invest(electricityBus_storage_non_convex_2) -+1 InvestmentFlowBlock_old(electricityBus_storage_non_convex_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_non_convex_electricityBus_0)_: -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) --1 InvestmentFlowBlock_invest(storage_non_convex_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_non_convex_electricityBus_1)_: --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) --1 InvestmentFlowBlock_invest(storage_non_convex_electricityBus_1) -+1 InvestmentFlowBlock_old(storage_non_convex_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_non_convex_electricityBus_2)_: --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_2) --1 InvestmentFlowBlock_invest(storage_non_convex_electricityBus_2) -+1 InvestmentFlowBlock_old(storage_non_convex_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage_non_convex_0)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage_non_convex_1)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage_non_convex_2)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_non_convex_electricityBus_0)_: -+1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_non_convex_electricityBus_1)_: -+1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_non_convex_electricityBus_2)_: -+1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage_non_convex_0)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage_non_convex_1)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage_non_convex_2)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_non_convex_electricityBus_0)_: -+1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_non_convex_electricityBus_1)_: -+1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_non_convex_electricityBus_2)_: -+1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage_non_convex_0)_: -+1 InvestmentFlowBlock_old(electricityBus_storage_non_convex_0) --1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_0) --1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage_non_convex_1)_: -+1 InvestmentFlowBlock_old(electricityBus_storage_non_convex_1) --1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_1) --1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage_non_convex_2)_: -+1 InvestmentFlowBlock_old(electricityBus_storage_non_convex_2) --1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_2) --1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_non_convex_electricityBus_0)_: -+1 InvestmentFlowBlock_old(storage_non_convex_electricityBus_0) --1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_0) --1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_non_convex_electricityBus_1)_: -+1 InvestmentFlowBlock_old(storage_non_convex_electricityBus_1) --1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_1) --1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_non_convex_electricityBus_2)_: -+1 InvestmentFlowBlock_old(storage_non_convex_electricityBus_2) --1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_2) --1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_2) -= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_0_0)_: -+1 flow(electricityBus_storage_non_convex_0) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_0_1)_: -+1 flow(electricityBus_storage_non_convex_1) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_1_2)_: -+1 flow(electricityBus_storage_non_convex_2) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_1_3)_: -+1 flow(electricityBus_storage_non_convex_3) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_2_4)_: -+1 flow(electricityBus_storage_non_convex_4) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_2) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_2_5)_: -+1 flow(electricityBus_storage_non_convex_5) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_0_0)_: -+1 flow(storage_non_convex_electricityBus_0) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_0_1)_: -+1 flow(storage_non_convex_electricityBus_1) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_1_2)_: -+1 flow(storage_non_convex_electricityBus_2) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_1_3)_: -+1 flow(storage_non_convex_electricityBus_3) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_2_4)_: -+1 flow(storage_non_convex_electricityBus_4) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_2_5)_: -+1 flow(storage_non_convex_electricityBus_5) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_2) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_non_convex_0)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_total(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_non_convex_1)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_1) --1 GenericInvestmentStorageBlock_total(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_total(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_old(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_non_convex_2)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_2) --1 GenericInvestmentStorageBlock_total(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_total(storage_non_convex_2) -+1 GenericInvestmentStorageBlock_old(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_old_end(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_non_convex_1)_: -+1 GenericInvestmentStorageBlock_old_end(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_non_convex_2)_: -+1 GenericInvestmentStorageBlock_old_end(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_non_convex_1)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_non_convex_2)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_old(storage_non_convex_0) --1 GenericInvestmentStorageBlock_old_end(storage_non_convex_0) --1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_non_convex_1)_: -+1 GenericInvestmentStorageBlock_old(storage_non_convex_1) --1 GenericInvestmentStorageBlock_old_end(storage_non_convex_1) --1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_non_convex_2)_: -+1 GenericInvestmentStorageBlock_old(storage_non_convex_2) --1 GenericInvestmentStorageBlock_old_end(storage_non_convex_2) --1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_initially_empty(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_0_1)_: --0.97 flow(electricityBus_storage_non_convex_1) -+1.1627906976744187 flow(storage_non_convex_electricityBus_1) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_1_2)_: --0.97 flow(electricityBus_storage_non_convex_2) -+1.1627906976744187 flow(storage_non_convex_electricityBus_2) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_1_3)_: --0.97 flow(electricityBus_storage_non_convex_3) -+1.1627906976744187 flow(storage_non_convex_electricityBus_3) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_3) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_2_4)_: --0.97 flow(electricityBus_storage_non_convex_4) -+1.1627906976744187 flow(storage_non_convex_electricityBus_4) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_3) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_4) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_2_5)_: --0.97 flow(electricityBus_storage_non_convex_5) -+1.1627906976744187 flow(storage_non_convex_electricityBus_5) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_4) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_5) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_non_convex_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_non_convex_1)_: -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_non_convex_2)_: -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_2) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_non_convex_0)_: -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_non_convex_1)_: -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_non_convex_2)_: -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_2) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_2) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_0_0)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_0_1)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_1_2)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_1_3)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_2_4)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_2_5)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_5) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_0_0)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_0) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_0_1)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_0) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_1_2)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_1) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_1_3)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_1) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_2_4)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_2) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_2_5)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_2) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_5) -<= 0 - -c_l_GenericInvestmentStorageBlock_limit_max(storage_non_convex_0)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_0) -+1454 GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_max(storage_non_convex_1)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_1) -+1454 GenericInvestmentStorageBlock_invest_status(storage_non_convex_1) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_max(storage_non_convex_2)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_2) -+1454 GenericInvestmentStorageBlock_invest_status(storage_non_convex_2) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_min(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_invest(storage_non_convex_0) --19 GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_min(storage_non_convex_1)_: -+1 GenericInvestmentStorageBlock_invest(storage_non_convex_1) --19 GenericInvestmentStorageBlock_invest_status(storage_non_convex_1) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_min(storage_non_convex_2)_: -+1 GenericInvestmentStorageBlock_invest(storage_non_convex_2) --19 GenericInvestmentStorageBlock_invest_status(storage_non_convex_2) ->= 0 - -bounds - 0 <= flow(electricityBus_storage_non_convex_0) <= +inf - 0 <= flow(electricityBus_storage_non_convex_1) <= +inf - 0 <= flow(electricityBus_storage_non_convex_2) <= +inf - 0 <= flow(electricityBus_storage_non_convex_3) <= +inf - 0 <= flow(electricityBus_storage_non_convex_4) <= +inf - 0 <= flow(electricityBus_storage_non_convex_5) <= +inf - 0 <= flow(storage_non_convex_electricityBus_0) <= +inf - 0 <= flow(storage_non_convex_electricityBus_1) <= +inf - 0 <= flow(storage_non_convex_electricityBus_2) <= +inf - 0 <= flow(storage_non_convex_electricityBus_3) <= +inf - 0 <= flow(storage_non_convex_electricityBus_4) <= +inf - 0 <= flow(storage_non_convex_electricityBus_5) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_non_convex_0) <= 1454 - 0 <= GenericInvestmentStorageBlock_invest(storage_non_convex_1) <= 1454 - 0 <= GenericInvestmentStorageBlock_invest(storage_non_convex_2) <= 1454 - 0 <= GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) <= 1 - 0 <= GenericInvestmentStorageBlock_invest_status(storage_non_convex_1) <= 1 - 0 <= GenericInvestmentStorageBlock_invest_status(storage_non_convex_2) <= 1 - 0 <= InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage_non_convex_2) <= +inf - 0 <= InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_total(storage_non_convex_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage_non_convex_1) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage_non_convex_2) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_non_convex_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_non_convex_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage_non_convex_1) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage_non_convex_2) <= +inf - 0 <= InvestmentFlowBlock_old(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old(storage_non_convex_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old(storage_non_convex_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_2) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_3) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_4) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_5) <= +inf -binary - GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) - GenericInvestmentStorageBlock_invest_status(storage_non_convex_1) - GenericInvestmentStorageBlock_invest_status(storage_non_convex_2) -end diff --git a/tests/lp_files/storage_invest_without_offset.lp b/tests/lp_files/storage_invest_without_offset.lp deleted file mode 100644 index 8b7eb5244..000000000 --- a/tests/lp_files/storage_invest_without_offset.lp +++ /dev/null @@ -1,176 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+56 flow(electricityBus_storage_non_convex_0) -+56 flow(electricityBus_storage_non_convex_1) -+56 flow(electricityBus_storage_non_convex_2) -+24 flow(storage_non_convex_electricityBus_0) -+24 flow(storage_non_convex_electricityBus_1) -+24 flow(storage_non_convex_electricityBus_2) -+141 GenericInvestmentStorageBlock_invest(storage_non_convex_0) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage_non_convex_0) -+1 flow(storage_non_convex_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage_non_convex_1) -+1 flow(storage_non_convex_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage_non_convex_2) -+1 flow(storage_non_convex_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage_non_convex_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) --1 InvestmentFlowBlock_invest(electricityBus_storage_non_convex_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_non_convex_electricityBus_0)_: -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) --1 InvestmentFlowBlock_invest(storage_non_convex_electricityBus_0) -= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_0_0)_: -+1 flow(electricityBus_storage_non_convex_0) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_0_1)_: -+1 flow(electricityBus_storage_non_convex_1) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_0_2)_: -+1 flow(electricityBus_storage_non_convex_2) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_0_0)_: -+1 flow(storage_non_convex_electricityBus_0) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_0_1)_: -+1 flow(storage_non_convex_electricityBus_1) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_0_2)_: -+1 flow(storage_non_convex_electricityBus_2) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_non_convex_0)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_total(storage_non_convex_0) -= 0 - -c_u_GenericInvestmentStorageBlock_init_content_limit(storage_non_convex)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_init_content(storage_non_convex) -<= 0 - -c_e_GenericInvestmentStorageBlock_balance_first(storage_non_convex)_: --0.97 flow(electricityBus_storage_non_convex_0) -+1.1627906976744187 flow(storage_non_convex_electricityBus_0) --0.87 GenericInvestmentStorageBlock_init_content(storage_non_convex) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_0_1)_: --0.97 flow(electricityBus_storage_non_convex_1) -+1.1627906976744187 flow(storage_non_convex_electricityBus_1) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_0_2)_: --0.97 flow(electricityBus_storage_non_convex_2) -+1.1627906976744187 flow(storage_non_convex_electricityBus_2) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balanced_cstr(storage_non_convex)_: --1 GenericInvestmentStorageBlock_init_content(storage_non_convex) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_non_convex_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_non_convex_0)_: -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_0) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_0_0)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_0_1)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_0_2)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_0_0)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_0) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_0_1)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_0) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_0_2)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_0) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -<= 0 - -c_l_GenericInvestmentStorageBlock_limit_max(storage_non_convex_0)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_0) -+244 GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_min(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_invest(storage_non_convex_0) --12 GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) ->= 0 - -bounds - 0 <= flow(electricityBus_storage_non_convex_0) <= +inf - 0 <= flow(electricityBus_storage_non_convex_1) <= +inf - 0 <= flow(electricityBus_storage_non_convex_2) <= +inf - 0 <= flow(storage_non_convex_electricityBus_0) <= +inf - 0 <= flow(storage_non_convex_electricityBus_1) <= +inf - 0 <= flow(storage_non_convex_electricityBus_2) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_non_convex_0) <= 244 - 0 <= InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_non_convex_electricityBus_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_init_content(storage_non_convex) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) <= 1 -binary - GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) -end diff --git a/tests/lp_files/storage_invest_without_offset_multi_period.lp b/tests/lp_files/storage_invest_without_offset_multi_period.lp deleted file mode 100644 index f102db068..000000000 --- a/tests/lp_files/storage_invest_without_offset_multi_period.lp +++ /dev/null @@ -1,526 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+56 flow(electricityBus_storage_non_convex_0) -+56 flow(electricityBus_storage_non_convex_1) -+54.90196078431372 flow(electricityBus_storage_non_convex_2) -+54.90196078431372 flow(electricityBus_storage_non_convex_3) -+53.82545174932718 flow(electricityBus_storage_non_convex_4) -+53.82545174932718 flow(electricityBus_storage_non_convex_5) -+24 flow(storage_non_convex_electricityBus_0) -+24 flow(storage_non_convex_electricityBus_1) -+23.52941176470588 flow(storage_non_convex_electricityBus_2) -+23.52941176470588 flow(storage_non_convex_electricityBus_3) -+23.06805074971165 flow(storage_non_convex_electricityBus_4) -+23.06805074971165 flow(storage_non_convex_electricityBus_5) -+24.868005934029988 GenericInvestmentStorageBlock_invest(storage_non_convex_0) -+16.413989016710378 GenericInvestmentStorageBlock_invest(storage_non_convex_1) -+8.125737136985347 GenericInvestmentStorageBlock_invest(storage_non_convex_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage_non_convex_0) -+1 flow(storage_non_convex_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage_non_convex_1) -+1 flow(storage_non_convex_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage_non_convex_2) -+1 flow(storage_non_convex_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: --1 flow(electricityBus_storage_non_convex_3) -+1 flow(storage_non_convex_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: --1 flow(electricityBus_storage_non_convex_4) -+1 flow(storage_non_convex_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: --1 flow(electricityBus_storage_non_convex_5) -+1 flow(storage_non_convex_electricityBus_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage_non_convex_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) --1 InvestmentFlowBlock_invest(electricityBus_storage_non_convex_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage_non_convex_1)_: --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) --1 InvestmentFlowBlock_invest(electricityBus_storage_non_convex_1) -+1 InvestmentFlowBlock_old(electricityBus_storage_non_convex_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage_non_convex_2)_: --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_2) --1 InvestmentFlowBlock_invest(electricityBus_storage_non_convex_2) -+1 InvestmentFlowBlock_old(electricityBus_storage_non_convex_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_non_convex_electricityBus_0)_: -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) --1 InvestmentFlowBlock_invest(storage_non_convex_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_non_convex_electricityBus_1)_: --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) --1 InvestmentFlowBlock_invest(storage_non_convex_electricityBus_1) -+1 InvestmentFlowBlock_old(storage_non_convex_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_non_convex_electricityBus_2)_: --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_2) --1 InvestmentFlowBlock_invest(storage_non_convex_electricityBus_2) -+1 InvestmentFlowBlock_old(storage_non_convex_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage_non_convex_0)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage_non_convex_1)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage_non_convex_2)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_non_convex_electricityBus_0)_: -+1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_non_convex_electricityBus_1)_: -+1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_non_convex_electricityBus_2)_: -+1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage_non_convex_0)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage_non_convex_1)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage_non_convex_2)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_non_convex_electricityBus_0)_: -+1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_non_convex_electricityBus_1)_: -+1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_non_convex_electricityBus_2)_: -+1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage_non_convex_0)_: -+1 InvestmentFlowBlock_old(electricityBus_storage_non_convex_0) --1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_0) --1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage_non_convex_1)_: -+1 InvestmentFlowBlock_old(electricityBus_storage_non_convex_1) --1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_1) --1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage_non_convex_2)_: -+1 InvestmentFlowBlock_old(electricityBus_storage_non_convex_2) --1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_2) --1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_non_convex_electricityBus_0)_: -+1 InvestmentFlowBlock_old(storage_non_convex_electricityBus_0) --1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_0) --1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_non_convex_electricityBus_1)_: -+1 InvestmentFlowBlock_old(storage_non_convex_electricityBus_1) --1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_1) --1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_non_convex_electricityBus_2)_: -+1 InvestmentFlowBlock_old(storage_non_convex_electricityBus_2) --1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_2) --1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_2) -= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_0_0)_: -+1 flow(electricityBus_storage_non_convex_0) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_0_1)_: -+1 flow(electricityBus_storage_non_convex_1) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_1_2)_: -+1 flow(electricityBus_storage_non_convex_2) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_1_3)_: -+1 flow(electricityBus_storage_non_convex_3) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_2_4)_: -+1 flow(electricityBus_storage_non_convex_4) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_2) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_2_5)_: -+1 flow(electricityBus_storage_non_convex_5) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_0_0)_: -+1 flow(storage_non_convex_electricityBus_0) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_0_1)_: -+1 flow(storage_non_convex_electricityBus_1) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_1_2)_: -+1 flow(storage_non_convex_electricityBus_2) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_1_3)_: -+1 flow(storage_non_convex_electricityBus_3) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_2_4)_: -+1 flow(storage_non_convex_electricityBus_4) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_2_5)_: -+1 flow(storage_non_convex_electricityBus_5) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_2) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_non_convex_0)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_total(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_non_convex_1)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_1) --1 GenericInvestmentStorageBlock_total(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_total(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_old(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_non_convex_2)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_2) --1 GenericInvestmentStorageBlock_total(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_total(storage_non_convex_2) -+1 GenericInvestmentStorageBlock_old(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_old_end(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_non_convex_1)_: -+1 GenericInvestmentStorageBlock_old_end(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_non_convex_2)_: -+1 GenericInvestmentStorageBlock_old_end(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_non_convex_1)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_non_convex_2)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_old(storage_non_convex_0) --1 GenericInvestmentStorageBlock_old_end(storage_non_convex_0) --1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_non_convex_1)_: -+1 GenericInvestmentStorageBlock_old(storage_non_convex_1) --1 GenericInvestmentStorageBlock_old_end(storage_non_convex_1) --1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_non_convex_2)_: -+1 GenericInvestmentStorageBlock_old(storage_non_convex_2) --1 GenericInvestmentStorageBlock_old_end(storage_non_convex_2) --1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_initially_empty(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_0_1)_: --0.97 flow(electricityBus_storage_non_convex_1) -+1.1627906976744187 flow(storage_non_convex_electricityBus_1) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_1_2)_: --0.97 flow(electricityBus_storage_non_convex_2) -+1.1627906976744187 flow(storage_non_convex_electricityBus_2) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_1_3)_: --0.97 flow(electricityBus_storage_non_convex_3) -+1.1627906976744187 flow(storage_non_convex_electricityBus_3) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_3) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_2_4)_: --0.97 flow(electricityBus_storage_non_convex_4) -+1.1627906976744187 flow(storage_non_convex_electricityBus_4) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_3) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_4) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_2_5)_: --0.97 flow(electricityBus_storage_non_convex_5) -+1.1627906976744187 flow(storage_non_convex_electricityBus_5) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_4) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_5) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_non_convex_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_non_convex_1)_: -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_non_convex_2)_: -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_2) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_non_convex_0)_: -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_non_convex_1)_: -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_non_convex_2)_: -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_2) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_2) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_0_0)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_0_1)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_1_2)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_1_3)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_2_4)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_2_5)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_5) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_0_0)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_0) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_0_1)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_0) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_1_2)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_1) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_1_3)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_1) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_2_4)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_2) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_2_5)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_2) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_5) -<= 0 - -c_l_GenericInvestmentStorageBlock_limit_max(storage_non_convex_0)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_0) -+244 GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_max(storage_non_convex_1)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_1) -+244 GenericInvestmentStorageBlock_invest_status(storage_non_convex_1) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_max(storage_non_convex_2)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_2) -+244 GenericInvestmentStorageBlock_invest_status(storage_non_convex_2) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_min(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_invest(storage_non_convex_0) --12 GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_min(storage_non_convex_1)_: -+1 GenericInvestmentStorageBlock_invest(storage_non_convex_1) --12 GenericInvestmentStorageBlock_invest_status(storage_non_convex_1) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_min(storage_non_convex_2)_: -+1 GenericInvestmentStorageBlock_invest(storage_non_convex_2) --12 GenericInvestmentStorageBlock_invest_status(storage_non_convex_2) ->= 0 - -bounds - 0 <= flow(electricityBus_storage_non_convex_0) <= +inf - 0 <= flow(electricityBus_storage_non_convex_1) <= +inf - 0 <= flow(electricityBus_storage_non_convex_2) <= +inf - 0 <= flow(electricityBus_storage_non_convex_3) <= +inf - 0 <= flow(electricityBus_storage_non_convex_4) <= +inf - 0 <= flow(electricityBus_storage_non_convex_5) <= +inf - 0 <= flow(storage_non_convex_electricityBus_0) <= +inf - 0 <= flow(storage_non_convex_electricityBus_1) <= +inf - 0 <= flow(storage_non_convex_electricityBus_2) <= +inf - 0 <= flow(storage_non_convex_electricityBus_3) <= +inf - 0 <= flow(storage_non_convex_electricityBus_4) <= +inf - 0 <= flow(storage_non_convex_electricityBus_5) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_non_convex_0) <= 244 - 0 <= GenericInvestmentStorageBlock_invest(storage_non_convex_1) <= 244 - 0 <= GenericInvestmentStorageBlock_invest(storage_non_convex_2) <= 244 - 0 <= InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage_non_convex_2) <= +inf - 0 <= InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_total(storage_non_convex_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage_non_convex_1) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage_non_convex_2) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_non_convex_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_non_convex_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage_non_convex_1) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage_non_convex_2) <= +inf - 0 <= InvestmentFlowBlock_old(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old(storage_non_convex_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old(storage_non_convex_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_2) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_3) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_4) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_5) <= +inf - 0 <= GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) <= 1 - 0 <= GenericInvestmentStorageBlock_invest_status(storage_non_convex_1) <= 1 - 0 <= GenericInvestmentStorageBlock_invest_status(storage_non_convex_2) <= 1 -binary - GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) - GenericInvestmentStorageBlock_invest_status(storage_non_convex_1) - GenericInvestmentStorageBlock_invest_status(storage_non_convex_2) -end diff --git a/tests/lp_files/storage_invest_without_offset_multi_period_remaining_value.lp b/tests/lp_files/storage_invest_without_offset_multi_period_remaining_value.lp deleted file mode 100644 index f102db068..000000000 --- a/tests/lp_files/storage_invest_without_offset_multi_period_remaining_value.lp +++ /dev/null @@ -1,526 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+56 flow(electricityBus_storage_non_convex_0) -+56 flow(electricityBus_storage_non_convex_1) -+54.90196078431372 flow(electricityBus_storage_non_convex_2) -+54.90196078431372 flow(electricityBus_storage_non_convex_3) -+53.82545174932718 flow(electricityBus_storage_non_convex_4) -+53.82545174932718 flow(electricityBus_storage_non_convex_5) -+24 flow(storage_non_convex_electricityBus_0) -+24 flow(storage_non_convex_electricityBus_1) -+23.52941176470588 flow(storage_non_convex_electricityBus_2) -+23.52941176470588 flow(storage_non_convex_electricityBus_3) -+23.06805074971165 flow(storage_non_convex_electricityBus_4) -+23.06805074971165 flow(storage_non_convex_electricityBus_5) -+24.868005934029988 GenericInvestmentStorageBlock_invest(storage_non_convex_0) -+16.413989016710378 GenericInvestmentStorageBlock_invest(storage_non_convex_1) -+8.125737136985347 GenericInvestmentStorageBlock_invest(storage_non_convex_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage_non_convex_0) -+1 flow(storage_non_convex_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage_non_convex_1) -+1 flow(storage_non_convex_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage_non_convex_2) -+1 flow(storage_non_convex_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: --1 flow(electricityBus_storage_non_convex_3) -+1 flow(storage_non_convex_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: --1 flow(electricityBus_storage_non_convex_4) -+1 flow(storage_non_convex_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: --1 flow(electricityBus_storage_non_convex_5) -+1 flow(storage_non_convex_electricityBus_5) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage_non_convex_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) --1 InvestmentFlowBlock_invest(electricityBus_storage_non_convex_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage_non_convex_1)_: --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) --1 InvestmentFlowBlock_invest(electricityBus_storage_non_convex_1) -+1 InvestmentFlowBlock_old(electricityBus_storage_non_convex_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(electricityBus_storage_non_convex_2)_: --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_2) --1 InvestmentFlowBlock_invest(electricityBus_storage_non_convex_2) -+1 InvestmentFlowBlock_old(electricityBus_storage_non_convex_2) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_non_convex_electricityBus_0)_: -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) --1 InvestmentFlowBlock_invest(storage_non_convex_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_non_convex_electricityBus_1)_: --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) --1 InvestmentFlowBlock_invest(storage_non_convex_electricityBus_1) -+1 InvestmentFlowBlock_old(storage_non_convex_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_total_rule(storage_non_convex_electricityBus_2)_: --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_2) --1 InvestmentFlowBlock_invest(storage_non_convex_electricityBus_2) -+1 InvestmentFlowBlock_old(storage_non_convex_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage_non_convex_0)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage_non_convex_1)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(electricityBus_storage_non_convex_2)_: -+1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_non_convex_electricityBus_0)_: -+1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_non_convex_electricityBus_1)_: -+1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_end(storage_non_convex_electricityBus_2)_: -+1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage_non_convex_0)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage_non_convex_1)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(electricityBus_storage_non_convex_2)_: -+1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_non_convex_electricityBus_0)_: -+1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_non_convex_electricityBus_1)_: -+1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule_exo(storage_non_convex_electricityBus_2)_: -+1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage_non_convex_0)_: -+1 InvestmentFlowBlock_old(electricityBus_storage_non_convex_0) --1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_0) --1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage_non_convex_1)_: -+1 InvestmentFlowBlock_old(electricityBus_storage_non_convex_1) --1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_1) --1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(electricityBus_storage_non_convex_2)_: -+1 InvestmentFlowBlock_old(electricityBus_storage_non_convex_2) --1 InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_2) --1 InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_2) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_non_convex_electricityBus_0)_: -+1 InvestmentFlowBlock_old(storage_non_convex_electricityBus_0) --1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_0) --1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_0) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_non_convex_electricityBus_1)_: -+1 InvestmentFlowBlock_old(storage_non_convex_electricityBus_1) --1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_1) --1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_1) -= 0 - -c_e_InvestmentFlowBlock_old_rule(storage_non_convex_electricityBus_2)_: -+1 InvestmentFlowBlock_old(storage_non_convex_electricityBus_2) --1 InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_2) --1 InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_2) -= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_0_0)_: -+1 flow(electricityBus_storage_non_convex_0) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_0_1)_: -+1 flow(electricityBus_storage_non_convex_1) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_1_2)_: -+1 flow(electricityBus_storage_non_convex_2) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_1_3)_: -+1 flow(electricityBus_storage_non_convex_3) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_2_4)_: -+1 flow(electricityBus_storage_non_convex_4) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_2) -<= 0 - -c_u_InvestmentFlowBlock_max(electricityBus_storage_non_convex_2_5)_: -+1 flow(electricityBus_storage_non_convex_5) --1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_0_0)_: -+1 flow(storage_non_convex_electricityBus_0) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_0_1)_: -+1 flow(storage_non_convex_electricityBus_1) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_1_2)_: -+1 flow(storage_non_convex_electricityBus_2) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_1_3)_: -+1 flow(storage_non_convex_electricityBus_3) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_2_4)_: -+1 flow(storage_non_convex_electricityBus_4) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_2) -<= 0 - -c_u_InvestmentFlowBlock_max(storage_non_convex_electricityBus_2_5)_: -+1 flow(storage_non_convex_electricityBus_5) --1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_2) -<= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_non_convex_0)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_total(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_non_convex_1)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_1) --1 GenericInvestmentStorageBlock_total(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_total(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_old(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_total_storage_rule(storage_non_convex_2)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_2) --1 GenericInvestmentStorageBlock_total(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_total(storage_non_convex_2) -+1 GenericInvestmentStorageBlock_old(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_old_end(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_non_convex_1)_: -+1 GenericInvestmentStorageBlock_old_end(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_end(storage_non_convex_2)_: -+1 GenericInvestmentStorageBlock_old_end(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_non_convex_1)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule_exo(storage_non_convex_2)_: -+1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_old(storage_non_convex_0) --1 GenericInvestmentStorageBlock_old_end(storage_non_convex_0) --1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_non_convex_1)_: -+1 GenericInvestmentStorageBlock_old(storage_non_convex_1) --1 GenericInvestmentStorageBlock_old_end(storage_non_convex_1) --1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_old_rule(storage_non_convex_2)_: -+1 GenericInvestmentStorageBlock_old(storage_non_convex_2) --1 GenericInvestmentStorageBlock_old_end(storage_non_convex_2) --1 GenericInvestmentStorageBlock_old_exo(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_initially_empty(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_0_1)_: --0.97 flow(electricityBus_storage_non_convex_1) -+1.1627906976744187 flow(storage_non_convex_electricityBus_1) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_1_2)_: --0.97 flow(electricityBus_storage_non_convex_2) -+1.1627906976744187 flow(storage_non_convex_electricityBus_2) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_1_3)_: --0.97 flow(electricityBus_storage_non_convex_3) -+1.1627906976744187 flow(storage_non_convex_electricityBus_3) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_3) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_2_4)_: --0.97 flow(electricityBus_storage_non_convex_4) -+1.1627906976744187 flow(storage_non_convex_electricityBus_4) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_3) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_4) -= 0 - -c_e_GenericInvestmentStorageBlock_balance(storage_non_convex_2_5)_: --0.97 flow(electricityBus_storage_non_convex_5) -+1.1627906976744187 flow(storage_non_convex_electricityBus_5) --0.87 GenericInvestmentStorageBlock_storage_content(storage_non_convex_4) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_5) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_non_convex_0)_: -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_non_convex_1)_: -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_inflow(storage_non_convex_2)_: -+1 InvestmentFlowBlock_total(electricityBus_storage_non_convex_2) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_2) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_non_convex_0)_: -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_0) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_non_convex_1)_: -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_1) -= 0 - -c_e_GenericInvestmentStorageBlock_storage_capacity_outflow(storage_non_convex_2)_: -+1 InvestmentFlowBlock_total(storage_non_convex_electricityBus_2) --0.16666666666666666 GenericInvestmentStorageBlock_total(storage_non_convex_2) -= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_0_0)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_0_1)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_0) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_1_2)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_1_3)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_1) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_2_4)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_max_storage_content(storage_non_convex_2_5)_: --0.9 GenericInvestmentStorageBlock_total(storage_non_convex_2) -+1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_5) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_0_0)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_0) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_0_1)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_0) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_1_2)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_1) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_1_3)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_1) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_3) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_2_4)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_2) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_4) -<= 0 - -c_u_GenericInvestmentStorageBlock_min_storage_content(storage_non_convex_2_5)_: -+0.1 GenericInvestmentStorageBlock_total(storage_non_convex_2) --1 GenericInvestmentStorageBlock_storage_content(storage_non_convex_5) -<= 0 - -c_l_GenericInvestmentStorageBlock_limit_max(storage_non_convex_0)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_0) -+244 GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_max(storage_non_convex_1)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_1) -+244 GenericInvestmentStorageBlock_invest_status(storage_non_convex_1) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_max(storage_non_convex_2)_: --1 GenericInvestmentStorageBlock_invest(storage_non_convex_2) -+244 GenericInvestmentStorageBlock_invest_status(storage_non_convex_2) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_min(storage_non_convex_0)_: -+1 GenericInvestmentStorageBlock_invest(storage_non_convex_0) --12 GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_min(storage_non_convex_1)_: -+1 GenericInvestmentStorageBlock_invest(storage_non_convex_1) --12 GenericInvestmentStorageBlock_invest_status(storage_non_convex_1) ->= 0 - -c_l_GenericInvestmentStorageBlock_limit_min(storage_non_convex_2)_: -+1 GenericInvestmentStorageBlock_invest(storage_non_convex_2) --12 GenericInvestmentStorageBlock_invest_status(storage_non_convex_2) ->= 0 - -bounds - 0 <= flow(electricityBus_storage_non_convex_0) <= +inf - 0 <= flow(electricityBus_storage_non_convex_1) <= +inf - 0 <= flow(electricityBus_storage_non_convex_2) <= +inf - 0 <= flow(electricityBus_storage_non_convex_3) <= +inf - 0 <= flow(electricityBus_storage_non_convex_4) <= +inf - 0 <= flow(electricityBus_storage_non_convex_5) <= +inf - 0 <= flow(storage_non_convex_electricityBus_0) <= +inf - 0 <= flow(storage_non_convex_electricityBus_1) <= +inf - 0 <= flow(storage_non_convex_electricityBus_2) <= +inf - 0 <= flow(storage_non_convex_electricityBus_3) <= +inf - 0 <= flow(storage_non_convex_electricityBus_4) <= +inf - 0 <= flow(storage_non_convex_electricityBus_5) <= +inf - 0 <= GenericInvestmentStorageBlock_invest(storage_non_convex_0) <= 244 - 0 <= GenericInvestmentStorageBlock_invest(storage_non_convex_1) <= 244 - 0 <= GenericInvestmentStorageBlock_invest(storage_non_convex_2) <= 244 - 0 <= InvestmentFlowBlock_total(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage_non_convex_1) <= +inf - 0 <= InvestmentFlowBlock_total(electricityBus_storage_non_convex_2) <= +inf - 0 <= InvestmentFlowBlock_total(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_total(storage_non_convex_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_total(storage_non_convex_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage_non_convex_1) <= +inf - 0 <= InvestmentFlowBlock_invest(electricityBus_storage_non_convex_2) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_non_convex_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_invest(storage_non_convex_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage_non_convex_1) <= +inf - 0 <= InvestmentFlowBlock_old(electricityBus_storage_non_convex_2) <= +inf - 0 <= InvestmentFlowBlock_old(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old(storage_non_convex_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old(storage_non_convex_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(electricityBus_storage_non_convex_2) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_end(storage_non_convex_electricityBus_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(electricityBus_storage_non_convex_2) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_0) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_1) <= +inf - 0 <= InvestmentFlowBlock_old_exo(storage_non_convex_electricityBus_2) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_total(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_end(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_old_exo(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_0) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_1) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_2) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_3) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_4) <= +inf - 0 <= GenericInvestmentStorageBlock_storage_content(storage_non_convex_5) <= +inf - 0 <= GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) <= 1 - 0 <= GenericInvestmentStorageBlock_invest_status(storage_non_convex_1) <= 1 - 0 <= GenericInvestmentStorageBlock_invest_status(storage_non_convex_2) <= 1 -binary - GenericInvestmentStorageBlock_invest_status(storage_non_convex_0) - GenericInvestmentStorageBlock_invest_status(storage_non_convex_1) - GenericInvestmentStorageBlock_invest_status(storage_non_convex_2) -end diff --git a/tests/lp_files/storage_level_constraint.lp b/tests/lp_files/storage_level_constraint.lp deleted file mode 100644 index 602d2298b..000000000 --- a/tests/lp_files/storage_level_constraint.lp +++ /dev/null @@ -1,149 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: --0.125 flow(multiplexer_out_0_0) --0.125 flow(multiplexer_out_0_1) --0.125 flow(multiplexer_out_1_0) --0.125 flow(multiplexer_out_1_1) -+0.25 flow(in_0_multiplexer_0) -+0.25 flow(in_0_multiplexer_1) - -s.t. - -c_u_multiplexer_output_active_constraint(out_0_0)_: -+0.125 multiplexer_active_output(out_0_0) --0.25 GenericStorageBlock_storage_content(storage_1) -<= 0 - -c_u_multiplexer_output_active_constraint(out_0_1)_: -+0.125 multiplexer_active_output(out_0_1) --0.25 GenericStorageBlock_storage_content(storage_2) -<= 0 - -c_u_multiplexer_output_active_constraint(out_1_0)_: -+0.5 multiplexer_active_output(out_1_0) --0.25 GenericStorageBlock_storage_content(storage_1) -<= 0 - -c_u_multiplexer_output_active_constraint(out_1_1)_: -+0.5 multiplexer_active_output(out_1_1) --0.25 GenericStorageBlock_storage_content(storage_2) -<= 0 - -c_u_multiplexer_output_constraint(out_0_0)_: -+4.0 flow(multiplexer_out_0_0) --1 multiplexer_active_output(out_0_0) -<= 0 - -c_u_multiplexer_output_constraint(out_0_1)_: -+4.0 flow(multiplexer_out_0_1) --1 multiplexer_active_output(out_0_1) -<= 0 - -c_u_multiplexer_output_constraint(out_1_0)_: -+8.0 flow(multiplexer_out_1_0) --1 multiplexer_active_output(out_1_0) -<= 0 - -c_u_multiplexer_output_constraint(out_1_1)_: -+8.0 flow(multiplexer_out_1_1) --1 multiplexer_active_output(out_1_1) -<= 0 - -c_u_multiplexer_input_active_constraint(in_1_0)_: --1 multiplexer_active_input(in_1_0) -<= -0.75 - -c_u_multiplexer_input_active_constraint(in_1_1)_: -+0.25 GenericStorageBlock_storage_content(storage_1) --1 multiplexer_active_input(in_1_1) -<= 0.25 - -c_u_multiplexer_input_constraint(in_1_0)_: -+8.0 flow(in_1_multiplexer_0) -+1 multiplexer_active_input(in_1_0) -<= 1 - -c_u_multiplexer_input_constraint(in_1_1)_: -+8.0 flow(in_1_multiplexer_1) -+1 multiplexer_active_input(in_1_1) -<= 1 - -c_e_BusBlock_balance(multiplexer_0)_: --1 flow(multiplexer_storage_0) --1 flow(multiplexer_out_0_0) --1 flow(multiplexer_out_1_0) -+1 flow(storage_multiplexer_0) -+1 flow(in_0_multiplexer_0) -+1 flow(in_1_multiplexer_0) -= 0 - -c_e_BusBlock_balance(multiplexer_1)_: --1 flow(multiplexer_storage_1) --1 flow(multiplexer_out_0_1) --1 flow(multiplexer_out_1_1) -+1 flow(storage_multiplexer_1) -+1 flow(in_0_multiplexer_1) -+1 flow(in_1_multiplexer_1) -= 0 - -c_e_GenericStorageBlock_losses(storage_0)_: --1 GenericStorageBlock_storage_losses(storage_0) -= -1.0 - -c_e_GenericStorageBlock_losses(storage_1)_: -+0.25 GenericStorageBlock_storage_content(storage_1) --1 GenericStorageBlock_storage_losses(storage_1) -= 0 - -c_e_GenericStorageBlock_balance(storage_0)_: -+1 flow(multiplexer_storage_0) --1 flow(storage_multiplexer_0) --1 GenericStorageBlock_storage_content(storage_1) --1 GenericStorageBlock_storage_losses(storage_0) -= -4 - -c_e_GenericStorageBlock_balance(storage_1)_: -+1 flow(multiplexer_storage_1) --1 flow(storage_multiplexer_1) -+1 GenericStorageBlock_storage_content(storage_1) --1 GenericStorageBlock_storage_content(storage_2) --1 GenericStorageBlock_storage_losses(storage_1) -= 0 - -c_e_GenericStorageBlock_balanced_cstr(storage)_: -+1 GenericStorageBlock_storage_content(storage_2) -= 4 - -bounds - 0 <= flow(multiplexer_storage_0) <= +inf - 0 <= flow(multiplexer_storage_1) <= +inf - 0.0 <= flow(multiplexer_out_0_0) <= 0.25 - 0.0 <= flow(multiplexer_out_0_1) <= 0.25 - 0.0 <= flow(multiplexer_out_1_0) <= 0.125 - 0.0 <= flow(multiplexer_out_1_1) <= 0.125 - 0 <= flow(storage_multiplexer_0) <= +inf - 0 <= flow(storage_multiplexer_1) <= +inf - 0.0 <= flow(in_0_multiplexer_0) <= 0.5 - 0.0 <= flow(in_0_multiplexer_1) <= 0.5 - 0.0 <= flow(in_1_multiplexer_0) <= 0.125 - 0.0 <= flow(in_1_multiplexer_1) <= 0.125 - 0 <= multiplexer_active_output(out_0_0) <= 1 - 0 <= multiplexer_active_output(out_0_1) <= 1 - 0 <= multiplexer_active_output(out_1_0) <= 1 - 0 <= multiplexer_active_output(out_1_1) <= 1 - 0 <= GenericStorageBlock_storage_content(storage_1) <= 4 - 0 <= GenericStorageBlock_storage_content(storage_2) <= 4 - 0 <= multiplexer_active_input(in_1_0) <= 1 - 0 <= multiplexer_active_input(in_1_1) <= 1 - -inf <= GenericStorageBlock_storage_losses(storage_0) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_1) <= +inf -binary - multiplexer_active_output(out_0_0) - multiplexer_active_output(out_0_1) - multiplexer_active_output(out_1_0) - multiplexer_active_output(out_1_1) - multiplexer_active_input(in_1_0) - multiplexer_active_input(in_1_1) -end diff --git a/tests/lp_files/storage_multi_period.lp b/tests/lp_files/storage_multi_period.lp deleted file mode 100644 index c35aa666c..000000000 --- a/tests/lp_files/storage_multi_period.lp +++ /dev/null @@ -1,155 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+56 flow(electricityBus_storage_no_invest_0) -+56 flow(electricityBus_storage_no_invest_1) -+54.90196078431372 flow(electricityBus_storage_no_invest_2) -+54.90196078431372 flow(electricityBus_storage_no_invest_3) -+53.82545174932718 flow(electricityBus_storage_no_invest_4) -+53.82545174932718 flow(electricityBus_storage_no_invest_5) -+24 flow(storage_no_invest_electricityBus_0) -+24 flow(storage_no_invest_electricityBus_1) -+23.52941176470588 flow(storage_no_invest_electricityBus_2) -+23.52941176470588 flow(storage_no_invest_electricityBus_3) -+23.06805074971165 flow(storage_no_invest_electricityBus_4) -+23.06805074971165 flow(storage_no_invest_electricityBus_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage_no_invest_0) -+1 flow(storage_no_invest_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage_no_invest_1) -+1 flow(storage_no_invest_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage_no_invest_2) -+1 flow(storage_no_invest_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: --1 flow(electricityBus_storage_no_invest_3) -+1 flow(storage_no_invest_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: --1 flow(electricityBus_storage_no_invest_4) -+1 flow(storage_no_invest_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: --1 flow(electricityBus_storage_no_invest_5) -+1 flow(storage_no_invest_electricityBus_5) -= 0 - -c_e_GenericStorageBlock_losses(storage_no_invest_0)_: --1 GenericStorageBlock_storage_losses(storage_no_invest_0) -= -5200.0 - -c_e_GenericStorageBlock_losses(storage_no_invest_1)_: --1 GenericStorageBlock_storage_losses(storage_no_invest_1) -+0.13 GenericStorageBlock_storage_content(storage_no_invest_1) -= 0 - -c_e_GenericStorageBlock_losses(storage_no_invest_2)_: --1 GenericStorageBlock_storage_losses(storage_no_invest_2) -+0.13 GenericStorageBlock_storage_content(storage_no_invest_2) -= 0 - -c_e_GenericStorageBlock_losses(storage_no_invest_3)_: --1 GenericStorageBlock_storage_losses(storage_no_invest_3) -+0.13 GenericStorageBlock_storage_content(storage_no_invest_3) -= 0 - -c_e_GenericStorageBlock_losses(storage_no_invest_4)_: --1 GenericStorageBlock_storage_losses(storage_no_invest_4) -+0.13 GenericStorageBlock_storage_content(storage_no_invest_4) -= 0 - -c_e_GenericStorageBlock_losses(storage_no_invest_5)_: --1 GenericStorageBlock_storage_losses(storage_no_invest_5) -+0.13 GenericStorageBlock_storage_content(storage_no_invest_5) -= 0 - -c_e_GenericStorageBlock_balance(storage_no_invest_0)_: -+0.97 flow(electricityBus_storage_no_invest_0) --1.1627906976744187 flow(storage_no_invest_electricityBus_0) --1 GenericStorageBlock_storage_losses(storage_no_invest_0) --1 GenericStorageBlock_storage_content(storage_no_invest_1) -= -40000.0 - -c_e_GenericStorageBlock_balance(storage_no_invest_1)_: -+0.97 flow(electricityBus_storage_no_invest_1) --1.1627906976744187 flow(storage_no_invest_electricityBus_1) --1 GenericStorageBlock_storage_losses(storage_no_invest_1) -+1 GenericStorageBlock_storage_content(storage_no_invest_1) --1 GenericStorageBlock_storage_content(storage_no_invest_2) -= 0 - -c_e_GenericStorageBlock_balance(storage_no_invest_2)_: -+0.97 flow(electricityBus_storage_no_invest_2) --1.1627906976744187 flow(storage_no_invest_electricityBus_2) --1 GenericStorageBlock_storage_losses(storage_no_invest_2) -+1 GenericStorageBlock_storage_content(storage_no_invest_2) --1 GenericStorageBlock_storage_content(storage_no_invest_3) -= 0 - -c_e_GenericStorageBlock_balance(storage_no_invest_3)_: -+0.97 flow(electricityBus_storage_no_invest_3) --1.1627906976744187 flow(storage_no_invest_electricityBus_3) --1 GenericStorageBlock_storage_losses(storage_no_invest_3) -+1 GenericStorageBlock_storage_content(storage_no_invest_3) --1 GenericStorageBlock_storage_content(storage_no_invest_4) -= 0 - -c_e_GenericStorageBlock_balance(storage_no_invest_4)_: -+0.97 flow(electricityBus_storage_no_invest_4) --1.1627906976744187 flow(storage_no_invest_electricityBus_4) --1 GenericStorageBlock_storage_losses(storage_no_invest_4) -+1 GenericStorageBlock_storage_content(storage_no_invest_4) --1 GenericStorageBlock_storage_content(storage_no_invest_5) -= 0 - -c_e_GenericStorageBlock_balance(storage_no_invest_5)_: -+0.97 flow(electricityBus_storage_no_invest_5) --1.1627906976744187 flow(storage_no_invest_electricityBus_5) --1 GenericStorageBlock_storage_losses(storage_no_invest_5) -+1 GenericStorageBlock_storage_content(storage_no_invest_5) --1 GenericStorageBlock_storage_content(storage_no_invest_6) -= 0 - -c_e_GenericStorageBlock_balanced_cstr(storage_no_invest)_: -+1 GenericStorageBlock_storage_content(storage_no_invest_6) -= 40000.0 - -bounds - 0 <= flow(electricityBus_storage_no_invest_0) <= 16667 - 0 <= flow(electricityBus_storage_no_invest_1) <= 16667 - 0 <= flow(electricityBus_storage_no_invest_2) <= 16667 - 0 <= flow(electricityBus_storage_no_invest_3) <= 16667 - 0 <= flow(electricityBus_storage_no_invest_4) <= 16667 - 0 <= flow(electricityBus_storage_no_invest_5) <= 16667 - 0 <= flow(storage_no_invest_electricityBus_0) <= 16667 - 0 <= flow(storage_no_invest_electricityBus_1) <= 16667 - 0 <= flow(storage_no_invest_electricityBus_2) <= 16667 - 0 <= flow(storage_no_invest_electricityBus_3) <= 16667 - 0 <= flow(storage_no_invest_electricityBus_4) <= 16667 - 0 <= flow(storage_no_invest_electricityBus_5) <= 16667 - -inf <= GenericStorageBlock_storage_losses(storage_no_invest_0) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_no_invest_1) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_no_invest_2) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_no_invest_3) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_no_invest_4) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage_no_invest_5) <= +inf - 0.0 <= GenericStorageBlock_storage_content(storage_no_invest_1) <= 100000.0 - 0.0 <= GenericStorageBlock_storage_content(storage_no_invest_2) <= 100000.0 - 0.0 <= GenericStorageBlock_storage_content(storage_no_invest_3) <= 100000.0 - 0.0 <= GenericStorageBlock_storage_content(storage_no_invest_4) <= 100000.0 - 0.0 <= GenericStorageBlock_storage_content(storage_no_invest_5) <= 100000.0 - 0.0 <= GenericStorageBlock_storage_content(storage_no_invest_6) <= 100000.0 -end diff --git a/tests/lp_files/storage_unbalanced.lp b/tests/lp_files/storage_unbalanced.lp deleted file mode 100644 index 8645919ec..000000000 --- a/tests/lp_files/storage_unbalanced.lp +++ /dev/null @@ -1,75 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+0 ONE_VAR_CONSTANT - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage1_0) -+1 flow(storage1_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage1_1) -+1 flow(storage1_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage1_2) -+1 flow(storage1_electricityBus_2) -= 0 - -c_e_GenericStorageBlock_losses(storage1_0)_: --1 GenericStorageBlock_storage_losses(storage1_0) -= 0 - -c_e_GenericStorageBlock_losses(storage1_1)_: --1 GenericStorageBlock_storage_losses(storage1_1) -= 0 - -c_e_GenericStorageBlock_losses(storage1_2)_: --1 GenericStorageBlock_storage_losses(storage1_2) -= 0 - -c_e_GenericStorageBlock_balance(storage1_0)_: -+1 flow(electricityBus_storage1_0) --1 flow(storage1_electricityBus_0) --1 GenericStorageBlock_storage_losses(storage1_0) -+1 GenericStorageBlock_storage_content(storage1_0) --1 GenericStorageBlock_storage_content(storage1_1) -= 0 - -c_e_GenericStorageBlock_balance(storage1_1)_: -+1 flow(electricityBus_storage1_1) --1 flow(storage1_electricityBus_1) --1 GenericStorageBlock_storage_losses(storage1_1) -+1 GenericStorageBlock_storage_content(storage1_1) --1 GenericStorageBlock_storage_content(storage1_2) -= 0 - -c_e_GenericStorageBlock_balance(storage1_2)_: -+1 flow(electricityBus_storage1_2) --1 flow(storage1_electricityBus_2) --1 GenericStorageBlock_storage_losses(storage1_2) -+1 GenericStorageBlock_storage_content(storage1_2) --1 GenericStorageBlock_storage_content(storage1_3) -= 0 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= flow(electricityBus_storage1_0) <= +inf - 0 <= flow(electricityBus_storage1_1) <= +inf - 0 <= flow(electricityBus_storage1_2) <= +inf - 0 <= flow(storage1_electricityBus_0) <= +inf - 0 <= flow(storage1_electricityBus_1) <= +inf - 0 <= flow(storage1_electricityBus_2) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage1_0) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage1_1) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage1_2) <= +inf - 0 <= GenericStorageBlock_storage_content(storage1_0) <= 1111 - 0 <= GenericStorageBlock_storage_content(storage1_1) <= 1111 - 0 <= GenericStorageBlock_storage_content(storage1_2) <= 1111 - 0 <= GenericStorageBlock_storage_content(storage1_3) <= 1111 -end diff --git a/tests/lp_files/storage_unbalanced_multi_period.lp b/tests/lp_files/storage_unbalanced_multi_period.lp deleted file mode 100644 index 9d583b4b2..000000000 --- a/tests/lp_files/storage_unbalanced_multi_period.lp +++ /dev/null @@ -1,138 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+0.0 ONE_VAR_CONSTANT - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: --1 flow(electricityBus_storage1_0) -+1 flow(storage1_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: --1 flow(electricityBus_storage1_1) -+1 flow(storage1_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: --1 flow(electricityBus_storage1_2) -+1 flow(storage1_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: --1 flow(electricityBus_storage1_3) -+1 flow(storage1_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: --1 flow(electricityBus_storage1_4) -+1 flow(storage1_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: --1 flow(electricityBus_storage1_5) -+1 flow(storage1_electricityBus_5) -= 0 - -c_e_GenericStorageBlock_losses(storage1_0)_: --1 GenericStorageBlock_storage_losses(storage1_0) -= 0 - -c_e_GenericStorageBlock_losses(storage1_1)_: --1 GenericStorageBlock_storage_losses(storage1_1) -= 0 - -c_e_GenericStorageBlock_losses(storage1_2)_: --1 GenericStorageBlock_storage_losses(storage1_2) -= 0 - -c_e_GenericStorageBlock_losses(storage1_3)_: --1 GenericStorageBlock_storage_losses(storage1_3) -= 0 - -c_e_GenericStorageBlock_losses(storage1_4)_: --1 GenericStorageBlock_storage_losses(storage1_4) -= 0 - -c_e_GenericStorageBlock_losses(storage1_5)_: --1 GenericStorageBlock_storage_losses(storage1_5) -= 0 - -c_e_GenericStorageBlock_balance(storage1_0)_: -+1 flow(electricityBus_storage1_0) --1 flow(storage1_electricityBus_0) --1 GenericStorageBlock_storage_losses(storage1_0) -+1 GenericStorageBlock_storage_content(storage1_0) --1 GenericStorageBlock_storage_content(storage1_1) -= 0 - -c_e_GenericStorageBlock_balance(storage1_1)_: -+1 flow(electricityBus_storage1_1) --1 flow(storage1_electricityBus_1) --1 GenericStorageBlock_storage_losses(storage1_1) -+1 GenericStorageBlock_storage_content(storage1_1) --1 GenericStorageBlock_storage_content(storage1_2) -= 0 - -c_e_GenericStorageBlock_balance(storage1_2)_: -+1 flow(electricityBus_storage1_2) --1 flow(storage1_electricityBus_2) --1 GenericStorageBlock_storage_losses(storage1_2) -+1 GenericStorageBlock_storage_content(storage1_2) --1 GenericStorageBlock_storage_content(storage1_3) -= 0 - -c_e_GenericStorageBlock_balance(storage1_3)_: -+1 flow(electricityBus_storage1_3) --1 flow(storage1_electricityBus_3) --1 GenericStorageBlock_storage_losses(storage1_3) -+1 GenericStorageBlock_storage_content(storage1_3) --1 GenericStorageBlock_storage_content(storage1_4) -= 0 - -c_e_GenericStorageBlock_balance(storage1_4)_: -+1 flow(electricityBus_storage1_4) --1 flow(storage1_electricityBus_4) --1 GenericStorageBlock_storage_losses(storage1_4) -+1 GenericStorageBlock_storage_content(storage1_4) --1 GenericStorageBlock_storage_content(storage1_5) -= 0 - -c_e_GenericStorageBlock_balance(storage1_5)_: -+1 flow(electricityBus_storage1_5) --1 flow(storage1_electricityBus_5) --1 GenericStorageBlock_storage_losses(storage1_5) -+1 GenericStorageBlock_storage_content(storage1_5) --1 GenericStorageBlock_storage_content(storage1_6) -= 0 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= flow(electricityBus_storage1_0) <= +inf - 0 <= flow(electricityBus_storage1_1) <= +inf - 0 <= flow(electricityBus_storage1_2) <= +inf - 0 <= flow(electricityBus_storage1_3) <= +inf - 0 <= flow(electricityBus_storage1_4) <= +inf - 0 <= flow(electricityBus_storage1_5) <= +inf - 0 <= flow(storage1_electricityBus_0) <= +inf - 0 <= flow(storage1_electricityBus_1) <= +inf - 0 <= flow(storage1_electricityBus_2) <= +inf - 0 <= flow(storage1_electricityBus_3) <= +inf - 0 <= flow(storage1_electricityBus_4) <= +inf - 0 <= flow(storage1_electricityBus_5) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage1_0) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage1_1) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage1_2) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage1_3) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage1_4) <= +inf - -inf <= GenericStorageBlock_storage_losses(storage1_5) <= +inf - 0 <= GenericStorageBlock_storage_content(storage1_0) <= 1111 - 0 <= GenericStorageBlock_storage_content(storage1_1) <= 1111 - 0 <= GenericStorageBlock_storage_content(storage1_2) <= 1111 - 0 <= GenericStorageBlock_storage_content(storage1_3) <= 1111 - 0 <= GenericStorageBlock_storage_content(storage1_4) <= 1111 - 0 <= GenericStorageBlock_storage_content(storage1_5) <= 1111 - 0 <= GenericStorageBlock_storage_content(storage1_6) <= 1111 -end diff --git a/tests/lp_files/summed_min_source.lp b/tests/lp_files/summed_min_source.lp deleted file mode 100644 index 7b55d77f8..000000000 --- a/tests/lp_files/summed_min_source.lp +++ /dev/null @@ -1,39 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+25 flow(electricityBus_excess_0) -+25 flow(electricityBus_excess_1) -+25 flow(electricityBus_excess_2) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(electricityBus_excess_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(electricityBus_excess_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(electricityBus_excess_2) -= 0 - -c_u_SimpleFlowBlock_full_load_time_max_constr(electricityBus_excess)_: -+1 flow(electricityBus_excess_0) -+1 flow(electricityBus_excess_1) -+1 flow(electricityBus_excess_2) -<= 1000 - -c_l_SimpleFlowBlock_full_load_time_min_constr(electricityBus_excess)_: -+1 flow(electricityBus_excess_0) -+1 flow(electricityBus_excess_1) -+1 flow(electricityBus_excess_2) ->= 30 - -bounds - 0 <= flow(electricityBus_excess_0) <= 8.0 - 0 <= flow(electricityBus_excess_1) <= 8.0 - 0 <= flow(electricityBus_excess_2) <= 8.0 -end diff --git a/tests/lp_files/summed_min_source_multi_period.lp b/tests/lp_files/summed_min_source_multi_period.lp deleted file mode 100644 index 99929ee41..000000000 --- a/tests/lp_files/summed_min_source_multi_period.lp +++ /dev/null @@ -1,63 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+25 flow(electricityBus_excess_0) -+25 flow(electricityBus_excess_1) -+24.509803921568626 flow(electricityBus_excess_2) -+24.509803921568626 flow(electricityBus_excess_3) -+24.029219530949632 flow(electricityBus_excess_4) -+24.029219530949632 flow(electricityBus_excess_5) - -s.t. - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(electricityBus_excess_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(electricityBus_excess_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(electricityBus_excess_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(electricityBus_excess_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(electricityBus_excess_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(electricityBus_excess_5) -= 0 - -c_u_SimpleFlowBlock_full_load_time_max_constr(electricityBus_excess)_: -+1 flow(electricityBus_excess_0) -+1 flow(electricityBus_excess_1) -+1 flow(electricityBus_excess_2) -+1 flow(electricityBus_excess_3) -+1 flow(electricityBus_excess_4) -+1 flow(electricityBus_excess_5) -<= 1000 - -c_l_SimpleFlowBlock_full_load_time_min_constr(electricityBus_excess)_: -+1 flow(electricityBus_excess_0) -+1 flow(electricityBus_excess_1) -+1 flow(electricityBus_excess_2) -+1 flow(electricityBus_excess_3) -+1 flow(electricityBus_excess_4) -+1 flow(electricityBus_excess_5) ->= 30 - -bounds - 0 <= flow(electricityBus_excess_0) <= 8.0 - 0 <= flow(electricityBus_excess_1) <= 8.0 - 0 <= flow(electricityBus_excess_2) <= 8.0 - 0 <= flow(electricityBus_excess_3) <= 8.0 - 0 <= flow(electricityBus_excess_4) <= 8.0 - 0 <= flow(electricityBus_excess_5) <= 8.0 -end diff --git a/tests/lp_files/variable_chp.lp b/tests/lp_files/variable_chp.lp deleted file mode 100644 index 62189040a..000000000 --- a/tests/lp_files/variable_chp.lp +++ /dev/null @@ -1,140 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+0 ONE_VAR_CONSTANT - -s.t. - -c_e_BusBlock_balance(commodityBus_0)_: -+1 flow(commodityBus_variable_chp_gas1_0) -+1 flow(commodityBus_variable_chp_gas2_0) -= 0 - -c_e_BusBlock_balance(commodityBus_1)_: -+1 flow(commodityBus_variable_chp_gas1_1) -+1 flow(commodityBus_variable_chp_gas2_1) -= 0 - -c_e_BusBlock_balance(commodityBus_2)_: -+1 flow(commodityBus_variable_chp_gas1_2) -+1 flow(commodityBus_variable_chp_gas2_2) -= 0 - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(variable_chp_gas1_electricityBus_0) -+1 flow(variable_chp_gas2_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(variable_chp_gas1_electricityBus_1) -+1 flow(variable_chp_gas2_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(variable_chp_gas1_electricityBus_2) -+1 flow(variable_chp_gas2_electricityBus_2) -= 0 - -c_e_BusBlock_balance(heatBus_0)_: -+1 flow(variable_chp_gas1_heatBus_0) -+1 flow(variable_chp_gas2_heatBus_0) -= 0 - -c_e_BusBlock_balance(heatBus_1)_: -+1 flow(variable_chp_gas1_heatBus_1) -+1 flow(variable_chp_gas2_heatBus_1) -= 0 - -c_e_BusBlock_balance(heatBus_2)_: -+1 flow(variable_chp_gas1_heatBus_2) -+1 flow(variable_chp_gas2_heatBus_2) -= 0 - -c_e_ExtractionTurbineCHPBlock_input_output_relation(variable_chp_gas1_0)_: -+1 flow(commodityBus_variable_chp_gas1_0) --2.0 flow(variable_chp_gas1_electricityBus_0) --0.8 flow(variable_chp_gas1_heatBus_0) -= 0 - -c_e_ExtractionTurbineCHPBlock_input_output_relation(variable_chp_gas1_1)_: -+1 flow(commodityBus_variable_chp_gas1_1) --2.0 flow(variable_chp_gas1_electricityBus_1) --0.8 flow(variable_chp_gas1_heatBus_1) -= 0 - -c_e_ExtractionTurbineCHPBlock_input_output_relation(variable_chp_gas1_2)_: -+1 flow(commodityBus_variable_chp_gas1_2) --2.0 flow(variable_chp_gas1_electricityBus_2) --0.8 flow(variable_chp_gas1_heatBus_2) -= 0 - -c_e_ExtractionTurbineCHPBlock_input_output_relation(variable_chp_gas2_0)_: -+1 flow(commodityBus_variable_chp_gas2_0) --2.0 flow(variable_chp_gas2_electricityBus_0) --0.8 flow(variable_chp_gas2_heatBus_0) -= 0 - -c_e_ExtractionTurbineCHPBlock_input_output_relation(variable_chp_gas2_1)_: -+1 flow(commodityBus_variable_chp_gas2_1) --2.0 flow(variable_chp_gas2_electricityBus_1) --0.8 flow(variable_chp_gas2_heatBus_1) -= 0 - -c_e_ExtractionTurbineCHPBlock_input_output_relation(variable_chp_gas2_2)_: -+1 flow(commodityBus_variable_chp_gas2_2) --2.0 flow(variable_chp_gas2_electricityBus_2) --0.8 flow(variable_chp_gas2_heatBus_2) -= 0 - -c_u_ExtractionTurbineCHPBlock_out_flow_relation(variable_chp_gas1_0)_: --1 flow(variable_chp_gas1_electricityBus_0) -+0.6 flow(variable_chp_gas1_heatBus_0) -<= 0 - -c_u_ExtractionTurbineCHPBlock_out_flow_relation(variable_chp_gas1_1)_: --1 flow(variable_chp_gas1_electricityBus_1) -+0.6 flow(variable_chp_gas1_heatBus_1) -<= 0 - -c_u_ExtractionTurbineCHPBlock_out_flow_relation(variable_chp_gas1_2)_: --1 flow(variable_chp_gas1_electricityBus_2) -+0.6 flow(variable_chp_gas1_heatBus_2) -<= 0 - -c_u_ExtractionTurbineCHPBlock_out_flow_relation(variable_chp_gas2_0)_: --1 flow(variable_chp_gas2_electricityBus_0) -+0.6 flow(variable_chp_gas2_heatBus_0) -<= 0 - -c_u_ExtractionTurbineCHPBlock_out_flow_relation(variable_chp_gas2_1)_: --1 flow(variable_chp_gas2_electricityBus_1) -+0.6 flow(variable_chp_gas2_heatBus_1) -<= 0 - -c_u_ExtractionTurbineCHPBlock_out_flow_relation(variable_chp_gas2_2)_: --1 flow(variable_chp_gas2_electricityBus_2) -+0.6 flow(variable_chp_gas2_heatBus_2) -<= 0 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= flow(commodityBus_variable_chp_gas1_0) <= 100 - 0 <= flow(commodityBus_variable_chp_gas1_1) <= 100 - 0 <= flow(commodityBus_variable_chp_gas1_2) <= 100 - 0 <= flow(commodityBus_variable_chp_gas2_0) <= 100 - 0 <= flow(commodityBus_variable_chp_gas2_1) <= 100 - 0 <= flow(commodityBus_variable_chp_gas2_2) <= 100 - 0 <= flow(variable_chp_gas1_electricityBus_0) <= +inf - 0 <= flow(variable_chp_gas1_electricityBus_1) <= +inf - 0 <= flow(variable_chp_gas1_electricityBus_2) <= +inf - 0 <= flow(variable_chp_gas1_heatBus_0) <= +inf - 0 <= flow(variable_chp_gas1_heatBus_1) <= +inf - 0 <= flow(variable_chp_gas1_heatBus_2) <= +inf - 0 <= flow(variable_chp_gas2_electricityBus_0) <= +inf - 0 <= flow(variable_chp_gas2_electricityBus_1) <= +inf - 0 <= flow(variable_chp_gas2_electricityBus_2) <= +inf - 0 <= flow(variable_chp_gas2_heatBus_0) <= +inf - 0 <= flow(variable_chp_gas2_heatBus_1) <= +inf - 0 <= flow(variable_chp_gas2_heatBus_2) <= +inf -end diff --git a/tests/lp_files/variable_chp_multi_period.lp b/tests/lp_files/variable_chp_multi_period.lp deleted file mode 100644 index d3c1af4a3..000000000 --- a/tests/lp_files/variable_chp_multi_period.lp +++ /dev/null @@ -1,269 +0,0 @@ -\* Source Pyomo model name=Model *\ - -min -objective: -+0 ONE_VAR_CONSTANT - -s.t. - -c_e_BusBlock_balance(commodityBus_0)_: -+1 flow(commodityBus_variable_chp_gas1_0) -+1 flow(commodityBus_variable_chp_gas2_0) -= 0 - -c_e_BusBlock_balance(commodityBus_1)_: -+1 flow(commodityBus_variable_chp_gas1_1) -+1 flow(commodityBus_variable_chp_gas2_1) -= 0 - -c_e_BusBlock_balance(commodityBus_2)_: -+1 flow(commodityBus_variable_chp_gas1_2) -+1 flow(commodityBus_variable_chp_gas2_2) -= 0 - -c_e_BusBlock_balance(commodityBus_3)_: -+1 flow(commodityBus_variable_chp_gas1_3) -+1 flow(commodityBus_variable_chp_gas2_3) -= 0 - -c_e_BusBlock_balance(commodityBus_4)_: -+1 flow(commodityBus_variable_chp_gas1_4) -+1 flow(commodityBus_variable_chp_gas2_4) -= 0 - -c_e_BusBlock_balance(commodityBus_5)_: -+1 flow(commodityBus_variable_chp_gas1_5) -+1 flow(commodityBus_variable_chp_gas2_5) -= 0 - -c_e_BusBlock_balance(electricityBus_0)_: -+1 flow(variable_chp_gas1_electricityBus_0) -+1 flow(variable_chp_gas2_electricityBus_0) -= 0 - -c_e_BusBlock_balance(electricityBus_1)_: -+1 flow(variable_chp_gas1_electricityBus_1) -+1 flow(variable_chp_gas2_electricityBus_1) -= 0 - -c_e_BusBlock_balance(electricityBus_2)_: -+1 flow(variable_chp_gas1_electricityBus_2) -+1 flow(variable_chp_gas2_electricityBus_2) -= 0 - -c_e_BusBlock_balance(electricityBus_3)_: -+1 flow(variable_chp_gas1_electricityBus_3) -+1 flow(variable_chp_gas2_electricityBus_3) -= 0 - -c_e_BusBlock_balance(electricityBus_4)_: -+1 flow(variable_chp_gas1_electricityBus_4) -+1 flow(variable_chp_gas2_electricityBus_4) -= 0 - -c_e_BusBlock_balance(electricityBus_5)_: -+1 flow(variable_chp_gas1_electricityBus_5) -+1 flow(variable_chp_gas2_electricityBus_5) -= 0 - -c_e_BusBlock_balance(heatBus_0)_: -+1 flow(variable_chp_gas1_heatBus_0) -+1 flow(variable_chp_gas2_heatBus_0) -= 0 - -c_e_BusBlock_balance(heatBus_1)_: -+1 flow(variable_chp_gas1_heatBus_1) -+1 flow(variable_chp_gas2_heatBus_1) -= 0 - -c_e_BusBlock_balance(heatBus_2)_: -+1 flow(variable_chp_gas1_heatBus_2) -+1 flow(variable_chp_gas2_heatBus_2) -= 0 - -c_e_BusBlock_balance(heatBus_3)_: -+1 flow(variable_chp_gas1_heatBus_3) -+1 flow(variable_chp_gas2_heatBus_3) -= 0 - -c_e_BusBlock_balance(heatBus_4)_: -+1 flow(variable_chp_gas1_heatBus_4) -+1 flow(variable_chp_gas2_heatBus_4) -= 0 - -c_e_BusBlock_balance(heatBus_5)_: -+1 flow(variable_chp_gas1_heatBus_5) -+1 flow(variable_chp_gas2_heatBus_5) -= 0 - -c_e_ExtractionTurbineCHPBlock_input_output_relation(variable_chp_gas1_0)_: -+1 flow(commodityBus_variable_chp_gas1_0) --2.0 flow(variable_chp_gas1_electricityBus_0) --0.8 flow(variable_chp_gas1_heatBus_0) -= 0 - -c_e_ExtractionTurbineCHPBlock_input_output_relation(variable_chp_gas1_1)_: -+1 flow(commodityBus_variable_chp_gas1_1) --2.0 flow(variable_chp_gas1_electricityBus_1) --0.8 flow(variable_chp_gas1_heatBus_1) -= 0 - -c_e_ExtractionTurbineCHPBlock_input_output_relation(variable_chp_gas1_2)_: -+1 flow(commodityBus_variable_chp_gas1_2) --2.0 flow(variable_chp_gas1_electricityBus_2) --0.8 flow(variable_chp_gas1_heatBus_2) -= 0 - -c_e_ExtractionTurbineCHPBlock_input_output_relation(variable_chp_gas1_3)_: -+1 flow(commodityBus_variable_chp_gas1_3) --2.0 flow(variable_chp_gas1_electricityBus_3) --0.8 flow(variable_chp_gas1_heatBus_3) -= 0 - -c_e_ExtractionTurbineCHPBlock_input_output_relation(variable_chp_gas1_4)_: -+1 flow(commodityBus_variable_chp_gas1_4) --2.0 flow(variable_chp_gas1_electricityBus_4) --0.8 flow(variable_chp_gas1_heatBus_4) -= 0 - -c_e_ExtractionTurbineCHPBlock_input_output_relation(variable_chp_gas1_5)_: -+1 flow(commodityBus_variable_chp_gas1_5) --2.0 flow(variable_chp_gas1_electricityBus_5) --0.8 flow(variable_chp_gas1_heatBus_5) -= 0 - -c_e_ExtractionTurbineCHPBlock_input_output_relation(variable_chp_gas2_0)_: -+1 flow(commodityBus_variable_chp_gas2_0) --2.0 flow(variable_chp_gas2_electricityBus_0) --0.8 flow(variable_chp_gas2_heatBus_0) -= 0 - -c_e_ExtractionTurbineCHPBlock_input_output_relation(variable_chp_gas2_1)_: -+1 flow(commodityBus_variable_chp_gas2_1) --2.0 flow(variable_chp_gas2_electricityBus_1) --0.8 flow(variable_chp_gas2_heatBus_1) -= 0 - -c_e_ExtractionTurbineCHPBlock_input_output_relation(variable_chp_gas2_2)_: -+1 flow(commodityBus_variable_chp_gas2_2) --2.0 flow(variable_chp_gas2_electricityBus_2) --0.8 flow(variable_chp_gas2_heatBus_2) -= 0 - -c_e_ExtractionTurbineCHPBlock_input_output_relation(variable_chp_gas2_3)_: -+1 flow(commodityBus_variable_chp_gas2_3) --2.0 flow(variable_chp_gas2_electricityBus_3) --0.8 flow(variable_chp_gas2_heatBus_3) -= 0 - -c_e_ExtractionTurbineCHPBlock_input_output_relation(variable_chp_gas2_4)_: -+1 flow(commodityBus_variable_chp_gas2_4) --2.0 flow(variable_chp_gas2_electricityBus_4) --0.8 flow(variable_chp_gas2_heatBus_4) -= 0 - -c_e_ExtractionTurbineCHPBlock_input_output_relation(variable_chp_gas2_5)_: -+1 flow(commodityBus_variable_chp_gas2_5) --2.0 flow(variable_chp_gas2_electricityBus_5) --0.8 flow(variable_chp_gas2_heatBus_5) -= 0 - -c_u_ExtractionTurbineCHPBlock_out_flow_relation(variable_chp_gas1_0)_: --1 flow(variable_chp_gas1_electricityBus_0) -+0.6 flow(variable_chp_gas1_heatBus_0) -<= 0 - -c_u_ExtractionTurbineCHPBlock_out_flow_relation(variable_chp_gas1_1)_: --1 flow(variable_chp_gas1_electricityBus_1) -+0.6 flow(variable_chp_gas1_heatBus_1) -<= 0 - -c_u_ExtractionTurbineCHPBlock_out_flow_relation(variable_chp_gas1_2)_: --1 flow(variable_chp_gas1_electricityBus_2) -+0.6 flow(variable_chp_gas1_heatBus_2) -<= 0 - -c_u_ExtractionTurbineCHPBlock_out_flow_relation(variable_chp_gas1_3)_: --1 flow(variable_chp_gas1_electricityBus_3) -+0.6 flow(variable_chp_gas1_heatBus_3) -<= 0 - -c_u_ExtractionTurbineCHPBlock_out_flow_relation(variable_chp_gas1_4)_: --1 flow(variable_chp_gas1_electricityBus_4) -+0.6 flow(variable_chp_gas1_heatBus_4) -<= 0 - -c_u_ExtractionTurbineCHPBlock_out_flow_relation(variable_chp_gas1_5)_: --1 flow(variable_chp_gas1_electricityBus_5) -+0.6 flow(variable_chp_gas1_heatBus_5) -<= 0 - -c_u_ExtractionTurbineCHPBlock_out_flow_relation(variable_chp_gas2_0)_: --1 flow(variable_chp_gas2_electricityBus_0) -+0.6 flow(variable_chp_gas2_heatBus_0) -<= 0 - -c_u_ExtractionTurbineCHPBlock_out_flow_relation(variable_chp_gas2_1)_: --1 flow(variable_chp_gas2_electricityBus_1) -+0.6 flow(variable_chp_gas2_heatBus_1) -<= 0 - -c_u_ExtractionTurbineCHPBlock_out_flow_relation(variable_chp_gas2_2)_: --1 flow(variable_chp_gas2_electricityBus_2) -+0.6 flow(variable_chp_gas2_heatBus_2) -<= 0 - -c_u_ExtractionTurbineCHPBlock_out_flow_relation(variable_chp_gas2_3)_: --1 flow(variable_chp_gas2_electricityBus_3) -+0.6 flow(variable_chp_gas2_heatBus_3) -<= 0 - -c_u_ExtractionTurbineCHPBlock_out_flow_relation(variable_chp_gas2_4)_: --1 flow(variable_chp_gas2_electricityBus_4) -+0.6 flow(variable_chp_gas2_heatBus_4) -<= 0 - -c_u_ExtractionTurbineCHPBlock_out_flow_relation(variable_chp_gas2_5)_: --1 flow(variable_chp_gas2_electricityBus_5) -+0.6 flow(variable_chp_gas2_heatBus_5) -<= 0 - -bounds - 1 <= ONE_VAR_CONSTANT <= 1 - 0 <= flow(commodityBus_variable_chp_gas1_0) <= 100 - 0 <= flow(commodityBus_variable_chp_gas1_1) <= 100 - 0 <= flow(commodityBus_variable_chp_gas1_2) <= 100 - 0 <= flow(commodityBus_variable_chp_gas1_3) <= 100 - 0 <= flow(commodityBus_variable_chp_gas1_4) <= 100 - 0 <= flow(commodityBus_variable_chp_gas1_5) <= 100 - 0 <= flow(commodityBus_variable_chp_gas2_0) <= 100 - 0 <= flow(commodityBus_variable_chp_gas2_1) <= 100 - 0 <= flow(commodityBus_variable_chp_gas2_2) <= 100 - 0 <= flow(commodityBus_variable_chp_gas2_3) <= 100 - 0 <= flow(commodityBus_variable_chp_gas2_4) <= 100 - 0 <= flow(commodityBus_variable_chp_gas2_5) <= 100 - 0 <= flow(variable_chp_gas1_electricityBus_0) <= +inf - 0 <= flow(variable_chp_gas1_electricityBus_1) <= +inf - 0 <= flow(variable_chp_gas1_electricityBus_2) <= +inf - 0 <= flow(variable_chp_gas1_electricityBus_3) <= +inf - 0 <= flow(variable_chp_gas1_electricityBus_4) <= +inf - 0 <= flow(variable_chp_gas1_electricityBus_5) <= +inf - 0 <= flow(variable_chp_gas1_heatBus_0) <= +inf - 0 <= flow(variable_chp_gas1_heatBus_1) <= +inf - 0 <= flow(variable_chp_gas1_heatBus_2) <= +inf - 0 <= flow(variable_chp_gas1_heatBus_3) <= +inf - 0 <= flow(variable_chp_gas1_heatBus_4) <= +inf - 0 <= flow(variable_chp_gas1_heatBus_5) <= +inf - 0 <= flow(variable_chp_gas2_electricityBus_0) <= +inf - 0 <= flow(variable_chp_gas2_electricityBus_1) <= +inf - 0 <= flow(variable_chp_gas2_electricityBus_2) <= +inf - 0 <= flow(variable_chp_gas2_electricityBus_3) <= +inf - 0 <= flow(variable_chp_gas2_electricityBus_4) <= +inf - 0 <= flow(variable_chp_gas2_electricityBus_5) <= +inf - 0 <= flow(variable_chp_gas2_heatBus_0) <= +inf - 0 <= flow(variable_chp_gas2_heatBus_1) <= +inf - 0 <= flow(variable_chp_gas2_heatBus_2) <= +inf - 0 <= flow(variable_chp_gas2_heatBus_3) <= +inf - 0 <= flow(variable_chp_gas2_heatBus_4) <= +inf - 0 <= flow(variable_chp_gas2_heatBus_5) <= +inf -end diff --git a/tests/multi_period_constraint_tests.py b/tests/multi_period_constraint_tests.py deleted file mode 100644 index 16a77d5d4..000000000 --- a/tests/multi_period_constraint_tests.py +++ /dev/null @@ -1,2487 +0,0 @@ -# -*- coding: utf-8 - - -"""Test the created constraints against approved constraints. - -This file is part of project oemof (github.com/oemof/oemof). It's copyrighted -by the contributors recorded in the version control history of the file, -available from its original location oemof/tests/constraint_tests.py - -SPDX-License-Identifier: MIT -""" - -import logging -import re -from os import path as ospath - -import pandas as pd -import pytest -from pyomo.repn.tests.lp_diff import lp_diff - -from oemof import solph -from oemof.solph.components._offset_converter import ( - slope_offset_from_nonconvex_output, -) - -logging.disable(logging.INFO) - - -# Warnings about the fature being experimental: -@pytest.mark.filterwarnings( - "ignore:Ensure that your timeindex and timeincrement are" - " consistent.:UserWarning" -) -@pytest.mark.filterwarnings( - "ignore:CAUTION! You specified the 'periods' attribute:UserWarning" -) -# Warnings about default parameters beaing used: -@pytest.mark.filterwarnings( - "ignore:You did not specify an interest rate.:UserWarning" -) -@pytest.mark.filterwarnings( - "ignore:By default, a discount_rate of 0.02 is used for a multi-period" - " model.:UserWarning" -) -class TestsMultiPeriodConstraint: - @classmethod - def setup_class(cls): - cls.objective_pattern = re.compile( - r"^objective.*(?=s\.t\.)", re.DOTALL | re.MULTILINE - ) - - timeindex1 = pd.date_range("1/1/2012", periods=2, freq="h") - timeindex2 = pd.date_range("1/1/2013", periods=2, freq="h") - timeindex3 = pd.date_range("1/1/2014", periods=2, freq="h") - cls.date_time_index = timeindex1.append(timeindex2).append(timeindex3) - cls.periods = [timeindex1, timeindex2, timeindex3] - - cls.tmppath = solph.helpers.extend_basic_path("tmp") - logging.info(cls.tmppath) - - def setup_method(self): - self.energysystem = solph.EnergySystem( - groupings=solph.GROUPINGS, - timeindex=self.date_time_index, - timeincrement=[1] * len(self.date_time_index), - infer_last_interval=False, - periods=self.periods, - ) - - def get_om(self): - return solph.Model( - self.energysystem, timeindex=self.energysystem.timeindex - ) - - def compare_lp_files(self, filename, ignored=None, my_om=None): - r"""Compare lp-files to check constraints generated within solph. - - An lp-file is being generated automatically when the tests are - executed. Make sure that you create an empty file first and - transfer the content from the one that has been created automatically - into this one afterwards. Please ensure that the content is being - checked carefully. Otherwise, errors are included within the code base. - """ - if my_om is None: - om = self.get_om() - else: - om = my_om - tmp_filename = filename.replace(".lp", "") + "_tmp.lp" - new_filename = ospath.join(self.tmppath, tmp_filename) - om.write(new_filename, io_options={"symbolic_solver_labels": True}) - logging.info("Comparing with file: {0}".format(filename)) - with open(ospath.join(self.tmppath, tmp_filename)) as generated_file: - with open( - ospath.join( - ospath.dirname(ospath.realpath(__file__)), - "lp_files", - filename, - ) - ) as expected_file: - exp = expected_file.read() - gen = generated_file.read() - - # lp_diff returns two arrays of strings with cleaned lp syntax - # It automatically prints the diff - exp_diff, gen_diff = lp_diff(exp, gen) - - # sometimes, 0.0 is printed, sometimes 0, harmonise that - exp_diff = [ - (line + " ").replace(" 0.0 ", " 0 ") for line in exp_diff - ] - gen_diff = [ - (line + " ").replace(" 0.0 ", " 0 ") for line in gen_diff - ] - - assert len(exp_diff) == len(gen_diff) - - # Created the LP files do not have a reproducable - # order of the lines. Thus, we sort the lines. - for exp, gen in zip(sorted(exp_diff), sorted(gen_diff)): - assert ( - exp == gen - ), "Failed matching expected with generated lp file." - - def test_linear_converter(self): - """Constraint test of a Converter without Investment.""" - bgas = solph.buses.Bus(label="gas") - - bel = solph.buses.Bus(label="electricity") - - converter = solph.components.Converter( - label="powerplantGas", - inputs={bgas: solph.flows.Flow()}, - outputs={ - bel: solph.flows.Flow(nominal_value=10e10, variable_costs=50) - }, - conversion_factors={bel: 0.58}, - ) - self.energysystem.add(bgas, bel, converter) - self.compare_lp_files("linear_converter_multi_period.lp") - - def test_linear_converter_invest(self): - """Constraint test of a Converter with Investment.""" - - bgas = solph.buses.Bus(label="gas") - - bel = solph.buses.Bus(label="electricity") - - converter = solph.components.Converter( - label="powerplant_gas", - inputs={bgas: solph.flows.Flow()}, - outputs={ - bel: solph.flows.Flow( - variable_costs=50, - nominal_value=solph.Investment( - existing=50, - maximum=1000, - overall_maximum=10000, - overall_minimum=200, - ep_costs=20, - age=5, - lifetime=40, - ), - ) - }, - conversion_factors={bel: 0.58}, - ) - self.energysystem.add(bgas, bel, converter) - self.compare_lp_files("linear_converter_invest_multi_period.lp") - - def test_linear_converter_invest_remaining_value(self): - """Constraint test of a Converter with Investment.""" - - bgas = solph.buses.Bus(label="gas") - - bel = solph.buses.Bus(label="electricity") - - converter = solph.components.Converter( - label="powerplant_gas", - inputs={bgas: solph.flows.Flow()}, - outputs={ - bel: solph.flows.Flow( - variable_costs=50, - nominal_value=solph.Investment( - existing=50, - maximum=1000, - overall_maximum=10000, - overall_minimum=200, - ep_costs=[20, 19, 18], - age=5, - lifetime=40, - ), - ) - }, - conversion_factors={bel: 0.58}, - ) - self.energysystem.use_remaining_value = True - self.energysystem.add(bgas, bel, converter) - self.compare_lp_files( - "linear_converter_invest_multi_period_remaining_value.lp" - ) - self.energysystem.use_remaining_value = False - - def test_linear_converter_invest_old_capacity(self): - """Constraint test of a Converter with Investment.""" - - bgas = solph.buses.Bus(label="gas") - - bel = solph.buses.Bus(label="electricity") - - converter = solph.components.Converter( - label="powerplant_gas", - inputs={bgas: solph.flows.Flow()}, - outputs={ - bel: solph.flows.Flow( - variable_costs=50, - nominal_value=solph.Investment( - existing=50, - maximum=1000, - overall_maximum=10000, - overall_minimum=200, - ep_costs=20, - age=1, - lifetime=2, - ), - ) - }, - conversion_factors={bel: 0.58}, - ) - self.energysystem.add(bgas, bel, converter) - self.compare_lp_files("linear_converter_invest_multi_period_old.lp") - - def test_max_source_min_sink(self): - """Test source with max, sink with min""" - bel = solph.buses.Bus(label="electricityBus") - - source = solph.components.Source( - label="wind", - outputs={ - bel: solph.flows.Flow( - nominal_value=54, max=(0.85, 0.95, 0.61, 0.72, 0.99, 0.1) - ) - }, - ) - - sink = solph.components.Sink( - label="minDemand", - inputs={ - bel: solph.flows.Flow( - nominal_value=54, - min=(0.84, 0.94, 0.59, 0.7, 0.97, 0.09), - variable_costs=14, - ) - }, - ) - self.energysystem.add(bel, source, sink) - self.compare_lp_files("max_source_min_sink_multi_period.lp") - - def test_fixed_source_variable_sink(self): - """Constraint test with a fixed source and a variable sink.""" - - bel = solph.buses.Bus(label="electricityBus") - - source = solph.components.Source( - label="wind", - outputs={ - bel: solph.flows.Flow( - fix=[0.43, 0.72, 0.29, 0.33, 0.33, 0.33], nominal_value=1e6 - ) - }, - ) - - sink = solph.components.Sink( - label="excess", inputs={bel: solph.flows.Flow(variable_costs=40)} - ) - self.energysystem.add(bel, source, sink) - self.compare_lp_files("fixed_source_variable_sink_multi_period.lp") - - def test_nominal_value_to_zero(self): - """If the nominal value is set to zero nothing should happen.""" - bel = solph.buses.Bus(label="electricityBus") - - source = solph.components.Source( - label="s1", outputs={bel: solph.flows.Flow(nominal_value=0)} - ) - self.energysystem.add(bel, source) - self.compare_lp_files("nominal_value_to_zero_multi_period.lp") - - def test_fixed_source_invest_sink(self): - """Constraints test for fixed source + invest sink w. - `full_load_time_max`""" - bel = solph.buses.Bus(label="electricityBus") - - source = solph.components.Source( - label="wind", - outputs={ - bel: solph.flows.Flow( - fix=[12, 16, 14, 18, 18, 18], nominal_value=1e6 - ) - }, - ) - - sink = solph.components.Sink( - label="excess", - inputs={ - bel: solph.flows.Flow( - full_load_time_max=2.3, - variable_costs=25, - max=0.8, - nominal_value=solph.Investment( - ep_costs=500, maximum=1e6, existing=50, lifetime=20 - ), - ) - }, - ) - self.energysystem.add(bel, source, sink) - self.compare_lp_files("fixed_source_invest_sink_multi_period.lp") - - def test_investment_lifetime_missing(self): - """Test error raised if lifetime attribute is missing""" - bel = solph.buses.Bus(label="electricityBus") - - sink = solph.components.Sink( - label="excess", - inputs={ - bel: solph.flows.Flow( - max=0.8, - nominal_value=solph.Investment( - ep_costs=500, maximum=1e6, existing=50 - ), - ) - }, - ) - self.energysystem.add(bel, sink) - msg = ( - "You have to specify a lifetime " - "for a Flow with an associated investment " - "object in a multi-period model!" - ) - with pytest.raises(ValueError, match=msg): - self.get_om() - - def test_invest_source_fixed_sink(self): - """Constraint test with a fixed sink and a dispatch invest source.""" - - bel = solph.buses.Bus(label="electricityBus") - - source = solph.components.Source( - label="pv", - outputs={ - bel: solph.flows.Flow( - max=[45, 83, 65, 67, 33, 96], - variable_costs=13, - nominal_value=solph.Investment(ep_costs=123, lifetime=25), - ) - }, - ) - - sink = solph.components.Sink( - label="excess", - inputs={ - bel: solph.flows.Flow( - fix=[0.5, 0.8, 0.3, 0.6, 0.7, 0.2], nominal_value=1e5 - ) - }, - ) - self.energysystem.add(bel, source, sink) - self.compare_lp_files("invest_source_fixed_sink_multi_period.lp") - - def test_storage(self): - """ """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage_no_invest", - inputs={ - bel: solph.flows.Flow(nominal_value=16667, variable_costs=56) - }, - outputs={ - bel: solph.flows.Flow(nominal_value=16667, variable_costs=24) - }, - nominal_storage_capacity=1e5, - loss_rate=0.13, - inflow_conversion_factor=0.97, - outflow_conversion_factor=0.86, - initial_storage_level=0.4, - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_multi_period.lp") - - def test_storage_invest_1(self): - """All invest variables are coupled. The invest variables of the Flows - will be created during the initialisation of the storage e.g. battery - """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage1", - inputs={bel: solph.flows.Flow(variable_costs=56)}, - outputs={bel: solph.flows.Flow(variable_costs=24)}, - loss_rate=0.13, - max_storage_level=0.9, - min_storage_level=0.1, - invest_relation_input_capacity=1 / 6, - invest_relation_output_capacity=1 / 6, - lifetime_inflow=20, - lifetime_outflow=20, - inflow_conversion_factor=0.97, - outflow_conversion_factor=0.86, - nominal_storage_capacity=solph.Investment( - ep_costs=145, - maximum=234, - lifetime=20, - interest_rate=0.05, - overall_maximum=1000, - overall_minimum=2, - ), - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_1_multi_period.lp") - - def test_storage_invest_1_remaining_value(self): - """All invest variables are coupled. The invest variables of the Flows - will be created during the initialisation of the storage e.g. battery - """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage1", - inputs={bel: solph.flows.Flow(variable_costs=56)}, - outputs={bel: solph.flows.Flow(variable_costs=24)}, - loss_rate=0.13, - max_storage_level=0.9, - min_storage_level=0.1, - invest_relation_input_capacity=1 / 6, - invest_relation_output_capacity=1 / 6, - lifetime_inflow=20, - lifetime_outflow=20, - inflow_conversion_factor=0.97, - outflow_conversion_factor=0.86, - nominal_storage_capacity=solph.Investment( - ep_costs=[145, 130, 115], - maximum=234, - lifetime=20, - interest_rate=0.05, - overall_maximum=1000, - overall_minimum=2, - ), - ) - self.energysystem.use_remaining_value = True - self.energysystem.add(bel, storage) - self.compare_lp_files( - "storage_invest_1_multi_period_remaining_value.lp" - ) - self.energysystem.use_remaining_value = False - - def test_storage_invest_2(self): - """All can be free extended to their own cost.""" - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage2", - inputs={ - bel: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=99, lifetime=20) - ) - }, - outputs={ - bel: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=9, lifetime=20) - ) - }, - nominal_storage_capacity=solph.Investment( - ep_costs=145, lifetime=20, existing=20, age=19 - ), - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_2_multi_period.lp") - - def test_storage_invest_3(self): - """The storage capacity is fixed, but the Flows can be extended. - e.g. PHES with a fixed basin but the pump and the turbine can be - adapted - """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage3", - inputs={ - bel: solph.flows.Flow( - nominal_value=solph.Investment( - ep_costs=99, - lifetime=2, - age=1, - existing=10, - ) - ) - }, - outputs={ - bel: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=9, lifetime=20) - ) - }, - nominal_storage_capacity=5000, - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_3_multi_period.lp") - - def test_storage_invest_4(self): - """Only the storage capacity can be extended.""" - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage4", - inputs={bel: solph.flows.Flow(nominal_value=80)}, - outputs={bel: solph.flows.Flow(nominal_value=100)}, - nominal_storage_capacity=solph.Investment( - ep_costs=145, maximum=500, lifetime=2, age=1, existing=100 - ), - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_4_multi_period.lp") - - def test_storage_invest_5(self): - """The storage capacity is fixed, but the Flows can be extended. - e.g. PHES with a fixed basin but the pump and the turbine can be - adapted. The installed capacity of the pump is 10 % bigger than the - the capacity of the turbine due to 'invest_relation_input_output=1.1'. - """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage5", - inputs={ - bel: solph.flows.Flow( - nominal_value=solph.Investment( - ep_costs=99, existing=110, lifetime=20 - ) - ) - }, - outputs={ - bel: solph.flows.Flow( - nominal_value=solph.Investment(existing=100, lifetime=20) - ) - }, - invest_relation_input_output=1.1, - nominal_storage_capacity=10000, - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_5_multi_period.lp") - - def test_storage_invest_6(self): - """Like test_storage_invest_5 but there can also be an investment in - the basin. - """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage6", - inputs={ - bel: solph.flows.Flow( - nominal_value=solph.Investment( - ep_costs=99, existing=110, lifetime=20 - ) - ) - }, - outputs={ - bel: solph.flows.Flow( - nominal_value=solph.Investment(existing=100, lifetime=20) - ) - }, - invest_relation_input_output=1.1, - nominal_storage_capacity=solph.Investment( - ep_costs=145, existing=1000, lifetime=20, age=17 - ), - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_6_multi_period.lp") - - def test_storage_minimum_invest(self): - """All invest variables are coupled. The invest variables of the Flows - will be created during the initialisation of the storage e.g. battery - """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage1", - inputs={bel: solph.flows.Flow()}, - outputs={bel: solph.flows.Flow()}, - nominal_storage_capacity=solph.Investment( - ep_costs=145, minimum=100, maximum=200, lifetime=40 - ), - lifetime_inflow=40, - lifetime_outflow=40, - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_minimum_multi_period.lp") - - def test_storage_invest_multi_period(self): - """Test multi-period attributes such as age, fixed_costs, ...""" - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage1", - inputs={bel: solph.flows.Flow()}, - outputs={bel: solph.flows.Flow()}, - nominal_storage_capacity=solph.Investment( - ep_costs=145, - minimum=100, - maximum=200, - lifetime=40, - existing=50, - age=39, - overall_minimum=10, - overall_maximum=500, - fixed_costs=5, - ), - lifetime_inflow=40, - lifetime_outflow=40, - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_multi_period.lp") - - def test_storage_unbalanced(self): - """Testing a unbalanced storage (e.g. battery).""" - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage1", - inputs={bel: solph.flows.Flow()}, - outputs={bel: solph.flows.Flow()}, - nominal_storage_capacity=1111, - initial_storage_level=None, - balanced=False, - invest_relation_input_capacity=1, - invest_relation_output_capacity=1, - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_unbalanced_multi_period.lp") - - def test_storage_fixed_losses(self): - """ """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage_no_invest", - inputs={ - bel: solph.flows.Flow(nominal_value=16667, variable_costs=56) - }, - outputs={ - bel: solph.flows.Flow(nominal_value=16667, variable_costs=24) - }, - nominal_storage_capacity=1e5, - loss_rate=0.13, - fixed_losses_relative=0.01, - fixed_losses_absolute=3, - inflow_conversion_factor=0.97, - outflow_conversion_factor=0.86, - initial_storage_level=0.4, - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_fixed_losses_multi_period.lp") - - def test_storage_invest_1_fixed_losses(self): - """Test error for fixed losses""" - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage1", - inputs={bel: solph.flows.Flow(variable_costs=56)}, - outputs={bel: solph.flows.Flow(variable_costs=24)}, - loss_rate=0.13, - fixed_losses_relative=0.01, - fixed_losses_absolute=3, - max_storage_level=0.9, - min_storage_level=0.1, - invest_relation_input_capacity=1 / 6, - invest_relation_output_capacity=1 / 6, - inflow_conversion_factor=0.97, - outflow_conversion_factor=0.86, - lifetime_inflow=40, - lifetime_outflow=40, - nominal_storage_capacity=solph.Investment( - ep_costs=145, - minimum=1, - maximum=234, - lifetime=20, - interest_rate=0.05, - overall_maximum=1000, - overall_minimum=2, - ), - ) - self.energysystem.add(bel, storage) - msg = ( - "For a multi-period investment model, fixed absolute" - " losses are not supported. Please remove parameter." - ) - with pytest.raises(ValueError, match=msg): - self.get_om() - - def test_storage_invest_1_initial_storage_level(self): - """Test error for initial storage level - with multi-period investments""" - bel = solph.buses.Bus(label="electricityBus") - storage = solph.components.GenericStorage( - label="storage1", - inputs={bel: solph.flows.Flow(variable_costs=56)}, - outputs={bel: solph.flows.Flow(variable_costs=24)}, - loss_rate=0.13, - max_storage_level=0.9, - min_storage_level=0.1, - invest_relation_input_capacity=1 / 6, - invest_relation_output_capacity=1 / 6, - inflow_conversion_factor=0.97, - outflow_conversion_factor=0.86, - lifetime_inflow=40, - lifetime_outflow=40, - initial_storage_level=0.5, - nominal_storage_capacity=solph.Investment( - ep_costs=145, - maximum=234, - lifetime=20, - interest_rate=0.05, - overall_maximum=1000, - overall_minimum=2, - ), - ) - self.energysystem.add(bel, storage) - msg = ( - "For a multi-period model, initial_storage_level is" - " not supported.\nIt needs to be removed since it" - " has no effect.\nstorage_content will be zero," - " until there is some usable storage capacity installed." - ) - with pytest.raises(ValueError, match=msg): - self.get_om() - - def test_storage_invest_1_missing_lifetime(self): - """Test error thrown if storage misses necessary lifetime""" - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage1", - inputs={bel: solph.flows.Flow(variable_costs=56)}, - outputs={bel: solph.flows.Flow(variable_costs=24)}, - loss_rate=0.13, - max_storage_level=0.9, - min_storage_level=0.1, - invest_relation_input_capacity=1 / 6, - invest_relation_output_capacity=1 / 6, - inflow_conversion_factor=0.97, - outflow_conversion_factor=0.86, - lifetime_inflow=40, - lifetime_outflow=40, - nominal_storage_capacity=solph.Investment( - ep_costs=145, - maximum=234, - interest_rate=0.05, - overall_maximum=1000, - overall_minimum=2, - ), - ) - self.energysystem.add(bel, storage) - msg = ( - "You have to specify a lifetime " - "for a Flow going into or out of a GenericStorage " - "unit in a multi-period model!" - ) - with pytest.raises(ValueError, match=msg): - self.get_om() - - def test_onverter(self): - """Constraint test of a LinearN1Converter without Investment.""" - bgas = solph.buses.Bus(label="gasBus") - bbms = solph.buses.Bus(label="biomassBus") - bel = solph.buses.Bus(label="electricityBus") - bth = solph.buses.Bus(label="thermalBus") - - trf = solph.components.Converter( - label="powerplantGasBiomass", - inputs={bbms: solph.flows.Flow(), bgas: solph.flows.Flow()}, - outputs={ - bel: solph.flows.Flow(variable_costs=50), - bth: solph.flows.Flow(nominal_value=5e10, variable_costs=20), - }, - conversion_factors={bgas: 0.4, bbms: 0.1, bel: 0.3, bth: 0.5}, - ) - self.energysystem.add(bgas, bbms, bel, bth, trf) - self.compare_lp_files("converter_multi_period.lp") - - def test_converter_invest(self): - """Constraint test of a LinearN1Converter with Investment.""" - bgas = solph.buses.Bus(label="gasBus") - bcoal = solph.buses.Bus(label="coalBus") - bel = solph.buses.Bus(label="electricityBus") - bth = solph.buses.Bus(label="thermalBus") - - trf = solph.components.Converter( - label="powerplant_gas_coal", - inputs={bgas: solph.flows.Flow(), bcoal: solph.flows.Flow()}, - outputs={ - bel: solph.flows.Flow( - variable_costs=50, - nominal_value=solph.Investment( - maximum=1000, - ep_costs=20, - lifetime=20, - fixed_costs=10, - ), - ), - bth: solph.flows.Flow(variable_costs=20), - }, - conversion_factors={bgas: 0.58, bcoal: 0.2, bel: 0.3, bth: 0.5}, - ) - self.energysystem.add(bgas, bcoal, bel, bth, trf) - self.compare_lp_files("converter_invest_multi_period.lp") - - def test_converter_invest_with_existing(self): - """Constraint test of a LinearN1Converter with Investment.""" - bgas = solph.buses.Bus(label="gasBus") - bcoal = solph.buses.Bus(label="coalBus") - bel = solph.buses.Bus(label="electricityBus") - bth = solph.buses.Bus(label="thermalBus") - - trf = solph.components.Converter( - label="powerplant_gas_coal", - inputs={bgas: solph.flows.Flow(), bcoal: solph.flows.Flow()}, - outputs={ - bel: solph.flows.Flow( - variable_costs=50, - nominal_value=solph.Investment( - maximum=1000, - ep_costs=20, - existing=200, - lifetime=2, - age=1, - ), - ), - bth: solph.flows.Flow(variable_costs=20), - }, - conversion_factors={bgas: 0.58, bcoal: 0.2, bel: 0.3, bth: 0.5}, - ) - self.energysystem.add(bgas, bcoal, bel, bth, trf) - self.compare_lp_files("converter_invest_with_existing_multi_period.lp") - - def test_linear_converter_chp(self): - """ - Constraint test of a Converter without Investment (two outputs). - """ - bgas = solph.buses.Bus(label="gasBus") - bheat = solph.buses.Bus(label="heatBus") - bel = solph.buses.Bus(label="electricityBus") - - trf = solph.components.Converter( - label="CHPpowerplantGas", - inputs={ - bgas: solph.flows.Flow(nominal_value=1e11, variable_costs=50) - }, - outputs={bel: solph.flows.Flow(), bheat: solph.flows.Flow()}, - conversion_factors={bel: 0.4, bheat: 0.5}, - ) - self.energysystem.add(bgas, bheat, bel, trf) - self.compare_lp_files("linear_converter_chp_multi_period.lp") - - def test_linear_converter_chp_invest(self): - """Constraint test of a Converter with Investment (two outputs).""" - bgas = solph.buses.Bus(label="gasBus") - bheat = solph.buses.Bus(label="heatBus") - bel = solph.buses.Bus(label="electricityBus") - - trf = solph.components.Converter( - label="chp_powerplant_gas", - inputs={ - bgas: solph.flows.Flow( - variable_costs=50, - nominal_value=solph.Investment( - maximum=1000, ep_costs=20, lifetime=50 - ), - ) - }, - outputs={bel: solph.flows.Flow(), bheat: solph.flows.Flow()}, - conversion_factors={bel: 0.4, bheat: 0.5}, - ) - self.energysystem.add(bgas, bheat, bel, trf) - self.compare_lp_files("linear_converter_chp_invest_multi_period.lp") - - def test_variable_chp(self): - """Test ExctractionTurbineCHP basic functionality""" - bel = solph.buses.Bus(label="electricityBus") - bth = solph.buses.Bus(label="heatBus") - bgas = solph.buses.Bus(label="commodityBus") - - chp1 = solph.components.ExtractionTurbineCHP( - label="variable_chp_gas1", - inputs={bgas: solph.flows.Flow(nominal_value=100)}, - outputs={bel: solph.flows.Flow(), bth: solph.flows.Flow()}, - conversion_factors={bel: 0.3, bth: 0.5}, - conversion_factor_full_condensation={bel: 0.5}, - ) - - chp2 = solph.components.ExtractionTurbineCHP( - label="variable_chp_gas2", - inputs={bgas: solph.flows.Flow(nominal_value=100)}, - outputs={bel: solph.flows.Flow(), bth: solph.flows.Flow()}, - conversion_factors={bel: 0.3, bth: 0.5}, - conversion_factor_full_condensation={bel: 0.5}, - ) - self.energysystem.add(bel, bth, bgas, chp1, chp2) - self.compare_lp_files("variable_chp_multi_period.lp") - - def test_emission_budget_limit(self): - """Test emissions budget limit constraint""" - bel = solph.buses.Bus(label="electricityBus") - - source1 = solph.components.Source( - label="source1", - outputs={ - bel: solph.flows.Flow( - nominal_value=100, - custom_attributes={ - "emission_factor": [0.5, -1.0, 2.0, 1.0, 0.5, 0.5] - }, - ) - }, - ) - source2 = solph.components.Source( - label="source2", - outputs={ - bel: solph.flows.Flow( - nominal_value=100, - custom_attributes={"emission_factor": 3.5}, - ) - }, - ) - - # Should be ignored because the emission attribute is not defined. - source3 = solph.components.Source( - label="source3", outputs={bel: solph.flows.Flow(nominal_value=100)} - ) - self.energysystem.add(source1, source2, source3) - om = self.get_om() - - solph.constraints.emission_limit(om, limit=777) - - self.compare_lp_files("emission_budget_limit.lp", my_om=om) - - def test_periodical_emission_limit(self): - """Test periodical emissions constraint""" - bel = solph.buses.Bus(label="electricityBus") - - source1 = solph.components.Source( - label="source1", - outputs={ - bel: solph.flows.Flow( - nominal_value=100, - custom_attributes={ - "emission_factor": [0.5, -1.0, 2.0, 1.0, 0.5, 0.5] - }, - ) - }, - ) - source2 = solph.components.Source( - label="source2", - outputs={ - bel: solph.flows.Flow( - nominal_value=100, - custom_attributes={"emission_factor": 3.5}, - ) - }, - ) - - # Should be ignored because the emission attribute is not defined. - source3 = solph.components.Source( - label="source3", outputs={bel: solph.flows.Flow(nominal_value=100)} - ) - self.energysystem.add(source1, source2, source3) - om = self.get_om() - - solph.constraints.emission_limit_per_period(om, limit=[300, 200, 100]) - - self.compare_lp_files("periodical_emission_limit.lp", my_om=om) - - def test_periodical_emission_limit_missing_limit(self): - """Test error for periodical emissions constraint""" - bel = solph.buses.Bus(label="electricityBus") - - source1 = solph.components.Source( - label="source1", - outputs={ - bel: solph.flows.Flow( - nominal_value=100, - custom_attributes={ - "emission_factor": [0.5, -1.0, 2.0, 1.0, 0.5, 0.5] - }, - ) - }, - ) - source2 = solph.components.Source( - label="source2", - outputs={ - bel: solph.flows.Flow( - nominal_value=100, - custom_attributes={"emission_factor": 3.5}, - ) - }, - ) - - # Should be ignored because the emission attribute is not defined. - source3 = solph.components.Source( - label="source3", outputs={bel: solph.flows.Flow(nominal_value=100)} - ) - self.energysystem.add(source1, source2, source3) - om = self.get_om() - - msg = ( - "You have to provide a limit for each period!\n" - "If you provide a scalar value, this will be applied as a " - "limit for each period." - ) - with pytest.raises(ValueError, match=msg): - solph.constraints.emission_limit_per_period(om, limit=None) - - def test_flow_count_limit(self): - """Test limiting the count of nonconvex flows""" - bel = solph.buses.Bus(label="electricityBus") - - source1 = solph.components.Source( - label="source1", - outputs={ - bel: solph.flows.Flow( - nonconvex=solph.NonConvex(), - nominal_value=100, - custom_attributes={"emission_factor": 0.5}, - ) - }, - ) - source2 = solph.components.Source( - label="source2", - outputs={ - bel: solph.flows.Flow( - nonconvex=solph.NonConvex(), - nominal_value=100, - custom_attributes={"emission_factor": 0.5}, - ) - }, - ) - - # Should be ignored because emission_factor is not defined. - source3 = solph.components.Source( - label="source3", - outputs={ - bel: solph.flows.Flow( - nonconvex=solph.NonConvex(), nominal_value=100 - ) - }, - ) - - # Should be ignored because it is not NonConvex. - source4 = solph.components.Source( - label="source4", - outputs={ - bel: solph.flows.Flow( - custom_attributes={"emission_factor": 1.5}, - min=0.3, - nominal_value=100, - ) - }, - ) - self.energysystem.add(source1, source2, source3, source4) - om = self.get_om() - - # one of the two flows has to be active - solph.constraints.limit_active_flow_count_by_keyword( - om, "emission_factor", lower_limit=1, upper_limit=2 - ) - - self.compare_lp_files("flow_count_limit_multi_period.lp", my_om=om) - - def test_shared_limit(self): - """Test an overall limit shared among components""" - b1 = solph.buses.Bus(label="bus") - - storage1 = solph.components.GenericStorage( - label="storage1", - nominal_storage_capacity=5, - inputs={b1: solph.flows.Flow()}, - outputs={b1: solph.flows.Flow()}, - ) - storage2 = solph.components.GenericStorage( - label="storage2", - nominal_storage_capacity=5, - inputs={b1: solph.flows.Flow()}, - outputs={b1: solph.flows.Flow()}, - ) - self.energysystem.add(b1, storage1, storage2) - model = self.get_om() - - components = [storage1, storage2] - - solph.constraints.shared_limit( - model, - model.GenericStorageBlock.storage_content, - "limit_storage", - components, - [0.5, 1.25], - upper_limit=7, - ) - - self.compare_lp_files("shared_limit_multi_period.lp", my_om=model) - - def test_equate_variables_constraint(self): - """Testing the equate_variables function in the constraint module.""" - bus1 = solph.buses.Bus(label="Bus1") - storage = solph.components.GenericStorage( - label="storage", - invest_relation_input_capacity=0.2, - invest_relation_output_capacity=0.2, - inputs={bus1: solph.flows.Flow()}, - outputs={bus1: solph.flows.Flow()}, - lifetime_inflow=3, - lifetime_outflow=3, - nominal_storage_capacity=solph.Investment( - ep_costs=145, lifetime=3 - ), - ) - sink = solph.components.Sink( - label="Sink", - inputs={ - bus1: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=500, lifetime=3) - ) - }, - ) - source = solph.components.Source( - label="Source", - outputs={ - bus1: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=123, lifetime=3) - ) - }, - ) - self.energysystem.add(bus1, storage, sink, source) - om = self.get_om() - solph.constraints.equate_variables( - om, - om.InvestmentFlowBlock.invest[source, bus1, 0], - om.InvestmentFlowBlock.invest[bus1, sink, 0], - 2, - ) - solph.constraints.equate_variables( - om, - om.InvestmentFlowBlock.invest[source, bus1, 0], - om.GenericInvestmentStorageBlock.invest[storage, 0], - ) - - self.compare_lp_files("connect_investment_multi_period.lp", my_om=om) - - def test_gradient(self): - """Testing gradient constraints""" - bel = solph.buses.Bus(label="electricityBus") - - source = solph.components.Source( - label="powerplant", - outputs={ - bel: solph.flows.Flow( - nominal_value=999, - variable_costs=23, - positive_gradient_limit=0.03, - negative_gradient_limit=0.05, - ) - }, - ) - self.energysystem.add(bel, source) - self.compare_lp_files("source_with_gradient_multi_period.lp") - - def test_nonconvex_gradient(self): - """Testing gradient constraints""" - bel = solph.buses.Bus(label="electricityBus") - - source = solph.components.Source( - label="powerplant", - outputs={ - bel: solph.flows.Flow( - nominal_value=999, - variable_costs=23, - nonconvex=solph.NonConvex( - positive_gradient_limit=0.03, - negative_gradient_limit=0.05, - ), - ) - }, - ) - self.energysystem.add(bel, source) - self.compare_lp_files("source_with_nonconvex_gradient_multi_period.lp") - - def test_periodical_investment_limit(self): - """Testing the investment_limit function in the constraint module.""" - bus1 = solph.buses.Bus(label="Bus1") - storage = solph.components.GenericStorage( - label="storage_invest_limit", - invest_relation_input_capacity=0.2, - invest_relation_output_capacity=0.2, - inputs={bus1: solph.flows.Flow()}, - outputs={bus1: solph.flows.Flow()}, - lifetime_inflow=20, - lifetime_outflow=20, - nominal_storage_capacity=solph.Investment( - ep_costs=145, lifetime=30 - ), - ) - source = solph.components.Source( - label="Source", - outputs={ - bus1: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=123, lifetime=100) - ) - }, - ) - self.energysystem.add(bus1, storage, source) - om = self.get_om() - solph.constraints.investment_limit_per_period( - om, limit=[500, 400, 300] - ) - - self.compare_lp_files("periodical_investment_limit.lp", my_om=om) - - def test_periodical_investment_limit_with_dsm1(self): - """Testing the investment_limit function in the constraint module.""" - bus1 = solph.buses.Bus(label="Bus1") - source = solph.components.Source( - label="Source", - outputs={ - bus1: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=123, lifetime=100) - ) - }, - ) - sinkdsm = solph.components.experimental.SinkDSM( - label="sink_dsm_DIW", - approach="DIW", - inputs={bus1: solph.flows.Flow()}, - demand=[1] * 6, - capacity_up=[0.5] * 6, - capacity_down=[0.5] * 6, - max_demand=1, - delay_time=1, - cost_dsm_down_shift=0.5, - cost_dsm_up=0.5, - shed_eligibility=False, - investment=solph.Investment( - ep_costs=100, - existing=50, - minimum=33, - maximum=100, - age=1, - lifetime=2, - overall_maximum=1000, - overall_minimum=200, - ), - ) - self.energysystem.add(bus1, source, sinkdsm) - om = self.get_om() - solph.constraints.investment_limit_per_period( - om, limit=[400, 300, 200] - ) - - self.compare_lp_files( - "periodical_investment_limit_with_dsm_DIW.lp", my_om=om - ) - - def test_periodical_investment_limit_with_dsm2(self): - """Testing the investment_limit function in the constraint module.""" - bus1 = solph.buses.Bus(label="Bus1") - source = solph.components.Source( - label="Source", - outputs={ - bus1: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=123, lifetime=100) - ) - }, - ) - sinkdsm = solph.components.experimental.SinkDSM( - label="sink_dsm_DLR", - approach="DLR", - inputs={bus1: solph.flows.Flow()}, - demand=[1] * 6, - capacity_up=[0.5] * 6, - capacity_down=[0.5] * 6, - max_demand=1, - delay_time=1, - shift_time=1, - cost_dsm_down_shift=0.5, - cost_dsm_up=0.5, - shed_eligibility=False, - investment=solph.Investment( - ep_costs=100, - existing=50, - minimum=33, - maximum=100, - age=1, - lifetime=2, - overall_maximum=1000, - overall_minimum=200, - ), - ) - self.energysystem.add(bus1, source, sinkdsm) - om = self.get_om() - solph.constraints.investment_limit_per_period( - om, limit=[400, 300, 200] - ) - - self.compare_lp_files( - "periodical_investment_limit_with_dsm_DLR.lp", my_om=om - ) - - def test_periodical_investment_limit_with_dsm3(self): - """Testing the investment_limit function in the constraint module.""" - bus1 = solph.buses.Bus(label="Bus1") - source = solph.components.Source( - label="Source", - outputs={ - bus1: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=123, lifetime=100) - ) - }, - ) - sinkdsm = solph.components.experimental.SinkDSM( - label="sink_dsm_oemof", - approach="oemof", - inputs={bus1: solph.flows.Flow()}, - demand=[1] * 6, - capacity_up=[0.5] * 6, - capacity_down=[0.5] * 6, - max_demand=1, - delay_time=1, - shift_interval=2, - cost_dsm_down_shift=0.5, - cost_dsm_up=0.5, - shed_eligibility=False, - investment=solph.Investment( - ep_costs=100, - existing=50, - minimum=33, - maximum=100, - age=1, - lifetime=2, - overall_maximum=1000, - overall_minimum=200, - ), - ) - self.energysystem.add(bus1, source, sinkdsm) - om = self.get_om() - solph.constraints.investment_limit_per_period( - om, limit=[400, 300, 200] - ) - - self.compare_lp_files( - "periodical_investment_limit_with_dsm_oemof.lp", my_om=om - ) - - def test_periodical_investment_limit_missing(self): - """Testing the investment_limit function in the constraint module.""" - bus1 = solph.buses.Bus(label="Bus1") - storage = solph.components.GenericStorage( - label="storage_invest_limit", - invest_relation_input_capacity=0.2, - invest_relation_output_capacity=0.2, - inputs={bus1: solph.flows.Flow()}, - outputs={bus1: solph.flows.Flow()}, - lifetime_inflow=20, - lifetime_outflow=20, - nominal_storage_capacity=solph.Investment( - ep_costs=145, lifetime=30 - ), - ) - source = solph.components.Source( - label="Source", - outputs={ - bus1: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=123, lifetime=100) - ) - }, - ) - self.energysystem.add(bus1, storage, source) - om = self.get_om() - msg = "You have to provide an investment limit for each period!" - with pytest.raises(ValueError, match=msg): - solph.constraints.investment_limit_per_period(om, limit=None) - - def test_min_max_runtime(self): - """Testing min and max runtimes for nonconvex flows.""" - bus_t = solph.buses.Bus(label="Bus_T") - source = solph.components.Source( - label="cheap_plant_min_down_constraints", - outputs={ - bus_t: solph.flows.Flow( - nominal_value=10, - min=0.5, - max=1.0, - variable_costs=10, - nonconvex=solph.NonConvex( - minimum_downtime=4, - minimum_uptime=2, - initial_status=1, - startup_costs=5, - shutdown_costs=7, - ), - ) - }, - ) - self.energysystem.add(bus_t, source) - self.compare_lp_files("min_max_runtime_multi_period.lp") - - def test_activity_costs(self): - """Testing activity_costs attribute for nonconvex flows.""" - bus_t = solph.buses.Bus(label="Bus_C") - source = solph.components.Source( - label="cheap_plant_activity_costs", - outputs={ - bus_t: solph.flows.Flow( - nominal_value=10, - min=0.5, - max=1.0, - variable_costs=10, - nonconvex=solph.NonConvex( - activity_costs=2, - ), - ) - }, - ) - self.energysystem.add(bus_t, source) - self.compare_lp_files("activity_costs_multi_period.lp") - - def test_inactivity_costs(self): - """Testing inactivity_costs attribute for nonconvex flows.""" - bus_t = solph.buses.Bus(label="Bus_C") - source = solph.components.Source( - label="cheap_plant_inactivity_costs", - outputs={ - bus_t: solph.flows.Flow( - nominal_value=10, - min=0.5, - max=1.0, - variable_costs=10, - nonconvex=solph.NonConvex( - inactivity_costs=2, - ), - ) - }, - ) - self.energysystem.add(bus_t, source) - self.compare_lp_files("inactivity_costs_multi_period.lp") - - def test_piecewise_linear_converter_cc(self): - """Testing PiecewiseLinearConverter using CC formulation.""" - bgas = solph.buses.Bus(label="gasBus") - bel = solph.buses.Bus(label="electricityBus") - pwltf = solph.components.experimental.PiecewiseLinearConverter( - label="pwltf", - inputs={ - bgas: solph.flows.Flow(nominal_value=100, variable_costs=1) - }, - outputs={bel: solph.flows.Flow()}, - in_breakpoints=[0, 25, 50, 75, 100], - conversion_function=lambda x: x**2, - pw_repn="CC", - ) - self.energysystem.add(bgas, bel, pwltf) - self.compare_lp_files("piecewise_linear_converter_cc_multi_period.lp") - - def test_piecewise_linear_converter_dcc(self): - """Testing PiecewiseLinearConverter using DCC formulation.""" - bgas = solph.buses.Bus(label="gasBus") - bel = solph.buses.Bus(label="electricityBus") - pwltf = solph.components.experimental.PiecewiseLinearConverter( - label="pwltf", - inputs={ - bgas: solph.flows.Flow(nominal_value=100, variable_costs=1) - }, - outputs={bel: solph.flows.Flow()}, - in_breakpoints=[0, 25, 50, 75, 100], - conversion_function=lambda x: x**2, - pw_repn="DCC", - ) - self.energysystem.add(bgas, bel, pwltf) - self.compare_lp_files("piecewise_linear_converter_dcc_multi_period.lp") - - def test_maximum_startups(self): - """Testing maximum_startups attribute for nonconvex flows.""" - bus_t = solph.buses.Bus(label="Bus_C") - source = solph.components.Source( - label="cheap_plant_maximum_startups", - outputs={ - bus_t: solph.flows.Flow( - nominal_value=10, - min=0.5, - max=1.0, - variable_costs=10, - nonconvex=solph.NonConvex(maximum_startups=2), - ) - }, - ) - self.energysystem.add(bus_t, source) - self.compare_lp_files("maximum_startups_multi_period.lp") - - def test_maximum_shutdowns(self): - """Testing maximum_shutdowns attribute for nonconvex flows.""" - bus_t = solph.buses.Bus(label="Bus_C") - source = solph.components.Source( - label="cheap_plant_maximum_shutdowns", - outputs={ - bus_t: solph.flows.Flow( - nominal_value=10, - min=0.5, - max=1.0, - variable_costs=10, - nonconvex=solph.NonConvex(maximum_shutdowns=2), - ) - }, - ) - self.energysystem.add(bus_t, source) - self.compare_lp_files("maximum_shutdowns_multi_period.lp") - - def test_offsetconverter(self): - """Constraint test of a OffsetOffsetConverter.""" - bgas = solph.buses.Bus(label="gasBus") - bth = solph.buses.Bus(label="thermalBus") - - min = 0.32 - eta_at_min = 0.7 - eta_at_nom = 0.9 - - slope, offset = slope_offset_from_nonconvex_output( - 1, min, eta_at_nom, eta_at_min - ) - - otrf = solph.components.OffsetConverter( - label="gasboiler", - inputs={bgas: solph.flows.Flow()}, - outputs={ - bth: solph.flows.Flow( - nominal_value=100, - min=min, - nonconvex=solph.NonConvex(), - ) - }, - conversion_factors={bgas: slope}, - normed_offsets={bgas: offset}, - ) - self.energysystem.add(bgas, bth, otrf) - self.compare_lp_files("offsetconverter_multi_period.lp") - - def test_dsm_module_DIW(self): - """Constraint test of SinkDSM with approach=DLR""" - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1] * 6, - capacity_up=[0.5] * 6, - capacity_down=[0.5] * 6, - approach="DIW", - max_demand=1, - max_capacity_up=1, - max_capacity_down=1, - delay_time=1, - cost_dsm_down_shift=2, - shed_eligibility=False, - ) - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files("dsm_module_DIW_multi_period.lp") - - def test_dsm_module_DLR(self): - """Constraint test of SinkDSM with approach=DLR""" - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1] * 6, - capacity_up=[0.5] * 6, - capacity_down=[0.5] * 6, - approach="DLR", - max_demand=1, - max_capacity_up=1, - max_capacity_down=1, - delay_time=2, - shift_time=1, - cost_dsm_down_shift=2, - shed_eligibility=False, - ) - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files("dsm_module_DLR_multi_period.lp") - - def test_dsm_module_oemof(self): - """Constraint test of SinkDSM with approach=oemof""" - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1] * 6, - capacity_up=[0.5, 0.4, 0.5, 0.3, 0.3, 0.3], - capacity_down=[0.5, 0.4, 0.5, 0.3, 0.3, 0.3], - approach="oemof", - max_demand=1, - max_capacity_up=1, - max_capacity_down=1, - shift_interval=2, - cost_dsm_down_shift=2, - shed_eligibility=False, - ) - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files("dsm_module_oemof_multi_period.lp") - - def test_dsm_module_DIW_extended(self): - """Constraint test of SinkDSM with approach=DLR - - Test all possible parameters and constraints - """ - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1, 0.9, 0.8, 0.7, 0.7, 0.7], - capacity_up=[0.5, 0.4, 0.5, 0.3, 0.3, 0.3], - capacity_down=[0.3, 0.3, 0.4, 0.3, 0.3, 0.3], - approach="DIW", - max_demand=1, - max_capacity_up=1, - max_capacity_down=1, - delay_time=1, - cost_dsm_down_shift=1, - cost_dsm_up=1, - cost_dsm_down_shed=100, - efficiency=0.99, - recovery_time_shift=2, - recovery_time_shed=2, - shed_time=2, - ) - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files("dsm_module_DIW_extended_multi_period.lp") - - def test_dsm_module_DLR_extended(self): - """Constraint test of SinkDSM with approach=DLR""" - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1, 0.9, 0.8, 0.7, 0.7, 0.7], - capacity_up=[0.5, 0.4, 0.5, 0.3, 0.3, 0.3], - capacity_down=[0.3, 0.3, 0.4, 0.3, 0.3, 0.3], - approach="DLR", - max_demand=1, - max_capacity_up=1, - max_capacity_down=1, - delay_time=2, - shift_time=1, - cost_dsm_down_shift=1, - cost_dsm_up=1, - cost_dsm_down_shed=100, - efficiency=0.99, - recovery_time_shed=2, - ActivateYearLimit=True, - ActivateDayLimit=True, - n_yearLimit_shift=100, - n_yearLimit_shed=50, - t_dayLimit=3, - addition=False, - fixes=False, - shed_time=2, - ) - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files("dsm_module_DLR_extended_multi_period.lp") - - def test_dsm_module_oemof_extended(self): - """Constraint test of SinkDSM with approach=oemof""" - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1, 0.9, 0.8, 0.7, 0.7, 0.7], - capacity_up=[0.5, 0.4, 0.5, 0.3, 0.3, 0.3], - capacity_down=[0.3, 0.3, 0.4, 0.3, 0.3, 0.3], - approach="oemof", - shift_interval=2, - max_demand=1, - max_capacity_up=1, - max_capacity_down=1, - delay_time=2, - cost_dsm_down_shift=1, - cost_dsm_up=1, - cost_dsm_down_shed=100, - efficiency=0.99, - recovery_time_shed=2, - shed_time=2, - ) - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files("dsm_module_oemof_extended_multi_period.lp") - - def test_dsm_module_DIW_invest(self): - """Constraint test of SinkDSM with approach=DLR and investments""" - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1] * 6, - capacity_up=[0.5] * 6, - capacity_down=[0.5] * 6, - approach="DIW", - max_demand=[1, 2, 3], - delay_time=1, - cost_dsm_down_shift=1, - cost_dsm_up=1, - cost_dsm_down_shed=100, - shed_eligibility=True, - recovery_time_shed=2, - shed_time=2, - investment=solph.Investment( - ep_costs=100, - existing=50, - minimum=33, - maximum=100, - age=1, - lifetime=20, - fixed_costs=20, - overall_maximum=1000, - overall_minimum=5, - ), - ) - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files("dsm_module_DIW_invest_multi_period.lp") - - def test_dsm_module_DIW_invest_remaining_value(self): - """Constraint test of SinkDSM with approach=DLR and investments""" - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1] * 6, - capacity_up=[0.5] * 6, - capacity_down=[0.5] * 6, - approach="DIW", - max_demand=[1, 2, 3], - delay_time=1, - cost_dsm_down_shift=1, - cost_dsm_up=1, - cost_dsm_down_shed=100, - shed_eligibility=True, - recovery_time_shed=2, - shed_time=2, - investment=solph.Investment( - ep_costs=[100, 90, 80], - existing=50, - minimum=33, - maximum=100, - age=1, - lifetime=20, - fixed_costs=20, - overall_maximum=1000, - overall_minimum=5, - ), - ) - self.energysystem.use_remaining_value = True - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files( - "dsm_module_DIW_invest_multi_period_remaining_value.lp" - ) - self.energysystem.use_remaining_value = False - - def test_dsm_module_DLR_invest(self): - """Constraint test of SinkDSM with approach=DLR and investments""" - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1] * 6, - capacity_up=[0.5] * 6, - capacity_down=[0.5] * 6, - approach="DLR", - max_demand=[1, 2, 3], - delay_time=2, - shift_time=1, - cost_dsm_down_shift=1, - cost_dsm_up=1, - cost_dsm_down_shed=100, - shed_eligibility=True, - recovery_time_shed=2, - shed_time=2, - n_yearLimit_shed=50, - investment=solph.Investment( - ep_costs=100, - existing=50, - minimum=33, - maximum=100, - age=1, - lifetime=20, - fixed_costs=20, - overall_maximum=1000, - overall_minimum=5, - ), - ) - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files("dsm_module_DLR_invest_multi_period.lp") - - def test_dsm_module_DLR_invest_remaining_value(self): - """Constraint test of SinkDSM with approach=DLR and investments""" - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1] * 6, - capacity_up=[0.5] * 6, - capacity_down=[0.5] * 6, - approach="DLR", - max_demand=[1, 2, 3], - delay_time=2, - shift_time=1, - cost_dsm_down_shift=1, - cost_dsm_up=1, - cost_dsm_down_shed=100, - shed_eligibility=True, - recovery_time_shed=2, - shed_time=2, - n_yearLimit_shed=50, - investment=solph.Investment( - ep_costs=[100, 90, 80], - existing=50, - minimum=33, - maximum=100, - age=1, - lifetime=20, - fixed_costs=20, - overall_maximum=1000, - overall_minimum=5, - ), - ) - self.energysystem.use_remaining_value = True - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files( - "dsm_module_DLR_invest_multi_period_remaining_value.lp" - ) - self.energysystem.use_remaining_value = False - - def test_dsm_module_oemof_invest(self): - """Constraint test of SinkDSM with approach=oemof and investments""" - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1] * 6, - capacity_up=[0.5, 0.4, 0.5, 0.3, 0.3, 0.3], - capacity_down=[0.5, 0.4, 0.5, 0.3, 0.3, 0.3], - approach="oemof", - max_demand=[1, 2, 3], - shift_interval=2, - cost_dsm_down_shift=1, - cost_dsm_up=1, - cost_dsm_down_shed=100, - shed_eligibility=True, - recovery_time_shed=2, - shed_time=2, - investment=solph.Investment( - ep_costs=100, - existing=50, - minimum=33, - maximum=100, - age=1, - lifetime=20, - fixed_costs=20, - overall_maximum=1000, - overall_minimum=5, - ), - ) - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files("dsm_module_oemof_invest_multi_period.lp") - - def test_dsm_module_oemof_invest_remaining_value(self): - """Constraint test of SinkDSM with approach=oemof and investments""" - - b_elec = solph.buses.Bus(label="bus_elec") - sinkdsm = solph.components.experimental.SinkDSM( - label="demand_dsm", - inputs={b_elec: solph.flows.Flow()}, - demand=[1] * 6, - capacity_up=[0.5, 0.4, 0.5, 0.3, 0.3, 0.3], - capacity_down=[0.5, 0.4, 0.5, 0.3, 0.3, 0.3], - approach="oemof", - max_demand=[1, 2, 3], - shift_interval=2, - cost_dsm_down_shift=1, - cost_dsm_up=1, - cost_dsm_down_shed=100, - shed_eligibility=True, - recovery_time_shed=2, - shed_time=2, - investment=solph.Investment( - ep_costs=[100, 90, 80], - existing=50, - minimum=33, - maximum=100, - age=1, - lifetime=20, - fixed_costs=20, - overall_maximum=1000, - overall_minimum=5, - ), - ) - self.energysystem.use_remaining_value = True - self.energysystem.add(b_elec, sinkdsm) - self.compare_lp_files( - "dsm_module_oemof_invest_multi_period_remaining_value.lp" - ) - self.energysystem.use_remaining_value = False - - def test_nonconvex_investment_storage_without_offset(self): - """All invest variables are coupled. The invest variables of the Flows - will be created during the initialisation of the storage e.g. battery - """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage_non_convex", - inputs={bel: solph.flows.Flow(variable_costs=56)}, - outputs={bel: solph.flows.Flow(variable_costs=24)}, - loss_rate=0.13, - max_storage_level=0.9, - min_storage_level=0.1, - invest_relation_input_capacity=1 / 6, - invest_relation_output_capacity=1 / 6, - inflow_conversion_factor=0.97, - outflow_conversion_factor=0.86, - lifetime_inflow=20, - lifetime_outflow=20, - nominal_storage_capacity=solph.Investment( - ep_costs=141, - maximum=244, - minimum=12, - nonconvex=True, - lifetime=20, - ), - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_without_offset_multi_period.lp") - - def test_nonconvex_investment_storage_without_offset_remaining_value(self): - """All invest variables are coupled. The invest variables of the Flows - will be created during the initialisation of the storage e.g. battery - """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage_non_convex", - inputs={bel: solph.flows.Flow(variable_costs=56)}, - outputs={bel: solph.flows.Flow(variable_costs=24)}, - loss_rate=0.13, - max_storage_level=0.9, - min_storage_level=0.1, - invest_relation_input_capacity=1 / 6, - invest_relation_output_capacity=1 / 6, - inflow_conversion_factor=0.97, - outflow_conversion_factor=0.86, - lifetime_inflow=20, - lifetime_outflow=20, - nominal_storage_capacity=solph.Investment( - ep_costs=141, - maximum=244, - minimum=12, - nonconvex=True, - lifetime=20, - ), - ) - self.energysystem.use_remaining_value = True - self.energysystem.add(bel, storage) - self.compare_lp_files( - "storage_invest_without_offset_multi_period_remaining_value.lp" - ) - self.energysystem.use_remaining_value = False - - def test_nonconvex_investment_storage_with_offset(self): - """All invest variables are coupled. The invest variables of the Flows - will be created during the initialisation of the storage e.g. battery - """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage_non_convex", - inputs={bel: solph.flows.Flow(variable_costs=56)}, - outputs={bel: solph.flows.Flow(variable_costs=24)}, - loss_rate=0.13, - max_storage_level=0.9, - min_storage_level=0.1, - invest_relation_input_capacity=1 / 6, - invest_relation_output_capacity=1 / 6, - inflow_conversion_factor=0.97, - outflow_conversion_factor=0.86, - lifetime_inflow=20, - lifetime_outflow=20, - nominal_storage_capacity=solph.Investment( - ep_costs=145, - minimum=19, - offset=5, - nonconvex=True, - maximum=1454, - lifetime=20, - ), - ) - self.energysystem.add(bel, storage) - self.compare_lp_files("storage_invest_with_offset_multi_period.lp") - - def test_nonconvex_investment_storage_with_offset_remaining_value(self): - """All invest variables are coupled. The invest variables of the Flows - will be created during the initialisation of the storage e.g. battery - """ - bel = solph.buses.Bus(label="electricityBus") - - storage = solph.components.GenericStorage( - label="storage_non_convex", - inputs={bel: solph.flows.Flow(variable_costs=56)}, - outputs={bel: solph.flows.Flow(variable_costs=24)}, - loss_rate=0.13, - max_storage_level=0.9, - min_storage_level=0.1, - invest_relation_input_capacity=1 / 6, - invest_relation_output_capacity=1 / 6, - inflow_conversion_factor=0.97, - outflow_conversion_factor=0.86, - lifetime_inflow=20, - lifetime_outflow=20, - nominal_storage_capacity=solph.Investment( - ep_costs=145, - minimum=19, - offset=5, - nonconvex=True, - maximum=1454, - lifetime=20, - ), - ) - self.energysystem.use_remaining_value = True - self.energysystem.add(bel, storage) - self.compare_lp_files( - "storage_invest_with_offset_multi_period_remaining_value.lp" - ) - self.energysystem.use_remaining_value = False - - def test_nonconvex_invest_storage_all_nonconvex(self): - """All invest variables are free and nonconvex.""" - b1 = solph.buses.Bus(label="bus1") - - storage = solph.components.GenericStorage( - label="storage_all_nonconvex", - inputs={ - b1: solph.flows.Flow( - nominal_value=solph.Investment( - nonconvex=True, - minimum=5, - offset=10, - maximum=30, - ep_costs=10, - lifetime=20, - ) - ) - }, - outputs={ - b1: solph.flows.Flow( - nominal_value=solph.Investment( - nonconvex=True, - minimum=8, - offset=15, - ep_costs=10, - maximum=20, - lifetime=20, - ) - ) - }, - nominal_storage_capacity=solph.Investment( - nonconvex=True, - ep_costs=20, - offset=30, - minimum=20, - maximum=100, - lifetime=20, - ), - ) - self.energysystem.add(b1, storage) - self.compare_lp_files("storage_invest_all_nonconvex_multi_period.lp") - - def test_nonconvex_invest_sink_without_offset(self): - """Non convex invest flow without offset, with minimum.""" - bel = solph.buses.Bus(label="electricityBus") - - sink = solph.components.Sink( - label="sink_nonconvex_invest", - inputs={ - bel: solph.flows.Flow( - full_load_time_max=2.3, - variable_costs=25, - max=0.8, - nominal_value=solph.Investment( - ep_costs=500, - minimum=15, - nonconvex=True, - maximum=172, - lifetime=20, - ), - ) - }, - ) - self.energysystem.add(bel, sink) - self.compare_lp_files("flow_invest_without_offset_multi_period.lp") - - def test_nonconvex_invest_sink_without_offset_remaining_value(self): - """Non convex invest flow without offset, with minimum.""" - bel = solph.buses.Bus(label="electricityBus") - - sink = solph.components.Sink( - label="sink_nonconvex_invest", - inputs={ - bel: solph.flows.Flow( - full_load_time_max=2.3, - variable_costs=25, - max=0.8, - nominal_value=solph.Investment( - ep_costs=500, - minimum=15, - nonconvex=True, - maximum=172, - lifetime=20, - ), - ) - }, - ) - self.energysystem.use_remaining_value = True - self.energysystem.add(bel, sink) - self.compare_lp_files( - "flow_invest_without_offset_multi_period_remaining_value.lp" - ) - self.energysystem.use_remaining_value = False - - def test_nonconvex_invest_source_with_offset(self): - """Non convex invest flow with offset, with minimum.""" - bel = solph.buses.Bus(label="electricityBus") - - source = solph.components.Source( - label="source_nonconvex_invest", - outputs={ - bel: solph.flows.Flow( - full_load_time_max=2.3, - variable_costs=25, - max=0.8, - nominal_value=solph.Investment( - ep_costs=500, - minimum=15, - maximum=20, - offset=34, - nonconvex=True, - lifetime=20, - ), - ) - }, - ) - self.energysystem.add(bel, source) - self.compare_lp_files("flow_invest_with_offset_multi_period.lp") - - def test_nonconvex_invest_source_with_offset_remaining_value(self): - """Non convex invest flow with offset, with minimum.""" - bel = solph.buses.Bus(label="electricityBus") - - source = solph.components.Source( - label="source_nonconvex_invest", - outputs={ - bel: solph.flows.Flow( - full_load_time_max=2.3, - variable_costs=25, - max=0.8, - nominal_value=solph.Investment( - ep_costs=500, - minimum=15, - maximum=20, - offset=34, - nonconvex=True, - lifetime=20, - ), - ) - }, - ) - self.energysystem.use_remaining_value = True - self.energysystem.add(bel, source) - self.compare_lp_files( - "flow_invest_with_offset_multi_period_remaining_value.lp" - ) - self.energysystem.use_remaining_value = False - - def test_nonconvex_invest_source_with_offset_no_minimum(self): - """Non convex invest flow with offset, without minimum.""" - bel = solph.buses.Bus(label="electricityBus") - - source = solph.components.Source( - label="source_nonconvex_invest", - outputs={ - bel: solph.flows.Flow( - full_load_time_max=2.3, - variable_costs=25, - max=0.8, - nominal_value=solph.Investment( - ep_costs=500, - maximum=1234, - offset=34, - nonconvex=True, - lifetime=20, - ), - ) - }, - ) - self.energysystem.add(bel, source) - self.compare_lp_files( - "flow_invest_with_offset_no_minimum_multi_period.lp" - ) - - def test_summed_min_max_source(self): - """Test sink with full_load_time_min and _max attribute""" - bel = solph.buses.Bus(label="electricityBus") - - sink = solph.components.Sink( - label="excess", - inputs={ - bel: solph.flows.Flow( - full_load_time_min=3, - full_load_time_max=100, - variable_costs=25, - max=0.8, - nominal_value=10, - ) - }, - ) - self.energysystem.add(bel, sink) - self.compare_lp_files("summed_min_source_multi_period.lp") - - def test_flow_reaching_lifetime(self): - """Test flow forced to zero once exceeding its lifetime""" - bel = solph.buses.Bus(label="electricityBus") - - sink = solph.components.Sink( - label="excess", - inputs={ - bel: solph.flows.Flow( - variable_costs=25, max=0.8, nominal_value=10, lifetime=2 - ) - }, - ) - self.energysystem.add(bel, sink) - self.compare_lp_files("flow_reaching_lifetime.lp") - - def test_flow_reaching_lifetime_initial_age(self): - """Test flow forced to zero once exceeding its lifetime with age""" - bel = solph.buses.Bus(label="electricityBus") - - sink = solph.components.Sink( - label="excess", - inputs={ - bel: solph.flows.Flow( - variable_costs=25, - max=0.8, - nominal_value=10, - lifetime=2, - age=1, - ) - }, - ) - self.energysystem.add(bel, sink) - self.compare_lp_files("flow_reaching_lifetime_initial_age.lp") - - @pytest.mark.filterwarnings( - "ignore:Be aware that the fixed costs attribute is only:UserWarning" - ) - def test_fixed_costs(self): - """Test fixed_cost attribute for different kinds of flows""" - bel = solph.buses.Bus(label="electricityBus") - - source1 = solph.components.Source( - label="pv_forever", - outputs={ - bel: solph.flows.Flow( - variable_costs=25, max=0.8, nominal_value=10, fixed_costs=3 - ) - }, - ) - - source2 = solph.components.Source( - label="pv_with_lifetime", - outputs={ - bel: solph.flows.Flow( - variable_costs=25, - max=0.8, - nominal_value=10, - fixed_costs=3, - lifetime=20, - ) - }, - ) - - source3 = solph.components.Source( - label="pv_with_lifetime_and_age", - outputs={ - bel: solph.flows.Flow( - variable_costs=25, - max=0.8, - nominal_value=10, - fixed_costs=3, - lifetime=20, - age=18, - ) - }, - ) - self.energysystem.add(bel, source1, source2, source3) - self.compare_lp_files("fixed_costs_sources.lp") - - def test_multi_period_varying_period_length(self): - """Test multi period with varying period length""" - - # Define starting years of investment periods - years = [2000, 2020, 2035, 2045, 2050, 2060, 2075, 2095] - - # Create a list of timeindex for each period - periods = [ - pd.date_range(f"1/1/{i}", periods=3, freq="h") for i in years - ] - - # Create an overall timeindex - timeindex = pd.concat( - [pd.Series(index=i, dtype="float64") for i in periods] - ).index - - # Create an energy system - es = solph.EnergySystem( - timeindex=timeindex, - timeincrement=[1] * len(timeindex), - periods=periods, - infer_last_interval=False, - ) - - # Create buses - bel = solph.Bus(label="electricity", balanced=True) - - # Create a storage - storage = solph.components.GenericStorage( - label="storage", - inputs={ - bel: solph.Flow( - variable_costs=0, - nominal_value=solph.Investment( - ep_costs=10, - existing=0, - lifetime=20, - age=0, - interest_rate=0.02, - ), - ) - }, - outputs={ - bel: solph.Flow( - variable_costs=0, - nominal_value=solph.Investment( - ep_costs=10, - existing=0, - lifetime=20, - age=0, - interest_rate=0.02, - ), - ) - }, - loss_rate=0.00, - invest_relation_output_capacity=0.2, - invest_relation_input_output=1, - # inflow_conversion_factor=1, - # outflow_conversion_factor=0.8, - # nominal_storage_capacity=100, - nominal_storage_capacity=solph.Investment( - ep_costs=10, - maximum=float("+inf"), - existing=0, - lifetime=20, - age=0, - fixed_costs=None, - interest_rate=0.02, - ), - ) - # Create a DSM sink with DIW approach - sinkdsm_diw = solph.components.experimental.SinkDSM( - label="demand_dsm_diw", - inputs={bel: solph.flows.Flow()}, - demand=[1] * len(timeindex), - capacity_up=[0.5] * len(timeindex), - capacity_down=[0.5] * len(timeindex), - approach="DIW", - max_demand=[1] * len(timeindex), - delay_time=1, - cost_dsm_down_shift=1, - cost_dsm_up=1, - cost_dsm_down_shed=100, - shed_eligibility=True, - recovery_time_shed=2, - shed_time=2, - investment=solph.Investment( - ep_costs=100, - minimum=33, - maximum=100, - lifetime=20, - fixed_costs=20, - overall_maximum=1000, - overall_minimum=5, - ), - ) - - # Create a DSM sink with DLR approach - sinkdsm_dlr = solph.components.experimental.SinkDSM( - label="demand_dsm_dlr", - inputs={bel: solph.flows.Flow()}, - demand=[1] * len(timeindex), - capacity_up=[0.5] * len(timeindex), - capacity_down=[0.5] * len(timeindex), - approach="DLR", - max_demand=[1] * len(timeindex), - delay_time=2, - shift_time=1, - cost_dsm_down_shift=1, - cost_dsm_up=1, - cost_dsm_down_shed=100, - shed_eligibility=True, - recovery_time_shed=2, - shed_time=2, - n_yearLimit_shed=50, - investment=solph.Investment( - ep_costs=100, - minimum=33, - maximum=100, - lifetime=20, - fixed_costs=20, - overall_maximum=1000, - overall_minimum=5, - ), - ) - - # Create a DSM sink with oemof approach - sinkdsm_oemof = solph.components.experimental.SinkDSM( - label="demand_dsm_oemof", - inputs={bel: solph.flows.Flow()}, - demand=[1] * len(timeindex), - capacity_up=[0.5] * len(timeindex), - capacity_down=[0.5] * len(timeindex), - approach="oemof", - max_demand=[1] * len(timeindex), - shift_interval=2, - cost_dsm_down_shift=1, - cost_dsm_up=1, - cost_dsm_down_shed=100, - shed_eligibility=True, - recovery_time_shed=2, - shed_time=2, - investment=solph.Investment( - ep_costs=100, - existing=50, - minimum=33, - maximum=100, - age=1, - lifetime=20, - fixed_costs=20, - overall_maximum=1000, - overall_minimum=5, - ), - ) - - # Add components to the energy system - es.add(bel, storage, sinkdsm_diw, sinkdsm_dlr, sinkdsm_oemof) - - # Create an optimization problem - om = solph.Model(es) - - # Compare the lp files - self.compare_lp_files("multi_period_period_length.lp", my_om=om) diff --git a/tests/test_components/test_offset_converter.py b/tests/test_components/test_offset_converter.py index 6089f6555..997a1140c 100644 --- a/tests/test_components/test_offset_converter.py +++ b/tests/test_components/test_offset_converter.py @@ -2,6 +2,7 @@ import numpy as np import pytest +from oemof.tools.debugging import ExperimentalFeatureWarning from oemof import solph from oemof.solph._plumbing import sequence @@ -104,58 +105,131 @@ def check_results( def add_OffsetConverter( es, reference_bus, nominal_value, minimal_value, eta_at_nom, eta_at_min ): + # Use of experimental API to access nodes by label. + # Can be removed with future release of network. + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ExperimentalFeatureWarning) + oc_inputs = { + b: solph.Flow() + for label, b in es.node.items() + if "bus input" in label + } + oc_outputs = { + b: solph.Flow() + for label, b in es.node.items() + if "bus output" in label + } + + if reference_bus in oc_outputs: + f = oc_outputs[reference_bus] + get_slope_and_offset = slope_offset_from_nonconvex_output + fix = [0] + np.linspace(minimal_value, nominal_value, 9).tolist() + else: + f = oc_inputs[reference_bus] + get_slope_and_offset = slope_offset_from_nonconvex_input + fix = [0] + np.linspace( + minimal_value * eta_at_min[es.node["bus output 0"]], + nominal_value * eta_at_nom[es.node["bus output 0"]], + 9, + ).tolist() + + fix_flow = es.flows()[es.node["bus output 0"], es.node["sink 0"]] + fix_flow.fix = fix + fix_flow.nominal_value = 1 + + slopes = {} + offsets = {} + + for bus in list(oc_inputs) + list(oc_outputs): + if bus == reference_bus: + continue + slope, offset = get_slope_and_offset( + 1, + minimal_value / nominal_value, + eta_at_nom[bus], + eta_at_min[bus], + ) + slopes[bus] = slope + offsets[bus] = offset - oc_inputs = { - b: solph.Flow() for label, b in es.node.items() if "bus input" in label - } - oc_outputs = { - b: solph.Flow() - for label, b in es.node.items() - if "bus output" in label - } + f.nonconvex = solph.NonConvex() + f.nominal_value = nominal_value + f.min = sequence(minimal_value / nominal_value) - if reference_bus in oc_outputs: - f = oc_outputs[reference_bus] - get_slope_and_offset = slope_offset_from_nonconvex_output - fix = [0] + np.linspace(minimal_value, nominal_value, 9).tolist() - else: - f = oc_inputs[reference_bus] - get_slope_and_offset = slope_offset_from_nonconvex_input - fix = [0] + np.linspace( - minimal_value * eta_at_min[es.node["bus output 0"]], - nominal_value * eta_at_nom[es.node["bus output 0"]], - 9, - ).tolist() - - fix_flow = es.flows()[es.node["bus output 0"], es.node["sink 0"]] - fix_flow.fix = fix - fix_flow.nominal_value = 1 - - slopes = {} - offsets = {} - - for bus in list(oc_inputs) + list(oc_outputs): - if bus == reference_bus: - continue - slope, offset = get_slope_and_offset( - 1, minimal_value / nominal_value, eta_at_nom[bus], eta_at_min[bus] + oc = solph.components.OffsetConverter( + label="offset converter", + inputs=oc_inputs, + outputs=oc_outputs, + conversion_factors=slopes, + normed_offsets=offsets, ) - slopes[bus] = slope - offsets[bus] = offset - f.nonconvex = solph.NonConvex() - f.nominal_value = nominal_value - f.min = sequence(minimal_value / nominal_value) + es.add(oc) + +def test_custom_properties(): + bus1 = solph.Bus() + bus2 = solph.Bus() oc = solph.components.OffsetConverter( - label="offset converter", - inputs=oc_inputs, - outputs=oc_outputs, - conversion_factors=slopes, - normed_offsets=offsets, + inputs={ + bus1: solph.Flow(nominal_value=2, nonconvex=solph.NonConvex()) + }, + outputs={bus2: solph.Flow()}, + conversion_factors={bus2: 2}, + normed_offsets={bus2: -0.5}, + custom_attributes={"foo": "bar"}, ) - es.add(oc) + assert oc.custom_properties["foo"] == "bar" + + +def test_invalid_conversion_factor(): + bus1 = solph.Bus() + bus2 = solph.Bus() + with pytest.raises(ValueError, match="Conversion factors cannot be "): + solph.components.OffsetConverter( + inputs={ + bus1: solph.Flow(nominal_value=2, nonconvex=solph.NonConvex()) + }, + outputs={bus2: solph.Flow()}, + conversion_factors={ + bus1: 1, + bus2: 2, + }, + normed_offsets={bus2: -0.5}, + ) + + +def test_invalid_normed_offset(): + bus1 = solph.Bus() + bus2 = solph.Bus() + with pytest.raises(ValueError, match="Normed offsets cannot be "): + solph.components.OffsetConverter( + inputs={ + bus1: solph.Flow(nominal_value=2, nonconvex=solph.NonConvex()) + }, + outputs={bus2: solph.Flow()}, + conversion_factors={ + bus2: 2, + }, + normed_offsets={ + bus1: -0.2, + bus2: -0.5, + }, + ) + + +def test_wrong_number_of_coefficients(): + bus1 = solph.Bus() + bus2 = solph.Bus() + with pytest.raises(ValueError, match="Two coefficients"): + solph.components.OffsetTransformer( + inputs={ + bus1: solph.Flow(nominal_value=2, nonconvex=solph.NonConvex()) + }, + outputs={bus2: solph.Flow()}, + coefficients=(1, 2, 3), + ) def test_OffsetConverter_single_input_output_ref_output(): @@ -411,8 +485,12 @@ def test_two_OffsetConverters_with_and_without_investment(): es.add(oc) - fix_flow = es.flows()[es.node["bus output 0"], es.node["sink 0"]] - fix_flow.fix = [v * 2 for v in fix_flow.fix] + # Use of experimental API to access nodes by label. + # Can be removed with future release of network. + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ExperimentalFeatureWarning) + fix_flow = es.flows()[es.node["bus output 0"], es.node["sink 0"]] + fix_flow.fix = [v * 2 for v in fix_flow.fix] # if the model solves it is feasible _ = solve_and_extract_results(es) @@ -426,10 +504,14 @@ def test_OffsetConverter_05x_compatibility(): nominal_value = 10 minimal_value = 3 - fix = [0] + np.linspace(minimal_value, nominal_value, 9).tolist() - fix_flow = es.flows()[es.node["bus output 0"], es.node["sink 0"]] - fix_flow.fix = fix - fix_flow.nominal_value = 1 + # Use of experimental API to access nodes by label. + # Can be removed with future release of network. + with warnings.catch_warnings(): + warnings.simplefilter("ignore", category=ExperimentalFeatureWarning) + fix = [0] + np.linspace(minimal_value, nominal_value, 9).tolist() + fix_flow = es.flows()[es.node["bus output 0"], es.node["sink 0"]] + fix_flow.fix = fix + fix_flow.nominal_value = 1 eta_at_nom = 0.7 eta_at_min = 0.5 diff --git a/tests/test_components/test_sink.py b/tests/test_components/test_sink.py index 97622a181..fa0559650 100644 --- a/tests/test_components/test_sink.py +++ b/tests/test_components/test_sink.py @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- +import warnings import pytest +from oemof.tools.debugging import ExperimentalFeatureWarning from oemof import solph @@ -22,18 +24,21 @@ def test_multi_input_sink(): es.add( solph.components.Source(f"source {i}", outputs={b: solph.Flow()}) ) - - es.add( - solph.components.Sink( - inputs={ - es.node[f"bus input {i}"]: solph.Flow( - nominal_value=1, - variable_costs=costs, - ) - for i in range(num_in) - } + # Use of experimental API to access nodes by label. + # Can be removed with future release of network. + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ExperimentalFeatureWarning) + es.add( + solph.components.Sink( + inputs={ + es.node[f"bus input {i}"]: solph.Flow( + nominal_value=1, + variable_costs=costs, + ) + for i in range(num_in) + } + ) ) - ) model = solph.Model(es) model.solve("cbc") diff --git a/tests/test_components/test_source.py b/tests/test_components/test_source.py index 16fa294fb..7219639b0 100644 --- a/tests/test_components/test_source.py +++ b/tests/test_components/test_source.py @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- +import warnings import pytest +from oemof.tools.debugging import ExperimentalFeatureWarning from oemof import solph @@ -21,17 +23,21 @@ def test_multi_output_source(): es.add(b) es.add(solph.components.Sink(f"source {i}", inputs={b: solph.Flow()})) - es.add( - solph.components.Source( - outputs={ - es.node[f"bus input {i}"]: solph.Flow( - nominal_value=1, - variable_costs=costs, - ) - for i in range(num_out) - } + # Use of experimental API to access nodes by label. + # Can be removed with future release of network. + with warnings.catch_warnings(): + warnings.simplefilter("ignore", ExperimentalFeatureWarning) + es.add( + solph.components.Source( + outputs={ + es.node[f"bus input {i}"]: solph.Flow( + nominal_value=1, + variable_costs=costs, + ) + for i in range(num_out) + } + ) ) - ) model = solph.Model(es) model.solve("cbc") diff --git a/tests/test_components/test_storage.py b/tests/test_components/test_storage.py index 21c5e1f26..763883637 100644 --- a/tests/test_components/test_storage.py +++ b/tests/test_components/test_storage.py @@ -48,3 +48,295 @@ def test_relative_losses(): == pytest.approx(cases[1]["result"][2 * i]) == pytest.approx(cases[2]["result"][4 * i]) ) + + +def test_invest_power_uncoupled(): + es = solph.EnergySystem( + timeindex=solph.create_time_index( + year=2023, + number=10, + ), + infer_last_interval=False, + ) + + bus = solph.Bus("slack_bus", balanced=False) + es.add(bus) + + storage = solph.components.GenericStorage( + "storage", + inputs={ + bus: solph.Flow( + variable_costs=-1, nominal_value=solph.Investment(ep_costs=0.1) + ) + }, + outputs={ + bus: solph.Flow( + variable_costs=1, nominal_value=solph.Investment(ep_costs=0.1) + ) + }, + nominal_storage_capacity=10, + initial_storage_level=0, + balanced=False, + ) + es.add(storage) + + model = solph.Model(es) + model.solve("cbc") + + result = solph.processing.results(model) + storage_content = result[(storage, None)]["sequences"]["storage_content"] + assert (storage_content == np.arange(0, 10.5, 1)).all() + + invest_inflow = result[(bus, storage)]["scalars"]["invest"] + assert invest_inflow == pytest.approx(1) + + invest_outflow = result[(storage, bus)]["scalars"]["invest"] + assert invest_outflow == pytest.approx(0) + + +def test_invest_power_coupled(): + es = solph.EnergySystem( + timeindex=solph.create_time_index( + year=2023, + number=10, + ), + infer_last_interval=False, + ) + + bus = solph.Bus("slack_bus", balanced=False) + es.add(bus) + + storage = solph.components.GenericStorage( + "storage", + inputs={ + bus: solph.Flow( + variable_costs=-1, nominal_value=solph.Investment(ep_costs=0.1) + ) + }, + outputs={ + bus: solph.Flow( + variable_costs=1, nominal_value=solph.Investment(ep_costs=0.1) + ) + }, + nominal_storage_capacity=10, + invest_relation_input_output=0.5, + initial_storage_level=0, + balanced=False, + ) + es.add(storage) + + model = solph.Model(es) + model.solve("cbc") + + result = solph.processing.results(model) + storage_content = result[(storage, None)]["sequences"]["storage_content"] + assert (storage_content == np.arange(0, 10.5, 1)).all() + + invest_inflow = result[(bus, storage)]["scalars"]["invest"] + assert invest_inflow == pytest.approx(1) + + invest_outflow = result[(storage, bus)]["scalars"]["invest"] + assert invest_outflow == pytest.approx(2) + + +def test_storage_charging(): + es = solph.EnergySystem( + timeindex=solph.create_time_index( + year=2023, + number=10, + ), + infer_last_interval=False, + ) + + bus = solph.Bus("slack_bus", balanced=False) + es.add(bus) + + storage = solph.components.GenericStorage( + "storage", + inputs={bus: solph.Flow(nominal_value=2, variable_costs=-2)}, + outputs={bus: solph.Flow(nominal_value=0.1)}, + nominal_storage_capacity=19, + initial_storage_level=0, + balanced=False, + ) + es.add(storage) + + model = solph.Model(es) + model.solve("cbc") + + result = solph.processing.results(model) + storage_inflow = result[(bus, storage)]["sequences"]["flow"] + assert list(storage_inflow)[:-1] == 10 * [2] + + storage_content = list( + result[(storage, None)]["sequences"]["storage_content"] + ) + assert storage_content == pytest.approx([i * 1.9 for i in range(0, 11)]) + + +def test_invest_content_uncoupled(): + es = solph.EnergySystem( + timeindex=solph.create_time_index( + year=2023, + number=10, + ), + infer_last_interval=False, + ) + + bus = solph.Bus("slack_bus", balanced=False) + es.add(bus) + + storage = solph.components.GenericStorage( + "storage", + inputs={bus: solph.Flow(nominal_value=2, variable_costs=-2)}, + outputs={bus: solph.Flow(nominal_value=0.1)}, + nominal_storage_capacity=solph.Investment( + ep_costs=0.1, + ), + initial_storage_level=0, + balanced=False, + ) + es.add(storage) + + model = solph.Model(es) + model.solve("cbc") + + result = solph.processing.results(model) + storage_inflow = result[(bus, storage)]["sequences"]["flow"] + assert list(storage_inflow)[:-1] == 10 * [2] + + invest_capacity = result[(storage, None)]["scalars"]["invest"] + assert invest_capacity == pytest.approx(19) + + storage_content = list( + result[(storage, None)]["sequences"]["storage_content"] + ) + assert storage_content == pytest.approx([i * 1.9 for i in range(0, 11)]) + + +def test_invest_content_minimum(): + es = solph.EnergySystem( + timeindex=solph.create_time_index( + year=2023, + number=10, + ), + infer_last_interval=False, + ) + + bus = solph.Bus("slack_bus", balanced=False) + es.add(bus) + + storage = solph.components.GenericStorage( + "storage", + inputs={bus: solph.Flow(nominal_value=2, variable_costs=-2)}, + outputs={bus: solph.Flow(nominal_value=0.1, variable_costs=0.1)}, + nominal_storage_capacity=solph.Investment( + ep_costs=0.1, + minimum=32, + ), + initial_storage_level=0, + balanced=False, + ) + es.add(storage) + + model = solph.Model(es) + model.solve("cbc") + + result = solph.processing.results(model) + storage_inflow = result[(bus, storage)]["sequences"]["flow"] + assert list(storage_inflow)[:-1] == 10 * [2] + + invest_capacity = result[(storage, None)]["scalars"]["invest"] + assert invest_capacity == pytest.approx(32) + + storage_content = list( + result[(storage, None)]["sequences"]["storage_content"] + ) + assert storage_content == pytest.approx([i * 2 for i in range(0, 11)]) + + +def test_invest_content_minimum_nonconvex(): + es = solph.EnergySystem( + timeindex=solph.create_time_index( + year=2023, + number=10, + ), + infer_last_interval=False, + ) + + bus = solph.Bus("slack_bus", balanced=False) + es.add(bus) + + storage = solph.components.GenericStorage( + "storage", + inputs={bus: solph.Flow(nominal_value=2, variable_costs=0.1)}, + outputs={bus: solph.Flow(nominal_value=0.1, variable_costs=0.1)}, + nominal_storage_capacity=solph.Investment( + ep_costs=0.1, + minimum=32, + nonconvex=solph.NonConvex(), + ), + balanced=False, + ) + es.add(storage) + + model = solph.Model(es) + model.solve("cbc") + + result = solph.processing.results(model) + storage_inflow = result[(bus, storage)]["sequences"]["flow"] + assert list(storage_inflow)[:-1] == 10 * [0] + + invest_capacity = result[(storage, None)]["scalars"]["invest"] + assert invest_capacity == pytest.approx(0) + + storage_content = list( + result[(storage, None)]["sequences"]["storage_content"] + ) + assert storage_content == pytest.approx(11 * [0]) + + +def test_invest_content_maximum(): + es = solph.EnergySystem( + timeindex=solph.create_time_index( + year=2023, + number=10, + ), + infer_last_interval=False, + ) + + bus = solph.Bus("slack_bus", balanced=False) + es.add(bus) + + storage = solph.components.GenericStorage( + "storage", + inputs={ + bus: solph.Flow( + nominal_value=2, + variable_costs=[-2 + i * 0.01 for i in range(0, 11)], + ) + }, + outputs={bus: solph.Flow(nominal_value=0.1, variable_costs=0.1)}, + nominal_storage_capacity=solph.Investment( + ep_costs=0.1, + maximum=10, + ), + initial_storage_level=0, + balanced=False, + ) + es.add(storage) + + model = solph.Model(es) + model.solve("cbc") + + result = solph.processing.results(model) + + invest_capacity = result[(storage, None)]["scalars"]["invest"] + assert invest_capacity == pytest.approx(10) + + storage_content = list( + result[(storage, None)]["sequences"]["storage_content"] + ) + assert storage_content == pytest.approx( + [min(i * 1.9, 10) for i in range(0, 11)] + ) diff --git a/tests/test_console_scripts.py b/tests/test_console_scripts.py index ff03710b8..e0078bf12 100644 --- a/tests/test_console_scripts.py +++ b/tests/test_console_scripts.py @@ -12,4 +12,14 @@ def test_console_scripts(): - console_scripts.check_oemof_installation(silent=False) + # this is just a smoke test + console_scripts.check_oemof_installation() + + +def test_solver_check(): + solver_list = ["cbc", "invalid solver"] + results = console_scripts._check_oemof_installation(solver_list) + + assert isinstance(results, dict) + assert list(results.keys()) == solver_list + assert not results["invalid solver"] diff --git a/tests/test_constraints/test_constraints_module.py b/tests/test_constraints/test_constraints_module.py new file mode 100644 index 000000000..6a36b7049 --- /dev/null +++ b/tests/test_constraints/test_constraints_module.py @@ -0,0 +1,115 @@ +import numpy as np +import pandas as pd +import pytest + +from oemof import solph + + +def test_integral_limit(): + periods = 5 + integral_limit1 = 250 + low_emission_flow_limit = 500 + integral_weight1 = 0.8 + integral_weight3 = 1.0 + emission_factor_low = 0.5 + emission_factor_high = 1 + high_emission_flow_limit = 200 + emission_limit = ( + emission_factor_low * low_emission_flow_limit + + emission_factor_high * high_emission_flow_limit + ) + + date_time_index = pd.date_range("1/1/2012", periods=periods, freq="h") + energysystem = solph.EnergySystem( + timeindex=date_time_index, + infer_last_interval=True, + ) + bel = solph.buses.Bus(label="electricityBus", balanced=False) + flow1 = solph.flows.Flow( + nominal_value=100, + custom_attributes={ + "my_factor": integral_weight1, + "emission_factor": emission_factor_low, + }, + variable_costs=-1, + ) + flow2 = solph.flows.Flow( + nominal_value=50, + variable_costs=-0.5, + ) + flow3 = solph.flows.Flow( + nominal_value=100, + custom_attributes={ + "my_factor": integral_weight3, + "emission_factor": emission_factor_low, + }, + variable_costs=-0.5, + ) + flow4 = solph.flows.Flow( + nominal_value=500, + custom_attributes={ + "emission_factor": emission_factor_high, + }, + variable_costs=-0.1, + ) + + src1 = solph.components.Source(label="source1", outputs={bel: flow1}) + src2 = solph.components.Source(label="source2", outputs={bel: flow2}) + src3 = solph.components.Source(label="source3", outputs={bel: flow3}) + src4 = solph.components.Source(label="source4", outputs={bel: flow4}) + energysystem.add(bel, src1, src2, src3, src4) + model = solph.Model(energysystem) + + # Note we do not consider flow3 for this constraint. + flows_with_keyword = { + (src1, bel): flow1, + } + + solph.constraints.generic_integral_limit( + model, "my_factor", flows_with_keyword, upper_limit=integral_limit1 + ) + solph.constraints.emission_limit( + model, + limit=emission_limit, + ) + + solph.constraints.generic_integral_limit( + model, + "my_factor", + limit_name="limit_my_factor", + upper_limit=low_emission_flow_limit, + ) + + model.solve() + + results = solph.processing.results(model) + + # total limeted to integral_limit1 + assert integral_weight1 * sum( + results[(src1, bel)]["sequences"]["flow"][:-1] + ) == pytest.approx(integral_limit1) + + # unconstrained, full load all the time + assert ( + np.array(results[(src2, bel)]["sequences"]["flow"][:-1]) + == np.full(periods, 50) + ).all() + + # have my_factor, limited to low_emission_flow_limit + assert integral_weight1 * sum( + results[(src1, bel)]["sequences"]["flow"][:-1] + ) + integral_weight3 * sum( + results[(src3, bel)]["sequences"]["flow"][:-1] + ) == pytest.approx( + low_emission_flow_limit + ) + + assert emission_factor_low * sum( + results[(src1, bel)]["sequences"]["flow"][:-1] + ) + emission_factor_low * sum( + results[(src3, bel)]["sequences"]["flow"][:-1] + ) + emission_factor_high * sum( + results[(src4, bel)]["sequences"]["flow"][:-1] + ) == pytest.approx( + emission_limit + ) diff --git a/tests/test_constraints/test_equate_flows.py b/tests/test_constraints/test_equate_flows.py new file mode 100644 index 000000000..33d76e2a0 --- /dev/null +++ b/tests/test_constraints/test_equate_flows.py @@ -0,0 +1,86 @@ +# -*- coding: utf-8 -*- + +"""Tests for Flows with NonConvex attribute + +SPDX-FileCopyrightText: Deutsches Zentrum für Luft- und Raumfahrt e.V. +SPDX-FileCopyrightText: Patrik Schönfeldt + +SPDX-License-Identifier: MIT +""" + +import pandas as pd +import pytest + +from oemof import solph + + +def test_equate_flows(): + date_time_index = pd.date_range("1/1/2012", periods=3, freq="h") + energysystem = solph.EnergySystem( + timeindex=date_time_index, + infer_last_interval=False, + ) + + b1 = solph.buses.Bus(label="b1", balanced=False) + s0 = solph.components.Sink( + label="s1", + inputs={ + b1: solph.Flow( + variable_costs=-0.5, + max=[0.5, 1], + nominal_value=4, + custom_attributes={"keyword1": "group 1"}, + ) + }, + ) + s1 = solph.components.Sink( + label="s2", + inputs={ + b1: solph.Flow( + variable_costs=0.1, + nominal_value=2, + custom_attributes={"keyword2": "group 2"}, + ) + }, + ) + s2 = solph.components.Sink( + label="s3", + inputs={ + b1: solph.Flow( + variable_costs=0.2, + nominal_value=3, + custom_attributes={"keyword2": "group 2"}, + ) + }, + ) + s3 = solph.components.Sink( + label="s4", + inputs={ + b1: solph.Flow( + variable_costs=0.2, + nominal_value=3, + custom_attributes={"keyword3": "no group"}, + ) + }, + ) + energysystem.add(b1, s0, s1, s2, s3) + + model = solph.Model(energysystem) + + solph.constraints.equate_flows_by_keyword( + model, "keyword1", "keyword2", 0.75 + ) + + model.solve() + + results = solph.processing.results(model) + + flow = [ + list(results[(b1, s)]["sequences"]["flow"][:-1]) + for s in [s0, s1, s2, s3] + ] + + assert flow[0] == pytest.approx([2, 4]) + assert flow[1] == pytest.approx([1.5, 2]) + assert flow[2] == pytest.approx([0, 1]) + assert flow[3] == pytest.approx([0, 0]) diff --git a/tests/test_constraints/test_flow_count_limit.py b/tests/test_constraints/test_flow_count_limit.py new file mode 100644 index 000000000..9b53300c6 --- /dev/null +++ b/tests/test_constraints/test_flow_count_limit.py @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- + +"""Tests for Flows with NonConvex attribute + +SPDX-FileCopyrightText: Deutsches Zentrum für Luft- und Raumfahrt e.V. +SPDX-FileCopyrightText: Patrik Schönfeldt + +SPDX-License-Identifier: MIT +""" + +import pandas as pd +import pytest + +from oemof import solph + + +def test_flow_count_limit(): + date_time_index = pd.date_range("1/1/2012", periods=3, freq="h") + energysystem = solph.EnergySystem( + timeindex=date_time_index, + infer_last_interval=False, + ) + + b1 = solph.buses.Bus(label="b1", balanced=False) + s0 = solph.components.Sink( + label="s1", + inputs={ + b1: solph.Flow( + variable_costs=[-0.5, 0.5], + nominal_value=4, + min=0.5, + nonconvex=solph.NonConvex(), + custom_attributes={"keyword1": "group 1"}, + ) + }, + ) + s1 = solph.components.Sink( + label="s2", + inputs={ + b1: solph.Flow( + variable_costs=[-0.2, 0.2], + nominal_value=2, + min=0.5, + nonconvex=solph.NonConvex(), + custom_attributes={"keyword1": "also group 1"}, + ) + }, + ) + s2 = solph.components.Sink( + label="s3", + inputs={ + b1: solph.Flow( + variable_costs=[-0.1, 0.1], + nominal_value=3, + min=0.5, + nonconvex=solph.NonConvex(), + custom_attributes={"keyword1": "still group 1"}, + ) + }, + ) + s3 = solph.components.Sink( + label="s4", + inputs={ + b1: solph.Flow( + variable_costs=[-0.1, 0.2], + nominal_value=3, + min=0.5, + nonconvex=solph.NonConvex(), + custom_attributes={"keyword2": "not in group 1"}, + ) + }, + ) + energysystem.add(b1, s0, s1, s2, s3) + + model = solph.Model(energysystem) + + solph.constraints.limit_active_flow_count_by_keyword( + model, + "keyword1", + lower_limit=1, + upper_limit=2, + ) + + model.solve() + + results = solph.processing.results(model) + + flow = [ + list(results[(b1, s)]["sequences"]["flow"][:-1]) + for s in [s0, s1, s2, s3] + ] + + assert flow[0] == pytest.approx([4, 0]) + assert flow[1] == pytest.approx([2, 0]) + assert flow[2] == pytest.approx([0, 1.5]) + assert flow[3] == pytest.approx([3, 0]) diff --git a/tests/test_constraints/test_storage_level.py b/tests/test_constraints/test_storage_level.py new file mode 100644 index 000000000..325b2e8ff --- /dev/null +++ b/tests/test_constraints/test_storage_level.py @@ -0,0 +1,108 @@ +import numpy as np + +from oemof import solph + + +def test_storage_level_constraint(): + n_time_steps = 10 + + es = solph.EnergySystem( + timeindex=solph.create_time_index("2022-01-01", number=n_time_steps), + infer_last_interval=False, + ) + + multiplexer = solph.Bus( + label="multiplexer", + ) + + storage_level = np.linspace(1, 0, num=n_time_steps + 1) + + storage = solph.components.GenericStorage( + label="storage", + nominal_storage_capacity=3, + initial_storage_level=1, + balanced=True, + storage_costs=0.1, + min_storage_level=storage_level, + inputs={multiplexer: solph.Flow()}, + outputs={multiplexer: solph.Flow()}, + ) + + es.add(multiplexer, storage) + + in_100 = solph.components.Source( + label="in_100", + outputs={multiplexer: solph.Flow(nominal_value=5, variable_costs=0.1)}, + ) + in_050 = solph.components.Source( + label="in_050", + outputs={multiplexer: solph.Flow(nominal_value=5, variable_costs=0.1)}, + ) + in_000 = solph.components.Source( + label="in_000", + outputs={multiplexer: solph.Flow(nominal_value=5, variable_costs=0.1)}, + ) + + out_000 = solph.components.Sink( + label="out_000", + inputs={multiplexer: solph.Flow(nominal_value=5)}, + ) + out_050 = solph.components.Sink( + label="out_050", + inputs={multiplexer: solph.Flow(nominal_value=5)}, + ) + out_100 = solph.components.Sink( + label="out_100", + inputs={multiplexer: solph.Flow(nominal_value=5)}, + ) + es.add(in_000, in_050, in_100, out_000, out_050, out_100) + + model = solph.Model(es) + + solph.constraints.storage_level_constraint( + model=model, + name="multiplexer", + storage_component=storage, + multiplexer_bus=multiplexer, + input_levels={ + in_100: 1.0, + in_050: 0.5, + }, # in_000 is always active (implicit), no variable + output_levels={ + out_100: 1.0, + out_050: 0.5, + out_000: 0.0, # out_000 is always active (explicit) + }, + ) + model.solve() + + my_results = solph.processing.results(model) + + assert list( + my_results[(in_100, None)]["sequences"]["multiplexer_active_input"][ + :-1 + ] + ) == n_time_steps * [0] + assert list( + my_results[(out_100, None)]["sequences"]["multiplexer_active_output"][ + :-1 + ] + ) == (n_time_steps - 1) * [0] + [1] + + assert list( + my_results[(in_050, None)]["sequences"]["multiplexer_active_input"][ + :-1 + ] + ) == n_time_steps // 2 * [1] + n_time_steps // 2 * [0] + assert list( + my_results[(out_050, None)]["sequences"]["multiplexer_active_output"][ + :-1 + ] + ) == n_time_steps // 2 * [1] + (n_time_steps // 2 - 1) * [0] + [1] + + assert list( + my_results[(out_000, None)]["sequences"]["multiplexer_active_output"][ + :-1 + ] + ) == n_time_steps * [1] + assert (in_000, None) not in my_results.keys() diff --git a/tests/test_constraints_module.py b/tests/test_constraints_module.py deleted file mode 100644 index 82b696474..000000000 --- a/tests/test_constraints_module.py +++ /dev/null @@ -1,84 +0,0 @@ -import pandas as pd -import pytest - -from oemof import solph - - -def test_integral_limit_wrapper(): - date_time_index = pd.date_range("1/1/2012", periods=5, freq="h") - energysystem = solph.EnergySystem( - timeindex=date_time_index, - infer_last_interval=True, - ) - bel = solph.buses.Bus(label="electricityBus") - flow1 = solph.flows.Flow( - nominal_value=100, - custom_attributes={"my_factor": 0.8}, - ) - flow2 = solph.flows.Flow(nominal_value=50) - src1 = solph.components.Source(label="source1", outputs={bel: flow1}) - src2 = solph.components.Source(label="source2", outputs={bel: flow2}) - energysystem.add(bel, src1, src2) - model = solph.Model(energysystem) - flow_with_keyword = { - (src1, bel): flow1, - } - with pytest.warns(FutureWarning): - solph.constraints.generic_integral_limit( - model, "my_factor", flow_with_keyword, limit=777 - ) - - -def test_limetless_limit(): - date_time_index = pd.date_range("1/1/2012", periods=5, freq="h") - energysystem = solph.EnergySystem( - timeindex=date_time_index, - infer_last_interval=True, - ) - model = solph.Model(energysystem) - with pytest.raises( - ValueError, - match="At least one of upper_limit and lower_limit", - ): - solph.constraints.generic_integral_limit(model, "my_factor") - - -def test_something_else(): - date_time_index = pd.date_range("1/1/2012", periods=5, freq="h") - energysystem = solph.EnergySystem( - timeindex=date_time_index, infer_last_interval=True - ) - bel1 = solph.buses.Bus(label="electricity1") - bel2 = solph.buses.Bus(label="electricity2") - energysystem.add(bel1, bel2) - energysystem.add( - solph.components.Converter( - label="powerline_1_2", - inputs={bel1: solph.flows.Flow()}, - outputs={ - bel2: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=20) - ) - }, - ) - ) - energysystem.add( - solph.components.Converter( - label="powerline_2_1", - inputs={bel2: solph.flows.Flow()}, - outputs={ - bel1: solph.flows.Flow( - nominal_value=solph.Investment(ep_costs=20) - ) - }, - ) - ) - om = solph.Model(energysystem) - line12 = energysystem.groups["powerline_1_2"] - line21 = energysystem.groups["powerline_2_1"] - solph.constraints.equate_variables( - om, - om.InvestmentFlowBlock.invest[line12, bel2, 0], - om.InvestmentFlowBlock.invest[line21, bel1, 0], - name="my_name", - ) diff --git a/tests/test_flows/__init__.py b/tests/test_flows/__init__.py new file mode 100644 index 000000000..aea97cd29 --- /dev/null +++ b/tests/test_flows/__init__.py @@ -0,0 +1,5 @@ +from .shared import _run_flow_model + +__all__ = [ + "_run_flow_model", +] diff --git a/tests/test_flows/shared.py b/tests/test_flows/shared.py new file mode 100644 index 000000000..a34d6d9c4 --- /dev/null +++ b/tests/test_flows/shared.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- + +"""Tests for Flows with NonConvex attribute + +SPDX-FileCopyrightText: Deutsches Zentrum für Luft- und Raumfahrt e.V. +SPDX-FileCopyrightText: Patrik Schönfeldt + +SPDX-License-Identifier: MIT +""" + +import pandas as pd + +from oemof import solph + + +def _run_flow_model(flow): + date_time_index = pd.date_range("1/1/2012", periods=10, freq="h") + energysystem = solph.EnergySystem( + timeindex=date_time_index, + infer_last_interval=True, + ) + bus = solph.buses.Bus(label="bus", balanced=False) + energysystem.add(bus) + + bus.inputs[bus] = flow + + model = solph.Model(energysystem) + model.solve() + + return solph.processing.results(model)[(bus, bus)]["sequences"] diff --git a/tests/flow_tests.py b/tests/test_flows/test_flow_class.py similarity index 100% rename from tests/flow_tests.py rename to tests/test_flows/test_flow_class.py diff --git a/tests/test_flows/test_non_convex_flow.py b/tests/test_flows/test_non_convex_flow.py new file mode 100644 index 000000000..d5960a898 --- /dev/null +++ b/tests/test_flows/test_non_convex_flow.py @@ -0,0 +1,134 @@ +# -*- coding: utf-8 -*- + +"""Tests for Flows with NonConvex attribute + +SPDX-FileCopyrightText: Deutsches Zentrum für Luft- und Raumfahrt e.V. +SPDX-FileCopyrightText: Patrik Schönfeldt + +SPDX-License-Identifier: MIT +""" + +from oemof import solph + +from . import _run_flow_model + + +def test_initial_status_off(): + # negative costs but turned off initially + flow = solph.flows.Flow( + nominal_value=10, + nonconvex=solph.NonConvex(initial_status=0, minimum_downtime=5), + variable_costs=-1, + ) + flow_result = _run_flow_model(flow) + + assert (flow_result["flow"][:-1] == 5 * [0] + 5 * [10]).all() + + +def test_maximum_shutdowns(): + flow = solph.flows.Flow( + nominal_value=10, + min=0.5, + nonconvex=solph.NonConvex(maximum_shutdowns=1), + variable_costs=[1, -2, 1, 1, 1, -5, 1, 1, 1, -2], + ) + flow_result = _run_flow_model(flow) + + assert list(flow_result["status"][:-1]) == [0, 1, 1, 1, 1, 1, 0, 0, 0, 1] + + +def test_maximum_startups(): + flow = solph.flows.Flow( + nominal_value=10, + min=0.5, + nonconvex=solph.NonConvex(maximum_startups=1), + variable_costs=[1, -4, 1, 1, 1, -5, 1, 1, 5, -3], + ) + flow_result = _run_flow_model(flow) + + assert list(flow_result["status"][:-1]) == [0, 1, 1, 1, 1, 1, 0, 0, 0, 0] + + +def test_initial_status_on(): + # positive costs but turned on initially + flow = solph.flows.Flow( + nominal_value=10, + min=0.5, + nonconvex=solph.NonConvex(initial_status=1, minimum_uptime=3), + variable_costs=1, + ) + flow_result = _run_flow_model(flow) + + assert (flow_result["flow"][:-1] == 3 * [5] + 7 * [0]).all() + + +def test_activity_costs(): + # activity costs higher then revenue for first time steps + flow = solph.flows.Flow( + nominal_value=10, + min=0.1, + max=[0.1] + [i * 0.1 for i in range(1, 10)], + nonconvex=solph.NonConvex(activity_costs=9 * [1] + [10]), + variable_costs=-0.45, + ) + flow_result = _run_flow_model(flow)["flow"][:-1] + + assert (flow_result == [0, 0, 0, 3, 4, 5, 6, 7, 8, 0]).all() + + +def test_inactivity_costs(): + # inactivity costs lower then running costs for middle time steps + flow = solph.flows.Flow( + nominal_value=10, + min=[i * 0.1 for i in range(10)], + nonconvex=solph.NonConvex(inactivity_costs=9 * [1] + [10]), + variable_costs=0.45, + ) + flow_result = _run_flow_model(flow)["flow"][:-1] + + assert (flow_result == [0, 1, 2, 0, 0, 0, 0, 0, 0, 9]).all() + + +def test_startup_costs_start_off(): + price_pattern = [1, 1, 1, -4, 1, 1, 1, -4, 1, 1] + + # startup costs higher then effect of shutting down + flow = solph.flows.Flow( + nominal_value=10, + min=0.1, + nonconvex=solph.NonConvex(startup_costs=5, initial_status=0), + variable_costs=price_pattern, + ) + flow_result = _run_flow_model(flow) + + assert (flow_result["flow"][:-1] == [0, 0, 0, 10, 1, 1, 1, 10, 0, 0]).all() + + +def test_startup_costs_start_on(): + price_pattern = [1, 1, 1, -4, 1, 1, 1, -4, 1, 1] + + # startup costs higher then effect of shutting down + flow = solph.flows.Flow( + nominal_value=10, + min=0.1, + nonconvex=solph.NonConvex(startup_costs=5, initial_status=1), + variable_costs=price_pattern, + ) + flow_result = _run_flow_model(flow) + + assert (flow_result["flow"][:-1] == [1, 1, 1, 10, 1, 1, 1, 10, 0, 0]).all() + + +def test_shutdown_costs_start_on(): + price_pattern = [1, 1, 1, -4, 1, 1, 1, -4, 1, 1] + + # shutdown costs higher then effect of shutting down + flow = solph.flows.Flow( + nominal_value=10, + min=0.1, + nonconvex=solph.NonConvex(shutdown_costs=5, initial_status=1), + variable_costs=price_pattern, + ) + flow_result = _run_flow_model(flow) + + assert (flow_result["flow"][:-1] == [1, 1, 1, 10, 1, 1, 1, 10, 1, 1]).all() diff --git a/tests/test_flows/test_simple_flow.py b/tests/test_flows/test_simple_flow.py new file mode 100644 index 000000000..3c351e0ce --- /dev/null +++ b/tests/test_flows/test_simple_flow.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- + +"""Tests for Flows with NonConvex attribute + +SPDX-FileCopyrightText: Deutsches Zentrum für Luft- und Raumfahrt e.V. +SPDX-FileCopyrightText: Patrik Schönfeldt + +SPDX-License-Identifier: MIT +""" + +import pytest + +from oemof import solph + +from . import _run_flow_model + + +def test_gradient_limit(): + price_pattern = [8] + 8 * [-1] + [8] + + flow = solph.flows.Flow( + nominal_value=2, + variable_costs=price_pattern, + positive_gradient_limit=0.4, + negative_gradient_limit=0.25, + ) + flow_result = list(_run_flow_model(flow)["flow"][:-1]) + + assert flow_result == pytest.approx( + [0, 0.8, 1.6, 2.0, 2.0, 2.0, 1.5, 1.0, 0.5, 0] + ) + + +def test_full_load_time_max(): + price_pattern = [-i for i in range(11)] + + flow = solph.flows.Flow( + nominal_value=2, + variable_costs=price_pattern, + full_load_time_max=4.5, + ) + flow_result = list(_run_flow_model(flow)["flow"][:-1]) + + assert flow_result == pytest.approx(5 * [0] + [1] + 4 * [2]) + + +def test_full_load_time_min(): + price_pattern = [i for i in range(11)] + + flow = solph.flows.Flow( + nominal_value=2, + variable_costs=price_pattern, + full_load_time_min=4.5, + ) + flow_result = list(_run_flow_model(flow)["flow"][:-1]) + + assert flow_result == pytest.approx(4 * [2] + [1] + 5 * [0]) diff --git a/tests/test_helpers.py b/tests/test_helpers.py index c33380a17..c33277c22 100644 --- a/tests/test_helpers.py +++ b/tests/test_helpers.py @@ -10,6 +10,9 @@ import os +import pytest + +from oemof.solph import create_time_index from oemof.solph import helpers @@ -18,3 +21,25 @@ def test_creation_of_extended_path(): p = helpers.extend_basic_path("test_subfolder_X345qw34_tmp") assert os.path.isdir(p) os.rmdir(p) + + +def test_create_time_index(): + assert len(create_time_index(2014)) == 8761 + assert len(create_time_index(2012)) == 8785 # leap year + assert len(create_time_index(2014, interval=0.5)) == 17521 + assert len(create_time_index(2014, interval=0.5, number=10)) == 11 + assert len(create_time_index(2014, number=10)) == 11 + assert ( + str(create_time_index(2014, interval=0.5, number=10)[-1]) + == "2014-01-01 05:00:00" + ) + assert ( + str(create_time_index(2014, interval=2, number=10)[-1]) + == "2014-01-01 20:00:00" + ) + assert ( + str(create_time_index(interval=0.5, number=10, start="2025-01-02")[-1]) + == "2025-01-02 05:00:00" + ) + with pytest.raises(ValueError, match="mutually exclusive"): + create_time_index(year=2015, start="2025-01-02") diff --git a/tests/test_models.py b/tests/test_models.py index 3f3e05d52..e5c51f9bd 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -17,55 +17,24 @@ from oemof import solph -def test_optimal_solution(): +def test_infeasible_model(): es = solph.EnergySystem(timeincrement=[1]) bel = solph.buses.Bus(label="bus") es.add(bel) es.add( solph.components.Sink( - label="sink", - inputs={bel: solph.flows.Flow(nominal_value=5, fix=[1])}, + inputs={bel: solph.flows.Flow(nominal_value=5, fix=[1])} ) ) es.add( solph.components.Source( - label="source", - outputs={bel: solph.flows.Flow(variable_costs=5)}, + outputs={bel: solph.flows.Flow(nominal_value=4, variable_costs=5)} ) ) m = solph.Model(es) - m.solve("cbc") - m.results() - solph.processing.meta_results(m) - - -def test_infeasible_model(): - # FutureWarning is i.e. emitted by network Entity registry - warnings.simplefilter(action="ignore", category=FutureWarning) - - with pytest.raises(ValueError, match=""): - with warnings.catch_warnings(record=True) as w: - es = solph.EnergySystem(timeincrement=[1]) - bel = solph.buses.Bus(label="bus") - es.add(bel) - es.add( - solph.components.Sink( - inputs={bel: solph.flows.Flow(nominal_value=5, fix=[1])} - ) - ) - es.add( - solph.components.Source( - outputs={ - bel: solph.flows.Flow( - nominal_value=4, variable_costs=5 - ) - } - ) - ) - m = solph.Model(es) - m.solve(solver="cbc") - assert "Optimization ended with status" in str(w[0].message) - solph.processing.meta_results(m) + with warnings.catch_warnings(record=True) as w: + m.solve(solver="cbc") + assert "Optimization ended with status" in str(w[0].message) @pytest.mark.filterwarnings( diff --git a/tests/test_scripts/test_solph/test_storage_investment/test_storage_investment.py b/tests/test_scripts/test_solph/test_storage_investment/test_storage_investment.py index e67bec253..92232979b 100644 --- a/tests/test_scripts/test_solph/test_storage_investment/test_storage_investment.py +++ b/tests/test_scripts/test_solph/test_storage_investment/test_storage_investment.py @@ -157,7 +157,7 @@ def test_optimise_storage_size( es.dump() -def test_results_with_actual_dump(): +def test_results_with_recent_dump(): test_optimise_storage_size() energysystem = solph.EnergySystem() energysystem.restore() @@ -196,9 +196,9 @@ def test_results_with_actual_dump(): # Problem results assert meta["problem"]["Lower bound"] == 4.231675777e17 assert meta["problem"]["Upper bound"], 4.231675777e17 - assert meta["problem"]["Number of variables"] == 2807 - assert meta["problem"]["Number of constraints"] == 2808 - assert meta["problem"]["Number of nonzeros"] == 1197 + assert meta["problem"]["Number of variables"] == 2808 + assert meta["problem"]["Number of constraints"] == 2809 + assert meta["problem"]["Number of nonzeros"] == 1199 assert meta["problem"]["Number of objectives"] == 1 assert str(meta["problem"]["Sense"]) == "minimize" diff --git a/tests/test_solph_network_classes.py b/tests/test_solph_network_classes.py index 46f032da1..71726a286 100644 --- a/tests/test_solph_network_classes.py +++ b/tests/test_solph_network_classes.py @@ -12,6 +12,7 @@ import warnings import pytest +from oemof.tools.debugging import SuspiciousUsageWarning from oemof import solph @@ -24,56 +25,58 @@ def setup_class(cls): @pytest.mark.filterwarnings("ignore::UserWarning") def test_empty_converter(self): - transf = solph.components.Converter() - assert isinstance(transf.conversion_factors, dict) - assert len(transf.conversion_factors.keys()) == 0 + converter = solph.components.Converter() + assert isinstance(converter.conversion_factors, dict) + assert len(converter.conversion_factors.keys()) == 0 def test_default_conversion_factor(self): - transf = solph.components.Converter( + converter = solph.components.Converter( inputs={self.bus: solph.flows.Flow()}, outputs={self.bus: solph.flows.Flow()}, ) - assert transf.conversion_factors[self.bus][2] == 1 + assert converter.conversion_factors[self.bus][2] == 1 def test_sequence_conversion_factor_from_scalar(self): - transf = solph.components.Converter( + converter = solph.components.Converter( inputs={self.bus: solph.flows.Flow()}, outputs={self.bus: solph.flows.Flow()}, conversion_factors={self.bus: 2}, ) - assert transf.conversion_factors[self.bus][6] == 2 + assert converter.conversion_factors[self.bus][6] == 2 def test_sequence_conversion_factor_from_list_correct_length(self): - transf = solph.components.Converter( + converter = solph.components.Converter( inputs={self.bus: solph.flows.Flow()}, outputs={self.bus: solph.flows.Flow()}, conversion_factors={self.bus: [2]}, ) - assert len(transf.conversion_factors[self.bus]) == 1 + assert len(converter.conversion_factors[self.bus]) == 1 def test_sequence_conversion_factor_from_list_wrong_length(self): - transf = solph.components.Converter( + converter = solph.components.Converter( inputs={self.bus: solph.flows.Flow()}, outputs={self.bus: solph.flows.Flow()}, conversion_factors={self.bus: [2]}, ) with pytest.raises(IndexError): - self.a = transf.conversion_factors[self.bus][6] + self.a = converter.conversion_factors[self.bus][6] - @pytest.mark.filterwarnings("ignore:Attribute :UserWarning") def test_converter_missing_output_create_empty_dict(self): - trfr = solph.components.Converter(inputs={}) - assert trfr.outputs == {} + with pytest.warns(SuspiciousUsageWarning): + converter = solph.components.Converter(inputs={}) + assert converter.outputs == {} - @pytest.mark.filterwarnings("ignore:Attribute :UserWarning") def test_converter_missing_input_create_empty_dict(self): - trfr = solph.components.Converter(outputs={}) - assert trfr.inputs == {} + with pytest.warns(SuspiciousUsageWarning): + converter = solph.components.Converter(outputs={}) + assert converter.inputs == {} def test_transformer_wrapper(): + # two warnings: Wrapper and no inputs/outputs with pytest.warns(FutureWarning): - solph.components.Transformer() + with pytest.warns(SuspiciousUsageWarning): + solph.components.Transformer() def test_offset_transformer_wrapper(): diff --git a/tests/test_time_index.py b/tests/test_time_index.py index 08d2b56cb..fe6a2a675 100644 --- a/tests/test_time_index.py +++ b/tests/test_time_index.py @@ -10,6 +10,7 @@ import pandas as pd import pytest +from oemof.tools import debugging from oemof import solph @@ -109,7 +110,7 @@ def test_energysystem_with_numeric_index_non_equidistant(): def test_model_timeincrement_with_valid_timeindex(): datetimeindex = pd.date_range("1/1/2012", periods=5, freq="h") es = solph.EnergySystem(timeindex=datetimeindex, infer_last_interval=True) - m = solph._models.BaseModel(es) + m = solph._models.Model(es) assert es.timeincrement.sum() == 5 assert m.timeincrement.sum() == 5 assert m.timeincrement[2] == 1 @@ -151,13 +152,14 @@ def test_overwrite_timeincrement(): infer_last_interval=True, ) assert es.timeincrement[0] == 1 - m = solph._models.BaseModel(es, timeincrement=[3]) + with pytest.warns(debugging.SuspiciousUsageWarning): + m = solph._models.Model(es, timeincrement=[3]) assert m.timeincrement[0] == 3 def test_model_timeincrement_list(): - es = solph.EnergySystem() - m = solph._models.BaseModel(es, timeincrement=[0, 1, 2, 3]) + es = solph.EnergySystem(timeincrement=[0.1, 1, 2, 3]) + m = solph._models.Model(es) assert m.timeincrement[3] == 3