BlackBear System Requirements Specification
This template follows INL template TEM-135, "IT System Requirements Specification".
This document serves as an addendum to Framework System Requirements Specification and captures information for SRS specific to the BlackBear application.
- MASTODON System Requirements Specification
- Framework System Requirements Specification
- MOOSE Tools System Requirements Specification
- Contact System Requirements Specification
- Fluid Properties System Requirements Specification
- Fluid Structure Interaction System Requirements Specification
- Heat Transfer System Requirements Specification
- Misc System Requirements Specification
- Navier Stokes System Requirements Specification
- Ray Tracing System Requirements Specification
- Stochastic Tools System Requirements Specification
- Solid Mechanics System Requirements Specification
- XFEM System Requirements Specification
Introduction
System Purpose
The purpose of BlackBear is to simulate the progression of degradation in structural components (e.g., buildings, bridges, dams) due to exposure to the environmental conditions they experience over their lifetime. In addition, BlackBear predicts the response of those structures in the presence of that long-term degradation to loading conditions of interest to assess the effects of degradation on their integrity.
System Scope
BlackBear models the effects of environmental exposure on structures. The environmental conditions that can induce aging include evolving mechanical loading and exposure to temperature and moisture. The materials modeled by BlackBear include those typically used in the construction of civil structures, such as concrete and steel. Under normal service, these structures can experience a variety of degradation mechanisms. For example, steel and other metals can degrade due to corrosion, embrittlement, and stress corrosion cracking. Concrete can experience degradation due to expansive reactions, chemical attacks, leaching, and mechanical mechanisms induced by conditions such as freeze/thaw cycles and fatigue.
In addition to modeling the degradation mechanisms, BlackBear also models the response of these structures to a variety of loading conditions that these structures are expected to safely withstand. These include a variety of normal thermal and mechanical service loading conditions, as well as wind and earthquake loading conditions. BlackBear includes models to represent the behavior of structural materials under those conditions, which can induce creep, plasticity, damage, fracture, and failure of these materials.
System Overview
System Context
The BlackBear 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. BlackBear 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 BlackBear and other MOOSE-based applications.
System Functions
Since BlackBear 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. BlackBear is completely extendable so individual design pages should be consulted for specific behaviors of each user-defined object.
User Characteristics
BlackBear has three main classes of users:
BlackBear Developers: These are the core developers of BlackBear. 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 BlackBear 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 BlackBear.
Analysts: These are users that run BlackBear to run simulations, but do not develop code. The primary interface of these users with BlackBear 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 BlackBear application is developed using MOOSE and is based on various modules, as such the SRS for BlackBear 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.
BlackBear 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.
BlackBear 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
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
Acronym | Description |
---|---|
INL | Idaho National Laboratory |
MOOSE | Multiphysics Object Oriented Simulation Environment |
NQA-1 | Nuclear Quality Assurance Level 1 |
POSIX | Portable Operating System Interface |
SRS | Software 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.
Hardware | Information |
---|---|
CPU Architecture | x86_64, ARM (Apple Silicon) |
Memory | 8 GB (16 GBs for debug compilation) |
Disk Space | 30GB |
Libraries | Version / Information |
---|---|
GCC | 9.0.0 - 12.2.1 |
LLVM/Clang | 10.0.1 - 19 |
Intel (ICC/ICX) | Not supported at this time |
Python | 3.10 - 3.13 |
Python Packages | packaging pyaml jinja2 |
Functional Requirements
- blackbear: Averageextensionratio
- 2.1.1AverageExtensionRatio computes the average extension ratio between two sets of points specified in two arrays:
first_point
andlast_point
. It should result in error when sizes offirst_point
andlast_point
do not match and size offirst_point
is zero- The system shall provide a postprocessor that computes the average extension ratio between two sets of points.
- AverageExtensionRatio shall generate an error if the sizes of the specified sets of points do not match.
- AverageExtensionRatio shall generate an error if the size of either of the sets of points is zero.
- blackbear: Actions
- 2.2.1The system shall set up a set of equal value constraintstying the nodes in multiple blocks to a primary block formultiple variables.
- without using an action
- using the EqualValueEmbeddedConstraint action to automatically set up multiple constraints with the same results as without using the action.
- using multiple instances of the EqualValueEmbeddedConstraint action to set up multiple constraints with the same results as without using the action.
- 2.2.2The EqualValueEmbeddedConstraintAction shall generate an error if sizes of 'primary_variable' and 'variable' are different
- blackbear: Concrete Asr Swelling
- 2.3.1Blackbear shall solve coupled systems of equations for heat and moisure transfer and mechanical deformation in concrete, used as inputs for modeling expansion induced by alkali-silica reaction, as demonstrated by simulating a concrete cylinder confined by a steel jacket
- with anisotropic expansion strains,
- with anisotropic expansion strains and temperature in Kelvin unit,
- with isotropic expansion strains,
- with uniaxial tenile loading,
- and with a mesh that captures a larger axial region of the cylinder.
- 2.3.2Blackbear shall produce an error message when number of iterations exceeds max_its during the volumeteric strain residual calculation
- blackbear: Concrete Asr Validation
- 2.4.1Blackbear shall model the expansion induced by alkali-silica reaction as demonstrated with
- a comparison of the ASR volumetric strain to an analytic function,
- a maximum volumetric expansion of 0.76e-3, characteristic time of 66.84, and latency time of -126.1,
- and a maximum volumetric expansion of 0.38e-3, characteristic time of 17.24, and latency time of -2.55.
- blackbear: Concrete Anisotropic Eigenstrain
- 2.5.1BlackBear shall represent anisotropic volumetric expansion in concrete due to alkali-silica reaction and related phenomena as demonstrated by computing the expansion of a unit cube with a prescribed expansion function in the three coordinate directions
- under free expansion conditions,
- with a 5 MPa compressive pressure in the x direction,
- with a 50 MPa compressive pressure in the x direction,
- with 5 MPa compressive pressure in the x and y directions,
- with 10 MPa compressive pressure in the x and y directions,
- with 5 MPa compressive pressure in the x, y, and z directions,
- and with 10 MPa compressive pressure in the x, y, and z directions.
- 2.5.2Blackbear shall produce an error message when parameter(s) required for the anisotropic expansion_type are not set by user:
- Anisotropic expansion_type shall generate error if compressive_strength is not set by user.
- Anisotropic expansion_type shall generate error if expansion_stress_limit is not set by user.
- Anisotropic expansion_type shall generate error if tensile_strength is not set by user.
- blackbear: Concrete Drying Shrinkage
- 2.6.1BlackBear shall compute drying shrinkage of concrete
- with an exponent of 1,
- with an exponent of 2,
- and with an irreversibility threshold of 0.2.
- blackbear: Concrete Expansion Microcracking
- 2.7.1BlackBear shall represent damage in concrete due to alkali-silica reaction and related phenomena with anisotropy accounted for via the damage model as demonstrated by computing the expansion of a unit cube with a prescribed expansion function in the three coordinate directions
- under free expansion conditions,
- under free shrinkage conditions,
- under free expansion conditions excluding confinement effect,
- under free expansion conditions without the assumption of isotropic expansion,
- with a 5 MPa compressive pressure in the x direction,
- with a 10 MPa compressive pressure in the x direction,
- with a 5 MPa compressive pressure in the x and y directions,
- with a 10 MPa compressive pressure in the x and y directions,
- with a 5 MPa compressive pressure in the x, y, and z directions,
- and with a 10 MPa compressive pressure in the x, y, and z directions.
- 2.7.2The ConcreteExpansionMicrocrackingDamage model shall generate an error if used with a material that is not guaranteed isotropic
- 2.7.3Blackbear shall produce an error message when
- considering confinement effect without specifying expansion_stress_limit.
- considering confinement effect with negative expansion_stress_limit.
- blackbear: Concrete Logcreep
- 2.8.1BlackBear shall compute logarithmic viscoelastic behavior of concrete
- under standard conditions,
- under drying conditions,
- under low relative humidity,
- without recoverable creep,
- and at high temperature.
- blackbear: Concrete Moisture Heat Transfer
- 2.9.1Blackbear shall model heat transfer and moisture transport in concrete, producing results from a 1D axisymmetric simulation that are comparable to those obtained in the MAQBETH experiment under the following scenarios:
- Using mass lumping and using a moisture model that does not provide moisture capacity
- Using mass lumping and using a moisture model that provides moisture capacity
- Without using mass lumping and using a moisture model that does not provide moisture capacity
- Without using mass lumping and using a moisture model that provides moisture capacity
- 2.9.2Blackbear shall compute the heat capacity and thermal conductivity for concrete for the following models and options:
- Constant thermal model.
- ASCE-1992 siliceous thermal model.
- ASCE-1992 carbonate thermal model.
- Kodur-2004 siliceous thermal model.
- Kodur-2004 carbonate thermal model.
- Eurocode-2004 thermal model.
- 2.9.3Blackbear shall compute the moisture capacity (where applicable) and moisture diffusivity for concrete for the following models and options:
- Bazant moisture model.
- Mensi moisture model.
- Xi moisture model for cement type = 1 and aggregate_pore_type = dense
- Xi moisture model for cement type = 2 and aggregate_pore_type = dense
- Xi moisture model for cement type = 3 and aggregate_pore_type = dense
- Xi moisture model for cement type = 4 and aggregate_pore_type = dense
- Xi moisture model for cement type = 1 and aggregate_pore_type = porous
- Xi moisture model for cement type = 2 and aggregate_pore_type = porous
- Xi moisture model for cement type = 3 and aggregate_pore_type = porous
- Xi moisture model for cement type = 4 and aggregate_pore_type = porous
- 2.9.4Blackbear shall produce an error message when parameter(s) required for the following models are not set by user:
- Constant thermal model shall generate error if ref_density is not set by user.
- Constant thermal model shall generate error if ref_specific_heat is not set by user.
- Constant thermal model shall generate error if ref_thermal_conductivity is not set by user.
- ASCE-1992 thermal model shall generate error if aggregate_type is not set by user.
- Kodur-2004 thermal model shall generate error if aggregate_type is not set by user.
- Eurocode-2004 thermal model shall generate error if ref_density is not set by user.
- Eurocode-2004 thermal model shall generate error if ref_specific_heat is not set by user.
- Bazant moisture model shall generate error if D1 is not set by user.
- Bazant moisture model shall generate error if n is not set by user.
- Bazant moisture model shall generate error if critical_relative_humidity is not set by user.
- Bazant moisture model shall generate error if coupled_moisture_diffusivity_factor is not set by user.
- Mensi moisture model shall generate error if A is not set by user.
- Mensi moisture model shall generate error if B is not set by user.
- Mensi moisture model shall generate error if cement_mass is not set by user.
- Mensi moisture model shall generate error if water_to_cement_ratio is not set by user.
- Xi moisture model shall generate error if cement_type is not set by user.
- Xi moisture model shall generate error if aggregate_pore_type is not set by user.
- Xi moisture model shall generate error if aggregate_vol_fraction is not set by user.
- Xi moisture model shall generate error if concrete_cure_time is not set by user.
- Xi moisture model shall generate error if cement_mass is not set by user.
- Xi moisture model shall generate error if aggregate_mass is not set by user.
- Xi moisture model shall generate error if water_to_cement_ratio is not set by user.
- Xi moisture model shall generate error if water_to_cement_ratio is set < 0.5.
- Kodur-2004 thermal model shall generate error if temperature is more than 635.
- Kodur-2004 thermal model shall generate error if temperature is more than 1100.
- EUROCODE-2004 thermal model shall generate error if temperature is more than 1200.
- Bazant moisture model shall generate error if temperature is less than 25.
- blackbear: Damage Plasticity Model
- 2.10.1BlackBear shall provide a damaged plasticity model for concrete, which demonstrates the desired behavior
- in uniaxial tensile loading.
- in uniaxial compressive loading.
- when factor_controlling_dilatancy is changed.
- in shear loading.
- 2.10.2Blackbear shall produce an error message when input required for the inelastic_models are not properly set by user:
- when inelastic_models is not given as damage_plasticity_model
- when inelastic_models has more than one model as input
- blackbear: Function Offset Bc
- 2.11.1Blackbear shall support Dirichlet type boundary conditions defined by a function
- for a planar boundary with positive offset location along nodal normal direction
- for a curved boundary with negative offset location along nodal normal direction
- blackbear: Mazars Damage
- 2.12.1BlackBear shall provide the Mazars model for scalar damage of concrete, predicting the correct response of a unit cube loaded
- in tension
- and in compression.
- 2.12.2The MazarsDamage model shall generate an error if used with a material that is not guaranteed isotropic
- blackbear: Mazars Tensile Bar
- 2.13.1BlackBear shall provide the Mazars scalar damage model for concrete, correctly predicting the response of a multi-element concrete bar loaded in tension
- blackbear: Neml Ancillary
- 2.14.1NEMLStateAux outputs state to aux system
- 2.14.2NEMLMaterialPropertyReset in fact resets the state variable after reaching the critical temperature
- blackbear: Neml Benchmark
- 2.15.1Blackbear shall be capable of running a TM model with inelastic material exhibiting linear strain hardening.
- 2.15.2Blackbear shall be capable of using the NEML library to simulate an inelastic material exhibiting linear strain hardening.
- 2.15.3Blackbear shall be capable of running a TM model with inelastic material exhibiting power law creep behavior.
- 2.15.4Blackbear shall be capable of using the NEML library to simulate an inelastic material exhibiting power law creep behavior.
- blackbear: Neml Complex
- 2.16.1BlackBear shall be capable of using the NEML library to compute the response of an inelastic material
- 2.16.2BlackBear shall be capable of using a timestep limit computed by the NEML coupling material
- blackbear: Neml Damage
- 2.17.1BlackBear shall output the damage value for NEML models.
- blackbear: Neml Lagrangian Jacobian
- 2.18.1Jacobian is exact with relative tolerance of 1e-7 for small strain kinematics using the total Lagrangian formulation
- 2.18.2Jacobian is exact with relative tolerance of 1e-7 for small strain kinematics using the updated Lagrangian formulation
- 2.18.3Jacobian is exact with relative tolerance of 1e-7 for large strain kinematics using the total Lagrangian formulation
- 2.18.4Jacobian is exact with relative tolerance of 1e-7 for large strain kinematics using the updated Lagrangian formulation
- blackbear: Neml Simple
- 2.19.2BlackBear shall be capable of using the NEML library to compute the response of a linearly elastic material parsed from xml. Parameters defined in the xml can be overwritten by variables in the input file.
- 2.19.3BlackBear shall be capable of using the NEML library to compute the response of a linearly elastic material defined in a material class
- blackbear: Neml Stochasticsimple
- 2.20.1BlackBear shall provide the ability to use the NEML library to model material response, and allow for parameters defined in the xml file to be overridden in the BlackBear input file
- blackbear: Steel Creep Damage Oh
- 2.21.1Blackbear shall compute steel creep damage considering stress triaxiality as per Oh et al (2011)
- and apply it reduce the finite element stress of a simple problem to simulate creep failure.
- and apply it to reduce the finite element stress of a simple problem to simulate creep failure when using automatic differentiation.
- and apply it to reduce the finite element stress of a simple two-dimensional problem to simulatecreep failure when using automatic differentiation.
- and apply it to reduce the finite element stress of a simple two-dimensional problem to simulatecreep failure when using hand-coded Jacobians.
- 2.21.2Blackbear shall compute steel creep damage
- using a single creep strain name in the input.
- using a vector of creep strain names in the input to reproduce creep strain and damage from equivalent single power law.
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
- blackbear: Neml Simple
- 2.19.1BlackBear shall be capable of interfacing with the NEML library to compute stress
- 2.19.4BlackBear shall be capable of interfacing with the NEML library to compute thermal expansion
System Operations
Human System Integration Requirements
The BlackBear 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 BlackBear) 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 BlackBear 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 Flag | Description 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 |
--yaml | Output all object descriptions and available parameters in YAML format |
--json | Output all object descriptions and available parameters in JSON format |
--syntax | Output all registered syntax |
--registry | Output all known objects and actions |
--registry-hit | Output 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 |
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 BlackBear application is software only with no associated physical media. See System Requirements for a description of the minimum required hardware necessary for running the BlackBear application.
Environmental Conditions
Not Applicable
System Security
MOOSE-based applications such as BlackBear 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
BlackBear 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 BlackBear 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 BlackBear source code. However, some MOOSE-based applications that use the BlackBear 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.