Cardinal System Design Description

This template follows INL template TEM-140, "IT System Design Description."

Introduction

Many of the phenomena related to nuclear energy systems depend on the solutions to multiple physics models, which can be described by partial differential equations that provide spatially- and temporally-varying values of solution variables. When these models for individual physics depend on one another, we call this "multiphysics." Cardinal relies on the OpenMC Monte Carlo radiation transport code and the NekRS spectral element Navier-Stokes code to perform high-fidelity multiphysics and multiscale simulation. Cardinal handles the couplings that may occur between these two codes, in addition to the numerous physics models provided by the MOOSE framework (such as solid mechanics, material science, and radiative heat transfer). This document describes the system design of Cardinal.

System Purpose

The Software Design Description provided here is description of each object in the system. The pluggable architecture of the underlying framework of Cardinal makes MOOSE and MOOSE-based applications straightforward to develop as each piece of end-user (developer) code that goes into the system follows a well-defined interface for the underlying systems that those object plug into. These descriptions are provided through developer-supplied "markdown" files that are required for all new objects that are developed as part of Cardinal. More information about the design documentation for MOOSE-based applications like Cardinal can be found in Documenting MOOSE.

System Scope

Cardinal is an application for performing high-fidelity simulation of nuclear systems incorporating Monte Carlo neutron-photon transport and/or spectral element CFD. These physics can be combined with one another and with the MOOSE modules to accomplish "multiphysics" simulation. High-fidelity simulations can also be performed independently, for the purpose of data postprocessing, to generate constitutive models suitable for lower-fidelity tools, a process referred to as "multiscale" simulation.

Interfaces to other MOOSE-based codes, including systems-level thermal-hydraulics (SAM), heat pipe flows (Sockeye), and fuel performance (Bison) are also optionally included to support Cardinal simulations. Cardinal enables high-fidelity modeling of heat transfer, fluid flow, passive scalar transport, fluid-structure interaction, nuclear heating, tritium breeding, shielding effectiveness, material activation, material damage, and sensor response. The MultiApp System is leveraged to allow for the multiscale, multiphysics coupling. Further, other MOOSE capabilities in the modules, such as the Stochastic Tools Module enable engineering studies with uncertainty quantification and sensitivity analysis. Cardinal therefore supports design, safety, engineering, and research projects.

Dependencies and Limitations

Cardinal inherits the software dependencies of: - MOOSE framework - OpenMC - NekRS - DAGMC

No additional dependencies are present.

Definitions and Acronyms

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

Definitions

  • Pull (Merge) Request: A proposed change to the software (e.g. usually a code change, but may also include documentation, requirements, design, and/or testing).

  • Baseline: A specification or product (e.g., project plan, maintenance and operations (M&O) plan, requirements, or design) that has been formally reviewed and agreed upon, that thereafter serves as the basis for use and further development, and that can be changed only by using an approved change control process (NQA-1, 2009).

  • Validation: Confirmation, through the provision of objective evidence (e.g., acceptance test), that the requirements for a specific intended use or application have been fulfilled (24765:2010(E), 2010).

  • 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
ANLArgonne National Laboratory
APIApplication Programming Interface
CADComputer Aided Design
CFDComputational Fluid Dynamics
DOEDepartment of Energy
FEfinite element
HITHierarchical Input Text
HPCHigh Performance Computing
I/OInput/Output
INLIdaho National Laboratory
MOOSEMultiphysics Object Oriented Simulation Environment
MPIMessage Passing Interface
SDDSoftware Design Description

Design Stakeholders and Concerns

Design Stakeholders

Stakeholders for Cardinal include several of the funding sources including Department of Energy (DOE), INL, and Argonne National Laboratory (ANL). However, since Cardinal is an open-source project, several universities, companies, and foreign governments have an interest in the development and maintenance of the Cardinal project.

Stakeholder Design Concerns

Concerns from many of the stakeholders are similar. These concerns include correctness, stability, and performance. The mitigation plan for each of these can be addressed. For correctness, Cardinal development requires either regression or unit testing for all new code added to the repository. The project contains several comparisons against analytical solutions where possible and also other verification methods such as MMS. For stability, Cardinal maintains multiple branches to incorporate several layers of testing both internally and for dependent applications. Finally, performance tests are also performed as part of the the normal testing suite to monitor code change impacts to performance.

System Design

Cardinal relies on OpenMC to solve for neutron-photon transport (optionally on Computer Aided Design (CAD) geometries by relying on DAGMC). Cardinal also relies on NekRS to solve for fluid flow, heat transfer, and species transport. Cardinal integrates these external libraries within the structure of a MOOSE application, allowing these external libraries to be coupled to existing capabilities and interfaces in the MOOSE framework, such as for physics modeling (e.g., with the MOOSE modules or with other MOOSE applications) or data processing. Because Cardinal is based upon MOOSE, it employs the same concept of modular code objects that define all aspects of the solutions for physics. Cardinal provides specialized

- AuxKernels classes that extract internal solution fields in NekRS and OpenMC - Controls classes that modify NekRS and OpenMC simulations on-the-fly - Mesh classes to build the NekRS and OpenMC geometries in a MOOSE-compatible format, and modify existing meshes useful for postprocessing NekRS and OpenMC simulations - Postprocessors classes that query the NekRS and OpenMC simulations at points, through spatial integrals, etc. - Problem classes to execute NekRS and OpenMC as MOOSE applications and facilitate data transfer - TimeStepper classes to control time stepping based on NekRS's adaptive time stepping routines - UserObjects classes that spatially process the NekRS and OpenMC simulations

Cardinal also provides custom syntax for creating OpenMC tallies needed for multiphysics.

System Structure

Cardinal relies on the MOOSE framework to provide the core functionality of solving multiphysics problems. Cardinal replaces the actual physics solves with external API calls to OpenMC and NekRS, but relies on MOOSE for timestepping, synchronization, data transfers, and overall parallelization. Additional physics needed beyond OpenMC and NekRS are obtained from the MOOSE modules.

A summary listing of the current modules required for complete Cardinal operation are shown below:

Cardinal's Makefile also includes other modules which are by default enabled, due to their common usage with Cardinal (though they are not strictly required).

The structure of Cardinal is based on defining C++ classes that derive from classes in the MOOSE framework or modules that provide functionality that is specifically tailored to nuclear modeling and simulation. By using the interfaces defined in MOOSE base classes for these classes, Cardinal is able to rely on MOOSE to execute these models at the appropriate times during the simulation and use their results in the desired ways.

Data Design and Control

At a high level, the system is designed to process HIT input files to construct several objects that will constitute an FE simulation. Some of the objects in the simulation may in turn load other file-based resources to complete the simulation. Examples include meshes or data files. The system will then assemble systems of equations and solve them using the libraries of the Code Platform. The system can then output the solution in one or more supported output formats commonly used for visualization.

Human-Machine Interface Design

The Cardinal application is a command-line driven program. All interaction with Cardinal is ultimately done through the command line. This is typical for HPC applications that use the MPI interface for running on super computing clusters. Optional GUIs may be used to assist in creating input files and launching executables on the command line.

System Design Interface

All external system interaction is performed either through file I/O or through local API calls. Neither Cardinal, nor the MOOSE framework, nor the MOOSE modules are designed to interact with any external system directly through remote procedure calls. Any code to code coupling performed using the framework are done directly through API calls either in a static binary or after loading shared libraries.

Security Structure

The Cardinal application does not require any elevated privileges to operate and does not run any stateful services, daemons or other network programs. Distributed runs rely on the MPI library.

