gemseo.problems.mdo.scalable.parametric.core.scalable_problem module#

The scalable problem.

class ScalableProblem(discipline_settings=((1, 1), (1, 1)), d_0=1, add_random_variables=False, alpha=0.5, seed=0)[source]#

Bases: object

The scalable problem.

It builds a set of strongly coupled scalable disciplines completed by a system discipline computing the objective function and the constraints.

These disciplines are defined on a unit design space, i.e. design variables belongs to \([0, 1]\).

Parameters:
  • discipline_settings (Sequence[ScalableDisciplineSettings]) --

    The configurations of the different scalable disciplines.

    By default it is set to (ScalableDisciplineSettings(d_i=1, p_i=1), ScalableDisciplineSettings(d_i=1, p_i=1)).

  • d_0 (int) --

    The size of the shared design variable \(x_0\).

    By default it is set to 1.

  • add_random_variables (bool) --

    Whether to add a centered random variable \(u_i\) on the output of the \(i\)-th scalable discipline.

    By default it is set to False.

  • alpha (float) --

    The proportion of feasible design points.

    By default it is set to 0.5.

  • seed (int) --

    The seed for reproducibility.

    By default it is set to 0.

compute_y(x, u=None)[source]#

Compute the coupling vector \(y\).

Parameters:
  • x (RealArray) -- The design point at which to compute \(y\).

  • u (RealArray | None) -- The uncertain point at which to compute \(y\), if any.

Returns:

The coupling vector \(y\) at the design point \(x\) and the uncertain point \(u\).

Return type:

RealArray

differentiate_y(x, u=None)[source]#

Compute the derivatives of the coupling output \(y\).

Parameters:
  • x (RealArray) -- The design point at which to compute \(y\).

  • u (RealArray | None) -- The uncertain point at which to compute \(y\), if any.

Returns:

The derivatives of the coupling output \(y\) at the design point \(x\) and the uncertain point \(u\).

Return type:

RealArray

design_space: _DESIGN_SPACE_CLASS#

The design space.

disciplines: list[_MAIN_DISCIPLINE_CLASS | _SCALABLE_DISCIPLINE_CLASS]#

The disciplines.

property main_discipline: _MAIN_DISCIPLINE_CLASS#

The main discipline.

qp_problem: QuadraticProgrammingProblem#

The quadratic programming problem.

property scalable_disciplines: list[_SCALABLE_DISCIPLINE_CLASS]#

The scalable disciplines.