MASTODON System Requirements Specification

This template follows INL template TEM-135, "IT System Requirements Specification".

Introduction

System Purpose

The purpose of MASTODON is to evaluate the earthquake response of structures and systems both in a deterministic and probabilistic fashion, and also evaluate seismic risk. Through the capability of performing complex response history analyses, MASTODON can be used to evaluate both local and global responses, and also the risk of unwanted events in complex systems such as nuclear power plants.

System Scope

MASTODON models vibration response of structures with a prime focus on earthquakes. Applications include earthquake response of structures like nuclear power plant buildings and dams, linear and nonlinear site response and soil-structure interaction analysis, and large-scale source-to-site earthquake simulations. MASTODON can be used to both model simple 1D and 2D structures built using beam and shell elements, as well as more complex geometries represented using 3D continuum elements. MASTODON is primarily intended for response history analysis for both linear and nonlinear problems including material and geometric nonlinearities. It includes the most commonly-used and versatile hysteretic soil material models, and seismic protective devices. MASTODON is also capable of performing acoustic fluid structure interaction simulations through the Fluid Structure Interaction (FSI) module, seismic analysis of structures undergoing aging-related deterioration through inclusion of Blackbear, and uncertainty quantification (UQ) studies through the Stochastic Tools Module (STM). MASTODON also includes automated seismic risk assessment capabilities using the Multiple Stripes Analysis, fragility evaluation. It can also provides Fault Tree and Event Tree analysis capability through a Python library that is included in the MASTODON package.

System Overview

System Context

The MASTODON application is command-line driven. Like MOOSE, this is typical for a high-performance software that is designed to run across several nodes of a cluster system. As such, all usage of the software is through any standard terminal program generally available on all supported operating systems. Similarly, for the purpose of interacting through the software, there is only a single user, "the user", which interacts with the software through the command-line. MASTODON does not maintain any back-end database or interact with any system daemons. It is an executable, which may be launched from the command line and writes out various result files as it runs.

Figure 1: Usage of MASTODON and other MOOSE-based applications.

System Functions

Since MASTODON is a command-line driven application, all functionality provided in the software is operated through the use of standard UNIX command line flags and the extendable MOOSE input file. MASTODON is completely extendable so individual design pages should be consulted for specific behaviors of each user-defined object.

User Characteristics

MASTODON users will fall into the following three categories:

  • MASTODON Developers: These are the core developers of MASTODON. They are responsible for designing, implementing, and maintaining the software, while following and enforcing its software development standards.

  • Developers: These are scientists or engineers that modify or add capabilities to MASTODON for their own purposes, which may include research or extending its capabilities. They will typically have a background in structural or mechanical engineering, and in modeling and simulation techniques, but may have more limited background in code development using the C++ language. In many cases, these developers will be encouraged to contribute code back to MASTODON.

  • Analysts: These are users that run MASTODON to run simulations, but do not develop code. The primary interface of these users with MASTODON is the input files that define their simulations. These users may interact with developers of the system requesting new features and reporting bugs found.

Assumptions and Dependencies

The MASTODON application is developed using MOOSE and is based on various modules, as such the SRS for MASTODON is dependent upon the files listed at the beginning of this document. Any further assumptions or dependencies are outlined in the remainder of this section.

MASTODON has no constraints on hardware and software beyond those of the MOOSE framework and modules listed in their respective SRS documents, which are accessible through the links at the beginning of this document.

MASTODON provides access to a number of code objects that perform computations such as material behavior and boundary conditions. These objects each make their own physics-based assumptions, such as the units of the inputs and outputs. Those assumptions are described in the documentation for those individual objects.

References

  1. ISO/IEC/IEEE 24765:2010(E). Systems and software engineering—Vocabulary. first edition, December 15 2010.[BibTeX]
  2. ASME NQA-1. ASME NQA-1-2008 with the NQA-1a-2009 addenda: Quality Assurance Requirements for Nuclear Facility Applications. first edition, August 31 2009.[BibTeX]

