Stochastic Tools System Requirement Specification

Introduction

The Software Requirement Specification (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.

  • stochastic_tools: Distributions
  • F3.1.1The system shall provide distribution function including
    1. uniform,
    2. Weibull (3 parameter),
    3. normal,
    4. truncated normal,
    5. Johnson Special Bounded (SB), and
    6. logistic distributions.
  • F3.1.2The system shall provide distribution functions based on Boost library including
    1. Weibull (2 parameter),
    2. normal, and
    3. lognormal distributions.
  • F3.1.3The system shall error if a distribution defined using Boost is used but the system has not been configured to utilize the Boost library:
    1. for a Weibull distribion,
    2. a normal distribution, and
    3. a lognormal distribution.
  • F3.1.4The system shall provide a normal distribution with the ability to directly call methods with distribution inputs.
  • F3.1.5The system shall produce an error if a distribution is retrieved with the differing type than supplied.
  • stochastic_tools: Ics
  • F3.2.1The system shall generate parallel agnostic random initial conditions using a distribution function.
  • F3.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
  • F3.3.1The system shall be able to set command line parameter(s) for sub-application that executes completely from a sample distribution for
    1. for a single parameter,
    2. for a single parameter for a batch of sub-applications,
    3. for multiple parameters, and
    4. for multiple parameters for a batch of sub-applications.
  • F3.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.
  • F3.3.3The system shall error when the supplied sampler does not use the correct execution flags.
  • F3.3.4The system shall support pulling postprocessor data from a sub-application for each row of sampled data.
  • F3.3.5The system shall support running sub-applications in a batches on a
    1. on a single processor and
    2. on a multiple processors.
  • F3.3.6The stochastic tools module shall support pulling postprocessor data from a single sub-application running a batch of sampled data
    1. on a single processor,
    2. on multiple processors, and
    3. on multiple processors using in-memory backup.
  • F3.3.7The system shall support running sub-applications with input parameters varying at each time step
    1. with individual sub-applications,
    2. with sub-applications batches using in-memory restore functionality.
  • F3.3.8The SamplerTransientMultiApp object shall error if the 'batch-reset' mode is supplied.
  • F3.3.9The system shall be able to set a sub-application command line parameters from a sample distribution
    1. for a single parameter and
    2. for a multiple parameters.
  • F3.3.10The system shall error when the number of samplers differs from the number of sub applications.
  • F3.3.11The system shall error when the number of samples differs from the number of command line parameters.
  • F3.3.12The system shall provide the ability to create a full-solve type sub-application from sampled data from distributions.
  • F3.3.13The system shall provide the ability to create a transient sub-application from the sample data generated from distributions.
  • stochastic_tools: Samplers
  • F3.4.1The system shall support the creation of data sampled from distribution during the initial setup of a simulation.
  • F3.4.2The system shall include a Monte Carlo method for sampling distribution data including
    1. a uniform distribution distributed across processors,
    2. a uniform distribution replicated across processors,
    3. a Wiebull distribution distributed across processors, and
    4. a Weibull distribution replicated across processors.
  • F3.4.3The system shall include a SOBOL method for sampling distribution data.
  • stochastic_tools: Transfers
  • F3.5.1The system shall include the ability to modify parameters for sub-applications using values from a distribution
    1. on a single processor and
    2. on multiple processors.
  • F3.5.2The system shall include the ability to modify parameters for sub-applications executed in batches using values from a distribution
    1. on a single processor,
    2. on multiple processors, and
    3. on multiple processors using in-memory sub-application restore.
  • F3.5.3The 'StochasticToolsTransfer object shall error if the 'execute_on' parameter is defined when the corresponding MultiApp object is running in batch mode.
  • F3.5.4The 'StochasticToolsTransfer' object shall error if the 'execute_on' parameter does not match the corresponding MultiApp object is running in normal mode.
  • F3.5.5The system shall produce an error if sub-application type is not correct for performing a transfer of stochastic data.
  • F3.5.6The system shall produce an error if the sampler sub-application does not contain control object with the correct name.
  • F3.5.7The system produce an error if the sampler sub-application does not have a correct object for receiving stochastic data.
  • F3.5.8The system shall produce an error if supplied vector of real values is not sized correctly.
  • F3.5.9The system shall support the creation of a sub-application for each row of the stochastic data.
  • F3.5.10MOOSE shall produce an error if neither a 'SamplerTransientMultiApp' nor SamplerFullSolveMultiApp is provided in SamplerPostprocessorTransfer.
  • F3.5.11MOOSE shall produce an error if the 'result' object in 'SamplerPostprocessorTransfer' is not a 'StochasticResults object'.
  • F3.5.12The system shall support the ability to transfer a single value from each sub-application for a set of stochastic data.
  • F3.5.13MOOSE shall produce an error if neither a 'SamplerTransientMultiApp' nor SamplerFullSolveMultiApp is provided in SamplerParameterTransfer.
  • F3.5.14MOOSE shall produce an error if the sampler sub-application does not contain a Control object with the name 'stochastic'.
  • F3.5.15MOOSE shall produce an error if the sampler sub-application does not have a correct Control object with 'to_control' parameter being 'SamplerReceiver' type.
  • F3.5.16MOOSE shall produce an error if supplied vector of real values is not sized correctly.
  • F3.5.17MOOSE shall produce an error if sampling method differs between the sub-application and the associated sub-application data transfer.
  • F3.5.18The system shall be capable of transferring scalar data to sub-applications for each row of the stochastic data
    1. using a Monte Carlo and
    2. Sobol sampling scheme.
  • F3.5.19The system shall be capable of transferring vector data to sub-applications for each row of the stochastic data.
  • F3.5.20The system shall error if the transferred vector to a sub-application
    1. is not sized correctly for stochastic data,
    2. is not sized uniformily across sub-applications,
    3. if the vector parameter does not exist, and
    4. if the sub-application does not consume all of the supplied data.
  • F3.5.21The system shall support the creation of a sub-application for each row sampled data generated from a Sobol scheme.
  • stochastic_tools: Vectorpostprocessors
  • F3.6.1The system shall support the collection of stochastic data from multiple sub-applications.
  • F3.6.2The system shall error if stochastic data is distributed across processors and output of the data is enabled.
  • F3.6.3The system shall error when stochastic data is set to output on a specific processor with
    1. the supplied operation mode is replicated and
    2. the provided rank number is too large for the number of processors being executed.
  • F3.6.4The system shall support the collection of stochastic data that is
    1. replicated on all processors and
    2. distributed across one,
    3. two, and
    4. three processors.
  • F3.6.5The system shall support the collection of stochastic data that
    1. can be appended into a single data set or
    2. or contain a single file per timestep.