gemseo / utils / study_analyses

Hide inherited members

mdo_study_analysis module

An MDO study analysis generating N2 and XDSM from an Excel specification.

class gemseo.utils.study_analyses.mdo_study_analysis.MDOStudyAnalysis(xls_study_path)[source]

Bases: CouplingStudyAnalysis

An MDO study analysis from an Excel specification.

Based on an Excel file defining disciplines in terms of input and output names and an MDO problem in terms of names of design variables, objectives, constraints and formulation, this analysis generates an N2 (equivalent to the Design Structure Matrix) diagram, showing the couplings between the disciplines, and an XDSM (Extended Design Structure Matrix), showing the MDO process.

The Excel file shall contain one sheet per discipline:

  • the name of the sheet shall have the discipline name,

  • the sheet shall define the input names of the discipline as a vertical succession of cells starting with "Inputs":

    Inputs

    Inputs

    input_name_1

    input_name_N

  • the sheet shall define the output names of the discipline as a vertical succession of cells starting with "Outputs":

Outputs

Outputs

output_name_1

output_name_N

  • the empty lines of the series Inputs and Outputs are ignored,

  • the sheet may contain other data, but these will not be taken into account.

The scenarios (at least one, or multiple for distributed formulations) must appear in a Excel sheet with a name starting by Scenario.

The sheet shall have the following columns:

Scenario1

Design variables

Objective function

Constraints

Disciplines

Formulation

Options

Options values

in1

out1

out2

Disc1

MDF

tolerance

0.1

Disc2

main_mda_name

MDAJacobi

These columns must satisfy some constraints:

  • all of them are mandatory, even if empty for the constraints,

  • their order does not matter,

  • one and only one formulation must be declared,

  • at least one objective must be provided,

  • at least one design variable must be provided,

  • all the objective functions and constraints must be outputs of a discipline, not necessarily the one of the current sheet,

  • all the design variables must be inputs of a discipline, not necessarily the one of the current sheet.

The columns Options and Options values are used to pass the formulation options. Note that for string type Option values, the value can be written with or without the "" characters.

To use multi-level MDO formulations, create multiple scenarios, and add the name of the sub-scenarios in the list of disciplines of the main (system) scenario.

An arbitrary number of levels can be generated this way (three, four, …, n, level formulations).

Parameters:

xls_study_path (str | Path) – The path to the Excel file describing the study.

generate_coupling_graph(file_path='coupling_graph.pdf', full=True)

Generate the coupling graph based on the disciplines.

Parameters:
  • file_path (str | Path) –

    The file path to save the coupling graph.

    By default it is set to “coupling_graph.pdf”.

  • full (bool) –

    Whether to generate the full coupling graph. Otherwise, generate the condensed one.

    By default it is set to True.

Return type:

None

generate_n2(file_path='n2.pdf', show_data_names=True, save=True, show=False, fig_size=(15, 10), show_html=False)

Generate the N2 based on the disciplines.

Parameters:
  • file_path (str | Path) –

    The file path to save the static N2 chart.

    By default it is set to “n2.pdf”.

  • show_data_names (bool) –

    Whether to show the names of the coupling variables between two disciplines; otherwise, circles are drawn, whose size depends on the number of coupling names.

    By default it is set to True.

  • save (bool) –

    Whether to save the static N2 chart.

    By default it is set to True.

  • show (bool) –

    Whether to show the static N2 chart.

    By default it is set to False.

  • fig_size (FigSizeType) –

    The width and height of the static N2 chart.

    By default it is set to (15, 10).

  • show_html (bool) –

    Whether to display the interactive N2 chart in a web browser.

    By default it is set to False.

Return type:

None

generate_xdsm(directory_path='.', save_pdf=False, show_html=False)[source]

Create an XDSM diagram of the main_scenario.

Parameters:
  • directory_path (str | Path) –

    The path of the directory to save the files.

    By default it is set to “.”.

  • save_pdf (bool) –

    Whether to save the XDSM as a PDF file.

    By default it is set to False.

  • show_html (bool) –

    Whether to open the web browser and display the XDSM.

    By default it is set to False.

Returns:

The XDSM diagram of the main_scenario.

Return type:

XDSM

disciplines: dict[str, MDODiscipline]

The disciplines.

main_scenario: MDOScenario

The main scenario.

scenarios: dict[str, MDOScenario]

The sub-scenarios and the main scenario in the last position.

study: XLSStudyParser

The XLSStudyParser instance built from the Excel file.

Examples using MDOStudyAnalysis

Generate N2 and XDSM diagrams from an Excel description of the MDO problem

Generate N2 and XDSM diagrams from an Excel description of the MDO problem