Requirements Cross-Reference

  • cardinal: HeatTransferCoefficientAux
  • 1.1.2The system shall compute a convective heat transfer coefficient using userobjects for the wall heat flux, wall temperature, and bulk temperature.

    Specification(s): h

    Design: HeatTransferCoefficientAux

    Issue(s): #1081

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • cardinal: NekRSProblem
  • 1.3.7A coupled MOOSE-nekRS pincell-fluid flow problem shall predict correct conservation of energy and realistic thermal solutions. Exact conservation of energy (based on the power imposed in the solid) will not be observed because some heat flux GLL points are also on Dirichlet boundaries, which win in boundary condition ties.

    Specification(s): sfr_pincell

    Design: NekRSProblem

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.3.8Individually conserving heat flux sideset by sideset shall give equivalent results to the all-combined option when there is just one coupling sideset. The gold file for this test is identical to that for the sfr_pincell case.

    Specification(s): sfr_pincell_vpp

    Design: NekRSProblem

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.3.9The system shall allow imposing heat flux through a dummy main application, instead of coupling NekRS via conjugate heat transfer. This is verified by computing the heat flux on the NekRS mesh, which adequately matches an initial value set in a postprocessor. This gold file is also identical to that obtained by running a dummy main app (solid_dummy) that passes in the desired flux_integral initial condition.

    Specification(s): impose_heat_flux

    Design: NekRSProblem

    Issue(s): #797

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • cardinal: BoratedWater
  • 1.6.1The system shall error if an invalid minimum boron ppm is provided.

    Specification(s): negative_min

    Design: BoratedWater

    Issue(s): #1158

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.6.2The system shall error if an invalid maximum boron ppm is provided.

    Specification(s): non_dilute

    Design: BoratedWater

    Issue(s): #1158

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.6.3The system shall warn the user if nuclides will be erased by the borated water criticality search. This test covers both non-H,B,O elements as well as non-natural isotopes of these elements.

    Specification(s): warn_nuclides

    Design: BoratedWater

    Issue(s): #1158

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.6.4The system shall warn the user if they are omitting a nuclide from their cross section library which is irrelevant for boric acid control.

    Specification(s): absent_nuclides

    Design: BoratedWater

    Issue(s): #1158

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.6.5The system shall perform a criticality search based on boron weight ppm in water. This test changes the water density and then searches for a criticality point; the resulting ppm is compared to a standalone OpenMC model (the comparison is done when running with many more particles for both scenarios). The multiplication factors agree within statistics. Due to floating point non-determinism, the actual test only compares that k matches unity within the desired convergence tolerance.

    Specification(s): borated_water

    Design: BoratedWater

    Issue(s): #1158

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • cardinal: AddCriticalitySearchAction
  • 1.6.6The system shall error if a criticality search is not paired with the correct problem class.

    Specification(s): wrong_problem

    Design: AddCriticalitySearchAction

    Issue(s): #1158

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.6.7The system shall error if invalid values are provided for the range of values to consider for the criticality search.

    Specification(s): min_max

    Design: AddCriticalitySearchAction

    Issue(s): #1158

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.6.8The system shall warn if the selected tolerance might cause failure to converge due to high statistical noise.

    Specification(s): too_tight_tolerance

    Design: AddCriticalitySearchAction

    Issue(s): #1158

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.6.9The system shall error if the criticality search does not converge.

    Specification(s): fail_converge

    Design: AddCriticalitySearchAction

    Issue(s): #1158

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.6.10The system shall conduct a criticality search based on material density. This test is created by running a criticality search with a high particle count (1-sigma less than 10 pcm on k) and comparing the critical search result against a standalone OpenMC simulation which is run at the identified critical value of material density. The two approaches match within statistics. Due to floating point non-determinism, the actual test just checks that k converges to the target within the desired tolerance.

    Specification(s): search

    Design: AddCriticalitySearchAction

    Issue(s): #1158

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.6.11The system shall conduct a criticality search with a non-unity target k. This test is created by running a criticality search with a high particle count (1-sigma less than 10 pcm on k) and comparing the critical search result against a standalone OpenMC simulation which is run at the identified critical value of material density. The two approaches match within statistics. Due to floating point non-determinism, the actual test just checks that k converges to the target within the desired tolerance.

    Specification(s): search_with_target

    Design: AddCriticalitySearchAction

    Issue(s): #1158

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.6.12The system shall error if an invalid minimum density is provided.

    Specification(s): negative_min

    Design: AddCriticalitySearchAction

    Issue(s): #1158

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • cardinal: RotationSearch
  • 1.6.13The system shall error if the minmum search value passed to a RotationSearch is negative.

    Specification(s): bad_lower_bound

    Design: RotationSearch

    Issue(s): #1294

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.6.14The system shall error if the maximum search value passed to a RotationSearch is greater than 360 degrees.

    Specification(s): bad_upper_bound

    Design: RotationSearch

    Issue(s): #1294

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.6.15The system shall conduct a criticality search by modifying a cell rotation. This test is created by running a criticality search with a high particle count (1-sigma less than 10 pcm on k) and comparing the critical search result against a standalone OpenMC simulation which is run at the identified critical value of material density. The two approaches match within statistics. Due to floating point non-determinism, the actual test just checks that k converges to the target within the desired tolerance.

    Specification(s): rotation_search

    Design: RotationSearch

    Issue(s): #1294

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • cardinal: MeshTally
  • 1.22.1The system shall allow problems which contain adaptivity on the mesh mirror for cell tallies.

    Specification(s): adaptive_cell

    Design: MeshTally OpenMCCellAverageProblem

    Issue(s): #1054

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.2The system shall allow problems which contain adaptivity on the mesh mirror for mesh tallies.

    Specification(s): adaptive_mesh

    Design: MeshTally OpenMCCellAverageProblem

    Issue(s): #1054

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.3The system shall error if adaptivity is active and tallying on a mesh template instead of the mesh block.

    Specification(s): adaptive_mesh_template

    Design: MeshTally OpenMCCellAverageProblem

    Issue(s): #1054

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.4The system shall error if adaptivity is active and a relaxation scheme is requested.

    Specification(s): adaptive_relaxation

    Design: MeshTally OpenMCCellAverageProblem

    Issue(s): #1054

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.5The system shall skip running OpenMC when the mesh is unchanged by adaptivity.

    Specification(s): skip_openmc_unchanged

    Design: MeshTally OpenMCCellAverageProblem

    Issue(s): #1054

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.6The system shall run OpenMC on the first Picard iteration regardless of the mesh being previouslyunchanged by adaptivity. This test relies on noise in the solution; if OpenMC runs more than onceper Picard iteration the PRNG seed changes and so the tally results will be different.

    Specification(s): skip_openmc_unchanged_picard

    Design: MeshTally OpenMCCellAverageProblem

    Issue(s): #1054

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.170The system shall be capable of block restricting CellTally variables.

    Specification(s): block_restrict_cell

    Design: CellTallyMeshTally

    Issue(s): #1195

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.208The system shall allow a mesh tally for coupling OpenMC, without any physics feedback.

    Specification(s): no_coupling

    Design: MeshTally

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.209The heat source shall be tallied on an unstructured mesh and normalized against a local tally when a single mesh is used.

    Specification(s): one_mesh

    Design: MeshTally

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.210This test is nearly identical to one_mesh. The difference lies in having no mesh_template in the input file. Without one, the system should be able to directly tally on a moose mesh instead of a file

    Specification(s): one_mesh_no_input_file

    Design: MeshTally

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.211The system shall error if attempting to directly tally on a MOOSE mesh that is distributed, since all meshes are always replicated in OpenMC.

    Specification(s): moose_mesh_tally_distributed

    Design: MeshTally

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.212The system shall allow users to use a mesh tally based on the mesh mirror with scaling. The gold file contains relative errors for an unscaled version of the test. The test itself scales the mesh down in the mesh block, and scales it back up with 'scaling'. If 'scaling' is not applied to the mesh mirror, the relative errors will change due to the difference in element volumes. The min/max values in the gold files are manually converted from W/cm3 (no scaling) to W/m3 (scaled).

    Specification(s): scaling

    Design: MeshTally

    Issue(s): #1246

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.213The heat source shall be tallied on an unstructured mesh and normalized against a global tally when a single mesh is used. This test was run with successively finer meshes (from 256 elements to 94k elements) to show that the power of the mesh tally approaches the value of a cell tally as the difference in volume decreases.

    Specification(s): one_mesh_global

    Design: MeshTally

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.214Mesh tallies shall allow for block restrictions to be applied.

    Specification(s): block_restrict

    Design: MeshTally

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.215The heat source shall be tallied on an unstructured mesh and normalized against a local tally when multiple identical meshes are used.

    Specification(s): multiple_meshes

    Design: MeshTally

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.216The heat source shall be tallied on an unstructured mesh and normalized against a global tally when multiple identical meshes are used. This test was run with successively finer meshes (from 256 elements to 94k elements) to show that the power of the mesh tally approaches the value of a cell tally as the difference in volume decreases.

    Specification(s): multiple_meshes_global

    Design: MeshTally

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.217The heat source shall be correctly projected onto a Mesh in units of meters when the tally mesh template is in units of centimeters.

    Specification(s): different_units

    Design: MeshTally

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.218The heat source shall be correctly projected onto a Mesh in units of meters when the tally mesh template and translations are in units of centimeters. The output was compared against the multiple_meshes case, which used an input entirely specified in terms of centimeters.

    Specification(s): different_units_and_translations

    Design: MeshTally

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.219The fission tally standard deviation shall be output correctly for unstructured mesh tallies.

    Specification(s): fission_tally_std_dev

    Design: MeshTally

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.220Mesh tallies shall temporarily require disabled renumbering until capability is available

    Specification(s): disable_renumbering

    Design: MeshTally

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.221Mesh tallies shall error if the user attempts to apply a block restriction when using a mesh template.

    Specification(s): file_mesh_block_restrict

    Design: MeshTally

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.222Mesh tallies shall error if the user attempts to apply a block restriction with no blocks.

    Specification(s): block_restrict_no_blocks

    Design: MeshTally

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.285The system shall correctly label elements in blocks which don't contain temperature feedback, density feedback, or a cell tally as unmapped.

    Specification(s): cell_tally_unmapped

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.286The system shall correctly normalize local tallies with different estimators using multiple global tallies.

    Specification(s): multi_global_estimator

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.287The system shall correctly apply and normalize two different CellTally objects with different scores. The gold file was generated using an input that had a single CellTally with multiple scores.

    Specification(s): multiple_tallies_cell

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.288The system shall correctly apply and normalize two different MeshTally objects with different scores. The gold file was generated using an input that had a single MeshTally with multiple scores.

    Specification(s): multiple_tallies_mesh

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.289The system shall correctly apply and normalize two different CellTally objects with different scores and triggers. The gold file was generated using an input that had a single CellTally with multiple scores and triggers.

    Specification(s): multiple_tallies_cell_triggers

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.290The system shall correctly apply and normalize two different MeshTally objects with different scores and triggers. The gold file was generated using an input that had a single MeshTally with multiple scores and triggers.

    Specification(s): multiple_tallies_mesh_triggers

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.291The system shall correctly apply and normalize two different CellTally objects with different scores when using relaxation. The gold file was generated using an input that had a single CellTally with multiple scores when using relaxation.

    Specification(s): multiple_tallies_cell_relax

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.292The system shall correctly apply and normalize two different MeshTally objects with different scores when using relaxation. The gold file was generated using an input that had a single MeshTally with multiple scores when using relaxation.

    Specification(s): multiple_tallies_mesh_relax

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.293The system shall error if more than one tally is provided and the requested heating score is in none of the tallies.

    Specification(s): multi_no_norm

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.294The system shall allow calculations with multiple different tallies.

    Specification(s): multiple_different_tallies

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.295The system shall allow calculations with multiple different tally outputs.

    Specification(s): multiple_different_outputs

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.296The system shall allow multiple tallies to use the same scores.

    Specification(s): same_scores

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.297The system shall error if two tallies score the normalization score and the user does not specify which to use for normalization.

    Specification(s): two_kf_unspecified_norm

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.298The system shall error if two tallies scoring the same score add the same variable names.

    Specification(s): duplicate_names

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.299The system shall error if attempting to use separate tallies when adding two tallies with the same score.

    Specification(s): duplicate_scores_separate_tallies

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • cardinal: OpenMCCellAverageProblem
  • 1.22.1The system shall allow problems which contain adaptivity on the mesh mirror for cell tallies.

    Specification(s): adaptive_cell

    Design: MeshTally OpenMCCellAverageProblem

    Issue(s): #1054

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.2The system shall allow problems which contain adaptivity on the mesh mirror for mesh tallies.

    Specification(s): adaptive_mesh

    Design: MeshTally OpenMCCellAverageProblem

    Issue(s): #1054

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.3The system shall error if adaptivity is active and tallying on a mesh template instead of the mesh block.

    Specification(s): adaptive_mesh_template

    Design: MeshTally OpenMCCellAverageProblem

    Issue(s): #1054

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.4The system shall error if adaptivity is active and a relaxation scheme is requested.

    Specification(s): adaptive_relaxation

    Design: MeshTally OpenMCCellAverageProblem

    Issue(s): #1054

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.5The system shall skip running OpenMC when the mesh is unchanged by adaptivity.

    Specification(s): skip_openmc_unchanged

    Design: MeshTally OpenMCCellAverageProblem

    Issue(s): #1054

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.6The system shall run OpenMC on the first Picard iteration regardless of the mesh being previouslyunchanged by adaptivity. This test relies on noise in the solution; if OpenMC runs more than onceper Picard iteration the PRNG seed changes and so the tally results will be different.

    Specification(s): skip_openmc_unchanged_picard

    Design: MeshTally OpenMCCellAverageProblem

    Issue(s): #1054

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.7The system shall error if attempting to use an axisymmetric mesh mirror because MOOSE's element volume functions only return areas for axisymmetric.

    Specification(s): error

    Design: OpenMCCellAverageProblem

    Issue(s): #1222

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.30The system shall error if the cell containing the DAGMC universe is not contained in the root universe. If so, we cannot guarantee that the DAGMC geometry is not replicated and the skinner may produce an incorrect skin.

    Specification(s): dag_cell_not_root

    Design: MoabSkinnerOpenMCCellAverageProblem

    Issue(s): #1177

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.31The system shall error if the DAGMC universe is used as a lattice element. If so, the DAGMC geometry may be replicated and so the skinner may produce an incorrect skin.

    Specification(s): dag_in_lattice

    Design: MoabSkinnerOpenMCCellAverageProblem

    Issue(s): #1177

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.32The system shall error if the DAGMC universe is used as a lattice element. If so, the DAGMC geometry may be replicated and so the skinner may produce an incorrect skin.

    Specification(s): dag_lattice_outer

    Design: MoabSkinnerOpenMCCellAverageProblem

    Issue(s): #1177

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.33The system shall error if the user attempts to map both CSG and DAGMC geometry to the MOOSE mesh.

    Specification(s): csg_with_dag_feedback

    Design: MoabSkinnerOpenMCCellAverageProblem

    Issue(s): #1177

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.34The system shall error if the DAGMC universe is used by multiple cells. If so, the DAGMC geometry is replicated and so the skinner will produce an incorrect skin.

    Specification(s): multi_dag_uni_cells

    Design: MoabSkinnerOpenMCCellAverageProblem

    Issue(s): #1177

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.35The system shall error if there are more than one DAGMC universe. If so, the universe to skin cannot be automatically determined.

    Specification(s): multi_dag_uni

    Design: MoabSkinnerOpenMCCellAverageProblem

    Issue(s): #1177

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.36The system shall allow for the use of CSG and DAGMC geometry when using the MoabSkinner.

    Specification(s): allows_csg_with_skinner

    Design: MoabSkinnerOpenMCCellAverageProblem

    Issue(s): #1176#1177

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.37The system shall allow a material to be specified both in a cell with density feedback and a cell without density feedback. The gold file for this test was generated with a duplicated material of the feedback cell fill in the respective non-feedback cell.

    Specification(s): allow_mat_diff_cell

    Design: OpenMCCellAverageProblem

    Issue(s): #1197

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.42The system shall allow density feedback in OpenMC models per cell without requiring unique cell materials. This model was compared against a model with unique materials per cell.

    Specification(s): pincell

    Design: OpenMCCellAverageProblem

    Issue(s): #1197

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.200The system shall be able to compute IFP quantities on changing geometries.

    Specification(s): ifp_changing

    Design: OpenMCCellAverageProblem

    Issue(s): #1235

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.201The system shall error if the problem attempts to enable IFP calculations when running in fixed source mode.

    Specification(s): non_k_eig

    Design: OpenMCCellAverageProblem

    Issue(s): #1104

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.202The system shall be able to calculate neutron kinetics parameters.

    Specification(s): compute_both

    Design: LambdaEffectiveBetaEffectiveOpenMCCellAverageProblem

    Issue(s): #1104#1107

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.203The system shall be able to calculate separate values of beta_eff for each delayed group in the ENDF delayed group structure.

    Specification(s): six_group_beta

    Design: LambdaEffectiveBetaEffectiveOpenMCCellAverageProblem

    Issue(s): #1104#1107

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.204The system shall error if the problem does not enable IFP calculations and attempts to add an LambdaEffective post processor.

    Specification(s): no_ifp_lambda

    Design: LambdaEffectiveBetaEffectiveOpenMCCellAverageProblem

    Issue(s): #1104#1107

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.205The system shall error if the problem does not enable IFP calculations and attempts to add a BetaEffective post processor.

    Specification(s): no_ifp_beta

    Design: LambdaEffectiveBetaEffectiveOpenMCCellAverageProblem

    Issue(s): #1104#1107

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.206The system shall error if the problem does not enable IFP calculations and attempts to add a BetaEffective post processor.

    Specification(s): more_ifp_gen_then_inactive

    Design: LambdaEffectiveBetaEffectiveOpenMCCellAverageProblem

    Issue(s): #1104#1107

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.223The system shall support nearest temperature interpolation when running in multi-group mode.

    Specification(s): nearest

    Design: OpenMCCellAverageProblem

    Issue(s): #1292

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.224The system shall support linear temperature interpolation when running in multi-group mode.

    Specification(s): interpolation

    Design: OpenMCCellAverageProblem

    Issue(s): #1292

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.225The system shall support void regions when running in multi-group mode.

    Specification(s): nearest

    Design: OpenMCCellAverageProblem

    Issue(s): #1317

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.226The system shall warn the user if there is an inconsistency between a moving mesh and the underlying OpenMC geometry.

    Specification(s): inconsistency

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.227The system shall correctly reinitialize cell tallies when the mesh is moving. This is tested by translating the mesh over a stationary OpenMC model. The two cell tallies in the tallies.out file match the expected power density (accounting for the actual fractions of the cell which map to the moving mesh). This test also checks the cell IDs and instances as the mesh translates.

    Specification(s): cell_tally

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.228The system shall correctly use a mesh tally on a moving MOOSE mesh. This is tested by translating the mesh over a stationary OpenMC model. The mesh translation exposes 20 percent of the left subdomain, which from a non-moving case we record 8 percent of the total power deposition in this region. For the moving mesh case, the total power deposited in the mesh tally is 92 percent.

    Specification(s): mesh_tally

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.229The system shall generate a file for mesh tallies.

    Specification(s): make_mesh

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): RunApp

  • 1.22.230The system shall error if tallying on a file mesh for moving mesh cases, because there will be a disagreement between the mesh elements and the Mesh.

    Specification(s): file_mesh

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.231The system shall correctly reinitialize temperature mapping and output of cell temperatures to a moving mesh. This is tested by applying temperatures based on the moving mesh.

    Specification(s): temperature

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.232The system shall correctly reinitialize density mapping and output of cell densities and material fills to a moving mesh. This is tested by applying densities based on the moving mesh.

    Specification(s): density

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.233The system shall correctly reinitialize volume calculations for a moving mesh. This is tested by comparing the OpenMC stochastic volume calculation against postprocessors for changing volumes.

    Specification(s): volumes

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.234The system shall change the OpenMC mesh geometry on-the-fly. This is tested by running this case with a very high number of particles and batches, to compare against the CSG case in the reference folder. The reference case is a CSG model created at the deformed state. We cannot match these cases perfectly because we cannot control the seed of the second Picard iteration. The reference case gives k = 0.88782 plus or minus 5 pcm, and our Cardinal case gives 0.88786 plus of minus 5 pcm; these agree within 1 sigma.

    Specification(s): scale

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.235A statepoint file must be written when the batches parameter matches the batches in settings.xml and they are both specified.

    Specification(s): check_statepoint_exists

    Design: OpenMCCellAverageProblem

    Issue(s): #1261

    Collection(s): FUNCTIONAL

    Type(s): CheckFiles

  • cardinal: MoabSkinner
  • 1.22.30The system shall error if the cell containing the DAGMC universe is not contained in the root universe. If so, we cannot guarantee that the DAGMC geometry is not replicated and the skinner may produce an incorrect skin.

    Specification(s): dag_cell_not_root

    Design: MoabSkinnerOpenMCCellAverageProblem

    Issue(s): #1177

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.31The system shall error if the DAGMC universe is used as a lattice element. If so, the DAGMC geometry may be replicated and so the skinner may produce an incorrect skin.

    Specification(s): dag_in_lattice

    Design: MoabSkinnerOpenMCCellAverageProblem

    Issue(s): #1177

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.32The system shall error if the DAGMC universe is used as a lattice element. If so, the DAGMC geometry may be replicated and so the skinner may produce an incorrect skin.

    Specification(s): dag_lattice_outer

    Design: MoabSkinnerOpenMCCellAverageProblem

    Issue(s): #1177

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.33The system shall error if the user attempts to map both CSG and DAGMC geometry to the MOOSE mesh.

    Specification(s): csg_with_dag_feedback

    Design: MoabSkinnerOpenMCCellAverageProblem

    Issue(s): #1177

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.34The system shall error if the DAGMC universe is used by multiple cells. If so, the DAGMC geometry is replicated and so the skinner will produce an incorrect skin.

    Specification(s): multi_dag_uni_cells

    Design: MoabSkinnerOpenMCCellAverageProblem

    Issue(s): #1177

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.35The system shall error if there are more than one DAGMC universe. If so, the universe to skin cannot be automatically determined.

    Specification(s): multi_dag_uni

    Design: MoabSkinnerOpenMCCellAverageProblem

    Issue(s): #1177

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.36The system shall allow for the use of CSG and DAGMC geometry when using the MoabSkinner.

    Specification(s): allows_csg_with_skinner

    Design: MoabSkinnerOpenMCCellAverageProblem

    Issue(s): #1176#1177

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.226The system shall warn the user if there is an inconsistency between a moving mesh and the underlying OpenMC geometry.

    Specification(s): inconsistency

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.227The system shall correctly reinitialize cell tallies when the mesh is moving. This is tested by translating the mesh over a stationary OpenMC model. The two cell tallies in the tallies.out file match the expected power density (accounting for the actual fractions of the cell which map to the moving mesh). This test also checks the cell IDs and instances as the mesh translates.

    Specification(s): cell_tally

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.228The system shall correctly use a mesh tally on a moving MOOSE mesh. This is tested by translating the mesh over a stationary OpenMC model. The mesh translation exposes 20 percent of the left subdomain, which from a non-moving case we record 8 percent of the total power deposition in this region. For the moving mesh case, the total power deposited in the mesh tally is 92 percent.

    Specification(s): mesh_tally

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.229The system shall generate a file for mesh tallies.

    Specification(s): make_mesh

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): RunApp

  • 1.22.230The system shall error if tallying on a file mesh for moving mesh cases, because there will be a disagreement between the mesh elements and the Mesh.

    Specification(s): file_mesh

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.231The system shall correctly reinitialize temperature mapping and output of cell temperatures to a moving mesh. This is tested by applying temperatures based on the moving mesh.

    Specification(s): temperature

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.232The system shall correctly reinitialize density mapping and output of cell densities and material fills to a moving mesh. This is tested by applying densities based on the moving mesh.

    Specification(s): density

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.233The system shall correctly reinitialize volume calculations for a moving mesh. This is tested by comparing the OpenMC stochastic volume calculation against postprocessors for changing volumes.

    Specification(s): volumes

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.234The system shall change the OpenMC mesh geometry on-the-fly. This is tested by running this case with a very high number of particles and batches, to compare against the CSG case in the reference folder. The reference case is a CSG model created at the deformed state. We cannot match these cases perfectly because we cannot control the seed of the second Picard iteration. The reference case gives k = 0.88782 plus or minus 5 pcm, and our Cardinal case gives 0.88786 plus of minus 5 pcm; these agree within 1 sigma.

    Specification(s): scale

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • cardinal: AzimuthalAngleFilter
  • 1.22.92The system shall be capable of adding an AzimuthalAngleFilter to a CellTally with bins that are provided. This test also ensures the binned fluxes sum to the total flux through the use of global normalization.

    Specification(s): azimuthal_cell_provided_bins

    Design: AzimuthalAngleFilter

    Issue(s): #1249

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.93The system shall be capable of adding an AzimuthalAngleFilter to a CellTally with equally spaced bins. This test also ensures the binned fluxes sum to the total flux through the use of global normalization.

    Specification(s): azimuthal_cell_equally_spaced_bins

    Design: AzimuthalAngleFilter

    Issue(s): #1249

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.94The system shall be capable of adding an AzimuthalAngleFilter to a MeshTally.

    Specification(s): azimuthal_mesh

    Design: AzimuthalAngleFilter

    Issue(s): #1249

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.95The system shall correctly compute azimuthal binned fluxes with mesh tallies such that the sum of the flux over each bin equals the total flux. The gold file was generated with an input file that scored the flux without a AzimuthalAngleFilter.

    Specification(s): bin_sum

    Design: AzimuthalAngleFilter

    Issue(s): #1249

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.96The system shall error if 'azimuthal_angle_boundaries' doesn't contain enough boundaries to form bins.

    Specification(s): not_enough_provided_bnds

    Design: AzimuthalAngleFilter

    Issue(s): #1249

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.97The system shall automatically sort bins to ensure they're monotonically increasing.

    Specification(s): bnds_wrong_order

    Design: AzimuthalAngleFilter

    Issue(s): #1249

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.98The system shall error if neither 'num_equal_divisions' or 'azimuthal_angle_boundaries' are provided.

    Specification(s): no_bins

    Design: AzimuthalAngleFilter

    Issue(s): #1249

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.99The system shall error if both 'num_equal_divisions' and 'azimuthal_angle_boundaries' are provided.

    Specification(s): both_bins

    Design: AzimuthalAngleFilter

    Issue(s): #1249

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • cardinal: DelayedGroupFilter
  • 1.22.100The system shall be capable of adding a DelayedGroupFilter to delayed neutron scores.

    Specification(s): delayed

    Design: DelayedGroupFilter

    Issue(s): #1207

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.101The system shall error if the use attempts to add a DelayedGroupFilter to a tally with non-delayed scores.

    Specification(s): delayed_scores

    Design: DelayedGroupFilter

    Issue(s): #1207

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • cardinal: EnergyFilter
  • 1.22.102The system shall be capable of adding an EnergyFilter (with energy boundaries provided) to a CellTally. This test also ensures multi-group fluxes sum to the total flux for cell tallies.

    Specification(s): energy_cell_bnds

    Design: EnergyFilter

    Issue(s): #1249

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.103The system shall be capable of adding an EnergyFilter (with a group structure) to a CellTally. This test also ensures multi-group fluxes sum to the total flux for cell tallies.

    Specification(s): energy_cell_structure

    Design: EnergyFilter

    Issue(s): #1249

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.104The system shall be capable of adding an EnergyFilter to a MeshTally.

    Specification(s): energy_mesh

    Design: EnergyFilter

    Issue(s): #1249

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.105The system shall correctly compute multi-group fluxes with mesh tallies such that the sum of the flux over each group equals the total flux. The gold file was generated with an input file that scored the flux without an EnergyFilter.

    Specification(s): group_sum

    Design: EnergyFilter

    Issue(s): #1249

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.106The system shall error if there aren't enough energy boundaries to form an EnergyTally.

    Specification(s): not_enough_bnds

    Design: EnergyFilter

    Issue(s): #1249

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.107The system shall automatically sort bins to ensure they're monotonically increasing.

    Specification(s): bnds_wrong_order

    Design: EnergyFilter

    Issue(s): #1249

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.108The system shall error if no energy bins are provided.

    Specification(s): missing_bins

    Design: EnergyFilter

    Issue(s): #1249

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.109The system shall error if no energy bins are provided.

    Specification(s): both_bins

    Design: EnergyFilter

    Issue(s): #1249

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.110The system shall error if duplicate energy boundaries are provided.

    Specification(s): duplicate_bnds

    Design: EnergyFilter

    Issue(s): #1249

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.111The system shall error if negative energy boundaries are provided.

    Specification(s): negative_bnds

    Design: EnergyFilter

    Issue(s): #1249

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • cardinal: EnergyOutFilter
  • 1.22.112The system shall be capable of adding an EnergyOutFilter (with energy boundaries provided).

    Specification(s): energy_cell_bnds

    Design: EnergyOutFilter

    Issue(s): #1094

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.113The system shall be capable of adding an EnergyOutFilter (with a group structure).

    Specification(s): energy_cell_structure

    Design: EnergyOutFilter

    Issue(s): #1094

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.114The system shall error if the user attempts to use a non-analog estimator with an EnergyOutFilter.

    Specification(s): force_analog

    Design: EnergyOutFilter

    Issue(s): #1094

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • cardinal: AngularLegendreFilter
  • 1.22.115The system shall support Legendre filters in the scattering angle.

    Specification(s): legendre_l1

    Design: AngularLegendreFilter

    Issue(s): #1094

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.116The L0 Legendre moment in a L>0 Legendre expansion shall match the scattering reaction rate computed without a Legendre filter. This ensures that the L>0 Legendre moments are skipped during normalization.The gold file for this test was generated without a Legendre filter.

    Specification(s): l0_in_l1_vs_no_legendre

    Design: AngularLegendreFilter

    Issue(s): #1094

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.117The system shall error if the user attempts to use a non-analog estimator with an AngularLegendreFilter.

    Specification(s): force_analog

    Design: AngularLegendreFilter

    Issue(s): #1094

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • cardinal: PolarAngleFilter
  • 1.22.119The system shall be capable of adding an PolarAngleFilter to a CellTally with bins that are provided. This test also ensures the binned fluxes sum to the total flux through the use of global normalization.

    Specification(s): polar_cell_provided_bins

    Design: PolarAngleFilter

    Issue(s): #1249

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.120The system shall be capable of adding an PolarAngleFilter to a CellTally with equally spaced bins. This test also ensures the binned fluxes sum to the total flux through the use of global normalization.

    Specification(s): polar_cell_equally_spaced_bins

    Design: PolarAngleFilter

    Issue(s): #1249

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.121The system shall be capable of adding an PolarAngleFilter to a MeshTally.

    Specification(s): polar_mesh

    Design: PolarAngleFilter

    Issue(s): #1249

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.122The system shall correctly compute polar binned fluxes with mesh tallies such that the sum of the flux over each bin equals the total flux. The gold file was generated with an input file that scored the flux without a PolarAngleFilter.

    Specification(s): bin_sum

    Design: PolarAngleFilter

    Issue(s): #1249

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.123The system shall error if 'polar_angle_boundaries' doesn't contain enough boundaries to form bins.

    Specification(s): not_enough_provided_bnds

    Design: PolarAngleFilter

    Issue(s): #1249

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.124The system shall automatically sort bins to ensure they're monotonically increasing.

    Specification(s): bnds_wrong_order

    Design: PolarAngleFilter

    Issue(s): #1249

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.125The system shall error if neither 'num_equal_divisions' or 'polar_angle_boundaries' are provided.

    Specification(s): no_bins

    Design: PolarAngleFilter

    Issue(s): #1249

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.126The system shall error if both 'num_equal_divisions' and 'polar_angle_boundaries' are provided.

    Specification(s): both_bins

    Design: PolarAngleFilter

    Issue(s): #1249

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • cardinal: SphericalHarmonicsFilter
  • 1.22.127The system shall support spherical harmonics filters.

    Specification(s): sh_l1

    Design: SphericalHarmonicsFilter

    Issue(s): #1091

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.128The system shall support spherical harmonics filters composed with other filters.

    Specification(s): sh_l1_mult

    Design: SphericalHarmonicsFilter

    Issue(s): #1091

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.129The L0 spherical harmonics moment in a L>0 SH expansion shall match the scalar fluxes computed without a spherical harmonics filter. This ensures that the L>0 SH moments are skipped during normalization.The gold file for this test was generated without a SH filter.

    Specification(s): sh_l0_in_l1_vs_no_sh

    Design: SphericalHarmonicsFilter

    Issue(s): #1091

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • cardinal: AddFilterAction
  • 1.22.130The system shall support multiple filters within a tally.

    Specification(s): multi_filter

    Design: AddFilterAction

    Issue(s): #1249

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.131The system shall support the automatic addition of the requested source rate normalization score to a single tally when using filters.

    Specification(s): no_norm_score

    Design: AddFilterAction

    Issue(s): #1249

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.132The system shall error if a non-existent filter is requested by a tally.

    Specification(s): missing_filter

    Design: AddFilterAction

    Issue(s): #1249

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.133The system shall error if a filter is added when an OpenMCCellAverageProblem is not present.

    Specification(s): wrong_problem

    Design: AddFilterAction

    Issue(s): #1249

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • cardinal: FromXMLFilter
  • 1.22.134The system shall allow cell tallies to access filters added in the OpenMC tallies XML file.

    Specification(s): arbitrary_cell

    Design: FromXMLFilter

    Issue(s): #1249

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.135The system shall allow mesh tallies to access filters added in the OpenMC tallies XML file.

    Specification(s): arbitrary_mesh

    Design: FromXMLFilter

    Issue(s): #1249

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.136The system shall error if a filter with the id requested has not been added by the tallie xml file.

    Specification(s): missing_filter

    Design: FromXMLFilter

    Issue(s): #1249

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.137The system shall error if the user selects a spatial filter.

    Specification(s): spatial_filter_error

    Design: FromXMLFilter

    Issue(s): #1249

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.138The system shall warn the user if they have selected a functional expansion filter and set allow_expansion_filters = true.

    Specification(s): func_exp_warning

    Design: FromXMLFilter

    Issue(s): #1249

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.139The system shall error if the user selected a functional expansion filter without setting allow_expansion_filters = true.

    Specification(s): func_exp_error

    Design: FromXMLFilter

    Issue(s): #1249

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • cardinal: ComputeMGXSAux
  • 1.22.153The system shall support the calculation of multi-group cross sections using an arbitrary reaction rate and normalization factor.
    1. The system shall calculate multi-group cross sections using an arbitrary reaction rate and normalization factor.
    2. The system shall prevent divide by zeros when calculating cross sections.

    Specification(s): generic_mgxs/calc, generic_mgxs/catch_zero_flux

    Design: ComputeMGXSAux

    Issue(s): #1020

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • cardinal: SetupMGXSAction
  • 1.22.154The system shall be capable of setting up MGXS generation for all relevant cross section types for photon.

    Specification(s): photon

    Design: SetupMGXSAction

    Issue(s): #1020

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.155The system shall be capable of setting up MGXS generation for all relevant cross section types using mapped distributed cell tallies.

    Specification(s): all_cell

    Design: SetupMGXSAction

    Issue(s): #1020

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.156The system shall be capable of generating L = 0 scattering cross sections without a transport correction.

    Specification(s): l0_scatter_no_tc

    Design: SetupMGXSAction

    Issue(s): #1020

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.157The system shall be capable of generating L > 0 scattering MGXS generation.

    Specification(s): l1_scatter

    Design: SetupMGXSAction

    Issue(s): #1020

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.158The system shall be capable of generating certain multi-group cross sections with a collision estimator.

    Specification(s): collision

    Design: SetupMGXSAction

    Issue(s): #1020

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.159The system shall be capable of generating certain multi-group cross sections with a tracklength estimator.

    Specification(s): tracklength

    Design: SetupMGXSAction

    Issue(s): #1020

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.160The system shall be capable of setting up MGXS generation for all relevant cross section types using unstructured mesh tallies.

    Specification(s): all_mesh

    Design: SetupMGXSAction

    Issue(s): #1020

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.161The system shall be hide tally variables added for MGXS generation unless requested by the user.

    Specification(s): hide_tally_vars

    Design: SetupMGXSAction

    Issue(s): #1020

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.162The system shall error if the user requests electron cross sections.

    Specification(s): electron

    Design: SetupMGXSAction

    Issue(s): #1020

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.163The system shall error if the user requests positron cross sections.

    Specification(s): positron

    Design: SetupMGXSAction

    Issue(s): #1020

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.164The system shall error if the user requests photon cross sections and includes fission.

    Specification(s): photon_fission_xs

    Design: SetupMGXSAction

    Issue(s): #1020

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.165The system shall error if the user requests photon cross sections and includes fission.

    Specification(s): photon_fission_heating

    Design: SetupMGXSAction

    Issue(s): #1020

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.166The system shall warn the user if they request transport corrected scattering cross sections with L > 0.

    Specification(s): l1_scatter_with_transport_corr

    Design: SetupMGXSAction

    Issue(s): #1020

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.167The system shall warn the user if they select a mesh tally and request a tracklength estimator.

    Specification(s): error_mesh_with_tracklength

    Design: SetupMGXSAction

    Issue(s): #1020

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.168The system shall warn the user if they wish to generate scattering / fission / diffusion group properties without an analog estimator.

    Specification(s): error_non_analog

    Design: SetupMGXSAction

    Issue(s): #1020

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • cardinal: StatRelErrorIndicator
  • 1.22.195The system shall allow for the use of the statistical relative error of a tally score as an indicator.

    Specification(s): rel_err

    Design: StatRelErrorIndicator

    Issue(s): #1146#1106

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.196The system shall error if the provided score does not exist in StatRelErrorIndicator.

    Specification(s): no_score

    Design: StatRelErrorIndicator

    Issue(s): #1146#1106

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.197The system shall error if no tallies are storing the relative error of the provided score.

    Specification(s): no_rel_err

    Design: StatRelErrorIndicator

    Issue(s): #1146#1106

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.198The system shall error if the provided tally external filter bin is greater than the total number of external filter bins.

    Specification(s): invalid_bin

    Design: StatRelErrorIndicator

    Issue(s): #1146#1106

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.199The system shall allow for the computation of relative error indicators when multiple tallies are added which accumulate the same scores.

    Specification(s): duplicate_scores

    Design: StatRelErrorIndicator

    Issue(s): #1146#1106

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • cardinal: OpenMCVolumeCalculation
  • 1.22.226The system shall warn the user if there is an inconsistency between a moving mesh and the underlying OpenMC geometry.

    Specification(s): inconsistency

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.227The system shall correctly reinitialize cell tallies when the mesh is moving. This is tested by translating the mesh over a stationary OpenMC model. The two cell tallies in the tallies.out file match the expected power density (accounting for the actual fractions of the cell which map to the moving mesh). This test also checks the cell IDs and instances as the mesh translates.

    Specification(s): cell_tally

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.228The system shall correctly use a mesh tally on a moving MOOSE mesh. This is tested by translating the mesh over a stationary OpenMC model. The mesh translation exposes 20 percent of the left subdomain, which from a non-moving case we record 8 percent of the total power deposition in this region. For the moving mesh case, the total power deposited in the mesh tally is 92 percent.

    Specification(s): mesh_tally

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.229The system shall generate a file for mesh tallies.

    Specification(s): make_mesh

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): RunApp

  • 1.22.230The system shall error if tallying on a file mesh for moving mesh cases, because there will be a disagreement between the mesh elements and the Mesh.

    Specification(s): file_mesh

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.231The system shall correctly reinitialize temperature mapping and output of cell temperatures to a moving mesh. This is tested by applying temperatures based on the moving mesh.

    Specification(s): temperature

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.232The system shall correctly reinitialize density mapping and output of cell densities and material fills to a moving mesh. This is tested by applying densities based on the moving mesh.

    Specification(s): density

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.233The system shall correctly reinitialize volume calculations for a moving mesh. This is tested by comparing the OpenMC stochastic volume calculation against postprocessors for changing volumes.

    Specification(s): volumes

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.234The system shall change the OpenMC mesh geometry on-the-fly. This is tested by running this case with a very high number of particles and batches, to compare against the CSG case in the reference folder. The reference case is a CSG model created at the deformed state. We cannot match these cases perfectly because we cannot control the seed of the second Picard iteration. The reference case gives k = 0.88782 plus or minus 5 pcm, and our Cardinal case gives 0.88786 plus of minus 5 pcm; these agree within 1 sigma.

    Specification(s): scale

    Design: OpenMCVolumeCalculationOpenMCCellAverageProblemMoabSkinner

    Issue(s): #899

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • cardinal: AddTallyAction
  • 1.22.243The system shall error if using incompatible tally estimator with a photon transport heating score.

    Specification(s): photon_heating

    Design: AddTallyAction

    Issue(s): #1114

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.244The system shall error if using a single tally with a photon transport heating score and nu-scatter score.

    Specification(s): photon_nu_scatter_heating

    Design: AddTallyAction

    Issue(s): #1089

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.276The system shall allow tallying of absorption/fission/scattering/total reaction rates in fixed source mode.

    Specification(s): reaction_rates

    Design: AddTallyAction

    Issue(s): #912

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.277The system shall allow tallying of nu-scatter, nu-fission, and inverse-velocity in fixed source mode.
    1. The system shall compute nu-scatter, nu-fission, and inverse-velocity scores in fixed source mode.
    2. The system shall error if the user attempts to specify a nu-scatter score without an analog estimator.

    Specification(s): mgxs/reaction_rates, mgxs/nu_scatter_analog

    Design: AddTallyAction

    Issue(s): #1089

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): CSVDiffRunException

  • 1.22.278The system shall allow tallying of prompt-nu-fission, delayed-nu-fission, and decay-rate in fixed source mode.
    1. The system shall compute prompt-nu-fission, delayed-nu-fission, and decay-rate scores in fixed source mode.

    Specification(s): delayed_mgxs/reaction_rates

    Design: AddTallyAction

    Issue(s): #1207

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.285The system shall correctly label elements in blocks which don't contain temperature feedback, density feedback, or a cell tally as unmapped.

    Specification(s): cell_tally_unmapped

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.286The system shall correctly normalize local tallies with different estimators using multiple global tallies.

    Specification(s): multi_global_estimator

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.287The system shall correctly apply and normalize two different CellTally objects with different scores. The gold file was generated using an input that had a single CellTally with multiple scores.

    Specification(s): multiple_tallies_cell

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.288The system shall correctly apply and normalize two different MeshTally objects with different scores. The gold file was generated using an input that had a single MeshTally with multiple scores.

    Specification(s): multiple_tallies_mesh

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.289The system shall correctly apply and normalize two different CellTally objects with different scores and triggers. The gold file was generated using an input that had a single CellTally with multiple scores and triggers.

    Specification(s): multiple_tallies_cell_triggers

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.290The system shall correctly apply and normalize two different MeshTally objects with different scores and triggers. The gold file was generated using an input that had a single MeshTally with multiple scores and triggers.

    Specification(s): multiple_tallies_mesh_triggers

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.291The system shall correctly apply and normalize two different CellTally objects with different scores when using relaxation. The gold file was generated using an input that had a single CellTally with multiple scores when using relaxation.

    Specification(s): multiple_tallies_cell_relax

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.292The system shall correctly apply and normalize two different MeshTally objects with different scores when using relaxation. The gold file was generated using an input that had a single MeshTally with multiple scores when using relaxation.

    Specification(s): multiple_tallies_mesh_relax

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.293The system shall error if more than one tally is provided and the requested heating score is in none of the tallies.

    Specification(s): multi_no_norm

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.294The system shall allow calculations with multiple different tallies.

    Specification(s): multiple_different_tallies

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.295The system shall allow calculations with multiple different tally outputs.

    Specification(s): multiple_different_outputs

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.296The system shall allow multiple tallies to use the same scores.

    Specification(s): same_scores

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.22.297The system shall error if two tallies score the normalization score and the user does not specify which to use for normalization.

    Specification(s): two_kf_unspecified_norm

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.298The system shall error if two tallies scoring the same score add the same variable names.

    Specification(s): duplicate_names

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.299The system shall error if attempting to use separate tallies when adding two tallies with the same score.

    Specification(s): duplicate_scores_separate_tallies

    Design: AddTallyActionMeshTally CellTally

    Issue(s): #1248#1106

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • cardinal: FDTallyGradAux
  • 1.22.280The system shall allow for the approximation of tally gradients using finite differences.

    Specification(s): gradients

    Design: FDTallyGradAux

    Issue(s): #1031#1106

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.22.281The system shall error if the variable provided to FDTallyGradAux is not of type CONSTANT MONOMIAL_VEC.

    Specification(s): not_const_mon

    Design: FDTallyGradAux

    Issue(s): #1031#1106

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.282The system shall error if a score is requested, but not available in a tally.

    Specification(s): missing_score

    Design: FDTallyGradAux

    Issue(s): #1031#1106

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.283The system shall error if the external filter bin provided by the user is out of bounds for the filters applied to the given score.

    Specification(s): invalid_bin_index

    Design: FDTallyGradAux

    Issue(s): #1031#1106

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.22.284The system shall allow for the computation of tally gradients with finite differences when multiple tallies are added which accumulate the same scores.

    Specification(s): duplicate_scores

    Design: FDTallyGradAux

    Issue(s): #1031#1106

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • cardinal: NekSideAverage
  • 1.24.21NekSideAverage shall correctly compute area-averaged temperatures on the nekRS mesh. The gold file was created by running the moose.i input, which computes the same averages using existing MOOSE postprocessors on the same mesh on auxvariables that match the functional form of the solution fields initialized in the pyramid.udf. Perfect agreement is not to be expected, since the underlying basis functions and quadrature rules are different between nekRS and MOOSE's linear Lagrange variables - we just require that they are reasonably close.

    Specification(s): nek_side_average

    Design: NekSideAverage

    Issue(s): #1015

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • cardinal: NekViscousSurfaceForce
  • 1.24.26The system shall allow total viscous drag to be computed in dimensional form. This test compares drag as computed via Nek with by-hand calculations using combinations of native MOOSE postprocessors using the analytic expression for velocity.

    Specification(s): drag

    Design: NekViscousSurfaceForce

    Issue(s): #1290

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.24.27The system shall error if trying to compute viscous drag on non-fluid NekRS boundaries

    Specification(s): invalid_mesh

    Design: NekViscousSurfaceForce

    Issue(s): #1290

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • cardinal: NekYPlus
  • 1.24.37The system shall allow y plus to be computed. The resulting expression is checked against an analytic expression for the friction velocity and by inspection of the wall distance for the first GLL points near the wall.

    Specification(s): drag

    Design: NekYPlus

    Issue(s): #1290

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.24.38The system shall error if trying to compute y plus on non-fluid NekRS boundaries

    Specification(s): invalid_mesh

    Design: NekYPlus

    Issue(s): #1290

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • cardinal: Reactivity
  • 1.24.40The k-eigenvalue and its standard deviation shall be correctly retrieved from the OpenMC solution.

    Specification(s): k_eigenvalue

    Design: Reactivity

    Issue(s): #1051

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • cardinal: NekBoundaryFlux
  • 1.28.2The system shall be able to read the flux from NekRS and write onto a boundary mesh mirror. This is tested by setting a known temperature distribution in NekRS such that the analytic heat flux can be computed and compared.

    Specification(s): flux

    Design: NekBoundaryFlux

    Issue(s): #1166

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.28.3The system shall error if trying to write heat flux on a boundary when the mesh mirror is a volume mesh.

    Specification(s): volume

    Design: NekBoundaryFlux

    Issue(s): #1166

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.28.6The system shall be able to write multiple incoming volumetric source terms to NekRS. This is tested by writing two constant fields into the usrwrk array, and then integrating them over boundaries to ensure different fields are stored in each.

    Specification(s): multiple_source_transfers

    Design: NekUsrWrkBoundaryIntegralNekVolumetricSourceNekBoundaryFlux

    Issue(s): #1230

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.28.7The system shall be able to write multiple incoming boundary flux terms to NekRS. This is tested by writing two constant fields into the usrwrk array, and then integrating them over boundaries to ensure different fields are stored in each.

    Specification(s): multiple_flux_transfers

    Design: NekUsrWrkBoundaryIntegralNekVolumetricSourceNekBoundaryFlux

    Issue(s): #1230

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • cardinal: NekFieldVariable
  • 1.28.8The system shall be able to write into the scratch space a temperature which NekRS can use in its case files. This is tested by passing in a temperature field on a boundary and then applying that field as a Dirichlet condition.

    Specification(s): temperature_input

    Design: NekFieldVariable

    Issue(s): #1166

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.28.9The system shall error if too many usrwrk slots are specified for a single field transfer

    Specification(s): too_many_slots

    Design: NekFieldVariable

    Issue(s): #1166

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.28.10The system shall be able to write multiple incoming field transfers to NekRS. This is tested by writing two constant fields into the usrwrk array, and then integrating them over boundaries to ensure different fields are stored in each.

    Specification(s): multiple_field_transfers

    Design: NekFieldVariable

    Issue(s): #1230

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • 1.28.11The system shall be able to write into the scratch space a temperature which NekRS can use in its case files. This is tested by passing in a temperature field in the volume and applying this field to the temperature instead of solving it.

    Specification(s): temperature_input

    Design: NekFieldVariable

    Issue(s): #1166

    Collection(s): FUNCTIONAL

    Type(s): CSVDiff

  • cardinal: ThresholdHeuristicUserObject
  • 1.29.5The system shall reproduce the clustering pattern by evaluating a boolean expression which combines multiple threshold-based heuristics and operates on element pairs.

    Specification(s): grid

    Design: ThresholdHeuristicUserObject

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • cardinal: ValueRangeHeuristicUserObject
  • 1.29.8The system shall be able to cluster elements by identifying element pairs whose metric values both fall within a range defined by a user-specified percentage above and below given reference values, with multiple ranges combined through a boolean expression.

    Specification(s): grid

    Design: ValueRangeHeuristicUserObject

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • cardinal: OpenMCCellTransform
  • 1.29.67The system shall correctly reinitialize OpenMC coupling when multiple geometry cells are translated.This is tested by translating the mesh while also translating OpenMC universe which contains the coupled cells.

    Specification(s): translate_multiple_cells

    Design: OpenMCCellTransform

    Issue(s): #1255

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.29.68The system shall error if the same cell id is provided more than once.

    Specification(s): duplicate_cell_id

    Design: OpenMCCellTransform

    Issue(s): #1255

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.29.69The system shall correctly reinitialize OpenMC coupling when the geometry is translated.This is tested by translating the mesh while also translating OpenMC universe which contains the coupled cells.

    Specification(s): translate_cells

    Design: OpenMCCellTransform

    Issue(s): #1255

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.29.70The system shall correctly reinitialize OpenMC coupling when a scaled geometry is translated.This is tested by translating the scaled mesh while also translating OpenMC universe which contains the coupled cells.

    Specification(s): scaled_translation

    Design: OpenMCCellTransform

    Issue(s): #1255

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.29.71The system shall correctly reinitialize OpenMC coupling when the geometry is rotated.This is tested by rotating the mesh while also rotating OpenMC universe which contains the coupled cells.

    Specification(s): rotate_cells

    Design: OpenMCCellTransform

    Issue(s): #1255

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.29.72The system shall correctly reinitialize OpenMC coupling when the geometry is translated.This is tested by translating an OpenMC geometry on a stationary mesh and ensure elements are reset correctly.

    Specification(s): cells_shadow

    Design: OpenMCCellTransform

    Issue(s): #1255

    Collection(s): FUNCTIONAL

    Type(s): Exodiff

  • 1.29.73

    Specification(s): invalid_phi

    Design: OpenMCCellTransform

    Issue(s): #1255

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.29.74

    Specification(s): invalid_theta

    Design: OpenMCCellTransform

    Issue(s): #1255

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.29.75

    Specification(s): invalid_psi

    Design: OpenMCCellTransform

    Issue(s): #1255

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.29.76

    Specification(s): empty_cell_ids

    Design: OpenMCCellTransform

    Issue(s): #1255

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

  • 1.29.77

    Specification(s): wrong_vector_size

    Design: OpenMCCellTransform

    Issue(s): #1255

    Collection(s): FAILURE_ANALYSISFUNCTIONAL

    Type(s): RunException

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]

