Navier Stokes Failure Analysis Report
Introduction
The FAR for the Navier Stokes module describes the system functional and non-functional requirements that describe the expected interactions that the software shall provide.
Dependencies
The Navier Stokes module is developed using MOOSE and can itself be based on various MOOSE modules, as such the FAR for the Navier Stokes module is dependent upon the following documents.
Failure Analysis Requirements
The following is a complete list for all the requirements related to failure analysis for the Navier Stokes module.
- navier_stokes: Finite Element
- 10.2.30We shall error if the user provides less velocity components than the mesh dimension
Specification(s): check_too_few_components
Design: AdvectionBC
Issue(s): #13283
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.2.31We shall error if the user provides more than 3 velocity components
Specification(s): check_too_many_components
Design: AdvectionBC
Issue(s): #13283
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.2.96The system shall allow MOOSE applications to specify nonzero malloc behavior; for the Navier-Stokes application, new nonzero allocations shall be errors.
Specification(s): malloc
Design: MooseApp
Issue(s): #7901
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- navier_stokes: Finite Volume
- 10.3.41The system shall throw an error if the number of momentum inlet types does not match the number of inlet boundaries.
Specification(s): momentum-inlet-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): momentum-inlet-function-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): momentum-inlet-function-error-2
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.44The system shall throw an error if the number of momentum outlet types does not match the number of outlet boundaries.
Specification(s): momentum-outlet-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.45The system shall throw an error if the number of pressure outlet functions is not the same the pressure outlet boundaries.
Specification(s): pressure-outlet-function-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.46The system shall throw an error if the number of momentum wall types does not match the number of wall boundaries.
Specification(s): momentum-wall-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.47The system shall throw an error if the number of energy inlet types does not match the number of inlet boundaries.
Specification(s): energy-inlet-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.48The system shall throw an error if the number of passive scalar inlet types does not match the number of inlet boundaries.
Specification(s): passive-scalar-inlet-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): passive-scalar-inlet-function-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): passive-scalar-multiple-inlet-function-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.51The system shall throw an error if the number of energy wall types does not match the number of wall boundaries.
Specification(s): energy-wall-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.52The system shall throw an error if the number of energy wall functions does not match the number of energy wall types.
Specification(s): energy-wall-function-action-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.53The system shall throw an error if the number of defined initial conditions is different than the number of created scalar variables.
Specification(s): scalar-ic-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.54The system shall throw an error if the number of components for the initial velocity is not 3.
Specification(s): velocity-ic-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.55The system shall throw an error if friction correction is requested with no porous medium treatment.
Specification(s): porosity-correction-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.56The system shall throw an error if consistent scaling is defined without using friction correction
Specification(s): porosity-scaling-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.57The system shall throw an error if porosity smoothing is requested without porous medium treatment.
Specification(s): porosity-smoothing-layer-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.58The system shall throw an error if two-term extrapolation is elected for prosity jump faces without enabling the Bernoulli treatment.
Specification(s): no-bernoulli-two-term-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.59The system shall throw an error if the user defines an inappropriate number of passive scalar diffusivities
Specification(s): passive-scalar-diffusivity-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.60The system shall throw an error if the user defines an inappropriate number of passive scalar source functions
Specification(s): passive-scalar-source-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.61The system shall throw an error if the user defines an inappropriate number of passive scalar coupled source functions
Specification(s): passive-scalar-coupled-source-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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
Specification(s): passive-scalar-coupled-source-coeff-error-1
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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
Specification(s): passive-scalar-coupled-source-coeff-error-2
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.64The system shall throw an error if the user defines an inappropriate number of passive scalar Schmidt numbers
Specification(s): passive-scalar-schmidt-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.65The system shall throw an error if the user supplies a velocity variable which does not exist
Specification(s): velocity-variable-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.66The system shall throw an error if the user supplies an inappropriate number of externally created velocity components
Specification(s): velocity-component-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.67The system shall throw an error if the user supplies a pressure variable which does not exist
Specification(s): pressure-variable-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.68The system shall throw an error if the user supplies a fluid temperature variable which does not exist
Specification(s): fluid-temperature-variable-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.69The system shall throw an error if the user requests the currently unimplemented porous flow scalar quantity advection
Specification(s): porous_scalar_error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.70The system shall throw an error if the user supplies vector and scalar thermal conductivities together
Specification(s): thermal-conductivity-type-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.71The system shall throw an error if the user supplies vector thermal conductivity with non-porous treatment
Specification(s): thermal-conductivity-type-porous-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.72The system shall throw an error if the user defines a non-existing block for thermal conductivity
Specification(s): thermal-conductivity-block-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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
Specification(s): friction-block-error
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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
Specification(s): initial_conditions/velocity, initial_conditions/pressure, initial_conditions/temperature
Design: NavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.76The system shall throw an error if the block-restrictions of the external variable and the action are different.
Specification(s): restricted-data-error
Design: NavierStokesFV Action
Issue(s): #22912
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
Prerequisite(s): 10.3.75
- 10.3.84The system should throw an error if the density is not a constant functor in case of Boussinesq treatment.
Specification(s): rho-error
Design: INSFVMomentumBoussinesq
Issue(s): #19742
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): bad_ro
Design: INSFVRhieChowInterpolator
Issue(s): #18215
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.124The system shall error if the interpolation object has block restriction different from the nonlinear flow variables.
Specification(s): bad_restriction
Design: INSFVRhieChowInterpolator
Issue(s): #18215
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.131The system shall throw an error if the user requests integral value pressure pinning while specifying a point for the pin.
Specification(s): point-pressure-action-error
Design: Navier-Stokes ModuleNavierStokesFV Action
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.167The system shall error out if both average and Rhie Chow velocity interpolation parameters are provided.
Specification(s): average_yet_a_provided
Design: INSFVScalarFieldAdvectionINSFVRhieChowInterpolator
Issue(s): #20294
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): RC_yet_a_not_provided
Design: INSFVScalarFieldAdvectionINSFVRhieChowInterpolator
Issue(s): #20294
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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
Specification(s): bad_a_components/vu, bad_a_components/bad_a_components_wu, bad_a_components/missing_ax_action, bad_a_components/missing_ay_action
Design: INSFVScalarFieldAdvectionINSFVRhieChowInterpolator
Issue(s): #20294
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.199The system shall error if the user attempts to create a reconstructed field from a variable.
Specification(s): reconstruct-error
Design: Finite Volume Incompressible Porous media Navier Stokes
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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
Specification(s): exceptions_dirichlet_bcs/missing_info_dirichlet_velocity, exceptions_dirichlet_bcs/missing_info_dirichlet_temperature, exceptions_dirichlet_bcs/missing_info_dirichlet_temperature_from_energy_flow, exceptions_dirichlet_bcs/missing_info_dirichlet_temperature_from_velocity, exceptions_dirichlet_bcs/missing_info_dirichlet_temperature_from_mdot
Design: WCNSFVInletVelocityBCWCNSFVInletTemperatureBC
Issue(s): #18086
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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
Specification(s): warnings_dirichlet_bcs/both_velocity_and_mdot, warnings_dirichlet_bcs/both_temperature_and_mdot
Design: WCNSFVInletVelocityBCWCNSFVInletTemperatureBC
Issue(s): #18086
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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
Specification(s): exceptions_flux_bcs/mass_mdot_needs_area, exceptions_flux_bcs/mass_velocity_needs_density, exceptions_flux_bcs/momentum_mdot_needs_area, exceptions_flux_bcs/momentum_velocity_needs_density, exceptions_flux_bcs/energy_need_temperature, exceptions_flux_bcs/energy_temperature_needs_velocity_or_mdot, exceptions_flux_bcs/energy_temperature_velocity_needs_density, exceptions_flux_bcs/energy_temperature_mdot_needs_cp, exceptions_flux_bcs/scalar_need_flux_or_value, exceptions_flux_bcs/scalar_mdot_needs_area, exceptions_flux_bcs/scalar_need_some_velocity_info
Design: WCNSFVMassFluxBCWCNSFVMomentumFluxBCWCNSFVEnergyFluxBCWCNSFVScalarFluxBC
Issue(s): #19543
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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
Specification(s): warnings_flux_bcs/mass_both_velocity_and_mdot, warnings_flux_bcs/momentum_both_velocity_and_mdot, warnings_flux_bcs/both_energy_and_mdot, warnings_flux_bcs/both_scalar_and_mdot
Design: WCNSFVMassFluxBCWCNSFVMomentumFluxBCWCNSFVEnergyFluxBCWCNSFVScalarFluxBC
Issue(s): #19543
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): mass-bc
Design: WCNSFVMassFluxBCWCNSFVMomentumFluxBCWCNSFVEnergyFluxBCWCNSFVScalarFluxBC
Issue(s): #23060
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.248The system shall throw an error when the mass flux boundary is defined with an incorrect direction vector.
Specification(s): mass-bc-wrong-direction
Design: WCNSFVMassFluxBCWCNSFVMomentumFluxBCWCNSFVEnergyFluxBCWCNSFVScalarFluxBC
Issue(s): #23060
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): momentum-bc
Design: WCNSFVMassFluxBCWCNSFVMomentumFluxBCWCNSFVEnergyFluxBCWCNSFVScalarFluxBC
Issue(s): #23060
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.250The system shall throw an error when the momentum flux boundary is defined with an incorrect direction vector.
Specification(s): momentum-bc-wrong-direction
Design: WCNSFVMassFluxBCWCNSFVMomentumFluxBCWCNSFVEnergyFluxBCWCNSFVScalarFluxBC
Issue(s): #23060
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): energy-bc
Design: WCNSFVMassFluxBCWCNSFVMomentumFluxBCWCNSFVEnergyFluxBCWCNSFVScalarFluxBC
Issue(s): #23060
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.252The system shall throw an error when the energy flux boundary is defined with an incorrect direction vector.
Specification(s): energy-bc-wrong-direction
Design: WCNSFVMassFluxBCWCNSFVMomentumFluxBCWCNSFVEnergyFluxBCWCNSFVScalarFluxBC
Issue(s): #23060
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): scalar-bc
Design: WCNSFVMassFluxBCWCNSFVMomentumFluxBCWCNSFVEnergyFluxBCWCNSFVScalarFluxBC
Issue(s): #23060
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 10.3.254The system shall throw an error when the passive scalar flux boundary (with is defined with an incorrect direction vector.
Specification(s): scalar-bc-wrong-direction
Design: WCNSFVMassFluxBCWCNSFVMomentumFluxBCWCNSFVEnergyFluxBCWCNSFVScalarFluxBC
Issue(s): #23060
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- navier_stokes: Postprocessors
- 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
Specification(s): errors/initial_interior
Design: VolumetricFlowRate
Issue(s): #18817
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): errors/upstream_not_in_boundary, errors/downstream_not_in_boundary, errors/boundary_not_drop_calc, errors/upstream_and_downstream, errors/weight_not_appropriate, errors/face_interp_scheme_for_fe
Design: PressureDrop
Issue(s): #23685
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException