Navier Stokes System Requirements Specification

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

commentnote

This document serves as an addendum to Framework System Requirements Specification and captures information for SRS specific to the Navier Stokes application.

Introduction

System Purpose

The MOOSE is a tool for solving complex coupled Multiphysics equations using the finite element method. MOOSE uses an object-oriented design to abstract data structure management, parallelism, threading and compiling while providing an easy to use interface targeted at engineers that may not have a lot of software development experience. MOOSE will require extreme scalability and flexibility when compared to other FEM frameworks. For instance, MOOSE needs the ability to run extremely complex material models, or even third-party applications within a parallel simulation without sacrificing parallelism. This capability is in contrast to what is often seen in commercial packages, where custom material models can limit the parallel scalability, forcing serial runs in the most severe cases. When comparing high-end capabilities, many MOOSE competitors target modest-sized clusters with just a few thousand processing cores. MOOSE, however, will be required to routinely executed on much larger clusters with scalability to clusters available in the top 500 systems (top500.org). MOOSE will also be targeted at smaller systems such as high-end laptop computers.

The design goal of MOOSE is to give developers ultimate control over their physical models and applications. Designing new models or solving completely new classes of problems will be accomplished by writing standard C++ source code within the framework's class hierarchy. Scientists and engineers will be free to implement completely new algorithms using pieces of the framework where possible, and extending the framework's capabilities where it makes sense to do so. Commercial applications do not have this capability, and instead opt for either a more rigid parameter system or a limited application-specific metalanguage.

System Scope

MOOSE's scope is to provide a set of interfaces for building FEM simulations. Abstractions to all underlying libraries are provided.

Solving coupled problems where competing physical phenomena impact one and other in a significant nonlinear fashion represents a serious challenge to several solution strategies. Small perturbations in strongly-coupled parameters often have very large adverse effects on convergence behavior. These adverse effects are compounded as additional physics are added to a model. To overcome these challenges, MOOSE employs three distinct yet compatible systems for solving these types of problems.

First, an advanced numerical technique called the JFNK method is employed to solve the most fully-coupled physics in an accurate, consistent way. An example of this would be the effect of temperature on the expansion or contraction of a material. While the JFNK numerical method is very effective at solving fully-coupled equations, it can also be computationally expensive. Plus, not all physical phenomena in a given model are truly coupled to one another. For instance, in a reactor, the speed of the coolant flow may not have any direct effect on the complex chemical reactions taking place inside the fuel rods. We call such models "loosely-coupled". A robust, scalable system must strike the proper balance between the various modeling strategies to avoid performing unnecessary computations or incorrectly predicting behavior in situations such as these.

MOOSE's Multiapp system will allow modelers to group physics into logical categories where MOOSE can solve some groups fully-coupled and others loosely-coupled. The Multiapp system goes even further by also supporting a "tightly-coupled" strategy, which falls somewhere between the "fully-coupled" and "loosely-coupled" approaches. Several sets of physics can then be linked together into logical hierarchies using any one of these coupling strategies, allowing for several potential solution strategies. For instance, a complex nuclear reactor model might consist of several tightly-coupled systems of fully-coupled equations.

Finally, MOOSE's Transfers system ties all of the physics groups contained within the Multiapp system together and allows for full control over the flow of information among the various groups. This capability bridges physical phenomena from several different complementary scales simultaneously. When these three MOOSE systems are combined, myriad coupling combinations are possible. In all cases, the MOOSE framework handles the parallel communication, input, output and execution of the underlying simulation. By handling these computer science tasks, the MOOSE framework keeps modelers focused on doing research.

MOOSE innovates by building advanced simulation capabilities on top of the very best available software technologies in a way that makes them widely accessible for innovative research. MOOSE is equally capable of solving small models on common laptops and the very biggest FEM models ever attempted—all without any major changes to configuration or source code. Since its inception, the MOOSE project has focused on both developer and computational efficiency. Improved developer efficiency is achieved by leveraging existing algorithms and technologies from several leading open-source packages. Additionally, MOOSE uses several complementary parallel technologies (both the distributed-memory message passing paradigm and shared-memory thread-based approaches are used) to lay an efficient computational foundation for development. Using existing open technologies in this manner helps the developers reduce the scope of the project and keeps the size of the MOOSE code base maintainable. This approach provides users with state-of-the-art finite element and solver technology as a basis for the advanced coupling and solution strategies mentioned previously.

MOOSE's developers work openly with other package developers to make sure that cutting-edge technologies are available through MOOSE, providing researchers with competitive research opportunities. MOOSE maintains a set of objects that hide parallel interfaces while exposing advanced spatial and temporal coupling algorithms in the framework. This accessible approach places developmental technology into the hands of scientists and engineers, which can speed the pace of scientific discovery.

System Overview

System Context

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

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

System Functions

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

User Characteristics

  • Framework Developers: These are the core developers of the framework. They will be responsible for following and enforcing the appropriate software development standards. They will be responsible for designing, implementing and maintaining the software.

  • Developers: A Scientist or Engineer that utilizes the framework to build his or her own application. This user will typically have a background in modeling and simulation techniques and/or numerical analysis but may only have a limited skill-set when it comes to object-oriented coding and the C++ language. This is our primary focus group. In many cases these developers will be encouraged to give their code back to the framework maintainers.

  • Analysts: These are users that will run the code and perform various analysis on the simulations they perform. These users may interact with developers of the system requesting new features and reporting bugs found and will typically make heavy use of the input file format.

Assumptions and Dependencies

The Navier Stokes application is developed using MOOSE and is based on various modules, as such the SRS for Navier Stokes is dependent upon the files listed at the beginning of this document.

References

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

Definitions and Acronyms

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

Definitions

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

Acronyms

AcronymDescription
FEMFinite Element Method
INLIdaho National Laboratory
JFNKJacobian-Free Newton-Krylov
LGPLGNU Lesser General Public License
MOOSEMultiphysics Object Oriented Simulation Environment
NQA-1Nuclear Quality Assurance Level 1
POSIXPortable Operating System Interface
SRSSoftware Requirement Specification

System Requirements

- A POSIX compliant Unix including the two most recent versions of MacOS and most current versions of Linux. - 4 GB of RAM for optimized compilation (8 GB for debug compilation), 2 GB per core execution - 100 GB disk space - C++17 compatible compiler (GCC, Clang) - Python 3.7+ - Git

