Navier Stokes System Requirements Specification
This template follows INL template TEM-135, "IT System Requirements Specification".
This document serves as an addendum to Framework System Requirements Specification and captures information for SRS specific to the Navier Stokes module.
Introduction
System Purpose
The purpose of this software is to allow simulation of fluid flow in regular and porous media. It should be able to determine the pressure, velocity, and fluid temperature fields, as well as the solid temperature field in the case of conjugate heat transfer simulations. It aims to also be able to transport scalar species in the flow fields determined.
System Scope
The MOOSE Navier Stokes module provides numerical discretizations of the Navier Stokes equations to model the flow of fluid through regular and porous media. The equations discretized include the conservation of mass, momentum, energy and of transported scalars / species. It covers a wide range of fluids and of fluid flow regimes. It covers both natural and forced convection regime, and should be able to model conjugate heat transfer between the fluid and solid phases. A number of scalar species can be transported using the velocity field determined from the fluid flow equations. It can be used as a standalone application or can be included in downstream applications interested in modeling multiphysics problems involving fluid flow.
System Overview
System Context
The Navier Stokes module is command-line driven. Like MOOSE, this is typical for a high-performance software that is designed to run across several nodes of a cluster system. As such, all usage of the software is through any standard terminal program generally available on all supported operating systems. Similarly, for the purpose of interacting through the software, there is only a single user, "the user", which interacts with the software through the command-line. The Navier Stokes module does not maintain any back-end database or interact with any system daemons. It is an executable, which may be launched from the command line and writes out various result files as it runs.
Figure 1: Usage of the Navier Stokes module and other MOOSE-based applications.
System Functions
Since the Navier Stokes module is a command-line driven application, all functionality provided in the software is operated through the use of standard UNIX command line flags and the extendable MOOSE input file. The Navier Stokes module is completely extendable so individual design pages should be consulted for specific behaviors of each user-defined object.
User Characteristics
Like MOOSE, there are three kinds of users working on the Navier Stokes module:
Navier Stokes module Developers: These are the core developers of the Navier Stokes module. They are responsible for following and enforcing the software development standards of the module, as well as designing, implementing, and maintaining the software.
Developers: A scientist or engineer that uses the Navier Stokes module alongside MOOSE to build their own application. This user will typically have a background in modeling or simulation techniques (and perhaps numerical analysis) but may only have a limited skillset when it comes to code development using the C++ language. This is the primary focus group of the module. In many cases, these developers will be encouraged to contribute module-appropriate code back to the Navier Stokes module, or to MOOSE itself.
Analysts: These are users that will run the code and perform 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 module is developed using MOOSE and can itself be based on various MOOSE modules, as such the SRS for the Navier Stokes module is dependent upon the files listed at the beginning of this document. Any further assumptions or dependencies are outlined in the remainder of this section.
The Navier Stokes module is designed with the fewest possible constraints on hardware and software. For more context on this point, the Navier Stokes module SRS defers to the framework Assumptions and Dependencies. The Navier Stokes module depends on the fluid properties module for fluid properties. All physics-based assumptions in this module's objects are highlighted in each object's respective documentation pages. A summary of the key assumptions may be found on the Navier Stokes module homepage. The key physics-based assumptions when modeling fluid flow consist of the compressibility, from incompressible to fully compressible, the flow regime, whether turbulent or regular, and whether the media is porous or not, which induces volumetric friction. The key numerical decisions to be made when using the Navier Stokes module are whether to use a finite volume or finite element discretization, and within those which numerical scheme to use, notably for discretizing the advective term.
References
Definitions and Acronyms
This section defines, or provides the definition of, all terms and acronyms required to properly understand this specification.
Definitions
Verification: (1) The process of: evaluating a system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase. (2) Formal proof of program correctness (e.g., requirements, design, implementation reviews, system tests) (24765:2010(E), 2010).
Acronyms
Acronym | Description |
---|---|
INL | Idaho National Laboratory |
LGPL | GNU Lesser General Public License |
MOOSE | Multiphysics Object Oriented Simulation Environment |
NQA-1 | Nuclear Quality Assurance Level 1 |
POSIX | Portable Operating System Interface |
SRS | Software Requirement Specification |
System Requirements
In general, the following is required for MOOSE-based development:
GCC/Clang C++17 compliant compiler (GCC @ 7.5.0, Clang @ 10.0.1 or greater)
Note: Intel compilers are not supported.
Memory: 8 GBs of RAM for optimized compilation (16 GBs for debug compilation), 2 GB per core execution
Processor: 64-bit x86 or ARM64 (specifically, Apple Silicon)
Disk: 30GB
A POSIX compliant Unix-like operating system, including the two most recent versions of MacOS and most current versions of Linux.
Git version control system
Python @ 3.7 or greater
Functional Requirements
- navier_stokes: Auxkernels
- 10.1.1The system shall be able to compute the liquid fraction based on solidus and liquidus temperatures.
- 10.1.2The system shall be able to compute element thermal Peclet numbers for:
- finite volume discretizations
- finite element discretizations
- 10.1.3The system shall be able to compute element Reynolds numbers for:
- finite volume discretizations
- 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
- traction form
- 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
- provided through a dedicated object,
- or through a generic object that can simultaneously add multiple forces through both a coupled variable and a function.
- The generic object shall also be able to compute the forces solely through multiple coupled variables,
- or solely through multiple vector functions.
- 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,
- two coupled variables,
- or two functions.
- 10.2.57The system shall exhibit global conservation of energy when using the continuous-Galerkin finite element spatial discretization with streamline-upwind Petrov-Galerkin stabilization and with
- q2q1 elements
- q1q1 elements and pressure-stabilized Petrov-Galerkin stabilization
- 10.2.58The system shall be able to model a volumetric heat source and included it in stabilization terms.
- 10.2.59The system shall be able to build a volumetric heat source model using an automatic action syntax.
- 10.2.60The system shall be able to model a volumetric heat source with a coupled variable and included it in stabilization terms.
- 10.2.61The system shall be able to build a volumetric heat source model, provided through a coupled variable, using an automatic action syntax.
- 10.2.62The system shall be able to model the effect of gravity on incompressible flow using a finite element discretization.
- 10.2.63The system shall compute accurate Jacobians for the incompressible Navier-Stokes equation.
- 10.2.64The system shall compute accurate Jacobians for the incompressible Navier-Stokes equation with stabilization.
- 10.2.65The system shall compute accurate Jacobians for the incompressible Navier-Stokes equation with stabilization with a traction boundary condition.
- 10.2.66The system shall be able to solve Jeffery-Hamel flow in a 2D wedge and compare to the analytical solution
- with pressure Dirichlet boundary conditions
- and with natural advection boundary conditions.
- 10.2.67The system shall support solving a steady energy equation and transient momentum equations and apply the correct stabilization.
- 10.2.68The system shall support solving a steady energy equation and transient momentum equations with correct stabilization and compute a perfect Jacobian.
- 10.2.69We shall be able to solve a canonical lid-driven problem without stabilization, using mixed order finite elements for velocity and pressure.
- 10.2.70The system shall be able to solve a canonical lid-driven problem using same order variables and the PSPG/SUPG stabilization scheme.
- 10.2.71We shall be able to reproduce the results from the hand-coded lid-driven simulation using automatic differentiation objects.
- 10.2.72We shall be able to run lid-dirven simulation using a global mean-zero pressure constraint approach.
- 10.2.73The Jacobian for the mixed-order INS problem shall be perfect when provided through automatic differentiation.
- 10.2.74We 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.75We shall be able to reproduce the hand-coded stabilized results with automatic differentiation objects.
- 10.2.76The Jacobian for the automatic differentiation stabilized lid-driven problem shall be perfect.
- 10.2.77Simulation with equal-order shape functions without pressure stabilization shall be unstable.
- 10.2.78We shall be able to solve the INS equations using the classical Chorin splitting algorithm.
- 10.2.79The system shall be able to reproduce unstabilized incompressible Navier-Stokes results with hand-coded Jacobian using a customized and condensed action syntax.
- 10.2.80The system shall be able to reproduce stabilized incompressible Navier-Stokes results with hand-coded Jacobian using a customized and condensed action syntax.
- 10.2.81The system shall be able to reproduce unstabilized incompressible Navier-Stokes results with auto-differentiation using a customized and condensed action syntax.
- 10.2.82The system shall be able to reproduce stabilized incompressible Navier-Stokes results with auto-differentiation using a customized and condensed action syntax.
- 10.2.83The system shall be able to solve a steady stabilized mass/momentum/energy incompressible Navier-Stokes formulation.
- 10.2.84The system shall be able to solve a transient stabilized mass/momentum/energy incompressible Navier-Stokes formulation.
- 10.2.85The system shall be able to solve a steady stabilized mass/momentum/energy incompressible Navier-Stokes formulation with action syntax.
- 10.2.86The system shall be able to solve a transient stabilized mass/momentum/energy incompressible Navier-Stokes formulation with action syntax.
- 10.2.87The system shall be able to solve a transient incompressible Navier-Stokes with nonlinear Smagorinsky eddy viscosity.
- 10.2.88The system shall be able to apply pressure stabilization using an alpha parameter of 1e-6 on a
- 4x4,
- 8x8,
- 16x16,
- and 32x32 mesh.
- 10.2.89The system shall be able to apply pressure stabilization using an alpha parameter of 1e-3 on a
- 4x4,
- 8x8,
- 16x16,
- and 32x32 mesh.
- 10.2.90The system shall be able to apply pressure stabilization using an alpha parameter of 1e0 on a
- 4x4,
- 8x8,
- 16x16,
- and 32x32 mesh.
- 10.2.91The system shall be able to apply streamline-upwind stabilization using an alpha parameter of 1e-6 on a
- 4x4,
- 8x8,
- 16x16,
- and 32x32 mesh.
- 10.2.92The system shall be able to apply streamline-upwind stabilization using an alpha parameter of 1e-3 on a
- 4x4,
- 8x8,
- 16x16,
- and 32x32 mesh.
- 10.2.93The system shall be able to apply streamline-upwind stabilization using an alpha parameter of 1e0 on a
- 4x4,
- 8x8,
- 16x16,
- and 32x32 mesh.
- 10.2.94The 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.95The 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.96The system shall allow MOOSE applications to specify nonzero malloc behavior; for the Navier-Stokes application, new nonzero allocations shall be errors.
- 10.2.97The system shall be able to solve for incompressible fluid flowing through a 2D channel driven by pressure inlet and outlet boundary conditions
- using the kernel formulation,
- using the action formulation
- and using a field split preconditioning.
- 10.2.98The 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.99The system shall be able to solve for an incompressible fluid flowing through a 1D channel with Streamline Upwind Petrov Galerkin stabilization.
- using the optimal tau stabilization,
- using the modified tau stabilization,
- and still satisfy MMS testing in 1D
- and in 2D.
- 10.2.100The system shall be able to solve for incompressible fluid evolving in a corner cavity with Dirichlet boundary conditions on velocity.
- in 2D
- and in 2D RZ axisymmetric simulations.
- 10.2.101The system shall be able to solve for incompressible fluid flowing through a 2D channel with only inlet velocity boundary conditions
- with the regular volumetric integration of the momentum pressure term
- and with the momentum pressure term integrated by parts.
- 10.2.102The system shall be able to model heat transfer from ambient surroundings using a volumetric approximation.
- 10.2.103The system shall be able to build a simulation, modeling heat transfer from ambient surroundings, using an automated action syntax.
- 10.2.104The 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.
- 10.2.105The system shall be able to solve a porous flow with pressure drop due to viscous and inertia frictions.
- 10.2.106The system shall be able to solve a pressure gradient driven porous flow.
- 10.2.107The system shall be able to solve a porous flow with internal heating source.
- 10.2.108The system shall be able to solve a porous flow when reverse flow happens.
- 10.2.109The system shall be able to solve a porous flow using slip-wall boundary condition.
- navier_stokes: Finite Volume
- 10.3.1The system shall be able to use Weller's reconstruction method to build cell vector values from face fluxes with a second order convergence.
- 10.3.2The system shall be able to solve the 1D Sod shock-tube benchmark problem using an HLLC scheme to compute convective fluxes.
- 10.3.3The 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.4The system shall be able to impose boundary advective fluxes for HLLC discretizations that use implicit/interior cell information.
- 10.3.5The system shall exhibit first order convergence for all variables for the free-flow Euler equations with added artificial diffusion 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.6The 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
- constant porosity
- varying porosity
- 10.3.7The system shall be able to use a primitive variable set and compute intercell fluxes using a Kurganov-Tadmor scheme
- when using central differencing to interpolate cell center values to faces and display second order convergence
- when using directional upwinding to interpolate cell center values to faces and display first order convergence
- 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 use a conserved variable set and compute intercell fluxes using a Kurganov-Tadmor scheme
- when using central differencing to interpolate cell center values to faces and display second order convergence
- when using directional upwinding to interpolate cell center values to faces and display first order convergence
- 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 (KT) scheme with the KT Method for computing omega
- when using central differencing to interpolate cell center values to faces and display second order convergence
- when using directional upwinding to interpolate cell center values to faces and display first order convergence
- 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 primitive variable set, and compute intercell fluxes using a Kurganov-Tadmor scheme with the Kurganov-Noelle-Petrova method for computing omega
- when using central differencing to interpolate cell center values to faces and display second order convergence
- when using directional upwinding to interpolate cell center values to faces and display first order convergence
- when using linear interpolation of cell center values to faces with Van-Leer limiting and display at least second order convergence
- 10.3.11The 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
- when using central differencing to interpolate cell center values to faces and display second order convergence
- when using directional upwinding to interpolate cell center values to faces and display first order convergence
- 10.3.12The 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
- when the source has a cell-centered volumetric discretization
- 10.3.13On a regular grid, using a HLLC scheme to calculate inter-cell fluxes, the system shall show, via the momentum variable
- conservation of mass when no sources are present
- violation of conservation of mass when sources are present
- lesser violation of conservation of mass when sources are present and the mesh is refined
- 10.3.14The 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.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
- the Kurganov-Tadmor scheme
- 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 be able to switch Dirichlet boundary conditions on and off over the course of a transient in finite volume contexts.
- 10.3.27The system shall provide a boundary condition to split a constant heat flux according to local values of porosity, using functor material properties.
- 10.3.28The 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.29The 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.30The 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.31The 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.32The 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.33The system shall provide a boundary condition to split a constant heat flux according to local values of porosity.
- 10.3.34The system shall provide a boundary condition to split a constant heat flux according to domain-averaged values of porosity.
- 10.3.35The system shall provide a boundary condition to split a constant heat flux according to local values of thermal conductivity.
- 10.3.36The system shall provide a boundary condition to split a constant heat flux according to domain-averaged values of thermal conductivity.
- 10.3.37The system shall provide a boundary condition to split a constant heat flux according to local values of effective thermal conductivity.
- 10.3.38The system shall provide a boundary condition to split a constant heat flux according to domain-averaged values of effective thermal conductivity.
- 10.3.39The system shall be able to impose a wall shear stress at the wall according to the algebraic wall function.
- 10.3.40The system shall be able to solve for wall-convection with a user-specified heat transfer coefficient
- for a cavity problem
- and for a channel problem.
- 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 is not equal to the problem dimension for a fixed-velocity inlet.
- 10.3.43The system shall throw an error if the number of entries for momentum inlet types does not match the total number of fixed-velocity and fixed-pressure inlet boundaries.
- 10.3.44The system shall throw an error if the number of momentum outlet types does not match the number of outlet boundaries.
- 10.3.45The system shall throw an error if the number of pressure outlet functions is not the same the pressure outlet boundaries.
- 10.3.46The system shall throw an error if the number of momentum wall types does not match the number of wall boundaries.
- 10.3.47The system shall throw an error if the number of energy 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 types does not match the number of inlet boundaries.
- 10.3.49The system shall throw an error if the number of passive scalar inlet function blocks does not match the number of scalar variables.
- 10.3.50The system shall throw an error if the number of passive scalar inlet functions does not match the number of inlet boundaries for a specific scalar variable.
- 10.3.51The system shall throw an error if the number of energy wall types does not match the number of wall boundaries.
- 10.3.52The system shall throw an error if the number of energy wall functions does not match the number of energy wall types.
- 10.3.53The system shall throw an error if the number of defined initial conditions is different than the number of created scalar variables.
- 10.3.54The system shall throw an error if the number of components for the initial velocity is not 3.
- 10.3.55The system shall throw an error if friction correction is requested with no porous medium treatment.
- 10.3.56The system shall throw an error if consistent scaling is defined without using friction correction
- 10.3.57The system shall throw an error if porosity smoothing is requested without porous medium treatment.
- 10.3.58The system shall throw an error if two-term extrapolation is elected for prosity jump faces without enabling the Bernoulli treatment.
- 10.3.59The system shall throw an error if the user defines an inappropriate number of passive scalar diffusivities
- 10.3.60The system shall throw an error if the user defines an inappropriate number of passive scalar source functions
- 10.3.61The system shall throw an error if the user defines an inappropriate number of passive scalar coupled source functions
- 10.3.62The system shall throw an error if the user defines an inappropriate number of passive scalar coupled source coefficients with regards to the number of scalar equations
- 10.3.63The system shall throw an error if the user defines an inappropriate number of passive scalar coupled source coefficients with regards to the number of sources
- 10.3.64The system shall throw an error if the user defines an inappropriate number of passive scalar Schmidt numbers
- 10.3.65The system shall throw an error if the user supplies a velocity variable which does not exist
- 10.3.66The system shall throw an error if the user supplies an inappropriate number of externally created velocity components
- 10.3.67The system shall throw an error if the user supplies a pressure variable which does not exist
- 10.3.68The system shall throw an error if the user supplies a fluid temperature variable which does not exist
- 10.3.69The system shall throw an error if the user requests the currently unimplemented porous flow scalar quantity advection
- 10.3.70The system shall throw an error if the user supplies vector and scalar thermal conductivities together
- 10.3.71The system shall throw an error if the user supplies vector thermal conductivity with non-porous treatment
- 10.3.72The system shall throw an error if the user defines a non-existing block for thermal conductivity
- 10.3.73The system shall throw an error if there is a mismatch in the number of friction coefficients and the number of friction types
- 10.3.74The system shall throw an error if
- an initial condition is provided for velocities when they are defined outside of the action
- an initial condition is provided for pressure when it is defined outside of the action
- an initial condition is provided for temperature when it is defined outside of the action
- 10.3.75The system shall be able to run the NSFVAction if no block-restriction is defined on a mesh which doesn't have a default block.
- 10.3.76The system shall throw an error if the block-restrictions of the external variable and the action are different.
- 10.3.77The system shall be able to perform a variety of limiting schemes when solving fluid flow equations. These schemes include
- second-order upwind
- van Leer
- min-mod
- QUICK
- 10.3.78The system shall be able to block-restrict all variables in a heated channel simulation with passive scalar advection.
- 10.3.79The system shall be able to reproduce benchmark results for a Rayleigh number of 1e3 using a finite volume discretization.
- 10.3.80The system shall be able to reproduce benchmark results for a Rayleigh number of 1e4 using a finite volume discretization.
- 10.3.81The system shall be able to reproduce benchmark results for a Rayleigh number of 1e5 using a finite volume discretization.
- 10.3.82The system shall be able to reproduce benchmark results for a Rayleigh number of 1e6 using a finite volume discretization.
- 10.3.83The system shall be able to reproduce benchmark results for a Rayleigh number of 1e6 using the INSFV actions.
- 10.3.84The system should throw an error if the density is not a constant functor in case of Boussinesq treatment.
- 10.3.85The system shall be able to model natural convection using a weakly compressible implementation.
- 10.3.86The system shall be able to model transient natural convection with a low Rayleigh number using a weakly compressible implementation.
- 10.3.87The 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.88The 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.89The 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.90The system shall be able to solve a diverging channel problem in cylindrical coordinates with no slip boundary conditions.
- 10.3.91The system shall be able to solve a straight channel problem in cylindrical coordinates using triangular elements with no slip boundary conditions.
- 10.3.92The 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.93The system shall be able to solve a diverging channel problem in cylindrical coordinates with free slip boundary conditions.
- 10.3.94The 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.95The 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.96The 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.97The system shall be able to model free-slip conditions in a channel using the NSFV action.
- 10.3.98The system shall be able to initialize variables added by NSFV action from the mesh file.
- 10.3.99The system shall be able to restart a transient calculation from a steady calculation and immediately register the steady solution as a solution to the transient problem.
- 10.3.100The 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. This problem shall be solvable using a
- monolithic preconditioning technique
- field-split preconditioning technique
- 10.3.101The system shall be able to model no-slip conditions in a channel using incompressible Navier Stokes action.
- 10.3.102The system shall be able to transport arbitrary scalar field variables in a fluid flow field.
- 10.3.103The system shall be able to create and transport scalar field variables in a fluid flow field using the NSFVAction syntax.
- 10.3.104The system shall be able to transport an externally-generated scalar field variables in a fluid flow field using the NSFVAction syntax.
- 10.3.105The system shall be able to use flux boundary conditions for the momentum and match results produced by using flux kernels.
- 10.3.106The 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.107The 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.108The 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.109The 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.110The system shall be able to model linear volumetric friction in a channel.
- 10.3.111The system shall be able to model quadratic volumetric friction in a channel.
- 10.3.112The system shall be able to model linear volumetric friction in a channel using NSFVAction syntax.
- 10.3.113The system shall be able to model quadratic volumetric friction in a channel using NSFVAction syntax.
- 10.3.114The system shall be able to model ambient volumetric convection in a channel.
- 10.3.115The system shall be able to model ambient volumetric convection in a channel using the Navier-Stokes action.
- 10.3.116The system shall be able to run incompressible Navier-Stokes channel-flow simulations with
- two-dimensional triangular elements
- three-dimensional tetrahedral elements
- 10.3.117The 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.118The 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.119The 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.120The system shall be able to simulate a transient flow in a channel with enthalpy as an advected quantity.
- 10.3.121The 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.122The system shall be able to constrain the pressure nullspace by imposing an average pressure value on a boundary.
- 10.3.123The 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.124The system shall error if the interpolation object has block restriction different from the nonlinear flow variables.
- 10.3.125The system shall be able to solve a problem with surface heat transfer between a fluid and a solid block using FVConvectionCorrelationInterface.
- 10.3.126The system shall be able to solve Jeffery-Hamel flow using the finite volume method in a 2D wedge and compare to the analytical solution with Dirichlet boundary conditions
- 10.3.127The system shall be able to solve the incompressible Navier-Stokes equations in a lid-driven cavity using the finite volume method.
- 10.3.128The 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.129The 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.130The 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.131The system shall throw an error if the user requests integral value pressure pinning while specifying a point for the pin.
- 10.3.132The 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.133The 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.134The system shall be able to transport scalar quantities using the simultaneously calculated velocity field from the incompressible Navier Stokes equations.
- 10.3.135The system shall be able to get the same result as the enthalpy transport example using the NSFVAction to set up the run.
- 10.3.136The system shall be able to transport scalar quantities using the simultaneously calculated velocity field from the transient incompressible Navier Stokes equations.
- 10.3.137The 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.138The system shall compute an accurate Jacobian when a scaling factor is applied to a scalar variable.
- 10.3.139The system shall be able to compute the turbulent viscosity based on the capped mixing length model and store it in a variable when performing
- transient simulations
- steady simulations
- 10.3.140The system shall be able to calculate the material property comprising the total turbulent viscosity, based on the capped mixing length model when performing
- transient simulations
- steady simulations
- steady simulations with action syntax
- 10.3.141The 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.142The 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.143The 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.144The 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.145The 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.146The 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.147The 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.148The 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.149The 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.150The 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.151The 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.152The 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.153The 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.154The 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.155The 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.156The 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.157The 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.158The 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.159The 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.160The 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.161The 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.162The system shall be able to solve the incompressible Navier-Stokes equations on triangular meshes using skewness-correction and the NSFV action syntax.
- 10.3.163The system shall be able to automatically expand its ghosting pattern when skew-corrected face gradients are involved in the simulation.
- 10.3.164The 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.165The system shall be able to transport passive scalar quantities in an application different from the fluid flow.
- 10.3.166The system shall be able to transport passive scalar quantities in an application different from the fluid flow, using the NSFV simplified action syntax.
- 10.3.167The system shall error out if both average and Rhie Chow velocity interpolation parameters are provided.
- 10.3.168The 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.169The system shall error out if the Rhie Chow a coefficients are provided in a manner inconsistent with the dimension of the problem
- for example with the Y coefficient but not the X one
- for example with the Z coefficient but not the X one
- for example if the x coefficient is missing in a >1D problem
- for example if the y coefficient is missing in a >2D problem
- 10.3.170The system shall be able to use pressure inlet and outlet boundary conditions to compute open, chimney-type natural circulation problems.
- 10.3.171The system shall be able to group sidesets logically connected to neighboring subdomains but contacting the fluid subdomains into the fluid flow boundary set, allowing for accurate solution of the fluid flow equations.
- 10.3.172The system shall be able to solve solidification without advection using the finite volume method.
- 10.3.173The system shall be able to solve solidification with advection in a pipe using the finite volume method.
- 10.3.174The system shall be able to conserve energy during solidification.
- 10.3.175The system must be able to obtain the correct temperature profile over the center line in a solidification problem.
- 10.3.176The system shall be able to solve for flow in a 3D channel while not caching cell gradients.
- 10.3.177The system shall be able to solve for flow in a 3D channel while caching cell gradients.
- 10.3.178The system shall be able to compute the turbulent viscosity based on the capped mixing length model.
- 10.3.179The system shall be able to model a simple friction-based volumetric flow diode
- 10.3.180The system shall be able to control a simple friction-based volumetric flow diode
- with a simple time-based turn-on criterion,
- with a simple pressure-based turn-on criterion, and
- with a simple flow-based turn-on criterion.
- 10.3.181The system shall be able to compute phase-averaged quantities using a material.
- 10.3.182The system shall be able to simulate a porous medium flow with block restriction.
- 10.3.183The system shall be able to solve for fluid energy diffusion, advection and convection with the solid phase in a 2D channel
- with a Cartesian geometry, only modeling the fluid phase,
- in rz geometry,
- with an effective diffusion coefficient,
- with an effective diffusion coefficient and NSFVAction syntax,
- with an effective diffusion coefficient and dirichlet inlet boundary condition for fluid temperature,
- 10.3.184The 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.185The 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.186The system shall be able to solve for fluid energy diffusion, advection and block-restricted convection.
- 10.3.187The 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.188The 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.189The 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.190The 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.191The 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.192The system shall be able to model a smooth porosity gradient in a 2D channel.
- 10.3.193The system shall be able to model a discontinuous porosity jump in a 1D channel with average interpolation of velocity and advected quantity.
- 10.3.194The 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.195The 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.196The 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.197The system shall be able to model a discontinuous porosity jump in a 2D channel.
- 10.3.198The system shall exhibit a monotonic pressure profile when a number of reconstructions (essentially smoothing) are applied to the porosity.
- 10.3.199The system shall error if the user attempts to create a reconstructed field from a variable.
- 10.3.200The system shall be able to automatically impose a change in pressure in line with the Bernoulli equation at porosity jumps in
- one dimension, using upwinding for advection and a Rhie-Chow interpolation of velocity
- one dimension, using central differencing for advection and velocity
- two dimensions, using upwinding for advection and a Rhie-Chow interpolation of velocity
- two dimensions, using central differencing for advection and velocity
- two dimensions using compact action syntax, upwinding for advection, and a Rhie-Chow interpolation of velocity
- 10.3.201The system shall be able to mark what elements have porosity jump faces using an auxiliary kernel.
- 10.3.202The system shall be able to recognize discontinuities in parsed functions at subdomain changes and produce the correct Bernoulli pressure drop as a consequence.
- 10.3.203The system shall be able to use two-term expansion to compute the face pressure on the downstream side on a porosity jump face.
- 10.3.204The system shall be able to recognize discontinuities in functor material properties and produce the correct Bernoulli pressure drop as a consequence.
- 10.3.205The 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.206The system should be able to run a porous medium channel computation using the NSFV action.
- 10.3.207The 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.208The 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.209The 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.210The 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.211The 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.212The 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.213The 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.214The 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.215The 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.216The system shall be able to model no-slip conditions in a symmetric porous media channel using the NSFV action.
- 10.3.217The 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.218The 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.219The 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.220The 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.221The 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.222The system shall be able to model porous flow with block-restricted volumetric friction.
- 10.3.223The system shall be able to model porous flow with block-restricted volumetric friction using the NSFV action.
- 10.3.224The system shall be able to solve the porous flow equations in RZ geometry using an integration by parts of the pressure term.
- 10.3.225The system shall be able to compute the speed, eg the norm of the interstitial velocity, in a porous media incompressible flow problem.
- 10.3.226The system shall be able to compute the speed in a porous media incompressible flow problem from within the NSFVAction.
- 10.3.227The 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.228The 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.229The 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.230The system shall show second order convergence for all variables when using porosity reconstructions and friction corrections together with NSFV action syntax.
- 10.3.231The 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.232The 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.233The 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.234The 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.235The 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.236The system shall be able to pull all nonlocal Rhie-Chow coefficient data from the owning process to a given process such that user code may access Rhie-Chow data at arbitrary locations.
- 10.3.237The system shall be able to model a momentum inlet condition based on mass flow rate for porous weakly-compressible flow.
- 10.3.238The 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.239The system shall be able to solve weakly compressible transient problems with the NSFV action syntax.
- 10.3.240The 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.241The system shall be able to use Dirichlet boundary conditions for specifying inlet conditions in a weakly compressible fluid flow simulation
- using a velocity postprocessor
- using a mass flow rate postprocessor
- 10.3.242The system shall be able to use flux boundary conditions for specifying inlet conditions in a weakly compressible fluid flow simulation
- specifying the flux values directly though the flow rates
- using the inlet velocity to compute the fluxes
- using the inlet velocity to compute the fluxes with the NSFV action syntax
- using the inlet mass flow rate to compute the fluxes
- using the inlet mass flow rate to compute the fluxes with NSFVAction syntax
- 10.3.243The system shall error out if
- the inlet velocity cannot be determined from the mass flow rate due to insufficient parameters
- the inlet temperature cannot be determined because neither the temperature or the energy flow rate have been provided
- the inlet temperature cannot be determined from the energy flow rate due to missing fluid velocity information
- the inlet temperature cannot be determined from the velocity due to insufficient parameters
- the inlet temperature cannot be determined from the mass flow rate due to insufficient parameters
- 10.3.244The system shall return a warning if
- redundant information is provided for setting the inlet velocity
- redundant information is provided for setting the inlet temperature
- 10.3.245The system shall error out if
- only the mass flow rate is provided to compute the inlet mass flux
- only the velocity is provided to compute the inlet mass flux
- only the mass flow rate is provided to compute the inlet momentum flux
- only the velocity is provided to compute the inlet momentum flux
- the inlet energy cannot be determined because neither the temperature or the energy flow rate have been provided
- the inlet energy flux cannot be determined because the temperature was provided but neither the inlet mass flow rate or velocity were provided
- the inlet energy flux cannot be determined because the temperature and velocity were provided but the density or specific heat capacity were not
- 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
- neither the scalar quantity flux or boundary values are specified when attempting to compute the scalar quantity flux
- only the mass flow rate is provided to compute the inlet scalar quantity flux
- only the scalar quantity boundary value is provided to compute the inlet scalar quantity flux
- 10.3.246The system shall return a warning if
- redundant information is provided for setting the inlet mass flux
- redundant information is provided for setting the inlet momentum flux
- redundant information is provided for setting the inlet energy flux
- redundant information is provided for setting the inlet scalar flux
- 10.3.247The system shall throw an error when the mass flux boundary (with velocity) is defined on an internal face without explicitly specifying the direction of the flow.
- 10.3.248The system shall throw an error when the mass flux boundary is defined with an incorrect direction vector.
- 10.3.249The system shall throw an error when the momentum flux boundary is defined on an internal face without explicitly specifying the direction of the flow.
- 10.3.250The system shall throw an error when the momentum flux boundary is defined with an incorrect direction vector.
- 10.3.251The system shall throw an error when the energy flux boundary (with velocity) is defined on an internal face without explicitly specifying the direction of the flow.
- 10.3.252The system shall throw an error when the energy flux boundary is defined with an incorrect direction vector.
- 10.3.253The system shall throw an error when the passive scalar flux boundary is defined on an internal face without explicitly specifying the direction of the flow.
- 10.3.254The system shall throw an error when the passive scalar flux boundary (with is defined with an incorrect direction vector.
- 10.3.255The system shall be able to model a momentum inlet condition based on mass flow rate for porous weakly-compressible flow
- with the incoming flow being parallel to the surface normal of the inlet;
- with the incoming flow direction spanning an angle with the normal surface of the inlet;
- 10.3.256The system shall be able to model a momentum inlet condition based on velocity magnitude for porous weakly-compressible flow
- with the incoming flow being parallel to the surface normal of the inlet;
- with the incoming flow direction spanning an angle with the normal surface of the inlet;
- 10.3.257The system shall be able to solve for a transient 2D channel case with a weakly compressible formulation.
- 10.3.258The system shall be able to solve for a transient 2D channel case with a weakly compressible formulation using the NSFV action syntax.
- 10.3.259The 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.260The 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.261The system shall be able to solve for a transient 2D channel case with a weakly compressible formulation and show a perfect Jacobian.
- 10.3.262The 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.263The system shall be able to use realistic fluid properties in a weakly compressible flow simulation
- 10.3.264The system shall be able to output gradeurs, derivatives and adimensional quantities from realistic functor fluid properties
- 10.3.265The system shall be able to use pressure inlet and outlet boundary conditions to compute open, chimney-type natural circulation problems using weakly compressible navier-stokes equations.
- 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,
- with a quadrilateral mesh in XY geometry, with mass flow measured using either a variable or material property,
- with a quadrilateral mesh in RZ geometry,
- with a triangular mesh in XY geometry,
- with upwind interpolation of advected quantities,
- with no-slip boundary conditions, for which momentum and energy will be dissipated at the wall.
- with uniform refinement near an internal interface.
- at the very beginning of the simulation, with the initialized velocities
- 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,
- with a quadrilateral mesh in XY geometry, with mass flow measured using either a variable or material property,
- with a quadrilateral mesh in RZ geometry,
- with upwind interpolation of advected quantities,
- and with no-slip boundary conditions, for which momentum and energy will be dissipated at the wall.
- 10.5.7The system shall report an error if
- a volumetric flow rate is requested at the initialization of the simulation on a boundary internal to the flow domain when using finite volume and Rhie Chow interpolation, as this is not supported
- 10.5.8The system shall be able to compute the pressure drop in a straight channel with a finite element incompressible Navier Stokes model.
- 10.5.9The system shall be able to compute the pressure drop in a diverging channel with a finite element incompressible Navier Stokes model
- with a regular face pressure evaluation, and
- with a pressure drop face evaluation weighted by the local velocity.
- 10.5.10The system shall be able to compute the pressure drop in a frictionless heated straight channel with a finite volume incompressible Navier Stokes model
- with a regular face pressure evaluation, and
- with a pressure drop face evaluation weighted by the local velocity
- 10.5.11The system shall be able to compute the pressure drop in a frictionless heated diverging channel with a finite volume incompressible Navier Stokes model,
- with a quadrilateral mesh in XY geometry, with mass flow measured using either a variable or material property, and
- with a quadrilateral mesh in RZ geometry.
- 10.5.12The system shall report an error in a pressure drop calculation if
- an upstream boundary for the pressure is not a boundary for the postprocessor,
- a downstream boundary for the pressure is not a boundary for the postprocessor,
- a boundary for the postprocessor is not part of either the upstream or downstream pressure evaluation,
- a downstream boundary is also an upstream boundary for the pressure drop,
- the weighting functor integrates to 0, and
- a face interpolation rule is specified for a finite element pressure variable.
- 10.5.13The system shall be able to compute the Rayleigh number in a natural convection flow simulation
Usability Requirements
No requirements of this type exist for this application, beyond those of its dependencies.Performace Requirements
No requirements of this type exist for this application, beyond those of its dependencies.System Interfaces
No requirements of this type exist for this application, beyond those of its dependencies.System Operations
Human System Integration Requirements
The Navier Stokes module is command line driven and conforms to all standard terminal behaviors. Specific human system interaction accommodations shall be a function of the end-user's terminal. MOOSE (and therefore the Navier Stokes module) 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 their discretion to resolve identified issues.
The software maintainers will entertain all proposed changes to the system in a timely manner (within two business days).
The core software in its entirety will be made available under the terms of a designated software license. These license terms are outlined in the LICENSE file alongside the Navier Stokes module source code. As a MOOSE physics module, the license for the Navier Stokes module is identical to that of the framework - that is, the LGPL version 2.1 license.
Reliability
The regression test suite will cover at least 77% of all lines of code within the Navier Stokes module 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 Flag | Description of mode |
---|---|
-i <input_file> | Normal execution mode |
--split-mesh <splits> | Read the mesh block splitting the mesh into two or more pieces for use in a subsequent run |
--use-split | (implies -i flag) Execute the the simulation but use pre-split mesh files instead of the mesh from the input file |
--yaml | Output all object descriptions and available parameters in YAML format |
--json | Output all object descriptions and available parameters in JSON format |
--syntax | Output all registered syntax |
--registry | Output all known objects and actions |
--registry-hit | Output all known objects and actions in HIT format |
--mesh-only (implies -i flag) | Run only the mesh related tasks and output the final mesh that would be used for the simulation |
--start-in-debugger <debugger> | Start the simulation attached to the supplied debugger |
The list of system-modes may not be extensive as the system is designed to be extendable to end-user applications. The complete list of command line options for applications can be obtained by running the executable with zero arguments. See the command line usage.
Physical Characteristics
The Navier Stokes module is software only with no associated physical media. See System Requirements for a description of the minimum required hardware necessary for running the Navier Stokes module.
Environmental Conditions
Not Applicable
System Security
MOOSE-based applications such as the Navier Stokes module have no requirements or special needs related to system security. The software is designed to run completely in user-space with no elevated privileges required nor recommended.
Information Management
The core framework and all modules in their entirety will be made publicly available on an appropriate repository hosting site. Day-to-day backups and security services will be provided by the hosting service. More information about MOOSE backups of the public repository on INL-hosted services can be found on the following page: GitHub Backups
Polices and Regulations
MOOSE-based applications must comply with all export control restrictions.
System Life Cycle Sustainment
MOOSE-based development follows various agile methods. The system is continuously built and deployed in a piecemeal fashion since objects within the system are more or less independent. Every new object requires a test, which in turn requires an associated requirement and design description. The Navier Stokes module development team follows the NQA-1 standards.
Packaging, Handling, Shipping and Transportation
No special requirements are needed for packaging or shipping any media containing MOOSE and Navier Stokes module source code. However, some MOOSE-based applications that use the Navier Stokes module may be export-controlled, in which case all export control restrictions must be adhered to when packaging and shipping media.
Verification
The regression test suite will employ several verification tests using comparison against known analytical solutions, the method of manufactured solutions, and convergence rate analysis.