gemseo / problems / mdo / scalable / parametric / core

# scalable_problem module¶

The scalable problem.

class gemseo.problems.mdo.scalable.parametric.core.scalable_problem.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.

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 (NDArray[float]) – A design point.

• u (NDArray[float] | None) – An uncertain point, if any.

Returns:

The coupling vector associated with the design point $$x$$ and the uncertain vector $$U$$ if any.

Return type:

NDArray[float]

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.