Functional Requirements

  • navier_stokes: Auxkernels
  • 10.1.1The system shall be able to compute element thermal Peclet numbers for:
    1. finite volume discretizations
    2. finite element discretizations
  • 10.1.2The system shall be able to compute element Reynolds numbers for:
    1. finite volume discretizations
    2. finite element discretizations
  • navier_stokes: Finite Element
  • 10.2.1The system shall be able to solve the Euler equations for subsonic flow with a bump in the channel.
  • 10.2.2The system shall be able to solve the incompressible Navier-Stokes equations in an RZ coordinate system while not integrating the pressure term by parts.
  • 10.2.3The system shall be able to solve the incompressible Navier-Stokes equations in an RZ coordinate system while integrating the pressure term by parts.
  • 10.2.4The system shall be able to solve the incompressible Navier-Stokes equations for a high Reynolds number in an RZ coordinate system.
  • 10.2.5The system shall be able to compute an accurate Jacobian for the incompressible Navier-Stokes equations in an RZ coordinate system.
  • 10.2.6The system shall be able to solve the transient incompressible Navier-Stokes equations using an automatic differentiation, vector variable implementation in an RZ coordinate system while integrating the pressure term by parts and reproduce the results of a hand-coded Jacobian implementation.
  • 10.2.7The system shall be able to solve the transient incompressible Navier-Stokes equations using an automatic differentiation, vector variable implementation in an RZ coordinate system while not integrating the pressure term by parts, using a traction form for the viscous term, and using a no-bc boundary condition, and reproduce the results of a hand-coded Jacobian implementation.
  • 10.2.8The system shall be able to solve the steady incompressible Navier-Stokes equations using an automatic differentiation, vector variable implementation in an RZ coordinate system while not integrating the pressure term by parts and applying a natural outflow boundary condition.
  • 10.2.9The system shall be able to solve the steady incompressible Navier-Stokes equations using an automatic differentiation, vector variable implementation in an RZ coordinate system while integrating the pressure term by parts and applying a natural outflow boundary condition
  • 10.2.10The system shall be able to solve the steady incompressible Navier-Stokes equations using an automatic differentiation, vector variable implementation in an RZ coordinate system while not integrating the pressure term by parts and applying a NoBC outflow boundary condition.
  • 10.2.11The system shall be able to solve the steady incompressible Navier-Stokes equations using an automatic differentiation, vector variable implementation in an RZ coordinate system while integrating the pressure term by parts and applying a NoBC outflow boundary condition
  • 10.2.12The system shall be able to solve the steady incompressible Navier-Stokes equations using a hand-coded Jacobian, standard variable implementation in an RZ coordinate system while not integrating the pressure term by parts and applying a natural outflow boundary condition and reproduce the results of the AD, vector variable implementation.
  • 10.2.13The system shall be able to solve the steady incompressible Navier-Stokes equations using a hand-coded Jacobian, standard variable implementation in an RZ coordinate system while integrating the pressure term by parts and applying a natural outflow boundary condition and reproduce the results of the AD, vector variable implementation.
  • 10.2.14The system shall be able to solve the steady incompressible Navier-Stokes equations using a hand-coded Jacobian, standard variable implementation in an RZ coordinate system while not integrating the pressure term by parts and applying a NoBC outflow boundary condition and reproduce the results of the AD, vector variable implementation.
  • 10.2.15The system shall be able to solve the steady incompressible Navier-Stokes equations using a hand-coded Jacobian, standard variable implementation in an RZ coordinate system while integrating the pressure term by parts and applying a NoBC outflow boundary condition and reproduce the results of the AD, vector variable implementation.
  • 10.2.16The system shall be able to solve the steady incompressible Navier-Stokes equations with SUPG and PSPG stabilization and a first order velocity basis using an automatic differentiation, vector variable implementation in an RZ coordinate system while not integrating the pressure term by parts and applying a natural outflow boundary condition.
  • 10.2.17The system shall be able to solve the steady incompressible Navier-Stokes equations with SUPG and PSPG stabilization and a first order velocity basis using a hand-coded Jacobian, standard variable implementation in an RZ coordinate system while not integrating the pressure term by parts and applying a natural outflow boundary condition and reproduce the results of the AD, vector variable implementation.
  • 10.2.18The system shall be able to solve the steady incompressible Navier-Stokes equations with SUPG and PSPG stabilization and a first order velocity basis using an automatic differentiation, vector variable implementation in an RZ coordinate system while integrating the pressure term by parts and applying a natural outflow boundary condition.
  • 10.2.19The system shall be able to solve the steady incompressible Navier-Stokes equations with SUPG and PSPG stabilization and a first order velocity basis using a hand-coded Jacobian, standard variable implementation in an RZ coordinate system while integrating the pressure term by parts and applying a natural outflow boundary condition and reproduce the results of the AD, vector variable implementation.
  • 10.2.20The system shall be able to solve the steady incompressible Navier-Stokes equations with SUPG and PSPG stabilization and a second order velocity basis using an automatic differentiation, vector variable implementation in an RZ coordinate system while not integrating the pressure term by parts and applying a natural outflow boundary condition.
  • 10.2.21The system shall be able to solve the steady incompressible Navier-Stokes equations with SUPG and PSPG stabilization and a second order velocity basis using a hand-coded Jacobian, standard variable implementation in an RZ coordinate system while not integrating the pressure term by parts and applying a natural outflow boundary condition.
  • 10.2.22The system shall be able to solve the steady incompressible Navier-Stokes equations with SUPG and PSPG stabilization and a second order velocity basis using an automatic differentiation, vector variable implementation in an RZ coordinate system while integrating the pressure term by parts and applying a natural outflow boundary condition.
  • 10.2.23The system shall be able to solve the steady incompressible Navier-Stokes equations with SUPG and PSPG stabilization and a second order velocity basis using a hand-coded Jacobian, standard variable implementation in an RZ coordinate system while integrating the pressure term by parts and applying a natural outflow boundary condition.
  • 10.2.24The system shall compute an accurate Jacobian using automatic differentiation when solving the incompressible Navier Stokes equations in an axisymmetric coordinate system with SUPG and PSPG stabilization
  • 10.2.25The system shall be able to solve the steady incompressible Navier-Stokes equations with SUPG and PSPG stabilization and a first order velocity basis using an automatic differentiation, vector variable implementation in an RZ coordinate system while integrating the pressure term by parts, using a traction form for the viscous term, and applying a natural outflow boundary condition.
  • 10.2.26The system shall be able to solve the steady incompressible Navier-Stokes equations with SUPG and PSPG stabilization and a first order velocity basis using a hand-coded Jacobian, standard variable implementation in an RZ coordinate system while integrating the pressure term by parts, using a traction form for the viscous term, and applying a natural outflow boundary condition and reproduce the results of the AD, vector variable implementation.
  • 10.2.27The system shall be able to solve the steady incompressible Navier-Stokes equations with SUPG and PSPG stabilization and a first order velocity basis using an automatic differentiation, vector variable implementation in an RZ coordinate system while integrating the pressure term by parts, using a traction form for the viscous term, and applying a natural outflow boundary condition and obtain a perfect Jacobian.
  • 10.2.28The system shall be able to solve the steady incompressible Navier-Stokes equations in an axisymmetric coordinate system, using a Jacobian computed via automatic differentiation, on a displaced mesh, with the viscous term in
    1. traction form
    2. laplace form
  • 10.2.29The system shall compute inflow and outflow boundary conditions for advected variables
  • 10.2.30We shall error if the user provides less velocity components than the mesh dimension
  • 10.2.31We shall error if the user provides more than 3 velocity components
  • 10.2.32We shall allow the user to supply more velocity components than the mesh dimension (up to 3 components)
  • 10.2.33The system shall be able to solve two different kernel sets with two different material domains.
  • 10.2.34The system shall be able to solve two different kernel sets within one material domain.
  • 10.2.35The system shall be able to solve one kernel set with two different material domains.
  • 10.2.36The system shall be able to reproduce benchmark results for a Rayleigh number of 1e3.
  • 10.2.37The system shall be able to reproduce benchmark results for a Rayleigh number of 1e4.
  • 10.2.38The system shall be able to reproduce benchmark results for a Rayleigh number of 1e5.
  • 10.2.39The system shall be able to reproduce benchmark results for a Rayleigh number of 1e6.
  • 10.2.40The system shall be able to simulate natural convection by adding the Boussinesq approximation to the incompressible Navier-Stokes equations.
  • 10.2.41The system shall be able to solve mass, momentum, and energy incompressible Navier-Stokes equations with multiple threads.
  • 10.2.42The system shall have an accurate Jacobian provided by automatic differentiation when computing the Boussinesq approximation.
  • 10.2.43The system shall be able to support SUPG and PSPG stabilization of the incompressible Navier Stokes equations including the Boussinesq approximation.
  • 10.2.44The system shall be able to solve stablized mass, momentum, and energy incompressible Navier-Stokes equations with multiple threads.
  • 10.2.45The system shall have an accurate Jacobian provided by automatic differentiation when computing the Boussinesq approximation with SUPG and PSPG stabilization.
  • 10.2.46The system shall be able to reproduce results of incompressible Navier-Stokes with Boussinesq approximation using a customized and condensed action syntax.
  • 10.2.47The system shall be able to solve mass, momentum, and energy incompressible Navier-Stokes equations with a custom action syntax using multiple threads.
  • 10.2.48The system shall be able to apply an external force to the incompressible Navier-Stokes momentum equation through a coupled variable.
  • 10.2.49The system shall be able to compute an accurate Jacobian when applying an external force to the incompressible Navier-Stokes momentum equation through a coupled variable.
  • 10.2.50The system shall be able to apply an external force to the incompressible Navier-Stokes momentum equation through a vector function.
  • 10.2.51The system shall be able to compute an accurate Jacobian when applying an external force to the incompressible Navier-Stokes momentum equation through a vector function.
  • 10.2.52The system shall be able to apply an external force to the incompressible Navier-Stokes momentum equation through a coupled variable, with the problem setup through automatic action syntax.
  • 10.2.53The system shall be able to compute an accurate Jacobian when applying an external force to the incompressible Navier-Stokes momentum equation through a coupled variable, with the problem setup through automatic action syntax.
  • 10.2.54The system shall be able to apply an external force to the incompressible Navier-Stokes momentum equation through a vector function, with the problem setup through automatic action syntax.
  • 10.2.55The system shall be able to compute an accurate Jacobian when applying an external force to the incompressible Navier-Stokes momentum equation through a vector function, with the problem setup through automatic action syntax.
  • 10.2.56The system shall be able to solve the Navier-Stokes equations with a coupled variable force and a gravity force
    1. provided through a dedicated object,
    2. or through a generic object that can simultaneously add multiple forces through both a coupled variable and a function.
    3. The generic object shall also be able to compute the forces solely through multiple coupled variables,
    4. or solely through multiple vector functions.
    5. The system shall be able to add the generic object through an automatic action syntax and provide two forces either through a coupled variable and a function,
    6. two coupled variables,
    7. or two functions.
  • 10.2.57The system shall be able to model a volumetric heat source and included it in stabilization terms.
  • 10.2.58The system shall be able to build a volumetric heat source model using an automatic action syntax.
  • 10.2.59The system shall be able to model a volumetric heat source with a coupled variable and included it in stabilization terms.
  • 10.2.60The system shall be able to build a volumetric heat source model, provided through a coupled variable, using an automatic action syntax.
  • 10.2.61The system shall be able to model the effect of gravity on incompressible flow using a finite element discretization.
  • 10.2.62The system shall compute accurate Jacobians for the incompressible Navier-Stokes equation.
  • 10.2.63The system shall compute accurate Jacobians for the incompressible Navier-Stokes equation with stabilization.
  • 10.2.64The system shall compute accurate Jacobians for the incompressible Navier-Stokes equation with stabilization with a traction boundary condition.
  • 10.2.65The system shall be able to solve Jeffery-Hamel flow in a 2D wedge and compare to the analytical solution
    1. with pressure Dirichlet boundary conditions
    2. and with natural advection boundary conditions.
  • 10.2.66The system shall support solving a steady energy equation and transient momentum equations and apply the correct stabilization.
  • 10.2.67The system shall support solving a steady energy equation and transient momentum equations with correct stabilization and compute a perfect Jacobian.
  • 10.2.68We shall be able to solve a canonical lid-driven problem without stabilization, using mixed order finite elements for velocity and pressure.
  • 10.2.69We shall be able to reproduce the results from the hand-coded lid-driven simulation using automatic differentiation objects.
  • 10.2.70We shall be able to run lid-dirven simulation using a global mean-zero pressure constraint approach.
  • 10.2.71The Jacobian for the mixed-order INS problem shall be perfect when provided through automatic differentiation.
  • 10.2.72We shall be able to solve the lid-driven problem using equal order shape functions with pressure-stabilized petrov-galerkin stabilization. We shall also demonstrate SUPG stabilization.
  • 10.2.73We shall be able to reproduce the hand-coded stabilized results with automatic differentiation objects.
  • 10.2.74The Jacobian for the automatic differentiation stabilized lid-driven problem shall be perfect.
  • 10.2.75Simulation with equal-order shape functions without pressure stabilization shall be unstable.
  • 10.2.76We shall be able to solve the INS equations using the classical Chorin splitting algorithm.
  • 10.2.77The system shall be able to reproduce unstabilized incompressible Navier-Stokes results with hand-coded Jacobian using a customized and condensed action syntax.
  • 10.2.78The system shall be able to reproduce stabilized incompressible Navier-Stokes results with hand-coded Jacobian using a customized and condensed action syntax.
  • 10.2.79The system shall be able to reproduce unstabilized incompressible Navier-Stokes results with auto-differentiation using a customized and condensed action syntax.
  • 10.2.80The system shall be able to reproduce stabilized incompressible Navier-Stokes results with auto-differentiation using a customized and condensed action syntax.
  • 10.2.81The system shall be able to solve a steady stabilized mass/momentum/energy incompressible Navier-Stokes formulation.
  • 10.2.82The system shall be able to solve a transient stabilized mass/momentum/energy incompressible Navier-Stokes formulation.
  • 10.2.83The system shall be able to solve a steady stabilized mass/momentum/energy incompressible Navier-Stokes formulation with action syntax.
  • 10.2.84The system shall be able to solve a transient stabilized mass/momentum/energy incompressible Navier-Stokes formulation with action syntax.
  • 10.2.85The system shall be able to solve a transient incompressible Navier-Stokes with nonlinear Smagorinsky eddy viscosity.
  • 10.2.86The system shall be able to apply pressure stabilization using an alpha parameter of 1e-6 on a
    1. 4x4,
    2. 8x8,
    3. 16x16,
    4. and 32x32 mesh.
  • 10.2.87The system shall be able to apply pressure stabilization using an alpha parameter of 1e-3 on a
    1. 4x4,
    2. 8x8,
    3. 16x16,
    4. and 32x32 mesh.
  • 10.2.88The system shall be able to apply pressure stabilization using an alpha parameter of 1e0 on a
    1. 4x4,
    2. 8x8,
    3. 16x16,
    4. and 32x32 mesh.
  • 10.2.89The system shall be able to apply streamline-upwind stabilization using an alpha parameter of 1e-6 on a
    1. 4x4,
    2. 8x8,
    3. 16x16,
    4. and 32x32 mesh.
  • 10.2.90The system shall be able to apply streamline-upwind stabilization using an alpha parameter of 1e-3 on a
    1. 4x4,
    2. 8x8,
    3. 16x16,
    4. and 32x32 mesh.
  • 10.2.91The system shall be able to apply streamline-upwind stabilization using an alpha parameter of 1e0 on a
    1. 4x4,
    2. 8x8,
    3. 16x16,
    4. and 32x32 mesh.
  • 10.2.92The system shall be able to solve high Reynolds number incompressible flow problems through use of streamline upwind Petrov-Galerkin stabilization and with a Q2Q1 discretization
  • 10.2.93The system shall be able to solve high Reynolds number incompressible flow problems through use of streamline upwind and pressure stabilized Petrov-Galerkin and with a Q1Q1 discretization
  • 10.2.94The system shall allow MOOSE applications to specify nonzero malloc behavior; for the Navier-Stokes application, new nonzero allocations shall be errors.
  • 10.2.95The system shall be able to solve for incompressible fluid flowing through a 2D channel driven by pressure inlet and outlet boundary conditions
    1. using the kernel formulation,
    2. using the action formulation
    3. and using a field split preconditioning.
  • 10.2.96The system shall be able to solve an axisymmetric pipe flow problem using a finite element discretization in which the axis of symmetry is the x-axis.
  • 10.2.97The system shall be able to solve for an incompressible fluid flowing through a 1D channel with Streamline Upwind Petrov Galerkin stabilization.
    1. using the optimal tau stabilization,
    2. using the modified tau stabilization,
    3. and still satisfy MMS testing in 1D
    4. and in 2D.
  • 10.2.98The system shall be able to solve for incompressible fluid evolving in a corner cavity with Dirichlet boundary conditions on velocity.
    1. in 2D
    2. and in 2D RZ axisymmetric simulations.
  • 10.2.99The system shall be able to solve for incompressible fluid flowing through a 2D channel with only inlet velocity boundary conditions
    1. with the regular volumetric integration of the momentum pressure term
    2. and with the momentum pressure term integrated by parts.
  • 10.2.100The system shall be able to model heat transfer from ambient surroundings using a volumetric approximation.
  • 10.2.101The system shall be able to build a simulation, modeling heat transfer from ambient surroundings, using an automated action syntax.
  • 10.2.102The system shall be able to add a incompressible Navier-Stokes energy/temperature equation using an action, but use a temperature variable already added in the input file.
  • navier_stokes: Finite Volume
  • 10.3.1The system shall be able to solve the 1D Sod shock-tube benchmark problem using an HLLC scheme to compute convective fluxes.
  • 10.3.2The system shall be able to solve the steady Euler equations in a heated channel using Kurganov-Tadmor with linearly reconstructed data with Van-Leer limiting for the convection term and a primitive variable set and show a flat momentum profile
  • 10.3.3The system shall be able to impose boundary advective fluxes for HLLC discretizations that use implicit/interior cell information.
  • 10.3.4The system shall exhibit first order convergence for all variables for the free-flow Euler equations using a HLLC discretization scheme for the advection flux and with specified temperature and momentum at one boundary and specified pressure at another boundary.
  • 10.3.5The system shall exhibit first order convergence for all variables for the porous Euler equations using a HLLC discretization scheme for the advection flux and with specified temperature and momentum/velocity at one boundary and specified pressure at another boundary with
    1. constant porosity
    2. varying porosity
  • 10.3.6The system shall be able to use a primitive variable set and compute intercell fluxes using a Kurganov-Tadmor scheme
    1. when using central differencing to interpolate cell center values to faces and display second order convergence
    2. when using directional upwinding to interpolate cell center values to faces and display first order convergence
    3. when using linear interpolation of cell center values to faces with Van-Leer limiting and display at least second order convergence
  • 10.3.7The system shall be able to use a conserved variable set and compute intercell fluxes using a Kurganov-Tadmor scheme
    1. when using central differencing to interpolate cell center values to faces and display second order convergence
    2. when using directional upwinding to interpolate cell center values to faces and display first order convergence
    3. when using linear interpolation of cell center values to faces with Van-Leer limiting and display at least second order convergence
  • 10.3.8The system shall be able to solve a problem with continuously varying porosity provided through a function object, using a primitive variable set, and compute intercell fluxes using a Kurganov-Tadmor (KT) scheme with the KT Method for computing omega
    1. when using central differencing to interpolate cell center values to faces and display second order convergence
    2. when using directional upwinding to interpolate cell center values to faces and display first order convergence
    3. when using linear interpolation of cell center values to faces with Van-Leer limiting and display at least second order convergence
  • 10.3.9The system shall be able to solve a problem with continuously varying porosity provided through a function object, using a primitive variable set, and compute intercell fluxes using a Kurganov-Tadmor scheme with the Kurganov-Noelle-Petrova method for computing omega
    1. when using central differencing to interpolate cell center values to faces and display second order convergence
    2. when using directional upwinding to interpolate cell center values to faces and display first order convergence
    3. when using linear interpolation of cell center values to faces with Van-Leer limiting and display at least second order convergence
  • 10.3.10The system shall be able to solve a problem with continuously varying porosity provided through a function object, using a mixed variable set, and compute intercell fluxes using a Kurganov-Tadmor scheme
    1. when using central differencing to interpolate cell center values to faces and display second order convergence
    2. when using directional upwinding to interpolate cell center values to faces and display first order convergence
  • 10.3.11The system displays issues when trying to solve hyperbolic equations with sources when using a Godunov method with HLLC approximate Riemann solver on an irregular grid
    1. when the source has a cell-centered volumetric discretization
  • 10.3.12On a regular grid, using a HLLC scheme to calculate inter-cell fluxes, the system shall show, via the momentum variable
    1. conservation of mass when no sources are present
    2. violation of conservation of mass when sources are present
    3. lesser violation of conservation of mass when sources are present and the mesh is refined
  • 10.3.13The system shall demonstrate first order convergence rates for pressure and superficial velocity when using an upwind interpolation for advected quantities in a weakly compressible formulation of the mass and momentum Euler equations.
  • 10.3.14The system shall be able to solve compressible fluid flow kernels for mass, momentum, and energy with the addition of diffusion and display first order convergence for all variables when using a HLLC scheme for the convection terms.
  • 10.3.15The system shall be able to model subsonic nozzle flow using an HLLC discretization with a specified outlet pressure.
  • 10.3.16The system shall be able to advect a scalar using density and velocity computed through solution of the Euler equations.
  • 10.3.17The system shall be able to run a two-dimensional version of Sod's shocktube problem.
  • 10.3.18The system shall be able to model supersonic nozzle flow using an HLLC advective flux discretization and with inlet boundary conditions based on stagnation temperature and stagnation pressure.
  • 10.3.19The system shall be able to solve a series of stages of continuous porosity changes with different schemes for computing the convective fluxes assuming piecewise constant data including
    1. the Kurganov-Tadmor scheme
    2. the HLLC scheme
  • 10.3.20The system shall be able to solve a two-dimensional y-channel problem with frictional drag and a series of porosity jumps smoothed into a continuous porosity function, using the Kurganov-Tadmor scheme for computing intercell convective fluxes with upwind limiting interpolation (e.g. the + cell centroid value is used as the + side value at the face).
  • 10.3.21The system shall be able to solve a two-dimensional y-channel problem using a mixed variable set with frictional drag and a series of porosity jumps smoothed into a continuous porosity function, using the Kurganov-Tadmor scheme for computing intercell convective fluxes with upwind limiting interpolation (e.g. the + cell centroid value is used as the + side value at the face).
  • 10.3.22The system shall support the deferred correction algorithm for transitioning from low-order to high-order representations of the convective flux during a transient simulation.
  • 10.3.23The system shall be able to run a two-dimensional symmetric flow problem with an HLLC discretization for advection.
  • 10.3.24The system shall be able to compute wave speeds for HLLC Riemann solvers.
  • 10.3.25The system shall be able to compute wave speeds for HLLC Riemann solvers in multiple dimensions.
  • 10.3.26The system shall provide a boundary condition to split a constant heat flux according to local values of porosity, using functor material properties.
  • 10.3.27The system shall provide a boundary condition to split a constant heat flux according to domain-averaged values of porosity, using functor material properties.
  • 10.3.28The system shall provide a boundary condition to split a constant heat flux according to local values of thermal conductivity, using functor material properties.
  • 10.3.29The system shall provide a boundary condition to split a constant heat flux according to domain-averaged values of thermal conductivity, using functor material properties.
  • 10.3.30The system shall provide a boundary condition to split a constant heat flux according to local values of effective thermal conductivity, using functor material properties.
  • 10.3.31The system shall provide a boundary condition to split a constant heat flux according to domain-averaged values of effective thermal conductivity, using functor material properties.
  • 10.3.32The system shall provide a boundary condition to split a constant heat flux according to local values of porosity.
  • 10.3.33The system shall provide a boundary condition to split a constant heat flux according to domain-averaged values of porosity.
  • 10.3.34The system shall provide a boundary condition to split a constant heat flux according to local values of thermal conductivity.
  • 10.3.35The system shall provide a boundary condition to split a constant heat flux according to domain-averaged values of thermal conductivity.
  • 10.3.36The system shall provide a boundary condition to split a constant heat flux according to local values of effective thermal conductivity.
  • 10.3.37The system shall provide a boundary condition to split a constant heat flux according to domain-averaged values of effective thermal conductivity.
  • 10.3.38The system shall be able to impose a wall shear stress at the wall according to the algebraic wall function.
  • 10.3.39The system shall be able to solve for wall-convection with a user-specified heat transfer coefficient
    1. for a cavity problem
    2. and for a channel problem.
  • 10.3.40The system shall be able to model a simple friction-based volumetric flow diode
  • 10.3.41The system shall throw an error if the number of momentum inlet types does not match the number of inlet boundaries.
  • 10.3.42The system shall throw an error if the number of momentum inlet functions does not match the number of inlet boundaries times the dimension of the mesh.
  • 10.3.43The system shall throw an error if the number of momentum outlet types does not match the number of outlet boundaries.
  • 10.3.44The system shall throw an error if the number of pressure outlet functions is not the same the pressure outlet boundaries.
  • 10.3.45The system shall throw an error if the number of momentum wall types does not match the number of wall boundaries.
  • 10.3.46The system shall throw an error if the number of energy inlet types does not match the number of inlet boundaries.
  • 10.3.47The system shall throw an error if the number of passive scalar inlet types does not match the number of inlet boundaries.
  • 10.3.48The system shall throw an error if the number of passive scalar inlet functions does not match the number of inlet boundaries.
  • 10.3.49The system shall throw an error if the number of energy wall types does not match the number of wall boundaries.
  • 10.3.50The system shall throw an error if the number of energy wall functions does not match the number of energy wall types.
  • 10.3.51The system shall throw an error if the number of defined initial conditions is different than the number of created scalar variables.
  • 10.3.52The system shall throw an error if the number of components for the initial velocity is not 3.
  • 10.3.53The system shall throw an error if friction correction is requested with no porous medium treatment.
  • 10.3.54The system shall throw an error if consistent scaling is defined without using friction correction
  • 10.3.55The system shall throw an error if porosity smoothing is requested without porous medium treatment.
  • 10.3.56The system shall throw an error if the user defines an inappropriate number of passive scalar diffusivities
  • 10.3.57The system shall throw an error if the user defines an inappropriate number of passive scalar source functions
  • 10.3.58The system shall throw an error if the user defines an inappropriate number of passive scalar coupled source functions
  • 10.3.59The system shall throw an error if the user defines an inappropriate number of passive scalar coupled source coefficients
  • 10.3.60The system shall throw an error if the user defines an inappropriate number of passive scalar Schmidt numbers
  • 10.3.61The system shall throw an error if the user supplies a velocity variable which does not exist
  • 10.3.62The system shall throw an error if the user supplies an inappropriate number of externally created velocity components
  • 10.3.63The system shall throw an error if the user supplies a pressure variable which does not exist
  • 10.3.64The system shall throw an error if the user supplies a fluid temperature variable which does not exist
  • 10.3.65The system shall be able to perform a variety of limiting schemes when solving fluid flow equations. These schemes include
    1. second-order upwind
    2. van Leer
    3. min-mod
    4. QUICK
  • 10.3.66The system shall be able to block-restrict all variables in a heated channel simulation with passive scalar advection.
  • 10.3.67The system shall be able to reproduce benchmark results for a Rayleigh number of 1e3 using a finite volume discretization.
  • 10.3.68The system shall be able to reproduce benchmark results for a Rayleigh number of 1e4 using a finite volume discretization.
  • 10.3.69The system shall be able to reproduce benchmark results for a Rayleigh number of 1e5 using a finite volume discretization.
  • 10.3.70The system shall be able to reproduce benchmark results for a Rayleigh number of 1e6 using a finite volume discretization.
  • 10.3.71The system shall be able to reproduce benchmark results for a Rayleigh number of 1e6 using the INSFV actions.
  • 10.3.72The system should throw an error if the density is not a constant functor in case of Boussinesq treatment.
  • 10.3.73The system shall be able to model natural convection using a weakly compressible implementation.
  • 10.3.74The system shall be able to model transient natural convection with a low Rayleigh number using a weakly compressible implementation.
  • 10.3.75The system shall be able to solve incompressible Navier-Stokes channel flow with no-slip boundary conditions on the wall in an axisymmetric coordinate system using an average interpolation scheme for the velocity.
  • 10.3.76The system shall be able to solve incompressible Navier-Stokes channel flow with no-slip boundary conditions on the wall in an axisymmetric coordinate system using a Rhie-Chow interpolation scheme for the velocity.
  • 10.3.77The system shall be able to solve incompressible Navier-Stokes channel flow with free-slip boundary conditions on the wall in an axisymmetric coordinate system using a Rhie-Chow interpolation scheme for the velocity.
  • 10.3.78The system shall be able to solve a diverging channel problem in cylindrical coordinates with no slip boundary conditions.
  • 10.3.79The system shall be able to solve a straight channel problem in cylindrical coordinates using triangular elements with no slip boundary conditions.
  • 10.3.80The system shall be able to solve a straight channel problem in cylindrical coordinates using triangular elements with no slip boundary conditions and the NSFV action syntax.
  • 10.3.81The system shall be able to solve a diverging channel problem in cylindrical coordinates with free slip boundary conditions.
  • 10.3.82The system shall conserve mass when solving a Cartesian channel flow problem with one symmetry boundary condition and one no-slip wall boundary condition.
  • 10.3.83The system shall be able to model free-slip conditions in a 1D channel; specifically the tangential velocity shall have a uniform value of unity and the pressure shall not change.
  • 10.3.84The system shall be able to model free-slip conditions in a channel; specifically the tangential velocity shall have a uniform value of unity, the normal velocity shall have a uniform value of zero, and the pressure shall not change.
  • 10.3.85The system shall be able to model free-slip conditions in a channel using the NSFV action.
  • 10.3.86The system shall be able to model no-slip conditions in a channel; specifically, moving down the channel, the tangential velocity shall develop a parabolic profile.
  • 10.3.87The system shall be able to model no-slip conditions in a channel using incompressible Navier Stokes action.
  • 10.3.88The system shall be able to transport arbitrary scalar field variables in a fluid flow field.
  • 10.3.89The system shall be able to create and transport scalar field variables in a fluid flow field using the NSFVAction syntax.
  • 10.3.90The system shall be able to transport an externally-generated scalar field variables in a fluid flow field using the NSFVAction syntax.
  • 10.3.91The system shall be able to use flux boundary conditions for the momentum and match results produced by using flux kernels.
  • 10.3.92The system shall be able to extrapolate a pressure value at a fully developed outflow boundary and use a mean pressure approach to eliminate the nullspace for the pressure.
  • 10.3.93The system shall be able to model the effect of Reynolds-averaged parameters on the momentum and passive scalar advection equations using a mixing length model
  • 10.3.94The system shall be able to model the effect of Reynolds-averaged parameters on the momentum and passive scalar advection equations using a mixing length model and the NSFVAction syntax
  • 10.3.95The system shall be able to model the effect of Reynolds-averaged parameters on the momentum and passive scalar advection equations using a mixing length model and show a perfect Jacobian
  • 10.3.96The system shall be able to model linear volumetric friction in a channel.
  • 10.3.97The system shall be able to model quadratic volumetric friction in a channel.
  • 10.3.98The system shall be able to model linear volumetric friction in a channel using NSFVAction syntax.
  • 10.3.99The system shall be able to model quadratic volumetric friction in a channel using NSFVAction syntax.
  • 10.3.100The system shall be able to model ambient volumetric convection in a channel.
  • 10.3.101The system shall be able to model ambient volumetric convection in a channel using the Navier-Stokes action.
  • 10.3.102The system shall be able to run incompressible Navier-Stokes channel-flow simulations with
    1. two-dimensional triangular elements
    2. three-dimensional tetrahedral elements
  • 10.3.103The system shall be able to model free-slip conditions in a 3D square channel; specifically the tangential velocity shall have a uniform value of unity and the pressure shall not change.
  • 10.3.104The system shall be able to compute gradients, when extrapolated boundary face values make the gradient computation singular, by catching the singularity error and re-running without doing boundary face value extrapolation.
  • 10.3.105The system shall show a monotone pressure profile in the presence of discontinuous body forces, in this case a transient from free flow to linear drag.
  • 10.3.106The system shall be able to simulate a transient flow in a channel with enthalpy as an advected quantity.
  • 10.3.107The system shall be able to simulate a transient flow in a channel with enthalpy as an advected quantity using the NSFV action syntax.
  • 10.3.108The system shall error if a user specifies a residual object for the momentum equation that is not a incompressible Navier-Stokes finite volume momentum residual object.
  • 10.3.109The system shall error if the interpolation object has block restriction different from the nonlinear flow variables.
  • 10.3.110The system shall be able to solve the incompressible Navier-Stokes equations in a lid-driven cavity using the finite volume method.
  • 10.3.111The system shall be able to solve the incompressible Navier-Stokes equations in a lid-driven cavity using the finite volume Navier-Stokes action.
  • 10.3.112The system shall be able to solve the incompressible Navier-Stokes equations in a lid-driven cavity by fixing the point value of the pressure at a certain coordinate.
  • 10.3.113The system shall be able to solve the incompressible Navier-Stokes equations in a lid-driven cavity by fixing the point value of the pressure at a certain coordinate using the NSFV action syntax.
  • 10.3.114The system shall be able to solve an incompressible Navier-Stokes problem with dirichlet boundary conditions for all the normal components of velocity, using the finite volume method, and have a nonsingular system matrix.
  • 10.3.115The system shall be able to compute a perfect Jacobian when solving a lid-driven incompressible Navier-Stokes problem with the finite volume method.
  • 10.3.116The system shall be able to transport scalar quantities using the simultaneously calculated velocity field from the incompressible Navier Stokes equations.
  • 10.3.117The system shall be able to get the same result as the enthalpy transport example using the NSFVAction to set up the run.
  • 10.3.118The system shall be able to transport scalar quantities using the simultaneously calculated velocity field from the transient incompressible Navier Stokes equations.
  • 10.3.119The system shall yield a quiescent fluid in an axisymmetric coordinate system with a gravitational force applied and Rhie-Chow interpolation used for the velocity field.
  • 10.3.120The system shall compute an accurate Jacobian when a scaling factor is applied to a scalar variable.
  • 10.3.121The system shall be able to compute the turbulent viscosity based on the capped mixing length model and store it in a variable when performing
    1. transient simulations
    2. steady simulations
  • 10.3.122The system shall be able to calculate the material property comprising the total turbulent viscosity, based on the capped mixing length model when performing
    1. transient simulations
    2. steady simulations
    3. steady simulations with action syntax
  • 10.3.123The system shall exhibit second order convergence for all variables in a Cartesian, no-slip, channel-flow problem using a Rhie-Chow interpolation, including body forces, and two term boundary expansion for gradient and extrapolated boundary face value computation.
  • 10.3.124The system shall exhibit second order convergence for all variables in a Cartesian, no-slip, channel-flow problem with a symmetry axis using a Rhie-Chow interpolation, including body forces, and two term boundary expansion for gradient and extrapolated boundary face value computation.
  • 10.3.125The system shall exhibit second order convergence for all variables in an axisymmetric, no-slip, channel-flow problem using a Rhie-Chow interpolation, including body forces, and two term boundary expansion for gradient and extrapolated boundary face value computation.
  • 10.3.126The system shall be able to solve a problem with channel-flow like boundary conditions in the coordinate system with an average interpolation for the velocity and demonstrate second order convergence in the velocity variables and first order convergence in the pressure variable.
  • 10.3.127The system shall be able to solve a problem with channel-flow like boundary conditions in the coordinate system with a Rhie-Chow interpolation for the velocity and demonstrate second order convergence in the velocity and pressure variables.
  • 10.3.128The system shall be able to solve the incompressible Navier-Stokes equations in an RZ coordinate system, including energy, using an average interpolation for the velocity, with a mix of Dirichlet and zero-gradient boundary conditions for each variable, and demonstrate second order convergence for each variable other than the pressure which shall demonstrate first order convergence.
  • 10.3.129The system shall be able to solve the incompressible Navier-Stokes equations in an RZ coordinate system, including energy, using a RC interpolation for the velocity, with a mix of Dirichlet and zero-gradient boundary conditions for each variable, and demonstrate second order convergence for each variable.
  • 10.3.130The system shall demonstrate global second order convergence for all variables on a rotated mesh when using an average interpolation for the velocity and a two term Taylor series expansion for face values on non-Dirichlet boundaries.
  • 10.3.131The system shall demonstrate global second order convergence for all variables on a rotated mesh when using an RC interpolation for the velocity and a two term Taylor series expansion for face values on non-Dirichlet boundaries.
  • 10.3.132The system shall demonstrate global second order convergence for velocity variables and first order convergence for the pressure variable on a rotated mesh when using an average interpolation for the velocity and a one term Taylor series expansion for face values on non-Dirichlet boundaries.
  • 10.3.133The system shall demonstrate global second order convergence for all variables on a rotated mesh when using an RC interpolation for the velocity and a one term Taylor series expansion for face values on non-Dirichlet boundaries.
  • 10.3.134The system shall be able to solve the incompressible Navier-Stokes equations in one dimension with prescribed inlet velocity and outlet pressure and implicit zero gradient boundary conditions elsewhere, and demonstrate second order convergence in both velocity and pressure when using an average interpolation scheme for the velocity.
  • 10.3.135The system shall be able to solve the incompressible Navier-Stokes equations in two dimensions with prescribed inlet velocity and outlet pressure, free slip along the walls, and implicit zero gradient boundary conditions elsewhere, and demonstrate second order convergence in both velocity and pressure when using an average interpolation scheme for the velocity.
  • 10.3.136The system shall be able to solve the incompressible Navier-Stokes equations in two dimensions with prescribed inlet velocity and outlet pressure, free slip along the walls, and implicit zero gradient boundary conditions elsewhere, and demonstrate second order convergence in both velocity and pressure when using a Rhie-Chow interpolation scheme for the velocity.
  • 10.3.137The system shall demonstrate global second order convergence for all variables when using an average interpolation for the velocity and a two term Taylor series expansion for face values on non-Dirichlet boundaries.
  • 10.3.138The system shall demonstrate global second order convergence for all variables when using an RC interpolation for the velocity and a two term Taylor series expansion for face values on non-Dirichlet boundaries.
  • 10.3.139The system shall demonstrate global second order convergence for all variables when using an average interpolation for the velocity and a one term Taylor series expansion for face values on non-Dirichlet boundaries.
  • 10.3.140The system shall demonstrate global second order convergence for all variables when using an RC interpolation for the velocity and a one term Taylor series expansion for face values on non-Dirichlet boundaries.
  • 10.3.141The system shall be able to solve the incompressible Navier-Stokes equations, including energy, using an average interpolation for the velocity, with a mix of Dirichlet and zero-gradient boundary conditions for each variable, and demonstrate second order convergence for each variable.
  • 10.3.142The system shall be able to solve the incompressible Navier-Stokes equations, including energy, using a Rhie-Chow interpolation for the velocity, with a mix of Dirichlet and zero-gradient boundary conditions for each variable, and demonstrate second order convergence for each variable.
  • 10.3.143The system shall be able to solve the incompressible Navier-Stokes equations in 2D cylindrical coordinates, using a Rhie-Chow scheme, dirichlet boundary conditions for both variables, and demonstrate second order convergence for the velocity and pressure.
  • 10.3.144The system shall be able to solve the incompressible Navier-Stokes equations on triangular meshes, using a Rhie-Chow scheme and skewness-correction, Dirichlet boundary conditions for the velocity, and demonstrate second order convergence for the velocity and first order convergence for pressure.
  • 10.3.145The system shall be able to solve the incompressible Navier-Stokes equations on triangular meshes using skewness-correction and the NSFV action syntax.
  • 10.3.146The system shall be able to automatically expand its ghosting pattern when skew-corrected face gradients are involved in the simulation.
  • 10.3.147The system shall be able to solve the incompressible Navier-Stokes equations using a Rhie-Chow interpolation scheme and produce second order convergence for all variables.
  • 10.3.148The system shall be able to transport passive scalar quantities in an application different from the fluid flow.
  • 10.3.149The system shall error out if both average and Rhie Chow velocity interpolation parameters are provided.
  • 10.3.150The system shall error out if Rhie Chow velocity interpolation is requested but the a coefficients are not provided and cannot be computed from the momemtum equation.
  • 10.3.151The system shall error out if the Rhie Chow a coefficients are provided in a manner inconsistent with the dimension of the problem g
    1. for example with the Y coefficient but not the X one
    2. for example with the Z coefficient but not the X one
  • 10.3.152The system shall be able to solve for flow in a 3D channel while not caching face variable values.
  • 10.3.153The system shall be able to solve for flow in a 3D channel while not caching face variable gradients.
  • 10.3.154The system shall be able to solve for flow in a 3D channel while only caching face pressure gradients.
  • 10.3.155The system shall be able to solve for flow in a 3D channel while caching all variable face values and gradients.
  • 10.3.156The system shall be able to compute the turbulent viscosity based on the capped mixing length model.
  • 10.3.157The system shall be able to solve for fluid energy diffusion, advection and convection with the solid phase in a 2D channel
    1. with a Cartesian geometry, only modeling the fluid phase,
    2. in rz geometry,
    3. with an effective diffusion coefficient,
  • 10.3.158The system shall be able to solve for fluid energy diffusion, advection and convection with the solid phase in a 2D channel, modeling both fluid and solid temperature.
  • 10.3.159The system shall be able to solve for fluid energy diffusion, advection and convection with the solid phase in a 2D channel using the NSFV action syntax.
  • 10.3.160The system shall be able to solve for fluid energy diffusion, advection and block-restricted convection.
  • 10.3.161The system shall be able to solve for fluid energy diffusion, advection and block-restricted convection with the solid phase in a 2D channel using the NSFV action syntax.
  • 10.3.162The system shall be able to solve transient relaxations with fluid energy diffusion, advection and convection with the solid phase in a 2D channel, modeling both fluid and solid temperature.
  • 10.3.163The system shall be able to run transient simulations with fluid energy diffusion, advection and convection with the solid phase in a 2D channel, modeling both fluid and solid temperature using the NSFV action syntax.
  • 10.3.164The system shall be able to solve for fluid energy diffusion, advection and convection with the solid phase in a 2D channel with a Boussinesq approximation for the influence of temperature on density.
  • 10.3.165The system shall be able to solve for fluid energy diffusion, advection and convection with the solid phase in a 2D channel with a Boussinesq approximation using the NSFV action syntax.
  • 10.3.166The system shall be able to model a smooth porosity gradient in a 2D channel.
  • 10.3.167The system shall be able to model a discontinuous porosity jump in a 1D channel with average interpolation of velocity and advected quantity.
  • 10.3.168The system shall be able to model a discontinuous porosity jump in a 1D channel with average interpolation of velocity and upwinding of the advected quantity.
  • 10.3.169The system shall be able to model a discontinuous porosity jump in a 1D channel with Rhie Chow interpolation of velocity and averaging of the advected quantity.
  • 10.3.170The system shall be able to model a discontinuous porosity jump in a 1D channel with Rhie Chow interpolation of velocity and upwinding of the advected quantity.
  • 10.3.171The system shall be able to model a discontinuous porosity jump in a 2D channel.
  • 10.3.172The system shall exhibit a monotonic pressure profile when a number of reconstructions (essentially smoothing) are applied to the porosity.
  • 10.3.173The system shall error if the user attempts to create a reconstructed field from a variable.
  • 10.3.174The system shall be able to model free-slip conditions in a porous media channel; specifically the tangential velocity shall have a uniform value of unity, the normal velocity shall have a uniform value of zero, and the pressure shall not change.
  • 10.3.175The system should be able to run a porous medium channel computation using the NSFV action.
  • 10.3.176The system shall be able to model free-slip conditions in a porous media cylindrical channel; specifically the tangential velocity shall have a uniform value of unity, the normal velocity shall have a uniform value of zero, and the pressure shall not change.
  • 10.3.177The system shall be able to model no-slip conditions in a porous media channel; specifically, moving down the channel, the tangential velocity shall develop a parabolic profile.
  • 10.3.178The system shall be able to model no-slip conditions in a porous media channel with flow driven by a pressure differential; specifically, moving down the channel, the tangential velocity shall develop a parabolic profile.
  • 10.3.179The system shall be able to model no-slip conditions in a porous media channel with flow driven by a pressure differential using the NSFVAction syntax.
  • 10.3.180The system shall be able to model no-slip conditions in a porous media channel with a set mean pressure; specifically, moving down the channel, the tangential velocity shall develop a parabolic profile.
  • 10.3.181The system shall be able to model no-slip conditions in a porous media channel using the NSFV action and a set mean pressure.
  • 10.3.182The system shall be able to model no-slip conditions in a porous media channel using an average interpolation for velocity; specifically, moving down the channel, the tangential velocity shall develop a parabolic profile.
  • 10.3.183The system shall be able to model no-slip conditions in a porous media channel with a porosity of 1; specifically, it should match a regular INSFV simulation results.
  • 10.3.184The system shall be able to model no-slip conditions in a porous media channel with reflective boundary conditions on one side; specifically, moving down the channel, the tangential velocity shall develop a parabolic profile.
  • 10.3.185The system shall be able to model no-slip conditions in a symmetric porous media channel using the NSFV action.
  • 10.3.186The system shall be able to model no-slip conditions in a cylindrical porous media channel with reflective boundary conditions on one side; specifically, moving down the channel, the tangential velocity shall develop a parabolic profile.
  • 10.3.187The system shall be able to model porous flow with volumetric friction, using the Darcy and Forchheimer friction models with no slip boundary conditions on the channel walls.
  • 10.3.188The system shall be able to model porous flow with volumetric friction, using the Darcy and Forchheimer friction models and the NSFV action input syntax.
  • 10.3.189The system shall be able to model porous flow with volumetric friction, using the Darcy and Forchheimer friction models with free slip boundary conditions on the channel walls.
  • 10.3.190The system shall be able to model porous flow with volumetric friction, using the Darcy and Forchheimer friction models with free slip boundary conditions using the NSFV action.
  • 10.3.191The system shall be able to model porous flow with block-restricted volumetric friction.
  • 10.3.192The system shall be able to model porous flow with block-restricted volumetric friction using the NSFV action.
  • 10.3.193The system shall be able to solve the porous flow equations in RZ geometry using an integration by parts of the pressure term.
  • 10.3.194The system shall be able to compute the speed, eg the norm of the interstitial velocity, in a porous media incompressible flow problem.
  • 10.3.195The system shall be able to compute the speed in a porous media incompressible flow problem from within the NSFVAction.
  • 10.3.196The system shall be able to solve the incompressible porous flow Navier-Stokes equations using a Rhie-Chow interpolation scheme in a 1D channel with a continuously varying porosity and produce second order convergence for all variables.
  • 10.3.197The system shall be able to solve the incompressible porous flow Navier-Stokes equations using a Rhie-Chow interpolation scheme in a 2D channel with a continuously varying porosity and produce second order convergence for all variables.
  • 10.3.198The system shall show second order convergence for all variables when the porosity is interpolated and reconstructed multiple times and when a correction is applied to the pressure interpolation.
  • 10.3.199The system shall show second order convergence for all variables when using porosity reconstructions and friction corrections together with NSFV action syntax.
  • 10.3.200The system shall show a perfect Jacobian when the porosity is interpolated and reconstructed multiple times and when a correction is applied to the pressure interpolation.
  • 10.3.201The system shall be able to solve the incompressible porous flow Navier-Stokes equations in a 1D channel using a Rhie-Chow interpolation scheme and produce second order convergence for all variables.
  • 10.3.202The system shall be able to solve the incompressible porous flow Euler equations in a 1D channel using a Rhie-Chow interpolation scheme for velocity and upwind interpolation for advected quantities and produce first order convergence for pressure and 1.5 order for velocity.
  • 10.3.203The system shall be able to solve the incompressible porous flow Euler equations in a 1D channel using a Rhie-Chow interpolation scheme for velocity and upwind interpolation for advected quantities and produce first order convergence for pressure and 1.5 order for velocity with using flux boundary conditions for both variables.
  • 10.3.204The system shall be able to solve the incompressible porous flow Navier-Stokes equations in a 2D channel using a Rhie-Chow interpolation scheme and produce second order convergence for all variables.
  • 10.3.205The system shall be able to solve transient relaxations within the weakly compressible approximation, with fluid energy diffusion, advection and convection with the solid phase in a 2D channel, modeling both fluid and solid temperature.
  • 10.3.206The system shall be able to solve weakly compressible transient problems with the NSFV action syntax.
  • 10.3.207The system shall be able to solve transient relaxations within the weakly compressible approximation, with fluid energy diffusion, advection and convection with the solid phase in a 2D channel, modeling both fluid and solid temperature and show a perfect Jacobian.
  • 10.3.208The system shall be able to use Dirichlet boundary conditions for specifying inlet conditions in a weakly compressible fluid flow simulation
    1. using a velocity postprocessor
    2. using a mass flow rate postprocessor
  • 10.3.209The system shall be able to use flux boundary conditions for specifying inlet conditions in a weakly compressible fluid flow simulation
    1. specifying the flux values directly though the flow rates
    2. using the inlet velocity to compute the fluxes
    3. using the inlet velocity to compute the fluxes with the NSFV action syntax
    4. using the inlet mass flow rate to compute the fluxes
    5. using the inlet mass flow rate to compute the fluxes with NSFVAction syntax
  • 10.3.210The system shall error out if
    1. the inlet velocity cannot be determined from the mass flow rate due to insufficient parameters
    2. the inlet temperature cannot be determined because neither the temperature or the energy flow rate have been provided
    3. the inlet temperature cannot be determined from the energy flow rate due to missing fluid velocity information
    4. the inlet temperature cannot be determined from the velocity due to insufficient parameters
    5. the inlet temperature cannot be determined from the mass flow rate due to insufficient parameters
  • 10.3.211The system shall return a warning if
    1. redundant information is provided for setting the inlet velocity
    2. redundant information is provided for setting the inlet temperature
  • 10.3.212The system shall error out if
    1. only the mass flow rate is provided to compute the inlet mass flux
    2. only the velocity is provided to compute the inlet mass flux
    3. only the mass flow rate is provided to compute the inlet momentum flux
    4. only the velocity is provided to compute the inlet momentum flux
    5. the inlet energy cannot be determined because neither the temperature or the energy flow rate have been provided
    6. the inlet energy flux cannot be determined because the temperature was provided but neither the inlet mass flow rate or velocity were provided
    7. the inlet energy flux cannot be determined because the temperature and velocity were provided but the density or specific heat capacity were not
    8. the inlet energy flux cannot be determined because the temperature and mass flow rate were provided but the specific heat capacity or flow area were not
    9. neither the scalar quantity flux or boundary values are specified when attempting to compute the scalar quantity flux
    10. only the mass flow rate is provided to compute the inlet scalar quantity flux
    11. only the scalar quantity boundary value is provided to compute the inlet scalar quantity flux
  • 10.3.213The system shall return a warning if
    1. redundant information is provided for setting the inlet mass flux
    2. redundant information is provided for setting the inlet momentum flux
    3. redundant information is provided for setting the inlet energy flux
    4. redundant information is provided for setting the inlet scalar flux
  • 10.3.214The system shall be able to solve for a transient 2D channel case with a weakly compressible formulation.
  • 10.3.215The system shall be able to solve for a transient 2D channel case with a weakly compressible formulation using the NSFV action syntax.
  • 10.3.216The system shall be able to solve for a transient 2D channel case with a weakly compressible formulation and a mixing length turbulence model.
  • 10.3.217The system shall be able to solve for a transient 2D channel case with a weakly compressible formulation and a mixing length turbulence model using the NSFV action syntax.
  • 10.3.218The system shall be able to solve for a transient 2D channel case with a weakly compressible formulation and show a perfect Jacobian.
  • 10.3.219The system shall be able to solve for a transient 2D channel case with a weakly compressible formulation and a mixing length turbulence model and show a perfect Jacobian.
  • 10.3.220The system shall be able to use realistic fluid properties in a weakly compressible flow simulation
  • 10.3.221The system shall be able to output gradeurs, derivatives and adimensional quantities from realistic functor fluid properties
  • navier_stokes: Ics
  • 10.4.1The system shall be able to set initial conditions for fluid flow variables.
  • 10.4.2The system shall be able to set initial conditions for fluid flow variables using functions.
  • 10.4.3The system shall be able to set intial conditions for porous flow variables.
  • navier_stokes: Postprocessors
  • 10.5.1The system shall be able to compute mass and momentum flow rates at internal and external boundaries of a straight channel with a finite element incompressible Navier Stokes model.
  • 10.5.2The system shall be able to compute mass and momentum flow rates at internal and external boundaries of a diverging channel with a finite element incompressible Navier Stokes model.
  • 10.5.3The system shall be able to compute flow rates and prove mass, momentum and energy conservation at internal and external boundaries of a frictionless heated straight channel with a finite volume incompressible Navier Stokes model.
  • 10.5.4The system shall be able to compute flow rates and prove mass, momentum and energy conservation at internal and external boundaries of a frictionless heated diverging channel with a finite volume incompressible Navier Stokes model,
    1. with a quadrilateral mesh in XY geometry, with mass flow measured using either a variable or material property,
    2. with a quadrilateral mesh in RZ geometry,
    3. with a triangular mesh in XY geometry,
    4. with upwind interpolation of advected quantities,
    5. and with no-slip boundary conditions, for which momentum and energy will be dissipated at the wall.
  • 10.5.5The system shall be able to compute flow rates and prove mass, momentum and energy conservation at internal and external boundaries of a frictionless heated straight channel with a finite volume porous media incompressible Navier Stokes model.
  • 10.5.6The system shall be able to compute flow rates and prove mass, momentum and energy conservation at internal and external boundaries of a frictionless heated diverging channel with a finite volume porous media incompressible Navier Stokes model,
    1. with a quadrilateral mesh in XY geometry, with mass flow measured using either a variable or material property,
    2. with a quadrilateral mesh in RZ geometry,
    3. with upwind interpolation of advected quantities,
    4. and with no-slip boundary conditions, for which momentum and energy will be dissipated at the wall.
  • 10.5.7The system shall be able to compute the Rayleigh number in a natural convection flow simulation

Usability Requirements

Performace Requirements

System Interfaces

System Operations

Human System Integration Requirements

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

Maintainablity

- The latest working version (defined as the version that passes all tests in the current regression test suite) shall be publicly available at all times through the repository host provider. - Flaws identified in the system shall be reported and tracked in a ticket or issue based system. The technical lead will determine the severity and priority of all reported issues and assign resources at his or her discretion to resolve identified issues. - The software maintainers will entertain all proposed changes to the system in a timely manner (within two business days). - The core framework in its entirety will be made publicly available under the LGPL version 2.0 license.

Reliability

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

System Modes and States

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

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

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

Phyisical Characteristics

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

Environmental Conditions

Not Applicable

System Security

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

Information Management

The core framework in its entirety will be made publicly available on an appropriate repository hosting site. Backups and security services will be provided by the hosting service.

Polices and Regulations

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

System Life Cycle Sustainment

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

Packaging, Handling, Shipping and Transportation

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

Verification

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