version 3.9-dev

Single-phase Navier-Stokes flow. More...

Description

A single-phase, isothermal Navier-Stokes model.

This model implements a single-phase, isothermal Navier-Stokes model, solving the momentum balance equation

\[ \frac{\partial (\varrho \textbf{v})}{\partial t} + \nabla \cdot (\varrho \textbf{v} \textbf{v}^{\text{T}}) = \nabla \cdot (\mu (\nabla \textbf{v} + \nabla \textbf{v}^{\text{T}})) - \nabla p + \varrho \textbf{g} - \textbf{f} \]

By setting the runtime parameter Problem.EnableInertiaTerms to false the Stokes equation can be solved. In this case the term

\[ \nabla \cdot (\varrho \textbf{v} \textbf{v}^{\text{T}}) \]

is neglected.

The mass balance equation

\[ \frac{\partial \varrho}{\partial t} + \nabla \cdot (\varrho \textbf{v}) - q = 0 \]

closes the system.

The Navier-Stokes model can be extended to a Darcy-Brinkman model by adding the term:

\[ + \epsilon_B \mu \mathbf{K}^{-1} \mathbf{v} \]

to the momentum balance. This can be achieved with the helper function addBrinkmanTerm. The function relies on the spatial parameters class being based on BrinkmanSpatialParams or providing the brinkmanEpsilon and inversePermeability interfaces. These interface functions provide the weighting factor \( \epsilon_B \) and the permeability tensor \( \mathbf{K} \).

Files

file  freeflow/navierstokes/boundarytypes.hh
 
file  fluxoveraxisalignedsurface.hh
 
file  freeflow/navierstokes/fluxvariables.hh
 
file  freeflow/navierstokes/indices.hh
 
file  freeflow/navierstokes/iofields.hh
 
file  freeflow/navierstokes/localresidual.hh
 
file  1p/advectiveflux.hh
 Helper struct defining the advective fluxes of the single-phase flow Navier-Stokes mass model.
 
file  freeflow/navierstokes/mass/1p/fluxvariables.hh
 
file  freeflow/navierstokes/mass/1p/indices.hh
 
file  freeflow/navierstokes/mass/1p/localresidual.hh
 
file  freeflow/navierstokes/mass/1p/model.hh
 A single-phase, isothermal Navier-Stokes model.
 
file  freeflow/navierstokes/mass/1p/volumevariables.hh
 
file  1pnc/advectiveflux.hh
 Helper struct defining the advective fluxes of the single-phase flow multicomponent Navier-Stokes mass model.
 
file  freeflow/navierstokes/mass/1pnc/fluxvariables.hh
 
file  freeflow/navierstokes/mass/1pnc/indices.hh
 
file  freeflow/navierstokes/mass/1pnc/localresidual.hh
 
file  freeflow/navierstokes/mass/1pnc/model.hh
 A single-phase, isothermal Navier-Stokes model.
 
file  freeflow/navierstokes/mass/1pnc/volumevariables.hh
 
file  freeflow/navierstokes/mass/problem.hh
 
file  freeflow/navierstokes/model.hh
 A single-phase, isothermal Navier-Stokes model.
 
file  freeflow/navierstokes/momentum/boundarytypes.hh
 
file  brinkman.hh
 A helper function to add Brinkman term to the momentum balance.
 
file  brinkman.hh
 A helper function to add Brinkman term to the momentum balance.
 
file  flux.hh
 
file  freeflow/navierstokes/momentum/cvfe/indices.hh
 
file  freeflow/navierstokes/momentum/cvfe/localresidual.hh
 
file  freeflow/navierstokes/momentum/cvfe/model.hh
 A single-phase, isothermal Navier-Stokes model.
 
file  freeflow/navierstokes/momentum/cvfe/volumevariables.hh
 
file  fluxhelper.hh
 
file  freeflow/navierstokes/momentum/fluxvariables.hh
 