ActionComponents

Adaptivity

Adaptivity/Indicators

Adaptivity/Markers

Application

AuxKernels

AuxScalarKernels

AuxVariables

BCs

BCs/CavityPressure

BCs/CoupledPressure

BCs/InclinedNoDisplacementBC

BCs/Periodic

BCs/Pressure

Bounds

Cardinal

Cardinal/ICs

Cardinal/ICs/BulkEnergyConservation

Cardinal/ICs/VolumetricHeatSource

ChainControls

Closures

Components

Constraints

ControlLogic

Controls

Convergence

Correctors

CoupledHeatTransfers

Covariance

DGKernels

Dampers

Debug

Debug/MaterialDerivativeTest

DeprecatedBlock

DiracKernels

Distributions

DomainIntegral

Executioner

Executioner/Adaptivity

Executioner/Predictor

Executioner/Quadrature

Executioner/TimeIntegrator

Executioner/TimeIntegrators

Executioner/TimeStepper

Executioner/TimeSteppers

Executors

FVBCs

FVICs

FVInterfaceKernels

FVKernels

FluidProperties

FluidPropertiesInterrogator

Functions

FunctorMaterials

GlobalParams

GrayDiffuseRadiation

HDGKernels

ICs

InterfaceKernels

Kernels

Kernels/DynamicSolidMechanics

