MDO formulations

Warning

Some capabilities may require the installation of GEMSEO with all its features and some others may depend on plugins.

Note

All the features of the wrapped libraries may not be exposed through GEMSEO.

BiLevel

Module: gemseo.formulations.bilevel

Required parameters
  • design_space : DesignSpace

    The design space.

  • disciplines : list[MDODiscipline]

    The disciplines.

  • objective_name : str

    The name(s) of the discipline output(s) used as objective. If multiple names are passed, the objective will be a vector.

Optional parameters
  • apply_cstr_to_system : bool, optional

    Whether the add_constraint() method adds the constraint to the optimization problem of the system scenario.

    By default it is set to True.

  • apply_cstr_tosub_scenarios : bool, optional

    Whether the add_constraint() method adds the constraint to the optimization problem of the sub-scenario capable of computing the constraint.

    By default it is set to True.

  • differentiated_input_names_substitute : Iterable[str], optional

    The names of the discipline inputs against which to differentiate the discipline outputs used as objective, constraints and observables. If empty, consider the inputs of these functions. More precisely, for each function, an MDOFunction is built from the disciplines, which depend on input variables \(x_1,\ldots,x_d,x_{d+1}\), and over an input space spanned by the input variables \(x_1,\ldots,x_d\) and depending on both the MDO formulation and the design_space. Then, the methods MDOFunction.evaluate() and MDOFunction.jac() are called at a given point of the input space and return the output value and the Jacobian matrix, i.e. the matrix concatenating the partial derivatives with respect to the inputs \(x_1,\ldots,x_d\) at this point of the input space. This argument can be used to compute the matrix concatenating the partial derivatives at the same point of the input space but with respect to custom inputs, e.g. \(x_{d-1}\) and \(x_{d+1}\). Mathematically speaking, this matrix returned by MDOFunction.jac() is no longer a Jacobian.

    By default it is set to ().

  • grammar_type : MDODiscipline.GrammarType, optional

    The type of the input and output grammars.

    By default it is set to JSONGrammar.

  • inner_mda_name : str, optional

    The name of the class used for the inner-MDA of the main MDA, if any; typically when the main MDA is an MDAChain.

    By default it is set to MDAJacobi.

  • main_mda_name : str, optional

    The name of the class used for the main MDA, typically the MDAChain, but one can force to use MDAGaussSeidel for instance.

    By default it is set to MDAChain.

  • maximize_objective : bool, optional

    Whether to maximize the objective.

    By default it is set to False.

  • multithread_scenarios : bool, optional

    If True and parallel_scenarios=True, the sub-scenarios are run in parallel using multi-threading; if False and parallel_scenarios=True, multiprocessing is used.

    By default it is set to True.

  • parallel_scenarios : bool, optional

    Whether to run the sub-scenarios in parallel.

    By default it is set to False.

  • reset_x0_before_opt : bool, optional

    Whether to restart the sub optimizations from the initial guesses, otherwise warm start them.

    By default it is set to False.

  • sub_scenarios_log_level : int | None, optional

    The level of the root logger during the sub-scenarios executions. If None, do not change the level of the root logger.

    By default it is set to None.

  • **main_mda_options : Any

    The options of the main MDA, which may include those of the inner-MDA.

DisciplinaryOpt

Module: gemseo.formulations.disciplinary_opt

Required parameters
  • design_space : DesignSpace

    The design space.

  • disciplines : list[MDODiscipline]

    The disciplines.

  • objective_name : str

    The name(s) of the discipline output(s) used as objective. If multiple names are passed, the objective will be a vector.

Optional parameters
  • differentiated_input_names_substitute : Iterable[str], optional

    The names of the discipline inputs against which to differentiate the discipline outputs used as objective, constraints and observables. If empty, consider the inputs of these functions. More precisely, for each function, an MDOFunction is built from the disciplines, which depend on input variables \(x_1,\ldots,x_d,x_{d+1}\), and over an input space spanned by the input variables \(x_1,\ldots,x_d\) and depending on both the MDO formulation and the design_space. Then, the methods MDOFunction.evaluate() and MDOFunction.jac() are called at a given point of the input space and return the output value and the Jacobian matrix, i.e. the matrix concatenating the partial derivatives with respect to the inputs \(x_1,\ldots,x_d\) at this point of the input space. This argument can be used to compute the matrix concatenating the partial derivatives at the same point of the input space but with respect to custom inputs, e.g. \(x_{d-1}\) and \(x_{d+1}\). Mathematically speaking, this matrix returned by MDOFunction.jac() is no longer a Jacobian.

    By default it is set to ().

  • grammar_type : MDODiscipline.GrammarType, optional

    The type of the input and output grammars.

    By default it is set to JSONGrammar.

  • maximize_objective : bool, optional

    Whether to maximize the objective.

    By default it is set to False.