Definitions and Acronyms

This section defines, or provides the definition of, all terms and acronyms required to properly understand this specification.

Definitions

  • Verification: (1) The process of: evaluating a system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase. (2) Formal proof of program correctness (e.g., requirements, design, implementation reviews, system tests) (24765:2010(E), 2010).

Acronyms

AcronymDescription
INLIdaho National Laboratory
MOOSEMultiphysics Object Oriented Simulation Environment
NQA-1Nuclear Quality Assurance Level 1
POSIXPortable Operating System Interface
SRSSoftware Requirement Specification

System Requirements

In general, the following is required for MOOSE-based development:

A POSIX compliant Unix-like operating system. This includes any modern Linux-based operating system (e.g., Ubuntu, Fedora, Rocky, etc.), or a Macintosh machine running either of the last two MacOS releases.

HardwareInformation
CPU Architecturex86_64, ARM (Apple Silicon)
Memory8 GB (16 GBs for debug compilation)
Disk Space30GB

LibrariesVersion / Information
GCC9.0.0 - 12.2.1
LLVM/Clang10.0.1 - 19
Intel (ICC/ICX)Not supported at this time
Python3.10 - 3.13
Python Packagespackaging pyaml jinja2

Functional Requirements

  • mastodon: Auxkernels
  • 1.1.1The MaterialRealCMMAux AuxKernel shall accurately calculate the AuxVariable from a ColumnMajorMatrix material property.
  • 1.1.2Mastodon shall create uniform layers of material for a one dimensional model
  • 1.1.3Mastodon shall create uniform layers of material for a two dimensional model
  • 1.1.4Mastodon shall create uniform layers of material for a three dimensional model
  • 1.1.5Mastodon shall create uniform layers of material for a three dimensional model and automatically name each layer using the default indexing scheme
  • 1.1.6Mastodon shall create uniform layers of material for a two dimensional model - Amdrew, finish this one up. I dont know what is different between this and the other 2D model
  • 1.1.7Mastodon shall produce an error message if the supplied direction vetor is not valid for the corresponding mesh
  • 1.1.8Mastodon shall produce an error if the number of interfaces supplied does not match the number of layer ids supplied
  • 1.1.9Mastodon shall produce an error if an interface value is supplied that is not contained within the model domain
  • mastodon: Bcs
  • 1.2.1The NonReflectingBC class shall produce an error if the number of the displacement variables is not the same as the mesh dimension.
  • 1.2.2The NonReflectingBC class shall produce an error if the number of velocity variables is not the same as the mesh dimension.
  • 1.2.3The NonReflectingBC class shall produce an error if the number of acceleration variables is not the same as the mesh dimension.
  • 1.2.4The NonReflectingBC class shall produce an error if the size of the component vector is not the same as the mesh dimension.
  • 1.2.5The SeismicDisplacement action shall prescribe the user-provided displacement at the boundary.
  • 1.2.6The SeismicDisplacement action shall produce an error if the displacements, velocities, accelerations, input functions and input components are not of the same length.
  • 1.2.7The SeismicForce class shall accurately convert the user-provided input velocities to shear tractions at the boundary.
  • 1.2.8The SeismicForce class shall accurately convert the user-provided input velocity to normal traction at the boundary.
  • 1.2.9The SeismicForce class shall produce an error if the value provided for 'component' is greater than mesh dimension - 1.
  • 1.2.10The SeismicForce class shall produce an error if the value provided for 'vel_component' is greater than mesh dimension - 1.
  • 1.2.11The SeismicForce class shall produce an error if a function or variable describing the input velocity is not supplied as input by the user.
  • 1.2.12The SeismicForce action shall produce an error if a list of functions or variables describing the input velocity are not supplied as input by the user.
  • 1.2.13The SeismicForce action shall produce an error if the length of the 'input_components' vector is not the same as that of the 'velocities' vector.
  • 1.2.14The SeismicForce action shall produce an error if the length of the 'input_components' vector is not the same as that of the 'velocity_functions' vector.
  • 1.2.15The SeismicForce action shall produce an error if the length of the displacements vector is different from the mesh dimension.
  • mastodon: Dirackernels
  • 1.3.1The FunctionPointForce class shall accurately apply the force at any point within an element.
  • 1.3.2The FunctionPointForce class shall accurately apply a force at multiple points within the computational domain.
  • 1.3.3The FunctionPointForce class shall produce an error if neither a point nor a set of points, supplied through the x, y and z position functions, are provided as input.
  • 1.3.4The FunctionPointForce class shall produce an error if the 'number' parameter is not supplied by the user when providing a set of points through the position functions.
  • 1.3.5The FunctionPointForce class shall produce an error if both x and y position functions are not provided as input for a 2D mesh.
  • 1.3.6The FunctionPointForce class shall produce an error if not all x, y and z position functions are provided as input for a 3D mesh.
  • 1.3.7The SeismicSource action and the SeismicSource class shall accurately apply a point source at the user-provided point within the computational domain.
  • 1.3.8The SeismicSource action and the SeismicSource class shall accurately apply multiple point sources at the user-provided points within the computational domain, and also trigger all these point sources to rupture at the same time.
  • 1.3.9The SeismicSource action and the SeismicSource class shall accurately apply multiple point sources at the user-provided points within the computational domain, and also trigger the point sources to rupture with a time delay calculated based on the rupture velocity and the distance of the point source from the epicenter.
  • 1.3.10The SeismicSource class shall produce an error when the number of provided displacement variables does not match the mesh dimension.
  • 1.3.11The SeismicSource class shall produce an error if neither the point nor the set of points at which the source is located is not supplied as input.
  • 1.3.12The SeismicSource class shall produce an error when a position_function is used to define the set of source points, but the number of source points is not supplied as input.
  • 1.3.13The SeismicSource class shall produce an error when the number of position functions does not match the mesh dimension.
  • 1.3.14The SeismicSource class shall produce an error if only the epicenter is provided as input, but not the rupture speed.
  • 1.3.15The SeismicSource class shall produce an error if only the rupture speed is provided as input, but not the epicenter.
  • 1.3.16The SeismicSource class shall produce an error if the length of the epicenter vector is not the same as the mesh dimension.
  • 1.3.17The SeismicSource class shall produce an error if the epicenter and rupture speed are provided as input for a single seismic source.
  • 1.3.18The SeismicSource class shall produce an error if the user-provided rupture speed is not positive.
  • 1.3.19The SeismicSource class shall produce a warning if a non-zero strike angle is provided as input for 2D models, indicating that out-of-plane earthquake waves would be generated.
  • 1.3.20The SeismicSource class shall produce an error if it is used on a 1D mesh.
  • mastodon: Functions
  • 1.4.1The GroundMotionSim function shall accurately generate ground motions
  • 1.4.2The OrmsbyWavelet function shall accurately calculate the Ormsby Wavelet.
  • mastodon: Images
  • 1.5.1The ImageFunction class shall accurately read the layer variable values from the 2D soil layer profile presented in the image.
  • mastodon: Indicators
  • 1.6.1The LayerInterfaceIndicator and ShearWaveIndicator classes shall accurately mesh the soil domain taking into account the variation in shear wave velocity across soil layers, as well as the locations of the soil layer interfaces.
  • 1.6.2The LayerInterfaceIndicator class shall accurately mesh the soil domain taking into account the locations of the soil layer interfaces.
  • 1.6.3The ShearWaveIndicator class shall accurately mesh the soil domain taking into account the variation in shear wave velocity across soil layers.
  • mastodon: Interfaces
  • 1.7.1The LayeredMaterialInterface class shall produce an error if the parent class does not set the documentation for the 'layer_ids' parameter.
  • 1.7.2The LayeredMaterialInterface class shall produce an error if the template class is not a Material object.
  • mastodon: Kernels
  • 1.8.1MASTODON shall correctly analyze the simple diffusion problem.
  • 1.8.2The Newmark time integration scheme in MASTODON shall calculate results that are equal to analytical calculations.
  • 1.8.3The HHT time integration scheme in MASTODON shall calculate results that are equal to analytical calculations.
  • mastodon: Markers
  • 1.9.1The MinimumElementSizeMarker shall accurately mark an element for mesh refinement if the minimum element size is greater than that recommended by the specified indicator.
  • 1.9.2The MinimumElementSizeMarker shall accurately mark an element for mesh refinement if the minimum element size is greater than that recommended by user specified value.
  • mastodon: Mastodonblock
  • 1.10.1MASTODON shall accurately evaluate a single 3D element dynamics problem when the MastodonBlock actions are not used.
  • 1.10.2MASTODON shall accurately evaluate a single 2D element dynamics problem when the MastodonBlock actions are not used.
  • 1.10.3Using the MastodonBlock action should produce results that are identical to those calculated without the action for a single 3D element dynamic problem.
  • 1.10.4Using the MastodonBlock action should produce results that are identical to those calculated without the action for a single 2D element dynamic problem.
  • 1.10.5MASTODON shall correctly perform a single element 3D static analysis without MastodonModel action.
  • 1.10.6Using the MastodonModel action for a single element 3D static analysis should produce results that are identical to those calculated without using the MastodonModel action.
  • 1.10.7MASTODON shall correctly perform a single element 3D dynamic analysis without MastodonModel action.
  • 1.10.8MASTODON shall correctly perform a single element 2D dynamic analysis without MastodonModel action.
  • 1.10.9Using the MastodonModel action for a single element 3D dynamic analysis should produce results that are identical to those calculated without using the MastodonModel action.
  • 1.10.10Using the MastodonModel action for a single element 2D dynamic analysis should produce results that are identical to those calculated without using the MastodonModel action.
  • 1.10.11MASTODON shall throw an error when the dim parameter in MastodonModel action is not consistent with the dimension of the mesh in the mesh block.
  • 1.10.12MASTODON shall correctly evaluate the outputs from a single element analysis when the MastodonOutputs action is not used.
  • 1.10.13Using the MastodonOutputs action for a single element analysis should produce results that are identical to those calculated when the MastodonOutputs action is not used.
  • mastodon: Materials
  • 1.11.1The ComputeFPIsolatorElasticity class shall accurately model the pressure, temperature and velocity dependent behavior of the isolator under sinusoidal shear loading.
  • 1.11.2The ComputeFPIsolatorElasticity class shall accurately model the velocity dependent behavior of the isolator under sinusoidal shear loading.
  • 1.11.3The ComputeFPIsolatorElasticity class shall accurately model the temperature dependent behavior of the isolator under sinusoidal shear loading.
  • 1.11.4The ComputeFPIsolatorElasticity class shall accurately model the pressure dependent behavior of the isolator under sinusoidal shear loading.
  • 1.11.5The ComputeFPIsolatorElasticity class shall accurately model the pressure, temperature and velocity dependent behavior of the isolator under seismic loading.
  • 1.11.6The ComputeFVDamperElasticity class shall accurately damp the response of the system in the axial direction.
  • 1.11.7The ComputeFVDamperElasticity class shall accurately damp the response of the system in the axial direction for a cd of 4605988 and an alpha of 0.6.
  • 1.11.8The ComputeFVDamperElasticity class shall accurately damp the response of the system in the axial direction for a cd of 1090485 and an alpha of 0.01.
  • 1.11.9The ComputeFVDamperElasticity class shall accurately damp the response of the system in the axial direction for a cd of 37947331 and an alpha of 1.5.
  • 1.11.10The ComputeFVDamperElasticity class shall accurately damp the response of the portal frame under seismic loading.
  • 1.11.11The ISoil action and ComputeISoilStress class shall accurately construct the stress-strain curve from a user provided data file.
  • 1.11.12The ISoil action and ComputeISoilStress class shall accurately construct the backbone curve from a user provided data file.
  • 1.11.13The ComputeISoilStress class shall accurately construct the stress-strain curve from a user provided data file without the use of the ISoilAction.
  • 1.11.14The ISoil action and ComputeISoilStress class shall accurately construct the stress-strain curve from a user provided data file and shall also auto construct the Jacobian matrix.
  • 1.11.15The ComputeISoilStress class shall accurately construct the stress-strain curve from a user provided data file without the use of the ISoilAction and shall also auto construct the Jacobian matrix.
  • 1.11.16The ISoil action and ComputeISoilStress class shall accurately construct the stress-strain curve using the Darendeli formulation.
  • 1.11.17The ISoil action and ComputeISoilStress class shall accurately construct the backbone curve using the Darendeli formulation.
  • 1.11.18The ComputeISoilStress class shall accurately construct the stress-strain curve using the Darendeli formulation without the use of the ISoilAction.
  • 1.11.19The ISoil action and ComputeISoilStress class shall accurately construct the stress-strain curve using the Darendeli formulation and shall also automatically compute the Jacobian matrix.
  • 1.11.20The ComputeISoilStress class shall accurately construct the stress-strain curve using the Darendeli formulation without the use of the ISoilAction and shall also automatically compute the Jacobian matrix.
  • 1.11.21The ISoil action and ComputeISoilStress class shall accurately construct the stress-strain curve using the GQ/H formulation.
  • 1.11.22The ISoil action and ComputeISoilStress class shall accurately construct the backbone curve using the GQ/H formulation.
  • 1.11.23The ComputeISoilStress class shall accurately construct the stress-strain curve using the GQ/H formulation without the use of the ISoilAction.
  • 1.11.24The ComputeISoilStress class shall accurately construct the stress-strain curve using the GQ/H formulation with two soil layers.
  • 1.11.25The ComputeISoilStress class shall accurately construct the stress-strain curve using the GQ/H formulation without action and with two soil layers.
  • 1.11.26The ISoil action and ADComputeISoilStress class shall accurately model the nonlinear dynamic response of the system when automatic differentiation is used along with the auto-generated GQH stress-strain curves.
  • 1.11.27The ADComputeISoilStress class shall accurately model the nonlinear dynamic response of the system when automatic differentiation is used along with the auto-generated GQH stress-strain curves.
  • 1.11.28The ADComputeISoilStress class shall accurately compute the jacobian for a quasi-static nonlinear response of a soil column subjected to pure shear.
  • 1.11.29The ADComputeISoilStress class shall accurately compute the jacobian for the dynamic pressure-dependent nonlinear response of a soil column subjected to vertical displacement as well as pure shear.
  • 1.11.30The ComputeISoilStress class shall fail under tension and regain strength under compression.
  • 1.11.31The ADComputeISoilStress class shall fail under tension and regain strength under compression.
  • 1.11.32The ISoil action and ComputeISoilStress class shall accurately construct the stress-strain curve for a thin-layer formulation.
  • 1.11.33The ComputeISoilStress class shall accurately construct the stress-strain curve for a thin-layer formulation without the use of the ISoilAction.
  • 1.11.34The ISoil action and ComputeISoilStress class shall accurately construct the stress-strain curve for a thin-layer formulation and shall also automatically construct the Jacobian matrix.
  • 1.11.35The ComputeISoilStress class shall accurately construct the stress-strain curve for a thin-layer formulation without the use of the ISoilAction and shall also automatically construct the Jacobian matrix.
  • 1.11.36The ISoilAction and ComputeISoilStress class shall accurately adjust the stress-strain curve to account for pressure dependent changes in stiffness of the soil.
  • 1.11.37The ISoilAction and ComputeISoilStress class shall accurately adjust the stress-strain curve to account for pressure dependent changes in strength of the soil.
  • 1.11.38The ISoilAction and ComputeISoilStress class shall accurately adjust the stress-strain curve to account for pressure dependent changes in both stiffness and strength of the soil.
  • 1.11.39The ComputeISoilStress class shall accurately adjust the stress-strain curve to account for pressure dependent changes in stiffness and strength of the soil without the use of the ISoilAction.
  • 1.11.40The ISoilAction and ComputeISoilStress class shall accurately adjust the stress-strain curve to account for pressure dependent changes in stiffness and strength of the soil and shall automatically construct the Jacobian matrix.
  • 1.11.41The ComputeISoilStress class shall accurately adjust the stress-strain curve to account for pressure dependent changes in stiffness and strength of the soil without the use of the ISoilAction and shall also automatically construct the Jacobian matrix.
  • 1.11.42The ComputeIsotropicElasticityTensorSoil shall accurately set up elasticity tensors for different soil layers using the user provided shear modulus and Poisson's ratio for each layer.
  • 1.11.43The ComputeIsotropicElasticityTensorSoil shall accurately set up elasticity tensors for different soil layers using the user provided Young's modulus and Poisson's ratio for each layer.
  • 1.11.44The ComputeIsotropicElasticityTensorSoil class shall produce an error if the 'shear_modulus' vector is not the same length as the 'layer_ids' vector.
  • 1.11.45The ComputeIsotropicElasticityTensorSoil class shall produce an error if the layer id variable takes a value that is not provided as part of the 'layer_ids' vector.
  • 1.11.46The LinearSoilMaterial class accurately sets the shear modulus and density values for different soil layers.
  • 1.11.47The LinearSoilMaterial class shall produce an error if the 'shear_modulus' vector is not the same length as the 'layer_ids' vector.
  • 1.11.48The LinearSoilMaterial class shall produce an error if the layer id variable takes a value that is not provided as part of the 'layer_ids' vector.
  • 1.11.49The LinearSpring class shall accurately model the static response of spring in the three translational and the three rotational directions.
  • 1.11.50The ComputeLRIsolatorElasticity class shall accurately model the tensile and compressive response of the isolator.
  • 1.11.51The ComputeLRIsolatorElasticity class shall accurately model the tensile response of the isolator.
  • 1.11.52The ComputeLRIsolatorElasticity class shall accurately model the shear response of the isolator.
  • 1.11.53The ComputeLRIsolatorElasticity class shall accurately model the P-Delta effects in the isolator.
  • 1.11.54The ComputeLRIsolatorElasticity class shall accurately model the seismic response of the isolator.
  • 1.11.55The ComputeLRIsolatorElasticity class shall produce an error if the lengths of the displacement and rotation vectors do not match.
  • 1.11.56The ComputeLRIsolatorElasticity class shall produce an error if the 'y_orientation' provided as input is not perpendicular to the axis of the isolator.
  • 1.11.57The ComputeLRIsolatorElasticity class shall produce an error if the parameter 'alpha' is either negative or greater than 1.
  • mastodon: Meshgenerators
  • 1.12.1MASTODON shall generate a 1D mesh based on the node and element information provided through a text file.
  • 1.12.2The BeamMeshGenerator shall accurately create the mesh from node and element information provided through a text file.
  • mastodon: Misc
  • 1.13.1Mastodon shall throw an error if an unused parameter is supplied to the input file.
  • mastodon: Multiapps
  • 1.14.1The HazardCurveMultiApp shall execute the sub file for each ground motion in the GroundMotionReader UserObject for each bin of the HazardCurve UserObject.
  • mastodon: Postprocessors
  • 1.15.1The SidesetMoment postprocessor shall accurately calculate the moment at the specified point when stress_tensor is given an input.
  • 1.15.2The SidesetMoment postprocessor shall accurately calculate the moment at the specified point when pressure is given an input.
  • mastodon: Pra
  • 1.16.1MASTODON shall perform probabilistic simulations for seismic probabilistic risk assessment for a given hazard curve, number of bins, ground motions and a finite element model.
  • mastodon: Problem
  • 1.17.1Mastodon shall create a mesh using the shear wave indicator and minimum element size marker
  • 1.17.2Mastodon shall create a mesh using the shear wave indicator and layer interface indicator, and the minimum element size marker and error tolerance marker.
  • mastodon: Transfers
  • 1.18.1The HazardCurve transfer shall scale the ground motions from the GroundMotionReader UserObject according to the hazard curve in the Hazard UserObject and transfer the ground motions to the sub file.
  • 1.18.2The PiecewiseFunctionTransfer shall transfer a PiecewiseLinear function value from a sub to the master file.
  • 1.18.3The PiecewiseFunctionTransfer shall transfer a PiecewiseLinear function value from a master to the sub file.
  • mastodon: Userobjects
  • 1.19.1The GroundMotionReader object shall run without errors.
  • 1.19.2The GroundMotionReader object shall throw an error when the ground motion files with the provided pattern are not found.
  • 1.19.3The HazardCurve userobject shall run without errors.
  • 1.19.4The HazardCurve userobject shall throw an error when the reference_acceleration input is not a scalar, or a vector of the size equal to the number of bins.
  • mastodon: Vectorpostprocessors
  • 1.20.1The Fragility vectorpostprocessor shall accurately evaluate the median demands, beta, and the conditional probability of failure of the SSC at each intensity, and the median and beta of the enhanced fragility fit for the SSC using a brute force approach.
  • 1.20.2The Fragility vectorpostprocessor shall accurately evaluate the median demands, beta, and the conditional probability of failure of the SSC at each intensity, and the median and beta of the enhanced fragility fit for the SSC using the randomized gradient descent algorithm.
  • 1.20.3The Fragility vectorpostprocessor shall accurately evaluate the median demands, beta, and the conditional probability of failure of the SSC at each intensity, and the median and beta of the enhanced fragility fit for the SSC using the randomized gradient descent algorithm when stochastic demands file is provided.
  • 1.20.4The HSICalculator vectorpostprocessor shall accurately calculate the HSI of a response history on a serial execution.
  • 1.20.5The HSICalculator vectorpostprocessor shall accurately calculate the HSI of a response history during a multiple core execution.
  • 1.20.6The HSICalculator vectorpostprocessor shall accurately calculate the HSI of a response history during a multiple thread execution.
  • 1.20.7The HSICalculator vectorpostprocessor shall accurately calculate the HSI of a response history during a multiple core and multiple thread execution.
  • 1.20.8The ResponseHistoryBuilder vectorpostprocessor shall accurately evaluate the response histories for node input as well as boundary input during a serial execution.
  • 1.20.9The ResponseHistoryBuilder vectorpostprocessor shall accurately evaluate the response histories for node input as well as boundary input during a multiple core execution.
  • 1.20.10The ResponseHistoryBuilder vectorpostprocessor shall accurately evaluate the response histories for node input as well as boundary input during a multiple thread execution.
  • 1.20.11The ResponseHistoryBuilder vectorpostprocessor shall accurately evaluate the response histories for node input as well as boundary input during a multiple core and multiple thread execution.
  • 1.20.12The ResponseHistoryMean vectorpostprocessor shall accurately calculate the mean response history during a serial execution.
  • 1.20.13The ResponseHistoryMean vectorpostprocessor shall accurately calculate the mean response history during a mutiple core execution.
  • 1.20.14The ResponseHistoryMean vectorpostprocessor shall accurately calculate the mean response history during a multiple thread execution.
  • 1.20.15The ResponseHistoryMean vectorpostprocessor shall accurately calculate the mean response history during a mutiple core and multiple thread execution.
  • 1.20.16The ResponseSpectraCalculator vectorpostprocessor shall accurately calculate the response spectra during a serial execution.
  • 1.20.17The ResponseSpectraCalculator vectorpostprocessor shall accurately calculate the response spectra during a multiple core execution.
  • 1.20.18The ResponseSpectraCalculator vectorpostprocessor shall accurately calculate the response spectra during a multiple thread execution.
  • 1.20.19The ResponseSpectraCalculator vectorpostprocessor shall accurately calculate the response spectra during a multiple core and multiple thread execution.