Kernels/DynamicTensorMechanics

Kernels/PoroMechanics

Kernels/SolidMechanics

Kernels/TensorMechanics

Likelihood

LinearFVBCs

LinearFVKernels

Materials

Mesh

Mesh/BatchMeshGeneratorAction

Mesh/Partitioner

MeshDivisions

MeshModifiers

Modules

Modules/CompressibleNavierStokes

Modules/FluidProperties

Modules/IncompressibleNavierStokes

Modules/NavierStokesFV

Modules/SolidProperties

Modules/TensorMechanics

Modules/TensorMechanics/CohesiveZoneMaster

Modules/TensorMechanics/DynamicMaster

Modules/TensorMechanics/GeneralizedPlaneStrain

Modules/TensorMechanics/GlobalStrain

Modules/TensorMechanics/LineElementMaster

Modules/TensorMechanics/Master

Modules/TensorMechanics/MaterialVectorBodyForce

MortarGapHeatTransfer

MultiApps

NEML2

NodalKernels

NodalNormals

Outputs

ParallelAcquisition

ParameterStudy

Physics

Physics/Diffusion

Physics/Diffusion/ContinuousGalerkin

Physics/Diffusion/FiniteVolume

Physics/HeatConduction

Physics/HeatConduction/FiniteElement

