Skip to content

Commit

Permalink
Sense (minimize/maximize) of l_objective added.
Browse files Browse the repository at this point in the history
  • Loading branch information
dcradu committed Jul 18, 2019
1 parent bea7815 commit dee5033
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions pypsa/opt.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
logger = logging.getLogger(__name__)


from pyomo.environ import Constraint, Objective, Var, ComponentUID
from pyomo.environ import Constraint, Objective, Var, ComponentUID, minimize, maximize
from weakref import ref as weakref_ref

import pyomo
Expand Down Expand Up @@ -248,7 +248,7 @@ def l_constraint(model,name,constraints,*args):
v._data[i]._upper = pyomo.core.base.numvalue.NumericConstant(constant[1])
else: raise KeyError('`sense` must be one of "==","<=",">=","><"; got: {}'.format(sense))

def l_objective(model,objective=None):
def l_objective(model,objective=None, sense=minimize):
"""
A replacement for pyomo's Objective that quickly builds linear
objectives.
Expand All @@ -259,7 +259,7 @@ def l_objective(model,objective=None):
call instead
l_objective(model,objective)
l_objective(model,objective,sense)
where objective is an LExpression.
Expand All @@ -271,14 +271,15 @@ def l_objective(model,objective=None):
----------
model : pyomo.environ.ConcreteModel
objective : LExpression
sense : minimize / maximize
"""

if objective is None:
objective = LExpression()

#initialise with a dummy
model.objective = Objective(expr = 0.)
model.objective = Objective(expr = 0., sense=sense)
model.objective._expr = _build_sum_expression(objective.variables, constant=objective.constant)

def free_pyomo_initializers(obj):
Expand Down

0 comments on commit dee5033

Please sign in to comment.