IDF

Module: gemseo.formulations.idf

Required parameters
  • design_space : DesignSpace

    The design space.

  • disciplines : list[MDODiscipline]

    The disciplines.

  • objective_name : str

    The name(s) of the discipline output(s) used as objective. If multiple names are passed, the objective will be a vector.

Optional parameters
  • differentiated_input_names_substitute : Iterable[str], optional

    The names of the discipline inputs against which to differentiate the discipline outputs used as objective, constraints and observables. If empty, consider the inputs of these functions. More precisely, for each function, an MDOFunction is built from the disciplines, which depend on input variables \(x_1,\ldots,x_d,x_{d+1}\), and over an input space spanned by the input variables \(x_1,\ldots,x_d\) and depending on both the MDO formulation and the design_space. Then, the methods MDOFunction.evaluate() and MDOFunction.jac() are called at a given point of the input space and return the output value and the Jacobian matrix, i.e. the matrix concatenating the partial derivatives with respect to the inputs \(x_1,\ldots,x_d\) at this point of the input space. This argument can be used to compute the matrix concatenating the partial derivatives at the same point of the input space but with respect to custom inputs, e.g. \(x_{d-1}\) and \(x_{d+1}\). Mathematically speaking, this matrix returned by MDOFunction.jac() is no longer a Jacobian.

    By default it is set to ().

  • grammar_type : MDODiscipline.GrammarType, optional

    The type of the input and output grammars.

    By default it is set to JSONGrammar.

  • maximize_objective : bool, optional

    Whether to maximize the objective.

    By default it is set to False.

  • n_processes : int, optional

    The maximum simultaneous number of threads, if use_threading is True, or processes otherwise, used to parallelize the execution.

    By default it is set to 1.

  • normalize_constraints : bool, optional

    If True, the outputs of the coupling consistency constraints are scaled.

    By default it is set to True.

  • start_at_equilibrium : bool, optional

    If True, an MDA is used to initialize the coupling variables.

    By default it is set to False.

  • use_threading : bool, optional

    Whether to use threads instead of processes to parallelize the execution; multiprocessing will copy (serialize) all the disciplines, while threading will share all the memory. This is important to note if you want to execute the same discipline multiple times, you shall use multiprocessing.

    By default it is set to True.

  • **mda_options_for_start_at_equilibrium : Any

    The options for the MDA when start_at_equilibrium=True. See detailed options in MDAChain.

MDF

Module: gemseo.formulations.mdf

Required parameters
  • design_space : DesignSpace

    The design space.

  • disciplines : list[MDODiscipline]

    The disciplines.

  • objective_name : str

    The name(s) of the discipline output(s) used as objective. If multiple names are passed, the objective will be a vector.

Optional parameters
  • differentiated_input_names_substitute : Iterable[str], optional

    The names of the discipline inputs against which to differentiate the discipline outputs used as objective, constraints and observables. If empty, consider the inputs of these functions. More precisely, for each function, an MDOFunction is built from the disciplines, which depend on input variables \(x_1,\ldots,x_d,x_{d+1}\), and over an input space spanned by the input variables \(x_1,\ldots,x_d\) and depending on both the MDO formulation and the design_space. Then, the methods MDOFunction.evaluate() and MDOFunction.jac() are called at a given point of the input space and return the output value and the Jacobian matrix, i.e. the matrix concatenating the partial derivatives with respect to the inputs \(x_1,\ldots,x_d\) at this point of the input space. This argument can be used to compute the matrix concatenating the partial derivatives at the same point of the input space but with respect to custom inputs, e.g. \(x_{d-1}\) and \(x_{d+1}\). Mathematically speaking, this matrix returned by MDOFunction.jac() is no longer a Jacobian.

    By default it is set to ().

  • grammar_type : MDODiscipline.GrammarType, optional

    The type of the input and output grammars.

    By default it is set to JSONGrammar.

  • inner_mda_name : str, optional

    The name of the class used for the inner-MDA of the main MDA, if any; typically when the main MDA is an MDAChain.

    By default it is set to MDAJacobi.

  • main_mda_name : str, optional

    The name of the class used for the main MDA, typically the MDAChain, but one can force to use MDAGaussSeidel for instance.

    By default it is set to MDAChain.

  • maximize_objective : bool, optional

    Whether to maximize the objective.

    By default it is set to False.

  • **main_mda_options : Any

    The options of the main MDA, which may include those of the inner-MDA.