Usability Requirements

No requirements of this type exist for this application, beyond those of its dependencies.

Performance Requirements

No requirements of this type exist for this application, beyond those of its dependencies.

System Interfaces

No requirements of this type exist for this application, beyond those of its dependencies.

System Operations

Human System Integration Requirements

The MASTODON application is command line driven and conforms to all standard terminal behaviors. Specific human system interaction accommodations shall be a function of the end-user's terminal. MOOSE (and therefore MASTODON) does support optional coloring within the terminal's ability to display color, which may be disabled.

Maintainability

  • The latest working version (defined as the version that passes all tests in the current regression test suite) shall be publicly available at all times through the repository host provider.

  • Flaws identified in the system shall be reported and tracked in a ticket or issue based system. The technical lead will determine the severity and priority of all reported issues and assign resources at their discretion to resolve identified issues.

  • The software maintainers will entertain all proposed changes to the system in a timely manner (within two business days).

  • The core software in its entirety will be made available under the terms of a designated software license. These license terms are outlined in the LICENSE file alongside the MASTODON application source code.

Reliability

The regression test suite will cover at least 90% of all lines of code at all times. Known regressions will be recorded and tracked (see Maintainability) to an independent and satisfactory resolution.

System Modes and States

MOOSE applications normally run in normal execution mode when an input file is supplied. However, there are a few other modes that can be triggered with various command line flags as indicated here:

