- active__all__ If specified only the blocks named will be visited and made active
Default:__all__
C++ Type:std::vector<std::string>
Controllable:No
Description:If specified only the blocks named will be visited and made active
- blockThe list of blocks on which NS equations are defined on
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:The list of blocks on which NS equations are defined on
- inactiveIf specified blocks matching these identifiers will be skipped.
C++ Type:std::vector<std::string>
Controllable:No
Description:If specified blocks matching these identifiers will be skipped.
NSFVAction
This class allows us to set up Navier-Stokes equations for porous medium or clean fluid flows using incompressible or weakly compressible approximations with a finite volume discretization.
Overview
This action is used for setting up the Navier-Stokes equations over a subdomain using a finite volume discretization. Furthermore, the action is able to handle regular (clean fluid flow) or porous medium (flow within homogenized structures) formulations using incompressible and weakly-compressible approximations. This action is triggered with /Modules/NavierStokesFV input syntax. For more information, visit NavierStokesFV.
Example Input File Syntax
Input Parameters
- add_energy_equationFalseTrue to add energy equation
Default:False
C++ Type:bool
Controllable:No
Description:True to add energy equation
- compressibilityincompressibleCompressibility constraint for the Navier-Stokes equations.
Default:incompressible
C++ Type:MooseEnum
Controllable:No
Description:Compressibility constraint for the Navier-Stokes equations.
- porous_medium_treatmentFalseWhether to use porous medium kernels or not.
Default:False
C++ Type:bool
Controllable:No
Description:Whether to use porous medium kernels or not.
- turbulence_handlingnoneThe way additional diffusivities are determined in the turbulent regime.
Default:none
C++ Type:MooseEnum
Controllable:No
Description:The way additional diffusivities are determined in the turbulent regime.
General Control Parameters
- ambient_convection_alphaThe heat exchange coefficients for each block in 'ambient_convection_blocks'.
C++ Type:std::vector<MooseFunctorName>
Controllable:No
Description:The heat exchange coefficients for each block in 'ambient_convection_blocks'.
- ambient_convection_blocksThe blocks where the ambient convection is present.
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:The blocks where the ambient convection is present.
- ambient_temperatureThe ambient temperature for each block in 'ambient_convection_blocks'.
C++ Type:std::vector<MooseFunctorName>
Controllable:No
Description:The ambient temperature for each block in 'ambient_convection_blocks'.
- external_heat_sourceThe name of a functor which contains the external heat source for the energy equation.
C++ Type:std::vector<VariableName>
Controllable:No
Description:The name of a functor which contains the external heat source for the energy equation.
- external_heat_source_coeff1Multiplier for the coupled heat source term.
Default:1
C++ Type:double
Controllable:No
Description:Multiplier for the coupled heat source term.
Energy Equation Parameters
- boussinesq_approximationFalseTrue to have Boussinesq approximation
Default:False
C++ Type:bool
Controllable:No
Description:True to have Boussinesq approximation
- gravity0 0 0The gravitational acceleration vector.
Default:0 0 0
C++ Type:libMesh::VectorValue<double>
Controllable:No
Description:The gravitational acceleration vector.
- pin_pressureFalseSwitch to enable pressure shifting for incompressible simulations.
Default:False
C++ Type:bool
Controllable:No
Description:Switch to enable pressure shifting for incompressible simulations.
- pinned_pressure_point0 0 0The XYZ coordinates where pressure needs to be pinned for incompressible simulations.
Default:0 0 0
C++ Type:libMesh::Point
Controllable:No
Description:The XYZ coordinates where pressure needs to be pinned for incompressible simulations.
- pinned_pressure_typeaverageTypes for shifting (pinning) the pressure in case of incompressible simulations.
Default:average
C++ Type:MooseEnum
Controllable:No
Description:Types for shifting (pinning) the pressure in case of incompressible simulations.
- pinned_pressure_value100000The value used for pinning the pressure (point value/domain average).
Default:100000
C++ Type:double
Controllable:No
Description:The value used for pinning the pressure (point value/domain average).
- ref_temperature273.15Value for reference temperature in case of Boussinesq approximation
Default:273.15
C++ Type:double
Controllable:No
Description:Value for reference temperature in case of Boussinesq approximation
Momentum Equation Parameters
- consistent_scalingScaling parameter for the friction correction in the momentum equation (if requested).
C++ Type:double
Controllable:No
Description:Scaling parameter for the friction correction in the momentum equation (if requested).
- porosityporosityThe name of the auxiliary variable for the porosity field.
Default:porosity
C++ Type:MooseFunctorName
Controllable:No
Description:The name of the auxiliary variable for the porosity field.
- porosity_smoothing_layersThe number of interpolation-reconstruction operations to perform on the porosity.
C++ Type:unsigned short
Controllable:No
Description:The number of interpolation-reconstruction operations to perform on the porosity.
- use_friction_correctionFalseIf friction correction should be applied in the momentum equation.
Default:False
C++ Type:bool
Controllable:No
Description:If friction correction should be applied in the momentum equation.
Porous Medium Treatment Parameters
- densityrhoThe name of the density
Default:rho
C++ Type:MooseFunctorName
Controllable:No
Description:The name of the density
- dynamic_viscositymuThe name of the dynamic viscosity
Default:mu
C++ Type:MooseFunctorName
Controllable:No
Description:The name of the dynamic viscosity
- specific_heatcpThe name of the specific heat
Default:cp
C++ Type:MooseFunctorName
Controllable:No
Description:The name of the specific heat
- thermal_conductivitykThe name of the fluid thermal conductivity
Default:k
C++ Type:MooseFunctorName
Controllable:No
Description:The name of the fluid thermal conductivity
- thermal_expansionalphaThe name of the thermal expansion coefficient in the Boussinesq approximation
Default:alpha
C++ Type:MooseFunctorName
Controllable:No
Description:The name of the thermal expansion coefficient in the Boussinesq approximation
Material Property Parameters
- energy_advection_interpolationaverageThe numerical scheme to use for interpolating energy/temperature, as an advected quantity, to the face.
Default:average
C++ Type:MooseEnum
Controllable:No
Description:The numerical scheme to use for interpolating energy/temperature, as an advected quantity, to the face.
- energy_face_interpolationaverageThe numerical scheme to interpolate the temperature/energy to the face (separate from the advected quantity interpolation).
Default:average
C++ Type:MooseEnum
Controllable:No
Description:The numerical scheme to interpolate the temperature/energy to the face (separate from the advected quantity interpolation).
- energy_two_term_bc_expansionTrueIf a two-term Taylor expansion is needed for the determination of the boundary valuesof the temperature/energy.
Default:True
C++ Type:bool
Controllable:No
Description:If a two-term Taylor expansion is needed for the determination of the boundary valuesof the temperature/energy.
- mass_advection_interpolationaverageThe numerical scheme to use for interpolating density, as an advected quantity, to the face.
Default:average
C++ Type:MooseEnum
Controllable:No
Description:The numerical scheme to use for interpolating density, as an advected quantity, to the face.
- mixing_length_two_term_bc_expansionTrueIf a two-term Taylor expansion is needed for the determination of the boundary valuesof the mixing length field.
Default:True
C++ Type:bool
Controllable:No
Description:If a two-term Taylor expansion is needed for the determination of the boundary valuesof the mixing length field.
- momentum_advection_interpolationaverageThe numerical scheme to use for interpolating momentum/velocity, as an advected quantity, to the face.
Default:average
C++ Type:MooseEnum
Controllable:No
Description:The numerical scheme to use for interpolating momentum/velocity, as an advected quantity, to the face.
- momentum_face_interpolationaverageThe numerical scheme to interpolate the velocity/momentum to the face (separate from the advected quantity interpolation).
Default:average
C++ Type:MooseEnum
Controllable:No
Description:The numerical scheme to interpolate the velocity/momentum to the face (separate from the advected quantity interpolation).
- momentum_two_term_bc_expansionTrueIf a two-term Taylor expansion is needed for the determination of the boundary valuesof the velocity/momentum.
Default:True
C++ Type:bool
Controllable:No
Description:If a two-term Taylor expansion is needed for the determination of the boundary valuesof the velocity/momentum.
- passive_scalar_advection_interpolationaverageThe numerical scheme to use for interpolating passive scalar field, as an advected quantity, to the face.
Default:average
C++ Type:MooseEnum
Controllable:No
Description:The numerical scheme to use for interpolating passive scalar field, as an advected quantity, to the face.
- passive_scalar_face_interpolationaverageThe numerical scheme to interpolate the passive scalar field variables to the face (separate from the advected quantity interpolation).
Default:average
C++ Type:MooseEnum
Controllable:No
Description:The numerical scheme to interpolate the passive scalar field variables to the face (separate from the advected quantity interpolation).
- passive_scalar_two_term_bc_expansionTrueIf a two-term Taylor expansion is needed for the determination of the boundary valuesof the advected passive scalar field.
Default:True
C++ Type:bool
Controllable:No
Description:If a two-term Taylor expansion is needed for the determination of the boundary valuesof the advected passive scalar field.
- pressure_face_interpolationaverageThe numerical scheme to interpolate the pressure to the face (separate from the advected quantity interpolation).
Default:average
C++ Type:MooseEnum
Controllable:No
Description:The numerical scheme to interpolate the pressure to the face (separate from the advected quantity interpolation).
- pressure_two_term_bc_expansionTrueIf a two-term Taylor expansion is needed for the determination of the boundary valuesof the pressure.
Default:True
C++ Type:bool
Controllable:No
Description:If a two-term Taylor expansion is needed for the determination of the boundary valuesof the pressure.
Numerical Scheme Parameters
- energy_inlet_functionFunctions for fixed-value boundaries in the energy equation.
C++ Type:std::vector<std::string>
Controllable:No
Description:Functions for fixed-value boundaries in the energy equation.
- energy_inlet_typesTypes for the inlet boundaries for the energy equation.
C++ Type:MultiMooseEnum
Controllable:No
Description:Types for the inlet boundaries for the energy equation.
- energy_wall_functionFunctions for Dirichlet/Neumann boundaries in the energy equation.
C++ Type:std::vector<FunctionName>
Controllable:No
Description:Functions for Dirichlet/Neumann boundaries in the energy equation.
- energy_wall_typesheatfluxTypes for the wall boundaries for the energy equation.
Default:heatflux
C++ Type:MultiMooseEnum
Controllable:No
Description:Types for the wall boundaries for the energy equation.
- flux_inlet_ppsThe name of the postprocessors which compute the mass flow/normal velocity magnitude. Mainly used for coupling between different applications.
C++ Type:std::vector<PostprocessorName>
Controllable:No
Description:The name of the postprocessors which compute the mass flow/normal velocity magnitude. Mainly used for coupling between different applications.
- inlet_boundariesNames of inlet boundaries
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:Names of inlet boundaries
- momentum_inlet_functionFunctions for inlet boundary velocities
C++ Type:std::vector<FunctionName>
Controllable:No
Description:Functions for inlet boundary velocities
- momentum_inlet_typesTypes of inlet boundaries for the momentum equation.
C++ Type:MultiMooseEnum
Controllable:No
Description:Types of inlet boundaries for the momentum equation.
- momentum_outlet_typesTypes of outlet boundaries for the momentum equation
C++ Type:MultiMooseEnum
Controllable:No
Description:Types of outlet boundaries for the momentum equation
- momentum_wall_typesnoslipTypes of wall boundaries for the momentum equation
Default:noslip
C++ Type:MultiMooseEnum
Controllable:No
Description:Types of wall boundaries for the momentum equation
- outlet_boundariesNames of outlet boundaries
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:Names of outlet boundaries
- passive_scalar_inlet_functionFunctions for inlet boundaries in the passive scalar equations.
C++ Type:std::vector<std::vector<std::string>>
Controllable:No
Description:Functions for inlet boundaries in the passive scalar equations.
- passive_scalar_inlet_typesfixed-valueTypes for the inlet boundaries for the passive scalar equation.
Default:fixed-value
C++ Type:MultiMooseEnum
Controllable:No
Description:Types for the inlet boundaries for the passive scalar equation.
- pressure_functionFunctions for boundary pressures at outlets.
C++ Type:std::vector<FunctionName>
Controllable:No
Description:Functions for boundary pressures at outlets.
- wall_boundariesNames of wall boundaries
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:Names of wall boundaries
Boundary Condition Parameters
- energy_scaling1The scaling factor for the energy variable.
Default:1
C++ Type:double
Controllable:No
Description:The scaling factor for the energy variable.
- mass_scaling1The scaling factor for the mass variables (for incompressible simulation this is pressure scaling).
Default:1
C++ Type:double
Controllable:No
Description:The scaling factor for the mass variables (for incompressible simulation this is pressure scaling).
- momentum_scaling1The scaling factor for the momentum variables.
Default:1
C++ Type:double
Controllable:No
Description:The scaling factor for the momentum variables.
- passive_scalar_scaling1The scaling factor for the passive scalar field variables.
Default:1
C++ Type:double
Controllable:No
Description:The scaling factor for the passive scalar field variables.
Scaling Parameters
- fluid_temperature_variableIf supplied, the system checks for available fluid temperature variable. Otherwise, it is created within the action.
C++ Type:NonlinearVariableName
Controllable:No
Description:If supplied, the system checks for available fluid temperature variable. Otherwise, it is created within the action.
- pressure_variableIf supplied, the system checks for available pressure variable. Otherwise, it is created within the action.
C++ Type:NonlinearVariableName
Controllable:No
Description:If supplied, the system checks for available pressure variable. Otherwise, it is created within the action.
- velocity_variableIf supplied, the system checks for available velocity variables. Otherwise, they are created within the action.
C++ Type:std::vector<std::string>
Controllable:No
Description:If supplied, the system checks for available velocity variables. Otherwise, they are created within the action.
External Variable Parameters
- friction_blocksThe blocks where the friction factors are applied to emulate flow resistances.
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:The blocks where the friction factors are applied to emulate flow resistances.
- friction_coeffsThe friction coefficients for every item in 'friction_types'. Note that if 'porous_medium_treatment' is enabled, the coefficients already contain a velocity multiplier but they are not multiplied with density yet!
C++ Type:std::vector<std::vector<std::string>>
Controllable:No
Description:The friction coefficients for every item in 'friction_types'. Note that if 'porous_medium_treatment' is enabled, the coefficients already contain a velocity multiplier but they are not multiplied with density yet!
- friction_typesThe types of friction forces for every block in 'friction_blocks'.
C++ Type:std::vector<std::vector<std::string>>
Controllable:No
Description:The types of friction forces for every block in 'friction_blocks'.
Friction Control Parameters
- initial_pressure1e5The initial pressure, assumed constant everywhere
Default:1e5
C++ Type:FunctionName
Controllable:No
Description:The initial pressure, assumed constant everywhere
- initial_scalar_variablesInitial values of the passive scalar variables.
C++ Type:std::vector<FunctionName>
Controllable:No
Description:Initial values of the passive scalar variables.
- initial_temperature300The initial temperature, assumed constant everywhere
Default:300
C++ Type:FunctionName
Controllable:No
Description:The initial temperature, assumed constant everywhere
- initial_velocity1e-15 1e-15 1e-15 The initial velocity, assumed constant everywhere
Default:1e-15 1e-15 1e-15
C++ Type:std::vector<FunctionName>
Controllable:No
Description:The initial velocity, assumed constant everywhere
Initial Condition Parameters
- mixing_length_aux_execute_onWhen the mixing length aux kernels should be executed.
C++ Type:ExecFlagEnum
Controllable:No
Description:When the mixing length aux kernels should be executed.
- mixing_length_delta1Tunable parameter related to the thickness of the boundary layer.When it is not specified, Prandtl's original unbounded wall distance mixing length model isretrieved.
Default:1
C++ Type:double
Controllable:No
Description:Tunable parameter related to the thickness of the boundary layer.When it is not specified, Prandtl's original unbounded wall distance mixing length model isretrieved.
- mixing_length_wallsWalls where the mixing length model should be utilized.
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:Walls where the mixing length model should be utilized.
- turbulent_prandtl1Turbulent Prandtl number for energy turbulent diffusion
Default:1
C++ Type:double
Controllable:No
Description:Turbulent Prandtl number for energy turbulent diffusion
- von_karman_const0.41Von Karman parameter for the mixing length model
Default:0.41
C++ Type:double
Controllable:No
Description:Von Karman parameter for the mixing length model
- von_karman_const_00.09'Escudier' model parameter
Default:0.09
C++ Type:double
Controllable:No
Description:'Escudier' model parameter
Turbulence Parameters
- passive_scalar_coupled_sourceCoupled variable names for the sources used for the passive scalar fields.
C++ Type:std::vector<VariableName>
Controllable:No
Description:Coupled variable names for the sources used for the passive scalar fields.
- passive_scalar_coupled_source_coeffCoupled variable multipliers for the sources used for the passive scalar fields.
C++ Type:std::vector<double>
Controllable:No
Description:Coupled variable multipliers for the sources used for the passive scalar fields.
- passive_scalar_diffusivityFunctor names for the diffusivities used for the passive scalar fields.
C++ Type:std::vector<MooseFunctorName>
Controllable:No
Description:Functor names for the diffusivities used for the passive scalar fields.
- passive_scalar_namesVector containing the names of the advected scalar variables.
C++ Type:std::vector<NonlinearVariableName>
Controllable:No
Description:Vector containing the names of the advected scalar variables.
- passive_scalar_schmidt_numberSchmidt numbers used for the passive scalar fields.
C++ Type:std::vector<double>
Controllable:No
Description:Schmidt numbers used for the passive scalar fields.
- passive_scalar_sourceFunctor names for the sources used for the passive scalar fields.
C++ Type:std::vector<MooseFunctorName>
Controllable:No
Description:Functor names for the sources used for the passive scalar fields.