34#ifndef DUMUX_FREEFLOW_NAVIERSTOKES_1P_MODEL_HH
35#define DUMUX_FREEFLOW_NAVIERSTOKES_1P_MODEL_HH
64 static constexpr int numEq() {
return 1; }
110namespace Properties {
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.");
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>
286 struct type :
public GetPropType<TypeTag, Properties::HeatConductionType>::Cache
290template<
class TypeTag>
291struct FluxVariablesCacheFiller<TypeTag, TTag::NavierStokesMassOnePNI>
295 static constexpr bool diffusionIsSolDependent =
false;
296 static constexpr bool heatConductionIsSolDependent
297 = getPropValue<TypeTag, Properties::SolutionDependentHeatConduction>();
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
forward declaration of the method-specific implementation
Definition: flux/box/fourierslaw.hh:26
Definition of the spatial parameters for the freeflow problems.
Definition: freeflow/spatialparams.hh:117
Definition: scalarfluxvariablescachefiller.hh:27
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:40
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.
Definition of the spatial parameters for the freeflow problems.
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...
Base class for the flux variables in porous medium models.
Adds I/O fields specific to the tracer model.
A helper class to fill the flux variables cache.
Defines the indices for the elastic model.
Local residual for the hyperelastic model.
Volume variables for the hyperelasticity model.
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
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
EmptyCouplingManager {} type
Definition: freeflow/navierstokes/mass/1p/model.hh:192
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
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
static auto effectiveThermalConductivity(const VolVars &volVars)
Definition: freeflow/navierstokes/mass/1p/model.hh:250