Navier-Stokes Module
The MOOSE Navier-Stokes module is a library for the implementation of simulation tools that solve the Navier-Stokes equations using the continuous Galerkin finite element (CGFE) method. The Navier-Stokes equations are usually solved using either the pressure-based, incompressible formulation (assuming a constant fluid density), or the density-based, compressible formulation.
For documentation specific to finite element or finite volume implementations, please refer to the below pages:
Adaptivity/Indicators
- Navier Stokes App
- INSFVEnergyVariableBase class for Moose variables. This should never be the terminal object type
- INSFVPressureVariableBase class for Moose variables. This should never be the terminal object type
- INSFVScalarFieldVariableBase class for Moose variables. This should never be the terminal object type
- INSFVVelocityVariableBase class for Moose variables. This should never be the terminal object type
- PINSFVSuperficialVelocityVariableBase class for Moose variables. This should never be the terminal object type
Adaptivity/Markers
- Navier Stokes App
- INSFVEnergyVariableBase class for Moose variables. This should never be the terminal object type
- INSFVPressureVariableBase class for Moose variables. This should never be the terminal object type
- INSFVScalarFieldVariableBase class for Moose variables. This should never be the terminal object type
- INSFVVelocityVariableBase class for Moose variables. This should never be the terminal object type
- PINSFVSuperficialVelocityVariableBase class for Moose variables. This should never be the terminal object type
AuxKernels
- Navier Stokes App
- EnthalpyAux
- INSCourantComputes h_min / |u|.
- INSDivergenceAuxComputes h_min / |u|.
- INSQCriterionAuxThis class computes the Q criterion, a scalar whichaids in vortex identification in turbulent flows
- INSStressComponentAuxThis class computes the stress component based on pressure and velocity for incompressible Navier-Stokes
- InternalEnergyAux
- NSEnthalpyAuxNodal auxiliary variable, for computing enthalpy at the nodes.
- NSInternalEnergyAuxAuxiliary kernel for computing the internal energy of the fluid.
- NSMachAuxAuxiliary kernel for computing the Mach number assuming an ideal gas.
- NSPressureAuxNodal auxiliary variable, for computing pressure at the nodes.
- NSTemperatureAuxTemperature is an auxiliary value computed from the total energy based on the FluidProperties.
- NSVelocityAuxVelocity auxiliary value.
- SpecificInternalEnergyAux
- SpecificVolumeAux
- WallDistanceMixingLengthAuxComputes the turbulent mixing length by assuming that it is proportional to the distance from the nearest wall.
AuxVariables
- Navier Stokes App
- INSFVEnergyVariableBase class for Moose variables. This should never be the terminal object type
- INSFVPressureVariableBase class for Moose variables. This should never be the terminal object type
- INSFVScalarFieldVariableBase class for Moose variables. This should never be the terminal object type
- INSFVVelocityVariableBase class for Moose variables. This should never be the terminal object type
- PINSFVSuperficialVelocityVariableBase class for Moose variables. This should never be the terminal object type
AuxVariables/MultiAuxVariables
- Navier Stokes App
- INSFVEnergyVariableBase class for Moose variables. This should never be the terminal object type
- INSFVPressureVariableBase class for Moose variables. This should never be the terminal object type
- INSFVScalarFieldVariableBase class for Moose variables. This should never be the terminal object type
- INSFVVelocityVariableBase class for Moose variables. This should never be the terminal object type
- PINSFVSuperficialVelocityVariableBase class for Moose variables. This should never be the terminal object type
BCs
- Navier Stokes App
- AdvectionBCBoundary conditions for outflow/outflow of advected quantities: phi * velocity * normal, where phi is the advected quantitiy
- EnergyFreeBCImplements free advective flow boundary conditions for the energy equation.
- INSADMomentumNoBCBCThis class implements the 'No BC' boundary condition based on the 'Laplace' form of the viscous stress tensor.
- INSMomentumNoBCBCLaplaceFormThis class implements the 'No BC' boundary condition based on the 'Laplace' form of the viscous stress tensor.
- INSMomentumNoBCBCTractionFormThis class implements the 'No BC' boundary condition based on the 'traction' form of the viscous stress tensor.
- INSTemperatureNoBCBCThis class implements the 'No BC' boundary condition discussed by Griffiths, Papanastiou, and others.
- ImplicitNeumannBCThis class implements a form of the Neumann boundary condition in which the boundary term is treated 'implicitly'.
- MassFreeBCImplements free advective flow boundary conditions for the mass equation.
- MomentumFreeBCImplements free flow boundary conditions for one of the momentum equations.
- MomentumFreeSlipBC
- NSEnergyInviscidSpecifiedBCThis class corresponds to the inviscid part of the 'natural' boundary condition for the energy equation.
- NSEnergyInviscidSpecifiedDensityAndVelocityBCThis class corresponds to the inviscid part of the 'natural' boundary condition for the energy equation.
- NSEnergyInviscidSpecifiedNormalFlowBCThis class corresponds to the inviscid part of the 'natural' boundary condition for the energy equation.
- NSEnergyInviscidSpecifiedPressureBCThis class corresponds to the inviscid part of the 'natural' boundary condition for the energy equation.
- NSEnergyInviscidUnspecifiedBCThis class corresponds to the inviscid part of the 'natural' boundary condition for the energy equation.
- NSEnergyViscousBCThis class couples together all the variables for the compressible Navier-Stokes equations to allow them to be used in derived IntegratedBC classes.
- NSEnergyWeakStagnationBCThe inviscid energy BC term with specified normal flow.
- NSImposedVelocityBCImpose Velocity BC.
- NSImposedVelocityDirectionBCThis class imposes a velocity direction component as a Dirichlet condition on the appropriate momentum equation.
- NSInflowThermalBCThis class is used on a boundary where the incoming flow values (rho, u, v, T) are all completely specified.
- NSMassSpecifiedNormalFlowBCThis class implements the mass equation boundary term with a specified value of rho*(u.n) imposed weakly.
- NSMassUnspecifiedNormalFlowBCThis class implements the mass equation boundary term with the rho*(u.n) boundary integral computed implicitly.
- NSMassWeakStagnationBCThe inviscid energy BC term with specified normal flow.
- NSMomentumConvectiveWeakStagnationBCThe convective part (sans pressure term) of the momentum equation boundary integral evaluated at specified stagnation temperature, stagnation pressure, and flow direction values.
- NSMomentumInviscidNoPressureImplicitFlowBCMomentum equation boundary condition used when pressure is not integrated by parts.
- NSMomentumInviscidSpecifiedNormalFlowBCMomentum equation boundary condition in which pressure is specified (given) and the value of the convective part is allowed to vary (is computed implicitly).
- NSMomentumInviscidSpecifiedPressureBCMomentum equation boundary condition in which pressure is specified (given) and the value of the convective part is allowed to vary (is computed implicitly).
- NSMomentumPressureWeakStagnationBCThis class implements the pressure term of the momentum equation boundary integral for use in weak stagnation boundary conditions.
- NSMomentumViscousBCThis class corresponds to the viscous part of the 'natural' boundary condition for the momentum equations.
- NSPenalizedNormalFlowBCThis class penalizes the the value of u.n on the boundary so that it matches some desired value.
- NSPressureNeumannBCThis kernel is appropriate for use with a 'zero normal flow' boundary condition in the context of the Euler equations.
- NSStagnationPressureBCThis Dirichlet condition imposes the condition p_0 = p_0_desired.
- NSStagnationTemperatureBCThis Dirichlet condition imposes the condition T_0 = T_0_desired.
- NSThermalBCNS thermal BC.
Bounds
FVBCs
- Navier Stokes App
- INSFVInletVelocityBCImposes the essential boundary condition , where is a (possibly) time and space-dependent MOOSE Function.
- INSFVMassAdvectionOutflowBCOutflow boundary condition for advecting mass.
- INSFVMomentumAdvectionOutflowBCOutflow boundary condition for advecting momentum. This will impose a zero normal gradient on the boundary velocity.
- INSFVNaturalFreeSlipBCImplements a free slip boundary condition naturally.
- INSFVNoSlipWallBCImplements a no slip boundary condition.
- INSFVOutletPressureBCImposes the essential boundary condition , where is a (possibly) time and space-dependent MOOSE Function.
- INSFVSymmetryPressureBCThough applied to the pressure, this object ensures that the velocity perpendicular to a symmetry bounadry is zero by setting the mass flow rate across the symmetry boundary to zero.
- INSFVSymmetryVelocityBCImplements a free slip boundary condition using a penalty formulation.
- PINSFVMomentumAdvectionOutflowBCOutflow boundary condition for advecting momentum. This will impose a zero normal gradient on the boundary velocity.
- PINSFVSymmetryVelocityBCImplements a free slip boundary condition using a penalty formulation.
FVKernels
- Navier Stokes App
- INSFVEnergyAdvectionAdvects energy, e.g. rho*cp*T. A user may still override what quantity is advected, but the default is rho*cp*T
- INSFVEnergyTimeDerivativeAdds the time derivative term to the incompressible Navier-Stokes energy equation.
- INSFVMassAdvectionObject for advecting mass, e.g. rho
- INSFVMixingLengthReynoldsStressComputes the force due to the Reynolds stress term in the incompressible Reynolds-averaged Navier-Stokes equations.
- INSFVMixingLengthScalarDiffusionComputes the turbulent diffusive flux that appears in Reynolds-averaged fluid conservation equations.
- INSFVMomentumAdvectionObject for advecting momentum, e.g. rho*u
- INSFVMomentumBoussinesqComputes a body force for natural convection buoyancy.
- INSFVMomentumGravityComputes a body force due to gravity.
- INSFVMomentumPressureIntroduces the coupled pressure term into the Navier-Stokes momentum equation.
- INSFVMomentumTimeDerivativeAdds the time derivative term to the incompressible Navier-Stokes momentum equation.
- INSFVScalarFieldAdvectionAdvects an arbitrary quantity. If the 'advected_quantity' parameter is specified, it will be used. Else the default is to advect the associated nonlinear 'variable'.
- NSFVEnergyAmbientConvectionImplements a solid-fluid ambient convection volumetric term proportional to the difference between the fluid and ambient temperatures : .
- NSFVMomentumFrictionImplements a basic linear or quadratic friction model as a volumetric force, for example for the X-momentum equation: and for the linear and quadratic models respectively. A linear dependence is expected for laminar flow, while a quadratic dependence is more common for turbulent flow.
- PINSFVEnergyAdvectionAdvects energy, e.g. rho*cp*T. A user may still override what quantity is advected, but the default is rho*cp*T
- PINSFVEnergyAmbientConvectionImplements the solid-fluid ambient convection term in the porous media Navier Stokes energy equation.
- PINSFVEnergyDiffusionDiffusion term in the porous media incompressible Navier-Stokes fluid energy equations :
- PINSFVEnergyEffectiveDiffusionEffective diffusion term in the porous media incompressible Navier-Stokes equations : $-div(kappa grad(T))
- PINSFVEnergyTimeDerivativeAdds the time derivative term to the incompressible Navier-Stokes energy equation: for fluids: eps * rho * cp * dT/dt, for solids: (1 - eps) * rho * cp * dT/dt
- PINSFVMassAdvectionObject for advecting mass in porous media mass equation
- PINSFVMomentumAdvectionObject for advecting superficial momentum, e.g. rho*u_d, in the porous media momentum equation
- PINSFVMomentumAdvectionPorosityGradientPorosity gradient spun from the advection term for the porous media Navier Stokes momentum equation.
- PINSFVMomentumBoussinesqComputes a body force for natural convection buoyancy in porous media: eps alpha (T-T_0)
- PINSFVMomentumDiffusionViscous diffusion term, div(mu grad(u_d / eps)), in the porous media incompressible Navier-Stokes momentum equation.
- PINSFVMomentumFrictionComputes a friction force term on fluid in porous media in the Navier Stokes i-th momentum equation.
- PINSFVMomentumGravityComputes a body force, due to gravity on fluid in porous media.
- PINSFVMomentumPressureIntroduces the coupled pressure term into the Navier-Stokes porous media momentum equation.
- PINSFVMomentumPressureFluxMomentum pressure term eps grad_P, as a flux kernel using the divergence theoreom, in the porous media incompressible Navier-Stokes momentum equation. This kernel is also executed on boundaries.
- PINSFVMomentumPressurePorosityGradientIntroduces the coupled pressure times porosity gradient term into the Navier-Stokes porous media momentum equation.
- PINSFVMomentumTimeDerivativeAdds the time derivative term: d(rho u_d) / dt to the porous media incompressible Navier-Stokes momentum equation.
ICs
- Navier Stokes App
- NSInitialConditionNSInitialCondition sets intial constant values for all variables.
Kernels
- Navier Stokes App
- DistributedForceImplements a force term in the Navier Stokes momentum equation.
- DistributedPowerImplements the power term of a specified force in the Navier Stokes energy equation.
- INSADBoussinesqBodyForceComputes a body force for natural convection buoyancy.
- INSADEnergyAdvectionThis class computes the residual and Jacobian contributions for temperature advection for a divergence free velocity field.
- INSADEnergyAmbientConvectionComputes a heat source/sink due to convection from ambient surroundings.
- INSADEnergySUPGAdds the supg stabilization to the INS temperature/energy equation
- INSADEnergySourceComputes an arbitrary volumetric heat source (or sink).
- INSADGravityForceComputes a body force due to gravity.
- INSADHeatConductionTimeDerivativeAD Time derivative term of the heat equation for quasi-constant specific heat and the density .
- INSADMassThis class computes the mass equation residual and Jacobian contributions (the latter using automatic differentiation) for the incompressible Navier-Stokes equations.
- INSADMassPSPGThis class adds PSPG stabilization to the mass equation, enabling use of equal order shape functions for pressure and velocity variables
- INSADMomentumAdvectionAdds the advective term to the INS momentum equation
- INSADMomentumCoupledForceComputes a body force due to a coupled vector variable or a vector function
- INSADMomentumPressureAdds the pressure term to the INS momentum equation
- INSADMomentumSUPGAdds the supg stabilization to the INS momentum equation
- INSADMomentumTimeDerivativeThis class computes the time derivative for the incompressible Navier-Stokes momentum equation.
- INSADMomentumViscousAdds the viscous term to the INS momentum equation
- INSADSmagorinskyEddyViscosityComputes eddy viscosity term using Smagorinky's LES model
- INSChorinCorrectorThis class computes the 'Chorin' Corrector equation in fully-discrete (both time and space) form.
- INSChorinPredictorThis class computes the 'Chorin' Predictor equation in fully-discrete (both time and space) form.
- INSChorinPressurePoissonThis class computes the pressure Poisson solve which is part of the 'split' scheme used for solving the incompressible Navier-Stokes equations.
- INSCompressibilityPenaltyThe penalty term may be used when Dirichlet boundary condition is applied to the entire boundary.
- INSMassThis class computes the mass equation residual and Jacobian contributions for the incompressible Navier-Stokes momentum equation.
- INSMassRZThis class computes the mass equation residual and Jacobian contributions for the incompressible Navier-Stokes momentum equation in RZ coordinates.
- INSMomentumLaplaceFormThis class computes momentum equation residual and Jacobian viscous contributions for the 'Laplacian' form of the governing equations.
- INSMomentumLaplaceFormRZThis class computes additional momentum equation residual and Jacobian contributions for the incompressible Navier-Stokes momentum equation in RZ (axisymmetric cylindrical) coordinates, using the 'Laplace' form of the governing equations.
- INSMomentumTimeDerivativeThis class computes the time derivative for the incompressible Navier-Stokes momentum equation.
- INSMomentumTractionFormThis class computes momentum equation residual and Jacobian viscous contributions for the 'traction' form of the governing equations.
- INSMomentumTractionFormRZThis class computes additional momentum equation residual and Jacobian contributions for the incompressible Navier-Stokes momentum equation in RZ (axisymmetric cylindrical) coordinates.
- INSPressurePoissonThis class computes the pressure Poisson solve which is part of the 'split' scheme used for solving the incompressible Navier-Stokes equations.
- INSProjectionThis class computes the 'projection' part of the 'split' method for solving incompressible Navier-Stokes.
- INSSplitMomentumThis class computes the 'split' momentum equation residual.
- INSTemperatureThis class computes the residual and Jacobian contributions for the incompressible Navier-Stokes temperature (energy) equation.
- INSTemperatureTimeDerivativeThis class computes the time derivative for the incompressible Navier-Stokes momentum equation.
- MassConvectiveFluxImplements the advection term for the Navier Stokes mass equation.
- MomentumConvectiveFluxImplements the advective term of the Navier Stokes momentum equation.
- NSEnergyInviscidFluxThis class computes the inviscid part of the energy flux.
- NSEnergyThermalFluxThis class is responsible for computing residuals and Jacobian terms for the k * grad(T) * grad(phi) term in the Navier-Stokes energy equation.
- NSEnergyViscousFluxViscous flux terms in energy equation.
- NSGravityForceThis class computes the gravity force contribution.
- NSGravityPowerThis class computes the momentum contributed by gravity.
- NSMassInviscidFluxThis class computes the inviscid flux in the mass equation.
- NSMomentumInviscidFluxThe inviscid flux (convective + pressure terms) for the momentum conservation equations.
- NSMomentumInviscidFluxWithGradPThis class computes the inviscid flux with pressure gradient in the momentum equation.
- NSMomentumViscousFluxDerived instance of the NSViscousFluxBase class for the momentum equations.
- NSSUPGEnergyCompute residual and Jacobian terms form the SUPG terms in the energy equation.
- NSSUPGMassCompute residual and Jacobian terms form the SUPG terms in the mass equation.
- NSSUPGMomentumCompute residual and Jacobian terms form the SUPG terms in the momentum equation.
- NSTemperatureL2This class was originally used to solve for the temperature using an L2-projection.
- PressureGradientImplements the pressure gradient term for one of the Navier Stokes momentum equations.
- TotalEnergyConvectiveFluxImplements the advection term for the Navier Stokes energy equation.
Materials
- Navier Stokes App
- AirAir.
- INSAD3EqnThis material computes properties needed for stabilized formulations of the mass, momentum, and energy equations.
- INSADMaterialThis is the material class used to compute some of the strong residuals for the INS equations.
- INSADStabilized3EqnThis is the material class used to compute the stabilization parameter tau for momentum and tau_energy for the energy equation.
- INSADTauMaterialThis is the material class used to compute the stabilization parameter tau.
- INSFVMaterialThis is the material class used to compute advected quantities for the finite-volume implementation of the Navier-Stokes equations.
Modules
- Navier Stokes App
- CompressibleNavierStokes
- IncompressibleNavierStokes
Modules/CompressibleNavierStokes
- Navier Stokes App
- CNSActionThis class allows us to have a section of the input file like the following which automatically adds Kernels and AuxKernels for all the required nonlinear and auxiliary variables.
Modules/IncompressibleNavierStokes
- Navier Stokes App
- INSActionThis class allows us to have a section of the input file for setting up incompressible Navier-Stokes equations.
Postprocessors
- Navier Stokes App
- INSExplicitTimestepSelectorPostprocessor that computes the minimum value of h_min/|u|, where |u| is coupled in as an aux variable.
- InternalVolumetricFlowRateComputes the volumetric flow rate of an advected quantity through an internal boundary.
- NSEntropyErrorComputes entropy error.
- VolumetricFlowRateComputes the volumetric flow rate of an advected quantity through an external boundary.
ReactionNetwork/AqueousEquilibriumReactions
- Navier Stokes App
- INSFVEnergyVariableBase class for Moose variables. This should never be the terminal object type
- INSFVPressureVariableBase class for Moose variables. This should never be the terminal object type
- INSFVScalarFieldVariableBase class for Moose variables. This should never be the terminal object type
- INSFVVelocityVariableBase class for Moose variables. This should never be the terminal object type
- PINSFVSuperficialVelocityVariableBase class for Moose variables. This should never be the terminal object type
ReactionNetwork/SolidKineticReactions
- Navier Stokes App
- INSFVEnergyVariableBase class for Moose variables. This should never be the terminal object type
- INSFVPressureVariableBase class for Moose variables. This should never be the terminal object type
- INSFVScalarFieldVariableBase class for Moose variables. This should never be the terminal object type
- INSFVVelocityVariableBase class for Moose variables. This should never be the terminal object type
- PINSFVSuperficialVelocityVariableBase class for Moose variables. This should never be the terminal object type
UserObjects
- Navier Stokes App
- INSADObjectTrackerUser object used to track the kernels added to an INS simulation and determine what properties to calculate in INSADMaterial
Variables
- Navier Stokes App
- INSFVEnergyVariableBase class for Moose variables. This should never be the terminal object type
- INSFVPressureVariableBase class for Moose variables. This should never be the terminal object type
- INSFVScalarFieldVariableBase class for Moose variables. This should never be the terminal object type
- INSFVVelocityVariableBase class for Moose variables. This should never be the terminal object type
- PINSFVSuperficialVelocityVariableBase class for Moose variables. This should never be the terminal object type