gemseo / problems / scalable

problem module

Scalable MDO problem

This module implements the concept of scalable problem by means of the ScalableProblem class.

Given

  • a MDO scenario based on a set of sampled disciplines with a particular problem dimension,

  • a new problem dimension (= number of inputs and outputs),

a scalable problem:

  1. makes each discipline scalable based on the new problem dimension,

  2. creates the corresponding MDO scenario.

Then, this MDO scenario can be executed and post-processed.

We can repeat this tasks for different sizes of variables and compare the scalability, which is the dependence of the scenario results on the problem dimension.

class gemseo.problems.scalable.problem.ScalableProblem(datasets, design_variables, objective_function, eq_constraints=None, ineq_constraints=None, maximize_objective=False, sizes=None, **parameters)[source]

Bases: object

Scalable problem.

Constructor

Parameters
  • datasets (list(AbstractFullCache)) – disciplinary datasets.

  • design_variables (list(str)) – list of design variable names

  • objective_function (str) – objective function

  • eq_constraints (list(str)) – equality constraints. Default: None.

  • eq_constraints – inequality constraints. Default: None.

  • maximize_objective (bool) – maximize objective. Default: False.

  • sizes (dict) – sizes of input and output variables. If None, use the original sizes. Default: None.

  • parameters – optional parameters for the scalable model.

create_scenario(formulation='DisciplinaryOpt', scenario_type='MDO', start_at_equilibrium=False, active_probability=0.1, feasibility_level=0.5, **options)[source]

Create MDO scenario from the scalable disciplines

Parameters
  • formulation (str) – MDO formulation. Default: ‘DisciplinaryOpt’.

  • scenario_type (str) – type of scenario (‘MDO’ or ‘DOE’). Default: ‘MDO’.

  • start_at_equilibrium (bool) – start at equilibrium using a preliminary MDA. Default: True.

  • active_probability (float) – probability to set the inequality constraints as active at initial step of the optimization. Default: 0.1.

  • feasibility_level (float) – offset of satisfaction for inequality constraints. Default: 0.5.

  • options – formulation options.

exec_time(do_sum=True)[source]

Get total execution time per discipline

Parameters

do_sum (bool) – sum over disciplines (default: True)

Returns

execution time

Return type

list(float) or float

property is_feasible

Get the feasibility property of the scenario

property n_calls

Get number of disciplinary calls per discipline

Returns

number of disciplinary calls per discipline

Return type

list(int) or int

property n_calls_linearize

Get number of disciplinary calls per discipline

Returns

number of disciplinary calls per discipline

Return type

list(int) or int

property n_calls_linearize_top_level

Get number of top level disciplinary calls per discipline

Returns

number of top level disciplinary calls per discipline

Return type

list(int) or int

property n_calls_top_level

Get number of top level disciplinary calls per discipline.

Returns

number of top level disciplinary calls per discipline

Return type

list(int) or int

plot_1d_interpolations(save=True, show=False, step=0.01, varnames=None, directory='.', png=False)[source]

Plot 1d interpolations

Parameters
  • save (bool) – save plot. Default: True.

  • show (bool) – show plot. Default: False.

  • step (bool) – Step to evaluate the 1d interpolation function Default: 0.01.

  • varnames (list(str)) – names of the variable to plot; if None, all variables are plotted. Default: None.

  • directory (str) – directory path. Default: ‘.’.

  • png (bool) – if True, the file format is PNG. Otherwise, use PDF. Default: False.

plot_coupling_graph()[source]

Plot a coupling graph

plot_dependencies(save=True, show=False, directory='.')[source]

Plot dependency matrices

Parameters
  • save (bool) – save plot (default: True)

  • show (bool) – show plot (default: False)

  • directory (str) – directory path (default: ‘.’)

plot_n2_chart(save=True, show=False)[source]

Plot a N2 chart

Parameters
  • save (bool) – save plot. Default: True.

  • show (bool) – show plot. Default: False.

property status

Get the status of the scenario