gemseo.problems.mdo.scalable.data_driven.discipline module#
Scalable discipline.
The discipline
implements the concept of scalable discipline.
This is a particular discipline
built from an input-output training dataset associated with a function
and generalizing its behavior to a new user-defined problem dimension,
that is to say new user-defined input and output dimensions.
Alone or in interaction with other objects of the same type, a scalable discipline can be used to compare the efficiency of an algorithm applying to disciplines with respect to the problem dimension, e.g. optimization algorithm, surrogate model, MDO formulation, MDA, ...
The ScalableDiscipline
class implements this concept.
It inherits from the Discipline
class
in such a way that it can easily be used in a Scenario
.
It is composed of a ScalableModel
.
The user only needs to provide:
the name of a class overloading
ScalableModel
,a dataset as an
Dataset
variables sizes as a dictionary whose keys are the names of inputs and outputs and values are their new sizes. If a variable is missing, its original size is considered.
The ScalableModel
parameters can also be filled in,
otherwise the model uses default values.
- class ScalableDiscipline(name, data, sizes=mappingproxy({}), **parameters)[source]#
Bases:
Discipline
A scalable discipline.
Initialize self. See help(type(self)) for accurate signature.
- Parameters:
- execution_statistics: ExecutionStatistics#
The execution statistics of the process.
- execution_status: ExecutionStatus#
The execution status of the process.
- jac: JacobianData#
The Jacobian matrices of the outputs.
The structure is
{output_name: {input_name: jacobian_matrix}}
.