file  freeflow/navierstokes/momentum/indices.hh
 
file  freeflow/navierstokes/momentum/localresidual.hh
 
file  freeflow/navierstokes/momentum/model.hh
 A single-phase, isothermal Navier-Stokes model.
 
file  freeflow/navierstokes/momentum/problem.hh
 
file  momentum/velocitygradients.hh
 
file  velocityreconstruction.hh
 
file  freeflow/navierstokes/momentum/volumevariables.hh
 
file  scalarfluxhelper.hh
 Navier Stokes scalar boundary flux helper.
 
file  scalarfluxvariables.hh
 
file  scalarfluxvariablescachefiller.hh
 A helper class to fill the flux variables cache.
 
file  scalarvolumevariables.hh
 
file  slipcondition.hh
 Navier Stokes slip condition.
 
file  fluxoversurface.hh
 
file  freeflow/navierstokes/staggered/fluxvariables.hh
 
file  freeflow/navierstokes/staggered/localresidual.hh
 
file  freeflow/navierstokes/staggered/problem.hh
 
file  staggeredupwindhelper.hh
 
file  staggered/velocitygradients.hh
 
file  freeflow/navierstokes/velocityoutput.hh
 
file  freeflow/navierstokes/volumevariables.hh
 

Classes

class  Dumux::NavierStokesBoundaryTypes< numEq >
 Class to specify the type of a boundary condition for the Navier-Stokes model. More...
 
class  Dumux::FluxOverAxisAlignedSurface< GridVariables, SolutionVector, LocalResidual >
 Class used to calculate fluxes over axis-aligned surfaces. More...
 
struct  Dumux::NavierStokesIndices< dimension >
 The common indices for the isothermal Navier-Stokes model. More...
 
class  Dumux::NavierStokesIOFields
 Adds I/O fields for the Navier-Stokes model. More...
 
struct  Dumux::AdvectiveFlux< NavierStokesMassOnePModelTraits, T >
 Helper struct defining the advective fluxes of the single-phase flow Navier-Stokes mass model. More...
 
class  Dumux::NavierStokesMassOnePFluxVariables< Problem, ModelTraits, FluxTs, ElementVolumeVariables, ElementFluxVariablesCache, UpwindScheme >
 The flux variables class for the single-phase flow Navier-Stokes model. More...
 
struct  Dumux::NavierStokesMassOnePIndices
 The common indices for the isothermal Navier-Stokes mass conservation model. More...
 
struct  Dumux::ImplementsAuxiliaryFluxNavierStokesMassOneP< Problem >
 Traits class to be specialized for problems to add auxiliary fluxes. More...
 
class  Dumux::NavierStokesMassOnePLocalResidual< TypeTag >
 Element-wise calculation of the Navier-Stokes residual for single-phase flow. More...
 
struct  Dumux::NavierStokesMassOnePModelTraits
 Traits for the single-phase flow Navier-Stokes mass model. More...
 
struct  Dumux::NavierStokesMassOnePVolumeVariablesTraits< PV, FSY, FST, MT >
 Traits class for the volume variables of the Navier-Stokes model. More...
 
class  Dumux::NavierStokesMassOnePVolumeVariables< Traits >
 Volume variables for the single-phase Navier-Stokes model. More...
 
struct  Dumux::AdvectiveFlux< NavierStokesMassOnePNCModelTraits< nComp, useM, repCompEqIdx > >
 Helper struct defining the advective fluxes of the single-phase flow multicomponent Navier-Stokes mass model. More...
 
class  Dumux::NavierStokesMassOnePNCFluxVariables< Problem, ModelTraits, FluxTs, ElementVolumeVariables, ElementFluxVariablesCache, UpwindScheme >
 The flux variables class for the single-phase flow, multi-component Navier-Stokes model. More...
 
class  Dumux::NavierStokesMassOnePNCLocalResidual< TypeTag >
 Element-wise calculation of the Navier-Stokes residual for multicomponent single-phase flow. More...
 
