gemseo / uncertainty / sensitivity

Hide inherited members

factory module

Module with a factory to create an instance of SensitivityAnalysis.

class gemseo.uncertainty.sensitivity.factory.SensitivityAnalysisFactory[source]

Bases: BaseFactory

Factory to build instances of SensitivityAnalysis.

At initialization, this factory scans the following modules to search for subclasses of this class:

  • the modules located in gemseo.uncertainty.sensitivity and its sub-packages,

  • the modules referenced in the GEMSEO_PATH,

  • the modules referenced in the PYTHONPATH and starting with gemseo_.

Then, it can check if a class is present or return the list of available classes.

Lastly, it can create an instance of a class.

Examples

>>> from numpy import pi
>>> from gemseo import create_discipline, create_parameter_space
>>> from gemseo.uncertainty.sensitivity.factory import (
...     SensitivityAnalysisFactory
... )
>>>
>>> expressions = {"y": "sin(x1)+7*sin(x2)**2+0.1*x3**4*sin(x1)"}
>>> discipline = create_discipline(
...     "AnalyticDiscipline", expressions=expressions
... )
>>>
>>> parameter_space = create_parameter_space()
>>> parameter_space.add_random_variable(
...     "x1", "OTUniformDistribution", minimum=-pi, maximum=pi
... )
>>> parameter_space.add_random_variable(
...     "x2", "OTUniformDistribution", minimum=-pi, maximum=pi
... )
>>> parameter_space.add_random_variable(
...     "x3", "OTUniformDistribution", minimum=-pi, maximum=pi
... )
>>>
>>> factory = SensitivityAnalysisFactory()
>>> analysis = factory.create(
...     "MorrisIndices", discipline, parameter_space, n_replicates=5
... )
>>> indices = analysis.compute_indices()
Return type:

BaseFactory

create(sensitivity_analysis, disciplines, parameter_space, n_samples=None, output_names=None, algo=None, algo_options=None, formulation='MDF', **formulation_options)[source]

Create the sensitivity analysis.

Parameters:
  • sensitivity_analysis (str) – The name of a class defining a sensitivity analysis.

  • disciplines (Collection[MDODiscipline]) – The discipline or disciplines to use for the analysis.

  • parameter_space (ParameterSpace) – A parameter space.

  • n_samples (int | None) – A number of samples. If None, the number of samples is computed by the algorithm.

  • output_names (Iterable[str]) – The disciplines’ outputs to be considered for the analysis. If None, use all the outputs.

  • algo (str | None) – The name of the DOE algorithm. If None, use the SensitivityAnalysis.DEFAULT_DRIVER.

  • algo_options (Mapping[str, DOELibraryOptionType] | None) – The options of the DOE algorithm.

  • formulation (str) –

    The name of the MDOFormulation to sample the disciplines.

    By default it is set to “MDF”.

  • **formulation_options (Any) – The options of the MDOFormulation.

Returns:

A sensitivity analysis.

Raises:

TypeError – If the class cannot be instantiated.

Return type:

SensitivityAnalysis

get_class(name)

Return a class from its name.

Parameters:

name (str) – The name of the class.

Returns:

The class.

Raises:

ImportError – If the class is not available.

Return type:

type

get_default_option_values(name)

Return the constructor kwargs default values of a class.

Parameters:

name (str) – The name of the class.

Returns:

The mapping from the argument names to their default values.

Return type:

dict[str, str | int | float | bool]

get_default_sub_option_values(name, **options)

Return the default values of the sub options of a class.

Parameters:
  • name (str) – The name of the class.

  • **options (str) – The options to be passed to the class required to deduce the sub options.

Returns:

The JSON grammar.

Return type:

JSONGrammar

get_library_name(name)

Return the name of the library related to the name of a class.

Parameters:

name (str) – The name of the class.

Returns:

The name of the library.

Return type:

str

get_options_doc(name)

Return the constructor documentation of a class.

Parameters:

name (str) – The name of the class.

Returns:

The mapping from the argument names to their documentation.

Return type:

dict[str, str]

get_options_grammar(name, write_schema=False, schema_path=None)

Return the options JSON grammar for a class.

Attempt to generate a JSONGrammar from the arguments of the __init__ method of the class.

Parameters:
  • name (str) – The name of the class.

  • write_schema (bool) –

    If True, write the JSON schema to a file.

    By default it is set to False.

  • schema_path (str | None) – The path to the JSON schema file. If None, the file is saved in the current directory in a file named after the name of the class.

Returns:

The JSON grammar.

Return type:

JSONGrammar

get_sub_options_grammar(name, **options)

Return the JSONGrammar of the sub options of a class.

Parameters:
  • name (str) – The name of the class.

  • **options (str) – The options to be passed to the class required to deduce the sub options.

Returns:

The JSON grammar.

Return type:

JSONGrammar

is_available(name)

Return whether a class can be instantiated.

Parameters:

name (str) – The name of the class.

Returns:

Whether the class can be instantiated.

Return type:

bool

update()

Search for the classes that can be instantiated.

The search is done in the following order:
  1. The fully qualified module names

  2. The plugin packages

  3. The packages from the environment variables

Return type:

None

PLUGIN_ENTRY_POINT: ClassVar[str] = 'gemseo_plugins'

The name of the setuptools entry point for declaring plugins.

property available_sensitivity_analyses: list[str]

The available classes for sensitivity analysis.

property class_names: list[str]

The sorted names of the available classes.

failed_imports: dict[str, str]

The class names bound to the import errors.