Frequently Asked Questions#

Upgrading GEMSEO#

As GEMSEO code evolves, some calling signatures and behavior may change. These changes may break the codes that use GEMSEO and require modifications of them. See Upgrading GEMSEO for more information.

Create a simple DOE on a single discipline#

Use the DisciplinaryOpt formulation and a DOEScenario scenario. Even for simple DOEs, GEMSEO formulates an optimization problem, so requires a MDO formulation. The DisciplinaryOpt formulation executes the Discipline alone, or the list of Discipline in the order passed by the user. This means that you must specify an objective function. The DOE won't try to minimize it but it will be set as an objective in the visualizations.

See also

For more details, we invite you to read our example MDF-based DOE on the Sobieski SSBJ test case.

Create a simple optimization on a single discipline#

Use the DisciplinaryOpt formulation and an MDOScenario. The DisciplinaryOpt formulation executes the Discipline alone, or the list of Discipline in the order passed by the user.

Available options for algorithms#

See the available DOEs, linear solvers, MDO formulations, MDAs, optimizers, post-processors and machine learners (accessible from the main page of the documentation).

Coupling a simulation software to GEMSEO#

See Interfacing simulation software.

See also

We invite you to discover all the steps in this example A from scratch example on the Sellar problem.

Extend GEMSEO features#

See Extend GEMSEO features.

What are JSON schemas?#

JSON schemas describe the format (i.e. structure) of JSON files, in a similar way as XML schemas define the format of XML files. JSON schemas come along with validators, that check that a JSON data structure is valid against a JSON schema, this is used in GEMSEO' Grammars.

See also

We invite you to read our documentation: Input and output description: grammars.

See also

All details about the JSON schema specification can be found here: Understanding JSON schemas.

Store persistent data produced by disciplines#

Use HDF5 caches to persist the discipline output on the disk.

See also

We invite you to read our documentation: Cache.

Error when using a HDF5 cache#

In GEMSEO 3.2.0, the storage of the data hashes in the HDF5 cache has been fixed and the previous cache files are no longer valid. If you get an error like The file cache.h5 cannot be used because it has no file format version: see HDF5Cache.update_file_format for converting it., please use HDF5Cache.update_file_format() to update the format of the file and fix the data hashes.

GEMSEO fails with openturns#

Openturns implicitly requires the library libnsl that may not be installed by default on recent linux OSes. Under CentOS for instance, install it with:

sudo yum install libnsl

Parallel execution limitations on Windows#

When running parallel execution tasks on Windows, the HDF5Cache does not work properly. This is due to the way subprocesses are forked in this architecture. The method DOEScenario.set_optimization_history_backup() is recommended as an alternative.

The execution of any script using parallel execution on Windows including, but not limited to, DOEScenario with n_processes > 1, HDF5Cache, MemoryFullCache, CallableParallelExecution, DiscParallelExecution, must be protected by an if __name__ == '__main__': statement.

Handling paths for different OSes#

Some disciplines wrap other disciplines in order to execute them remotely. Those disciplines may use paths stored as Path, which are handled differently on Windows and on POSIX platforms (Linux and MacOS). Despite the fact that GEMSEO takes care of converting those types of paths, it cannot convert absolute paths. For instance, in the path C:\\some\path, the C: part has no meaning on POSIX platforms. In that case, to prevent GEMSEO from terminating with an error, these types of paths should be defined as relative paths. For instance, the paths some\path or some/path are relative paths, which are relative to the current working directory.