Stochastic Tools System Requirement Specification
Introduction
The SRS for Stochastic Tools describes the system functional and non-functional requirements that describe the expected interactions that the software shall provide.
Dependencies
The Stochastic Tools application is developed using MOOSE and is based on various modules, as such the SRS for Stochastic Tools is dependent upon the following documents.
Requirements
The following is a complete list for all the functional requirements for Stochastic Tools.
Functional Requirements
- stochastic_tools: Distributions
- 3.1.1The system shall provide distribution function including
- uniform,
- Weibull (3 parameter),
- Kernel Density 1D with a Gaussian kernel and data file as input,
- Kernel Density 1D with a Uniform kernel and data file as input,
- Kernel Density 1D with a Gaussian kernel and data vector as input,
- Kernel Density 1D with a Gaussian kernel and user defined bandwidth,
- Kernel Density 1D with a Gaussian kernel and standard deviation as bandwidth,
- normal,
- truncated normal,
- lognormal,
- Johnson Special Bounded (SB), and
- logistic distributions.
- 3.1.2The system shall provide a normal distribution with the ability to directly call methods with distribution inputs.
- 3.1.3The system shall produce an error if a distribution is retrieved with the differing type than supplied.
- stochastic_tools: Ics
- 3.2.1The system shall generate parallel agnostic random initial conditions using a distribution function.
- 3.2.2The system shall generate an error the random initial condition is used with both a distribution and min or max value defined.
- stochastic_tools: Multiapps
- 3.3.1The system shall be able to set command line parameter(s) for sub-application that executes completely from a sample distribution for
- for a single parameter,
- for a single parameter for a batch of sub-applications,
- for multiple parameters, and
- for vector parameters for a batch of sub-applications,
- for multiple parameters for a batch of sub-applications.
- for multiple parameters using their global column indexes for a batch of sub-applications.
- 3.3.2The system shall error when the supplied sampler object operates in a mode that does not allow for command line arguments to be modified.
- 3.3.3The system shall error when the supplied sampler does not use the correct execution flags.
- 3.3.4The system shall error when '[]' syntax is not used for all parameters.
- 3.3.5The system shall error when provided global column index is out of bound.
- 3.3.6The system shall support pulling postprocessor data from a sub-application for each row of sampled data.
- 3.3.7The system shall support running sub-applications in a batches on a
- on a single processor and
- on a multiple processors.
- 3.3.8The stochastic tools module shall support pulling postprocessor data from a single sub-application running a batch of sampled data
- on a single processor,
- on multiple processors, and
- on multiple processors using in-memory backup.
- 3.3.9The system shall support running sub-applications with input parameters varying at each time step
- with individual sub-applications,
- with sub-applications batches using in-memory restore functionality.
- 3.3.10The SamplerTransientMultiApp object shall error if the 'batch-reset' mode is supplied.
- 3.3.11The system shall be able to set a sub-application command line parameters from a sample distribution
- for a single parameter and
- for a multiple parameters.
- 3.3.12The system shall error when sub-apps are constructed too early thus unable to be changed by samplers.
- 3.3.13The system shall error when the number of samples differs from the number of command line parameters.
- 3.3.14The system shall support the modification of the number of complete sub-application simulations performed with
- normal execution,
- batch execution with memory-based restoring, and
- batch execution with reset-based restoring.
- 3.3.15The system shall error when the size of a sampler is altered an sub-applications are progressing with time with the main application.
- 3.3.16The system shall have consistent partitioning between multiapps and sampler for full solves
- with less processors than rows in normal mode;
- with more processors than rows in normal mode;
- with specified minimum processors per app in normal mode;
- with less processors than rows in batch-reset mode;
- with more processors than rows in batch-reset mode;
- with specified minimum processors per app in batch-reset mode;
- with less processors than rows in batch-restore mode;
- with more processors than rows in batch-restore mode;
- with specified minimum processors per app in batch-restore mode;
- error when partitionings do not match;
- 3.3.17The system shall have consistent partitioning between multiapps and sampler for transient solves
- with less processors than rows in normal mode;
- with more processors than rows in normal mode;
- with specified minimum processors per app in normal mode;
- with less processors than rows in batch-restore mode;
- with more processors than rows in batch-restore mode;
- with specified minimum processors per app in batch-restore mode;
- error when partitionings do not match;
- 3.3.18The system shall provide the ability to create a full-solve type sub-application from sampled data from distributions.
- 3.3.19The system shall provide the ability to create a transient sub-application from the sample data generated from distributions.
- 3.3.20The system shall provide the ability to set a transient sub-application command line parameters from a sample distribution.
- 3.3.21The system shall support performing complete solves within a sub-application that include perturbed inputs that yield repeatable results
- using normal operation;
- using in memory backup operation;
- using reset operation.
- 3.3.22The system shall support performing complete solves within a sub-application that include perturbed inputs that yield changing results
- using normal operation;
- using in memory backup operation;
- using reset operation.
- stochastic_tools: Reporters
- 3.4.1The system shall support the calculation of statistics using
- vectors of data from the postprocessing system and include
- confidence level intervals for statistics calculations.
- 3.4.2The system shall support the calculation of statistics using
- vector of data from the reporting system; including
- confidence level intervals for statistics calculations
- and error if the supplied type is not supported.
- 3.4.3The system shall support computing bias corrected and accelerated confidence level intervals of statistics
- of a vector of data
- using data that is replicated and
- errors when data distributed across processors.
- 3.4.4The system shall error when computing confidence level intervals when
- the confidence level intervals are omitted;
- the confidence level intervals are less than or equal to zero;
- the confidence level intervals are greater than or equal to one;
- input is not provided.
- 3.4.5The system shall support computing percentile confidence level intervals of statistics
- of a vector of data
- using data that is replicated or
- distributed across processors.
- 3.4.6The system shall be capable of computing the statistics of a data vector that
- is replicated and
- distributed.
- 3.4.7The system shall be capable of computing the statistics from vector reporter values.
- 3.4.8The system shall support the ability to use transferred reporter data to
- compute statistics.
- stochastic_tools: Samplers
- 3.5.1The system shall include the ability to create a Cartesian product sampling scheme.
- 3.5.2The CSV Sampler shall read samples from a CSV file while the sample data is
- distributed across processors,
- replicated across processors, and
- distributed across processors with the output also distributed.
- 3.5.3The CSV Sampler shall sample from a CSV file when column indices are provided.
- 3.5.4The CSV Sampler shall sample from a CSV file when column names are provided.
- 3.5.5The system shall support generating random samples of data
- that remain constant in size and
- that are dynamic in size.
- 3.5.6The system shall support the creation of data sampled from distribution during the initial setup of a simulation.
- 3.5.7The system shall support the ability to sample data using the Latin Hypercube method that can operate
- using global matrix,
- a local matrix,
- or row-by-row.
- 3.5.8The system shall include a utility that visually displays results of plotting Latin Hypercube test.
- 3.5.9The system shall include a Monte Carlo method for sampling distribution data including
- a uniform distribution distributed across processors,
- a uniform distribution replicated across processors,
- a uniform distribution distributed across processors (output is also distributed),
- a Wiebull distribution distributed across processors, and
- a Weibull distribution replicated across processors.
- 3.5.10The system shall include a SOBOL method for sampling distribution data:
- with the re-sampling matrix and
- without the re-sampling matrix.
- 3.5.11The system shall error if the SOBOL sampling method is setup with input sampling matrices
- with differing number of rows;
- with differing number of columns; and
- if the matrices are the same.
- stochastic_tools: Surrogates
- 3.6.1
- 3.6.2
- 3.6.3
- 3.6.4
- 3.6.5
- 3.6.6
- 3.6.7
- 3.6.8
- 3.6.9The system shall support the creation of surrogate models that can be
- trained with replicated stochastic data and
- evaluated separately (with replicated data);
- trained with distributed stochastic data and
- evaluated separately (with distributed data);
- trained with distributed stochastic data;
- evaluated separately with a different number of processors;
- and be trained and evaluated in memory with a single input file.
- 3.6.10
- 3.6.11
- 3.6.12
- 3.6.13
- 3.6.14
- 3.6.15
- 3.6.16PODFullSolveMultiapp shall throw an error when
- the trainer object cannot be found.
- 3.6.17PODSamplerSolutionTransfer shall throw an error when
- the trainer object cannot be found.
- 3.6.18PODReducedBasisTrainer shall throw an error when
- the variable names cannot be found on sub-applications,
- the number of energy limits and variable names do not match,
- the number of tag names and tag types do not match,
- the Dirichlet tag types do not exist,
- and the residual generation is called before having the basis vectors.
- 3.6.19PODReducedBasisSurrogate shall throw an error when
- the number of inputs in 'change_rank' and 'new_ranks' is not the same.
- 3.6.20
- 3.6.21
- 3.6.22
- 3.6.23
- 3.6.24The system shall compute polynomial chaos coefficents using
- MonteCarlo sampler with Uniform distribution,
- Quadrature sampler with Uniform distribution, and
- Quadrature sampler with Normal distribution.
- 3.6.25The system shall compute relevant statistics with polynomial chaos expansion including
- statistical moments with Legendre polynomials,
- statistical moments with Hermite polynomials,
- sampler and user defined local sensitivities with Legendre polynomials,
- sampler and user defined local sensitivities with Hermite polynomials, and
- Sobol sensitivity indices.
- 3.6.26The system shall include the ability to use sparse grid methods to evaluate polynomial chaos expansion coefficients including
- Smolyak and
- Clenshaw-Curtis methods.
- 3.6.27The system shall throw an error when
- the number of samples does not match the number of results.
- 3.6.28The system shall demonstrate a polnomial regression surrogate by
- training using known 3D data
- and then evaluating new samples separately for the same data
- and then doing both on another 1D case.
- 3.6.29The sytem shall be able to create polynomial regression surrogate with vector-type response.
- stochastic_tools: Transfers
- 3.7.1The system shall include the ability to modify parameters for sub-applications using values from a distribution
- on a single processor,
- on multiple processors,
- and on more processors than samples.
- 3.7.2The system shall include the ability to modify parameters for sub-applications executed in batches using values from a distribution
- on a single processor,
- on multiple processors, and
- on multiple processors using in-memory sub-application restore.
- 3.7.3The system shall include the ability to transfer stochastic results for two sub apps.
- 3.7.4The 'StochasticToolsTransfer object shall error if the 'execute_on' parameter is defined when the corresponding MultiApp object is running in batch mode.
- 3.7.5The 'StochasticToolsTransfer' object shall error if the 'execute_on' parameter does not match the corresponding MultiApp object is running in normal mode.
- 3.7.6The system shall produce an error if sub-application type is not correct for performing a transfer of stochastic data.
- 3.7.7The system shall produce an error if the sampler sub-application does not contain control object with the correct name.
- 3.7.8The system produce an error if the sampler sub-application does not have a correct object for receiving stochastic data.
- 3.7.9The system shall produce an error if supplied vector of real values is not sized correctly.
- 3.7.10The system shall support the creation of a sub-application for each row of the stochastic data.
- 3.7.11The system shall produce an error if neither a 'SamplerTransientMultiApp' nor
SamplerFullSolveMultiApp
is provided in SamplerPostprocessorTransfer. - 3.7.12The system shall produce an error if the 'result' object in 'SamplerPostprocessorTransfer' is not a 'StochasticResults object'.
- 3.7.13The system shall support the ability to transfer a single value from each sub-application for a set of stochastic data.
- 3.7.14The system shall error if the supplied name is invalid when attempting to transfer a single value from a sub-application.
- 3.7.15When sub-application solve does not converge, the system shall either
- abort run,
- transfer last computed postprocessor value,
- or transfer NaN.
- 3.7.16The system shall support the ability to transfer reporter data from each sub-application for a set of stochastic data
- in normal mode,
- in batch mode,
- with distributed output,
- with more processors than samples,
- and error if transferring unsupported type.
- 3.7.17MOOSE shall produce an error if neither a 'SamplerTransientMultiApp' nor
SamplerFullSolveMultiApp
is provided in SamplerParameterTransfer. - 3.7.18MOOSE shall produce an error if the sampler sub-application does not contain a Control object with the name 'stochastic'.
- 3.7.19MOOSE shall produce an error if the sampler sub-application does not have a correct Control object with 'to_control' parameter being 'SamplerReceiver' type.
- 3.7.20MOOSE shall produce an error if supplied vector of real values is not sized correctly.
- 3.7.21MOOSE shall produce an error if sampling method differs between the sub-application and the associated sub-application data transfer.
- 3.7.22The system shall be capable of transferring scalar data to sub-applications for each row of the stochastic data
- using a Monte Carlo and
- Sobol sampling scheme.
- 3.7.23The system shall be capable of transferring vector data to sub-applications for each row of the stochastic data.
- 3.7.24The system shall error if the transferred vector to a sub-application
- is not sized correctly for stochastic data,
- is not sized uniformily across sub-applications,
- if the vector parameter does not exist, and
- if the sub-application does not consume all of the supplied data.
- 3.7.25The system shall support the creation of a sub-application for each row sampled data generated from a Sobol scheme.
- stochastic_tools: Vectorpostprocessors
- 3.8.9The system shall support the collection of stochastic data from multiple sub-applications.
- 3.8.10The system shall support the ability to compute first, second, and total-effect Sobol sensitivity indices.
- 3.8.13The system shall support the collection of stochastic data that is
- replicated on all processors and
- distributed across many.
- 3.8.14The system shall support the labeling of collection of stochastic data
- with custom prefix and
- without a prefix.
- 3.8.15The system shall support the collection of stochastic data that
- can be appended into a single data set or
- or contain a single file per timestep.