Sellar's problem#
The Sellar's problem is considered in different tutorials:
Description of the problem#
The Sellar problem is defined by analytical functions:
\[\begin{split}\begin{aligned}
\text{minimize the objective function }&\text{obj}=x_{\text{local}}^2 + x_{\text{shared},2}
+y_1^2+e^{-y_2} \\
\text{with respect to the design variables }&x_{\text{shared}},\,x_{\text{local}} \\
\text{subject to the general constraints }
& c_1 \leq 0\\
& c_2 \leq 0\\
\text{subject to the bound constraints }
& -10 \leq x_{\text{shared},1} \leq 10\\
& 0 \leq x_{\text{shared},2} \leq 10\\
& 0 \leq x_{\text{local}} \leq 10.
\end{aligned}\end{split}\]
where the coupling variables are
\[\text{Discipline 1: } y_1 = \sqrt{x_{\text{shared},1}^2 + x_{\text{shared},2} +
x_{local} - 0.2\,y_2},\]
and
\[\text{Discipline 2: }y_2 = |y_1| + x_{\text{shared},1} + x_{\text{shared},2}.\]
and where the general constraints are
\[ \begin{align}\begin{aligned}c_1 = 3.16 - y_1^2\\c_2 = y_2 - 24.\end{aligned}\end{align} \]
The Sellar disciplines are also available with analytic derivatives in GEMSEO, as well as a DesignSpace:
Creation of the disciplines#
To create the Sellar disciplines, use the function create_discipline:
from gemseo import create_discipline
disciplines = create_discipline(["Sellar1", "Sellar2", "SellarSystem"])
Importation of the design space#
To import the Sellar design space, use the class create_discipline:
from gemseo.problems.mdo.sellar.sellar_design_space import SellarDesignSpace
design_space = SellarDesignSpace()
Then, you can visualize it with print(design_space):
+----------+-------------+--------+-------------+-------+
| name | lower_bound | value | upper_bound | type |
+----------+-------------+--------+-------------+-------+
| x_local | 0 | (1+0j) | 10 | float |
+ + + + + +
| x_shared | -10 | (4+0j) | 10 | float |
+ + + + + +
| x_shared | 0 | (3+0j) | 10 | float |
+ + + + + +
| y_1 | -100 | (1+0j) | 100 | float |
+ + + + + +
| y_2 | -100 | (1+0j) | 100 | float |
+----------+-------------+--------+-------------+-------+
See also
See Tutorial: How to solve an MDO problem to create the Sellar problem from scratch