struct  Dumux::NavierStokesMassOnePNCModelTraits< nComp, useM, repCompEqIdx >
 Traits for the Navier-Stokes model. More...
 
struct  Dumux::NavierStokesMassOnePNCVolumeVariablesTraits< PV, FSY, FST, MT >
 Traits class for the volume variables of the Navier-Stokes model. More...
 
class  Dumux::NavierStokesMassOnePNCVolumeVariables< Traits >
 Volume variables for the single-phase Navier-Stokes model. More...
 
struct  Dumux::NavierStokesModelTraits< dimension >
 Traits for the Navier-Stokes model. More...
 
struct  Dumux::NavierStokesVolumeVariablesTraits< PV, FSY, FST, MT >
 Traits class for the volume variables of the Navier-Stokes model. More...
 
class  Dumux::NavierStokesMomentumBoundaryTypes< size >
 Class to specify the type of a boundary condition for the Navier-Stokes model. More...
 
class  Dumux::NavierStokesMomentumFluxContext< Problem, FVElementGeometry, ElementVolumeVariables, ElementFluxVariablesCache >
 Context for computing fluxes. More...
 
class  Dumux::NavierStokesMomentumFluxCVFE< GridGeometry, NumEqVector >
 The flux variables class for the Navier-Stokes model using control-volume finite element schemes. More...
 
struct  Dumux::NavierStokesMomentumCVFEIndices< dimension >
 The common indices for the isothermal Navier-Stokes model. More...
 
class  Dumux::NavierStokesMomentumCVFELocalResidual< TypeTag >
 Element-wise calculation of the Navier-Stokes residual for models using the CVFE discretizations. More...
 
struct  Dumux::NavierStokesMomentumCVFEModelTraits< dimension >
 Traits for the Navier-Stokes model. More...
 
struct  Dumux::NavierStokesMomentumCVFEVolumeVariablesTraits< PV, FSY, FST, MT >
 Traits class for the volume variables of the Navier-Stokes model. More...
 
class  Dumux::NavierStokesMomentumCVFEVolumeVariables< Traits >
 Volume variables for the single-phase Navier-Stokes model. More...
 
struct  Dumux::NavierStokesMomentumBoundaryFlux< DiscretizationMethod, SlipVelocityPolicy >
 Class to compute the boundary flux for the momentum balance of the Navier-Stokes model This helper class is typically used in the Neumann function of the momentum problem. More...
 
struct  Dumux::NavierStokesMomentumBoundaryFlux< DiscretizationMethods::FCStaggered, SlipVelocityPolicy >
 Class to compute the boundary flux for the momentum balance of the Navier-Stokes model This helper class is typically used in the Neumann function of the momentum problem. More...
 
class  Dumux::NavierStokesMomentumFluxVariables< TypeTag >
 The flux variables class for the Navier-Stokes model using the staggered grid discretization. More...
 
struct  Dumux::NavierStokesMomentumIndices< dimension >
 The common indices for the isothermal Navier-Stokes model. More...
 
class  Dumux::NavierStokesMomentumResidual< TypeTag >
 Element-wise calculation of the Navier-Stokes residual for models using the staggered discretization. More...
 
struct  Dumux::NavierStokesMomentumModelTraits< dimension >
 Traits for the Navier-Stokes model. More...
 
struct  Dumux::NavierStokesMomentumVolumeVariablesTraits< PV, FSY, FST, MT >
 Traits class for the volume variables of the Navier-Stokes model. More...
 
class  Dumux::StaggeredVelocityGradients< Scalar, GridGeometry, BoundaryTypes, Indices >
 Helper class for calculating the velocity gradients for the Navier-Stokes model using the staggered grid discretization. More...
 
struct  Dumux::StaggeredVelocityReconstruction
 Helper class for reconstructing the velocity. More...
 
