Conic Constraints
A collection of classes that provide an easy and performant way to declare conic constraints. The Mosek solver interface includes special handling of these objects that recognizes them as convex constraints. Other solver interfaces will treat these objects as general nonlinear or quadratic expressions, and may or may not have the ability to identify their convexity.
Summary
A quadratic conic constraint of the form: 

A rotated quadratic conic constraint of the form: 

A primal exponential conic constraint of the form: 


A primal power conic constraint of the form: 
A dual exponential conic constraint of the form: 


A dual power conic constraint of the form: 
Member Documentation
 class pyomo.core.kernel.conic.quadratic(r, x)[source]
Bases:
_ConicBase
A quadratic conic constraint of the form:
x[0]^2 + … + x[n1]^2 <= r^2,
which is recognized as convex for r >= 0.
 Parameters:
r (
variable
) – A variable.x (list[
variable
]) – An iterable of variables.
 classmethod as_domain(r, x)[source]
Builds a conic domain. Input arguments take the same form as those of the conic constraint, but in place of each variable, one can optionally supply a constant, linear expression, or None.
 Returns:
A block object with the core conic constraint (block.q) expressed using auxiliary variables (block.r, block.x) linked to the input arguments through auxiliary constraints (block.c).
 Return type:
 class pyomo.core.kernel.conic.rotated_quadratic(r1, r2, x)[source]
Bases:
_ConicBase
A rotated quadratic conic constraint of the form:
x[0]^2 + … + x[n1]^2 <= 2*r1*r2,
which is recognized as convex for r1,r2 >= 0.
 Parameters:
r1 (
variable
) – A variable.r2 (
variable
) – A variable.x (list[
variable
]) – An iterable of variables.
 classmethod as_domain(r1, r2, x)[source]
Builds a conic domain. Input arguments take the same form as those of the conic constraint, but in place of each variable, one can optionally supply a constant, linear expression, or None.
 Returns:
A block object with the core conic constraint (block.q) expressed using auxiliary variables (block.r1, block.r2, block.x) linked to the input arguments through auxiliary constraints (block.c).
 Return type:
 class pyomo.core.kernel.conic.primal_exponential(r, x1, x2)[source]
Bases:
_ConicBase
A primal exponential conic constraint of the form:
x1*exp(x2/x1) <= r,
which is recognized as convex for x1,r >= 0.
 Parameters:
r (
variable
) – A variable.x1 (
variable
) – A variable.x2 (
variable
) – A variable.
 classmethod as_domain(r, x1, x2)[source]
Builds a conic domain. Input arguments take the same form as those of the conic constraint, but in place of each variable, one can optionally supply a constant, linear expression, or None.
 Returns:
A block object with the core conic constraint (block.q) expressed using auxiliary variables (block.r, block.x1, block.x2) linked to the input arguments through auxiliary constraints (block.c).
 Return type:
 class pyomo.core.kernel.conic.primal_power(r1, r2, x, alpha)[source]
Bases:
_ConicBase
 A primal power conic constraint of the form:
sqrt(x[0]^2 + … + x[n1]^2) <= (r1^alpha)*(r2^(1alpha))
which is recognized as convex for r1,r2 >= 0 and 0 < alpha < 1.
 Parameters:
r1 (
variable
) – A variable.r2 (
variable
) – A variable.x (list[
variable
]) – An iterable of variables.alpha (float,
parameter
, etc.) – A constant term.
 classmethod as_domain(r1, r2, x, alpha)[source]
Builds a conic domain. Input arguments take the same form as those of the conic constraint, but in place of each variable, one can optionally supply a constant, linear expression, or None.
 Returns:
A block object with the core conic constraint (block.q) expressed using auxiliary variables (block.r1, block.r2, block.x) linked to the input arguments through auxiliary constraints (block.c).
 Return type:
 class pyomo.core.kernel.conic.dual_exponential(r, x1, x2)[source]
Bases:
_ConicBase
A dual exponential conic constraint of the form:
x2*exp((x1/x2)1) <= r
which is recognized as convex for x2 <= 0 and r >= 0.
 Parameters:
r (
variable
) – A variable.x1 (
variable
) – A variable.x2 (
variable
) – A variable.
 classmethod as_domain(r, x1, x2)[source]
Builds a conic domain. Input arguments take the same form as those of the conic constraint, but in place of each variable, one can optionally supply a constant, linear expression, or None.
 Returns:
A block object with the core conic constraint (block.q) expressed using auxiliary variables (block.r, block.x1, block.x2) linked to the input arguments through auxiliary constraints (block.c).
 Return type:
 class pyomo.core.kernel.conic.dual_power(r1, r2, x, alpha)[source]
Bases:
_ConicBase
A dual power conic constraint of the form:
sqrt(x[0]^2 + … + x[n1]^2) <= ((r1/alpha)^alpha) * ((r2/(1alpha))^(1alpha))
which is recognized as convex for r1,r2 >= 0 and 0 < alpha < 1.
 Parameters:
r1 (
variable
) – A variable.r2 (
variable
) – A variable.x (list[
variable
]) – An iterable of variables.alpha (float,
parameter
, etc.) – A constant term.
 classmethod as_domain(r1, r2, x, alpha)[source]
Builds a conic domain. Input arguments take the same form as those of the conic constraint, but in place of each variable, one can optionally supply a constant, linear expression, or None.
 Returns:
A block object with the core conic constraint (block.q) expressed using auxiliary variables (block.r1, block.r2, block.x) linked to the input arguments through auxiliary constraints (block.c).
 Return type: