34#ifndef DUMUX_FREEFLOW_NAVIERSTOKES_1P_MODEL_HH
35#define DUMUX_FREEFLOW_NAVIERSTOKES_1P_MODEL_HH
64 static constexpr int numEq() {
return 1; }
124template<
class TypeTag>
125struct ModelTraits<TypeTag,
TTag::NavierStokesMassOneP>
134template<
class TypeTag>
135struct FluidState<TypeTag,
TTag::NavierStokesMassOneP>
145template<
class TypeTag>
146struct LocalResidual<TypeTag,
TTag::NavierStokesMassOneP>
150template<
class TypeTag>
151struct VolumeVariables<TypeTag,
TTag::NavierStokesMassOneP>
159 static_assert(FSY::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid system");
160 static_assert(FST::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid state");
161 static_assert(!FSY::isMiscible(),
"The Navier-Stokes model only works with immiscible fluid systems.");
169template<
class TypeTag>
170struct FluxVariables<TypeTag,
TTag::NavierStokesMassOneP>
175 struct DiffusiveFluxTypes {};
180 Problem, ModelTraits, DiffusiveFluxTypes, ElementVolumeVariables, ElementFluxVariablesCache
185template<
class TypeTag>
188template<
class TypeTag>
192 using type =
struct EmptyCouplingManager {};
196template<
class TypeTag>
197struct SpatialParams<TypeTag,
TTag::NavierStokesMassOneP>
208template<
class TypeTag>
209struct IOFields<TypeTag,
TTag::NavierStokesMassOnePNI>
213template<
class TypeTag>
214struct ModelTraits<TypeTag,
TTag::NavierStokesMassOnePNI>
218template<
class TypeTag>
219struct VolumeVariables<TypeTag,
TTag::NavierStokesMassOnePNI>
227 static_assert(FSY::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid system");
228 static_assert(FST::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid state");
229 static_assert(!FSY::isMiscible(),
"The Navier-Stokes model only works with immiscible fluid systems.");
234 struct NITraits :
public BaseTraits
236 using EffectiveThermalConductivityModel = ETCM;
237 using HeatConductionType = HCT;
244template<
class TypeTag>
245struct ThermalConductivityModel<TypeTag,
TTag::NavierStokesMassOnePNI>
249 template<
class VolVars>
252 return volVars.fluidThermalConductivity();
257template<
class TypeTag>
258struct HeatConductionType<TypeTag,
TTag::NavierStokesMassOnePNI>
262template<
class TypeTag>
263struct FluxVariables<TypeTag,
TTag::NavierStokesMassOnePNI>
269 struct DiffusiveFluxTypes
279 Problem, ModelTraits, DiffusiveFluxTypes, ElementVolumeVariables, ElementFluxVariablesCache
283template<
class TypeTag>
284struct FluxVariablesCache<TypeTag,
TTag::NavierStokesMassOnePNI>
290template<
class TypeTag>
291struct FluxVariablesCacheFiller<TypeTag,
TTag::NavierStokesMassOnePNI>
304template<
class TypeTag>
305struct SolutionDependentHeatConduction<TypeTag,
TTag::NavierStokesMassOnePNI>
306{
static constexpr bool value =
true; };
The interface of the coupling manager for multi domain problems.
Definition multidomain/couplingmanager.hh:37
Definition of the spatial parameters for the freeflow problems.
Definition freeflow/spatialparams.hh:117
Represents all relevant thermodynamic quantities of a multi-phase fluid system assuming immiscibility...
Definition immiscible.hh:30
The flux variables class for the single-phase flow Navier-Stokes model.
Definition freeflow/navierstokes/mass/1p/fluxvariables.hh:39
Adds I/O fields for the Navier-Stokes model.
Definition freeflow/navierstokes/mass/1p/iofields.hh:25
Element-wise calculation of the Navier-Stokes residual for single-phase flow.
Definition freeflow/navierstokes/mass/1p/localresidual.hh:44
Volume variables for the single-phase Navier-Stokes model.
Definition freeflow/navierstokes/mass/1p/volumevariables.hh:29
Defines a type tags and some fundamental properties for all models.
Defines all properties used in Dumux.
Diffusive heat flux according to Fourier's law.
A single-phase, non-isothermal free-flow model.
The flux variables class for the single-phase flow Navier-Stokes model.
The common indices for the isothermal Navier-Stokes mass conservation model.
Adds I/O fields for the Navier-Stokes model.
Element-wise calculation of the Navier-Stokes residual for single-phase flow.
Volume variables for the single-phase Navier-Stokes model.
Definition of the spatial parameters for the freeflow problems.
FouriersLawImplementation< TypeTag, typename GetPropType< TypeTag, Properties::GridGeometry >::DiscretizationMethod > FouriersLaw
Evaluates the heat conduction flux according to Fouriers's law.
Definition fourierslaw_fwd.hh:31
FreeFlowScalarFluxVariablesCacheFillerImplementation< Problem, ModelTraits, diffusionIsSolDependent, heatConductionIsSolDependent, typename ProblemTraits< Problem >::GridGeometry::DiscretizationMethod > FreeFlowScalarFluxVariablesCacheFiller
The flux variables cache filler class for free flow.
Definition scalarfluxvariablescachefiller.hh:36
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:310
typename GetProp< TypeTag, Property >::type GetPropType
get the type alias defined in the property
Definition propertysystem.hh:296
Represents all relevant thermodynamic quantities of a multi-phase fluid system assuming immiscibility...
Type tag for numeric models.
Definition grid.hh:24
The energy balance equation for a porous solid.
Definition common/properties.hh:26
A helper class to fill the flux variables cache.
Adds I/O fields specific to non-isothermal free-flow models.
Definition freeflow/navierstokes/energy/iofields.hh:25
Specifies a number properties of non-isothermal free-flow flow models based on the specifics of a giv...
Definition freeflow/navierstokes/energy/model.hh:55
The common indices for the isothermal Navier-Stokes mass conservation model.
Definition freeflow/navierstokes/mass/1p/indices.hh:22
Traits for the single-phase flow Navier-Stokes mass model.
Definition freeflow/navierstokes/mass/1p/model.hh:61
static constexpr bool enableMolecularDiffusion()
The one-phase one-component model has no molecular diffusion.
Definition freeflow/navierstokes/mass/1p/model.hh:76
static constexpr bool enableAdvection()
Enable advection.
Definition freeflow/navierstokes/mass/1p/model.hh:73
static constexpr int numFluidComponents()
The number of components is 1.
Definition freeflow/navierstokes/mass/1p/model.hh:70
NavierStokesMassOnePIndices Indices
the indices
Definition freeflow/navierstokes/mass/1p/model.hh:82
static constexpr bool enableEnergyBalance()
The model is isothermal.
Definition freeflow/navierstokes/mass/1p/model.hh:79
static constexpr int numEq()
Definition freeflow/navierstokes/mass/1p/model.hh:64
static constexpr int numFluidPhases()
The number of phases is 1.
Definition freeflow/navierstokes/mass/1p/model.hh:67
Traits class for the volume variables of the Navier-Stokes model.
Definition freeflow/navierstokes/mass/1p/model.hh:99
FST FluidState
Definition freeflow/navierstokes/mass/1p/model.hh:102
PV PrimaryVariables
Definition freeflow/navierstokes/mass/1p/model.hh:100
FSY FluidSystem
Definition freeflow/navierstokes/mass/1p/model.hh:101
MT ModelTraits
Definition freeflow/navierstokes/mass/1p/model.hh:103
struct EmptyCouplingManager {} type
Definition freeflow/navierstokes/mass/1p/model.hh:192
Dumux::ImmiscibleFluidState< Scalar, FluidSystem > type
Definition freeflow/navierstokes/mass/1p/model.hh:141
NavierStokesMassOnePFluxVariables< Problem, ModelTraits, DiffusiveFluxTypes, ElementVolumeVariables, ElementFluxVariablesCache > type
Definition freeflow/navierstokes/mass/1p/model.hh:179
NavierStokesMassOnePFluxVariables< Problem, ModelTraits, DiffusiveFluxTypes, ElementVolumeVariables, ElementFluxVariablesCache > type
Definition freeflow/navierstokes/mass/1p/model.hh:278
Definition freeflow/navierstokes/mass/1p/model.hh:287
FreeFlowScalarFluxVariablesCacheFiller< Problem, ModelTraits, diffusionIsSolDependent, heatConductionIsSolDependent > type
Definition freeflow/navierstokes/mass/1p/model.hh:299
GetPropType< TypeTag, Properties::Problem > Problem
Definition freeflow/navierstokes/mass/1p/model.hh:293
GetPropType< TypeTag, Properties::ModelTraits > ModelTraits
Definition freeflow/navierstokes/mass/1p/model.hh:294
static constexpr bool diffusionIsSolDependent
Definition freeflow/navierstokes/mass/1p/model.hh:295
static constexpr bool heatConductionIsSolDependent
Definition freeflow/navierstokes/mass/1p/model.hh:297
FouriersLaw< TypeTag > type
Definition freeflow/navierstokes/mass/1p/model.hh:259
NavierStokesMassOnePIOFields type
Definition freeflow/navierstokes/mass/1p/model.hh:186
NavierStokesEnergyIOFields< NavierStokesMassOnePIOFields > type
Definition freeflow/navierstokes/mass/1p/model.hh:210
NavierStokesMassOnePLocalResidual< TypeTag > type
Definition freeflow/navierstokes/mass/1p/model.hh:147
NavierStokesMassOnePModelTraits type
Definition freeflow/navierstokes/mass/1p/model.hh:126
NavierStokesEnergyModelTraits< NavierStokesMassOnePModelTraits > type
Definition freeflow/navierstokes/mass/1p/model.hh:215
static constexpr bool value
Definition freeflow/navierstokes/mass/1p/model.hh:306
FreeFlowDefaultSpatialParams< GridGeometry, Scalar > type
Definition freeflow/navierstokes/mass/1p/model.hh:201
GetPropType< TypeTag, Properties::GridGeometry > GridGeometry
Definition freeflow/navierstokes/mass/1p/model.hh:199
GetPropType< TypeTag, Properties::Scalar > Scalar
Definition freeflow/navierstokes/mass/1p/model.hh:200
The type tag for the single-phase, isothermal Navier-Stokes model.
Definition freeflow/navierstokes/mass/1p/model.hh:119
std::tuple< ModelProperties > InheritsFrom
Definition freeflow/navierstokes/mass/1p/model.hh:119
Definition freeflow/navierstokes/mass/1p/model.hh:120
std::tuple< NavierStokesMassOneP > InheritsFrom
Definition freeflow/navierstokes/mass/1p/model.hh:120
Definition freeflow/navierstokes/mass/1p/model.hh:248
static auto effectiveThermalConductivity(const VolVars &volVars)
Definition freeflow/navierstokes/mass/1p/model.hh:250
NavierStokesMassOnePVolumeVariables< Traits > type
Definition freeflow/navierstokes/mass/1p/model.hh:165
NavierStokesMassOnePVolumeVariables< NITraits > type
Definition freeflow/navierstokes/mass/1p/model.hh:240