class  Dumux::NavierStokesMomentumVolumeVariables< Traits >
 Volume variables for the single-phase Navier-Stokes model. More...
 
struct  Dumux::NavierStokesScalarBoundaryFluxHelper< AdvectiveFlux >
 Navier Stokes scalar boundary flux helper. More...
 
class  Dumux::NavierStokesScalarConservationModelFluxVariables< Problem, ModelTraits, FluxTypes, ElementVolumeVariables, ElementFluxVariablesCache, UpwindScheme >
 The flux variables base class for scalar quantities balanced in the Navier-Stokes model. More...
 
class  Dumux::NavierStokesScalarConservationModelVolumeVariables< Traits >
 Volume variables for the single-phase Navier-Stokes model. More...
 
struct  Dumux::NavierStokes::SlipConditions::BJ
 Tag for the Beavers-Joseph slip condition. More...
 
struct  Dumux::NavierStokes::SlipConditions::BJS
 Tag for the Beavers-Joseph-Saffman slip condition. More...
 
class  Dumux::NavierStokesSlipVelocity< DiscretizationMethod, SlipCondition >
 Navier Stokes slip velocity policy. More...
 
struct  Dumux::NavierStokesSlipVelocity< DiscretizationMethods::FCStaggered, SlipCondition >
 Navier Stokes slip velocity helper for fcstaggered discretization. More...
 
class  Dumux::FluxOverSurface< GridVariables, SolutionVector, ModelTraits, LocalResidual >
 Class used to calculate fluxes over surfaces. This only works for the staggered grid discretization. More...
 
class  Dumux::NavierStokesFluxVariablesImpl< TypeTag, DiscretizationMethod >
 The flux variables class for the Navier-Stokes model using the staggered grid discretization. More...
 
class  Dumux::NavierStokesResidualImpl< TypeTag, DiscretizationMethod >
 Element-wise calculation of the Navier-Stokes residual for models using the staggered discretization. More...
 
class  Dumux::NavierStokesStaggeredProblem< TypeTag >
 Navier-Stokes staggered problem base class. More...
 
class  Dumux::StaggeredUpwindHelper< TypeTag, upwindSchemeOrder >
 The upwinding variables class for the Navier-Stokes model using the staggered grid discretization. More...
 
class  Dumux::NavierStokesVelocityOutput< GridVariables >
 Velocity output for staggered free-flow models. More...
 
class  Dumux::NavierStokesVolumeVariables< Traits >
 Volume variables for the single-phase Navier-Stokes model. More...
 

Typedefs

template<class TypeTag >
using Dumux::NavierStokesFluxVariables = NavierStokesFluxVariablesImpl< TypeTag, typename GetPropType< TypeTag, Properties::GridGeometry >::DiscretizationMethod >
 The flux variables class for the Navier-Stokes model. This is a convenience alias for that actual, discretization-specific flux variables. More...
 
template<class TypeTag >
using Dumux::NavierStokesResidual = NavierStokesResidualImpl< TypeTag, typename GetPropType< TypeTag, Properties::GridGeometry >::DiscretizationMethod >
 The local residual class for the Navier-Stokes model (balance equations). This is a convenience alias for the actual, discretization-specific local residual. More...
 
template<class TypeTag >
using Dumux::NavierStokesMassProblem = NavierStokesMassProblemImpl< TypeTag, typename GetPropType< TypeTag, Properties::GridGeometry >::DiscretizationMethod >
 Navier-Stokes mass problem class. More...
 
template<class TypeTag >
using Dumux::NavierStokesMomentumProblem = NavierStokesMomentumProblemImpl< TypeTag, typename GetPropType< TypeTag, Properties::GridGeometry >::DiscretizationMethod >
 Navier-Stokes momentum problem class. More...
 
