Extend GEMSEO features#

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

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

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

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

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

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

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

  • for job schedulers and HPC submission, inherit from JobSchedulerDisciplineWrapper, and put the Python file in the src/gemseo/disciplines/wrappers/job_schedulers 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-processors, 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 :.