Miscellaneous Utility Methods


The get_solver method is primarily intended for use when a solver object is required in a general model. The get_solver method takes two optional arguments which allow the user to specify a specific solver and/or solver options if required, or to use the default solver specified in the IDAES Configuration if no arguments are provided.

idaes.core.util.misc.get_solver(solver=None, options=None)[source]

General method for getting a solver object which defaults to the standard IDAES solver (defined in the IDAES configuration).

  • solver – string name for desired solver. Default=None, use default solver

  • options – dict of solver options to use, overwrites any settings provided by IDAES configuration. Default = None, use default solver options.


A Pyomo solver object

Variable-Like Expressions

There are a number of cases within IDAES where a modeler may wish to use an Expression in place of a Var to reduce the complexity of their model. A common example of this is in the ideal Separator unit where the outlet Ports use Expressions for the state variable in order to reduce the number of variables (and thus constraints) in the model.

In these cases, it is possible that a user might mistake the Expression for a Var and attempt to use methods such as fix() on it. In order to provide the user with a useful error message informing them that this will not work, IDAES has created a derived VarLikeExpression component for these situations. This component derives directly from Pyomo’s Expression component and implements common methods associated with Vars which will return an error message informing the user that the component is an Expression, and a suggestion on how to proceed.

class idaes.core.util.misc.VarLikeExpression(*args, **kwds)[source]

A shared var-like expression container, which may be defined over a index.

Constructor Arguments:

initialize: A Pyomo expression or dictionary of expressions used to initialize this object.

expr: A synonym for initialize.

rule: A rule function used to initialize this object.

class idaes.core.util.misc.SimpleVarLikeExpression(*args, **kwds)[source]
add(index, expr)[source]

Add an expression with a given index.

class idaes.core.util.misc.IndexedVarLikeExpression(*args, **kwds)[source]
add(index, expr)[source]

Add an expression with a given index.

class idaes.core.util.misc._GeneralVarLikeExpressionData(expr=None, component=None)[source]

An object derived from _GeneralExpressionData which implements methods for common APIs on Vars.

Constructor Arguments:

expr: The Pyomo expression stored in this expression.

component: The Expression object that owns this data.

Public Class Attributes:

expr: The expression owned by this data.

Private class attributes:

_component: The expression component.

set_value(value, force=False)[source]

Overload set_value method to provide meaningful error if user attempts to set the value of the Expression. In order to support changing the expression (and setting it originally), if self._expr is None or force=True, the value of the expression will be updated, otherwise a TypeError will be raised.

  • value – value to set for _expr

  • force – force updating of _expr if True (default = False)




TypeError if _expr is not None and force=False

Other Utility Methods

This library also contains a number of other utility methods that do not fall under another category.

idaes.core.util.misc.add_object_reference(self, local_name, remote_object)[source]

Method to create a reference in the local model to a remote Pyomo object. This method should only be used where Pyomo Reference objects are not suitable (such as for referencing scalar Pyomo objects where the None index is undesirable).

  • local_name – name to use for local reference (str)

  • remote_object – object to make a reference to




General method that returns a rule to extract data from a python dictionary. This method allows the param block to have a database for a parameter but extract a subset of this data to initialize a Pyomo param object.

idaes.core.util.misc.set_param_from_config(b, param, config=None, index=None)[source]

Utility method to set parameter value from a config block. This allows for converting units if required. This method directly sets the value of the parameter.

This method supports three forms for defining the parameter value:

1. a 2-tuple of the form (value, units) where units are the units that the value are defined in 2. a float where the float is assumed to be the value of the parameter value in the base units of the property package 3. a Python Class which has a get_parameter_value method which will return a 2-tuple of (value, units) based on a lookup of the parameter name

  • defined (b - block on which parameter and config block are) –

  • arg (param - name of parameter as str. Used to find param and config) –

  • object (units - units of param) –

  • - (index) – unset, assumes b.config.

  • - – property may have multiple parameters associated with it.