template<class Problem , class ModelTraits , bool diffusionIsSolDependent, bool heatConductionIsSolDependent>
using Dumux::FreeFlowScalarFluxVariablesCacheFiller = FreeFlowScalarFluxVariablesCacheFillerImplementation< Problem, ModelTraits, diffusionIsSolDependent, heatConductionIsSolDependent, typename ProblemTraits< Problem >::GridGeometry::DiscretizationMethod >
 The flux variables cache filler class for free flow. More...
 

Functions

template<class IOFields , class PrimaryVariables , class ModelTraits , class FluidSystem >
std::function< std::string(int, int)> Dumux::createCellCenterPVNameFunction (const std::string &paramGroup="")
 helper function to determine the names of cell-centered primary variables of a model with staggered grid discretization More...
 
template<class IOFields , class PrimaryVariables , class ModelTraits , class FluidSystem >
std::function< std::string(int, int)> Dumux::createFacePVNameFunction (const std::string &paramGroup="")
 helper function to determine the names of primary variables on the cell faces of a model with staggered grid discretization More...
 

Variables

constexpr BJ Dumux::NavierStokes::SlipConditions::bj {}
 Tag for the Beavers-Joseph slip condition. More...
 
constexpr BJS Dumux::NavierStokes::SlipConditions::bjs {}
 Tag for the Beavers-Joseph-Saffman slip condition. More...
 

Typedef Documentation

◆ FreeFlowScalarFluxVariablesCacheFiller

template<class Problem , class ModelTraits , bool diffusionIsSolDependent, bool heatConductionIsSolDependent>
using Dumux::FreeFlowScalarFluxVariablesCacheFiller = typedef FreeFlowScalarFluxVariablesCacheFillerImplementation<Problem, ModelTraits, diffusionIsSolDependent, heatConductionIsSolDependent, typename ProblemTraits<Problem>::GridGeometry::DiscretizationMethod>

Helps filling the flux variables cache depending several policies

◆ NavierStokesFluxVariables

template<class TypeTag >
using Dumux::NavierStokesFluxVariables = typedef NavierStokesFluxVariablesImpl<TypeTag, typename GetPropType<TypeTag, Properties::GridGeometry>::DiscretizationMethod>
Note
Not all specializations are currently implemented

◆ NavierStokesMassProblem

template<class TypeTag >
using Dumux::NavierStokesMassProblem = typedef NavierStokesMassProblemImpl< TypeTag, typename GetPropType<TypeTag, Properties::GridGeometry>::DiscretizationMethod >

Inherit from this problem to implement Navier-Stokes mass problems

◆ NavierStokesMomentumProblem

template<class TypeTag >
using Dumux::NavierStokesMomentumProblem = typedef NavierStokesMomentumProblemImpl< TypeTag, typename GetPropType<TypeTag, Properties::GridGeometry>::DiscretizationMethod >

Inherit from this problem to implement Navier-Stokes momentum problems

◆ NavierStokesResidual

template<class TypeTag >
using Dumux::NavierStokesResidual = typedef NavierStokesResidualImpl<TypeTag, typename GetPropType<TypeTag, Properties::GridGeometry>::DiscretizationMethod>
Note
Not all specializations are currently implemented

Function Documentation

◆ createCellCenterPVNameFunction()

template<class IOFields , class PrimaryVariables , class ModelTraits , class FluidSystem >
std::function< std::string(int, int)> Dumux::createCellCenterPVNameFunction ( const std::string &  paramGroup = "")
Note
use this as input for the load solution function

◆ createFacePVNameFunction()

template<class IOFields , class PrimaryVariables , class ModelTraits , class FluidSystem >
std::function< std::string(int, int)> Dumux::createFacePVNameFunction ( const std::string &  paramGroup = "")
Note
use this as input for the load solution function

Variable Documentation

◆ bj

constexpr BJ Dumux::NavierStokes::SlipConditions::bj {}
inlineconstexpr

◆ bjs

constexpr BJS Dumux::NavierStokes::SlipConditions::bjs {}
inlineconstexpr