Command Line FlagDescription of mode
-i <input_file>Normal execution mode
--split-mesh <splits>Read the mesh block splitting the mesh into two or more pieces for use in a subsequent run
--use-split(implies -i flag) Execute the simulation but use pre-split mesh files instead of the mesh from the input file
--yamlOutput all object descriptions and available parameters in YAML format
--jsonOutput all object descriptions and available parameters in JSON format
--syntaxOutput all registered syntax
--registryOutput all known objects and actions
--registry-hitOutput all known objects and actions in HIT format
--mesh-only (implies -i flag)Run only the mesh related tasks and output the final mesh that would be used for the simulation
--start-in-debugger <debugger>Start the simulation attached to the supplied debugger
commentnote

The list of system-modes may not be extensive as the system is designed to be extendable to end-user applications. The complete list of command line options for applications can be obtained by running the executable with zero arguments. See the command line usage.

Physical Characteristics

The MASTODON application is software only with no associated physical media. See System Requirements for a description of the minimum required hardware necessary for running the MASTODON application.

Environmental Conditions

Not Applicable

System Security

MOOSE-based applications such as MASTODON have no requirements or special needs related to system-security. The software is designed to run completely in user-space with no elevated privileges required nor recommended.

Information Management

MASTODON as well as the core MOOSE framework in its entirety will be made publicly available on an appropriate repository hosting site. Day-to-day backups and security services will be provided by the hosting service. More information about backups of the public repository on INL-hosted services can be found on the following page: GitHub Backups

Polices and Regulations

MOOSE-based applications must comply with all export control restrictions.

System Life Cycle Sustainment

MOOSE-based development follows various agile methods. The system is continuously built and deployed in a piecemeal fashion since objects within the system are more or less independent. Every new object requires a test, which in turn requires an associated requirement and design description. The MASTODON development team follows the NQA-1 standards.

Packaging, Handling, Shipping and Transportation

No special requirements are needed for packaging or shipping any media containing the MOOSE and MASTODON source code. However, some MOOSE-based applications that use the MASTODON code may be export-controlled, in which case all export control restrictions must be adhered to when packaging and shipping media.

Verification

The regression test suite will employ several verification tests using comparison against known analytical solutions, the method of manufactured solutions, and convergence rate analysis.