gemseo_box_subdivision.disciplines.box_constraint#

The box of a Cartesian subdivision, expressed as a constraint.

Classes

BoxConstraint(subdivision[, one_hot_names, ...])

The box selected by a one-hot vector, expressed as a constraint.

class gemseo_box_subdivision.disciplines.box_constraint.BoxConstraint(subdivision, one_hot_names=mappingproxy({}), output_name='g_box', name='')[source]#

Bases: Discipline

The box selected by a one-hot vector, expressed as a constraint.

Given a BoxSubdivision and the one-hot vectors \(\alpha\) selecting a subdivision per design variable component, this discipline computes

\[\begin{split}g(x, \alpha) = \begin{bmatrix} x - u(\alpha) \\ \ell(\alpha) - x \end{bmatrix} \le 0,\end{split}\]

a single vector-valued function of dimension \(2n\), whose first \(n\) components are the upper faces of the box and the last \(n\) components its lower faces.

Expressing the box as a constraint rather than as bounds of the sub-problem design space is what makes the sensitivity of the sub-problem optimum with respect to \(\alpha\) available: the post-optimal analysis of GEMSEO propagates the dependency on a parameter through the constraint multipliers only, and assumes the bounds to be constant.

Both \(\ell\) and \(u\) are affine in \(\alpha\), and \(g\) is linear in \(x\), so \(g\) is jointly convex: the whole non-convexity of the problem remains in its original functions.

Parameters:
  • subdivision (BoxSubdivision)

  • one_hot_names (Mapping[str, str])

  • output_name (str)

  • name (str)

DEFAULT_OUTPUT_NAME: Final[str] = 'g_box'#

The default name of the constraint.

default_grammar_type: ClassVar[Discipline.GrammarType] = 'SimplerGrammar'#

The default type of grammar.

property one_hot_names: dict[str, str]#

The name of the one-hot variable of each design variable.

property output_name: str#

The name of the constraint.