- distributionsThe distribution names to be sampled, the number of distributions provided defines the number of columns per matrix.
C++ Type:std::vector<DistributionName>
Unit:(no unit assumed)
Controllable:No
Description:The distribution names to be sampled, the number of distributions provided defines the number of columns per matrix.
- trajectoriesNumber of unique trajectories to perform. The higher number of these usually means a more accurate sensitivity evaluation, but it is proportional to the number of required model evaluations: 'trajectoris' x (number of 'distributions' + 1).
C++ Type:unsigned long
Unit:(no unit assumed)
Controllable:No
Description:Number of unique trajectories to perform. The higher number of these usually means a more accurate sensitivity evaluation, but it is proportional to the number of required model evaluations: 'trajectoris' x (number of 'distributions' + 1).
Morris
Morris variance-based sensitivity analysis Sampler.
Overview
The Morris screening method is a one-at-a-time (OAT) perturbative sampling method for performing global sensitivity analysis (Morris, 1991; Saltelli et al., 2008). The implementation is equivalent to the trajectory design described in the GSA Module and implemented in SALib. The stochastic tools module implementation is fully parallelized and is meant to be used with the MorrisReporter to calculate the sensitivity quantities.
Trajectory Design
Although multiple sampling strategies exist for Morris screening, this object utilizes the trajectory design. This strategy performs set perturbations in random directions for individual parameters one-at-a-time. A trajectory performs the perturbation for each parameter randomly starting from a random starting point. The number of parameters () is determined by the number of entries in "distributions". The number of trajectories is specified by "trajectories". The discretization of the starting point and the perturbation is determined by "levels":
The sampling matrix for a single trajectory () is given by the following expression:
where,
()-by- strictly lower triangular matrix of 1s,
()-by- matrix where each row is the same random starting point ,
-by- diagonal matrix with either a or for each row, this determines the direction of the perturbations,
-by- matrix where each row has a different column equal to 1 with no repeated columns, this determines which parameter is perturbed, and
()-by- dense matrix of 1s.
Each row of the resulting represents OAT perturbed sample between 0 and 1; each entry of the rows is put through the corresponding "distributions"'s quantile to produce a samples. A separate is produced for the number specified by "trajectories".
Example Input Syntax
The following input generates a 3-dimensional sampling matrix with 4 trajectories, which creates samples.
(contrib/moose/modules/stochastic_tools/test/tests/samplers/morris/morris.i)(contrib/moose/modules/stochastic_tools/test/tests/samplers/morris/gold/morris_out_data_0000.csv)Visualization of trajectory design Morris sampling (2D projection)
Input Parameters
- execute_onLINEARThe list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
Default:LINEAR
C++ Type:ExecFlagEnum
Unit:(no unit assumed)
Controllable:No
Description:The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
- levels4The number of levels in the sampling. This determines the discretization of the input space, more levels means finer discretization and more possible model perturbations.
Default:4
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:The number of levels in the sampling. This determines the discretization of the input space, more levels means finer discretization and more possible model perturbations.
- limit_get_global_samples429496729The maximum allowed number of items in the DenseMatrix returned by getGlobalSamples method.
Default:429496729
C++ Type:unsigned long
Unit:(no unit assumed)
Controllable:No
Description:The maximum allowed number of items in the DenseMatrix returned by getGlobalSamples method.
- limit_get_local_samples429496729The maximum allowed number of items in the DenseMatrix returned by getLocalSamples method.
Default:429496729
C++ Type:unsigned long
Unit:(no unit assumed)
Controllable:No
Description:The maximum allowed number of items in the DenseMatrix returned by getLocalSamples method.
- limit_get_next_local_row429496729The maximum allowed number of items in the std::vector returned by getNextLocalRow method.
Default:429496729
C++ Type:unsigned long
Unit:(no unit assumed)
Controllable:No
Description:The maximum allowed number of items in the std::vector returned by getNextLocalRow method.
- max_procs_per_row4294967295This will ensure that the sampler is partitioned properly when 'MultiApp/*/max_procs_per_app' is specified. It is not recommended to use otherwise.
Default:4294967295
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:This will ensure that the sampler is partitioned properly when 'MultiApp/*/max_procs_per_app' is specified. It is not recommended to use otherwise.
- min_procs_per_row1This will ensure that the sampler is partitioned properly when 'MultiApp/*/min_procs_per_app' is specified. It is not recommended to use otherwise.
Default:1
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:This will ensure that the sampler is partitioned properly when 'MultiApp/*/min_procs_per_app' is specified. It is not recommended to use otherwise.
- seed0Random number generator initial seed
Default:0
C++ Type:unsigned int
Unit:(no unit assumed)
Controllable:No
Description:Random number generator initial seed
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Set the enabled status of the MooseObject.
Advanced Parameters
References
- Max D. Morris.
Factorial sampling plans for preliminary computational experiments.
Technometrics, 33(2):161–174, 1991.
doi:10.1080/00401706.1991.10484804.[BibTeX]
- Andrea Saltelli, Marco Ratto, Terry Andres, Francesca Campolongo, Jessica Cariboni, Debora Gatelli, Michaela Saisana, and Stefano Tarantola.
Global Sensitivity Analysis. The Primer.
John Wiley & Sons, Ltd, 2008.
ISBN 9780470059975.[BibTeX]