Physics/HeatConduction/FiniteVolume

Physics/NavierStokes

Physics/NavierStokes/Flow

Physics/NavierStokes/FlowSegregated

Physics/NavierStokes/FluidHeatTransfer

Physics/NavierStokes/FluidHeatTransferSegregated

Physics/NavierStokes/ScalarTransport

Physics/NavierStokes/ScalarTransportSegregated

Physics/NavierStokes/SolidHeatTransfer

Physics/NavierStokes/Turbulence

Physics/NavierStokes/TurbulenceSegregated

Physics/NavierStokes/TwoPhaseMixture

Physics/NavierStokes/TwoPhaseMixtureSegregated

Physics/SolidMechanics

Physics/SolidMechanics/CohesiveZone

Physics/SolidMechanics/Dynamic

Physics/SolidMechanics/GeneralizedPlaneStrain

Physics/SolidMechanics/GlobalStrain

Physics/SolidMechanics/LineElement

Physics/SolidMechanics/LineElement/QuasiStatic

Physics/SolidMechanics/MaterialVectorBodyForce

Physics/SolidMechanics/QuasiStatic

Positions

Postprocessors

Preconditioning

Problem

Problem/CriticalitySearch

Problem/Dimensionalize

Problem/FieldTransfers

Problem/Filters

Problem/MGXS

Problem/ScalarTransfers

Problem/Tallies

ProjectedStatefulMaterialStorage

QuadSubChannelMesh

RayBCs

RayKernels

Reporters

SCMClosures

Samplers

ScalarKernels

SolidProperties

StochasticTools

SubChannel

Surrogates

ThermalContact

Times

Trainers

Transfers

TriSubChannelMesh

UserObjects

VariableMappings

Variables

VectorPostprocessors