Incident Variables

Functionality for identifying variables that participate in expressions

pyomo.contrib.incidence_analysis.incidence.get_incident_variables(expr, **kwds)[source]

Get variables that participate in an expression

The exact variables returned depends on the method used to determine incidence. For example, method=IncidenceMethod.identify_variables will return all variables participating in the expression, while method=IncidenceMethod.standard_repn will return only the variables identified by generate_standard_repn which ignores variables that only appear multiplied by a constant factor of zero.

Keyword arguments must be valid options for IncidenceConfig.

Parameters:

expr (NumericExpression) – Expression to search for variables

Returns:

List containing the variables that participate in the expression

Return type:

list of VarData

Example

>>> import pyomo.environ as pyo
>>> from pyomo.contrib.incidence_analysis import get_incident_variables
>>> m = pyo.ConcreteModel()
>>> m.x = pyo.Var([1, 2, 3])
>>> expr = m.x[1] + 2*m.x[2] + 3*m.x[3]**2
>>> print([v.name for v in get_incident_variables(expr)])
['x[1]', 'x[2]', 'x[3]']
>>> print([v.name for v in get_incident_variables(expr, linear_only=True)])
['x[1]', 'x[2]']