GEMSEO documentation#

Version: 6.0.0

_images/gemseo_schema.png

GEMSEO is an open-source Python software to automate multidisciplinary processes, starting with multidisciplinary design optimization (MDO) ones.

Standing for Generic Engine for Multidisciplinary Scenarios, Exploration and Optimization, GEMSEO offers a catalog of MDO formulations to make this automation possible. Built on top of essentials such as NumPy, SciPy and Matplotlib, it also includes a wide range of algorithms for various fields, namely coupling, design of experiments, linear problems, optimization, machine learning, ordinary differential equations, surrogate modeling, uncertainty quantification, visualization, etc.

GEMSEO can be both easily embedded in simulation platforms and used as a standalone software. The disciplines can wrap Python code, Matlab or Scilab, scripts, Excel spreadsheets and a whole set of executables that can be called from Python.

Its GNU LGPL v3.0 open-source license makes it commercially usable (see licences).

Main concepts#

Discipline

Define an input-output discipline to interface a model.

Features: analytic expressions, executable, surrogate model and much more.

Design space

Define a set of parameters, typically design parameters.

Features: deterministic parameter space and uncertain (or mixed) parameter space.

Scenario

Define an evaluation process over a design space for a set of disciplines and a given objective.

Features: DOE scenario and MDO scenario.

Data persistence

Store disciplinary evaluations in a cache either in memory or saved in a file. Use a dataset to store many kinds of data and make them easy to handle for visualization, display and query purposes.

Features#

Study analysis

An intuitive tool to discover MDO without writing any code, and define the right MDO problem and process. From an Excel workbook, specify your disciplines, design space, objective and constraints, select an MDO formulation and plot both coupling structure (N2 chart) and MDO process (XDSM), even before wrapping any software.

Optimization

Define, solve and post-process an optimization problem from an optimization algorithm.

Based on GCMMA-MMA, NLopt, PDFO, pSeven, pymoo and SciPy.

DOE & trade-off

Define, solve and post-process a trade-off problem from a DOE (design of experiments) algorithm.

Based on OpenTURNS and pyDOE.

MDO formulations

Define the way as the disciplinary coupling is formulated and managed by the optimization or DOE algorithm.

MDA

Find the coupled state of a multidisciplinary system using a multi-disciplinary analysis.

Linear solvers

Define and solve a linear problem, typically in the context of an MDA.

Based on PETSc and SciPy.

Visualization

Generate graphical representations of optimization histories.

Surrogate models

Replace a discipline by a surrogate one relying on a machine learning regression model.

Based on OpenTURNS and scikit-learn.

Scalable models

Use scalable data-driven models to compare MDO formulations and algorithms for different problem dimensions.

Features: scalability, scalable problem, scalable discipline and diagonal-based.

Machine learning

Apply clustering, classification and regression methods from the machine learning community.

Features: clustering, classification, regression, quality measures and data transformation.

Uncertainty

Define, propagate, analyze and manage uncertainties.

Features: distribution, uncertain space, empirical and parametric statistics, distribution fitting and sensitivity analysis.

Based on OpenTURNS.

Ordinary differential equation

Define and solve an ordinary differential equation.

Based on SciPy.