# Extend GEMSEO features¶

The simplest way is to create a subclass associated to the feature you want to extend, respectively:

• for optimizers, inherit from OptimizationLibrary, and put the Python file in the src/gemseo/algos/opt package,

• for DOEs, inherit from DOELibrary, and put the Python file in the src/gemseo/algos/doe package,

• for surrogate models, inherit from MLRegressionAlgo, and put the Python file in the src/gemseo/mlearning/regression package,

• for MDAs, inherit from MDA, and put the Python file in the src/gemseo/mda package,

• for MDO formulations, inherit from MDOFormulation, and put the Python file in the src/gemseo/formulations package,

• for disciplines, inherit from MDODiscipline, and put the Python file in the src/gemseo/problems/my_problem package, which you created.

GEMSEO features can be extended with external Python modules. All kinds of additional features can be implemented: disciplines, algorithms, formulations, post-processings, surrogate models, … There are 2 ways to extend GEMSEO with Python modules:

• by creating a pip installable package with a setuptools entry point, see Factory for more details,

• by setting the environment variable GEMSEO_PATH with the path to the directory that contains the Python modules, multiple directories can be separated by :.