34#ifndef DUMUX_FREEFLOW_NAVIERSTOKES_1P_MODEL_HH
35#define DUMUX_FREEFLOW_NAVIERSTOKES_1P_MODEL_HH
68 static constexpr int numEq() {
return 1; }
130template<
class TypeTag>
131struct ModelTraits<TypeTag,
TTag::NavierStokesMassOneP>
140template<
class TypeTag>
141struct FluidState<TypeTag,
TTag::NavierStokesMassOneP>
151template<
class TypeTag>
152struct LocalResidual<TypeTag,
TTag::NavierStokesMassOneP>
156template<
class TypeTag>
157struct LocalResidual<TypeTag,
TTag::NavierStokesMassOnePFE>
161template<
class TypeTag>
162struct VolumeVariables<TypeTag,
TTag::NavierStokesMassOneP>
170 static_assert(FSY::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid system");
171 static_assert(FST::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid state");
172 static_assert(!FSY::isMiscible(),
"The Navier-Stokes model only works with immiscible fluid systems.");
181template<
class TypeTag>
182struct SpatialParams<TypeTag,
TTag::NavierStokesMassOnePFE>
184 template<
class GG,
class S>
191 using ParentType::ParentType;
200template<
class TypeTag>
201struct VolumeVariables<TypeTag,
TTag::NavierStokesMassOnePFE>
209 static_assert(FSY::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid system");
210 static_assert(FST::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid state");
211 static_assert(!FSY::isMiscible(),
"The Navier-Stokes model only works with immiscible fluid systems.");
219template<
class TypeTag>
220struct FluxVariables<TypeTag,
TTag::NavierStokesMassOneP>
225 struct DiffusiveFluxTypes {};
230 Problem, ModelTraits, DiffusiveFluxTypes, ElementVolumeVariables, ElementFluxVariablesCache
235template<
class TypeTag>
238template<
class TypeTag>
242 using type =
struct EmptyCouplingManager {};
246template<
class TypeTag>
247struct SpatialParams<TypeTag,
TTag::NavierStokesMassOneP>
258template<
class TypeTag>
259struct IOFields<TypeTag,
TTag::NavierStokesMassOnePNI>
263template<
class TypeTag>
264struct ModelTraits<TypeTag,
TTag::NavierStokesMassOnePNI>
268template<
class TypeTag>
269struct VolumeVariables<TypeTag,
TTag::NavierStokesMassOnePNI>
277 static_assert(FSY::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid system");
278 static_assert(FST::numPhases == MT::numFluidPhases(),
"Number of phases mismatch between model and fluid state");
279 static_assert(!FSY::isMiscible(),
"The Navier-Stokes model only works with immiscible fluid systems.");
284 struct NITraits :
public BaseTraits
286 using EffectiveThermalConductivityModel = ETCM;
287 using HeatConductionType = HCT;
294template<
class TypeTag>
295struct ThermalConductivityModel<TypeTag,
TTag::NavierStokesMassOnePNI>
299 template<
class VolVars>
302 return volVars.fluidThermalConductivity();
307template<
class TypeTag>
308struct HeatConductionType<TypeTag,
TTag::NavierStokesMassOnePNI>
312template<
class TypeTag>
313struct FluxVariables<TypeTag,
TTag::NavierStokesMassOnePNI>
319 struct DiffusiveFluxTypes
329 Problem, ModelTraits, DiffusiveFluxTypes, ElementVolumeVariables, ElementFluxVariablesCache
333template<
class TypeTag>
334struct FluxVariablesCache<TypeTag,
TTag::NavierStokesMassOnePNI>
340template<
class TypeTag>
341struct FluxVariablesCacheFiller<TypeTag,
TTag::NavierStokesMassOnePNI>
354template<
class TypeTag>
355struct SolutionDependentHeatConduction<TypeTag,
TTag::NavierStokesMassOnePNI>
356{
static constexpr bool value =
true; };
The interface of the coupling manager for multi domain problems.
Definition multidomain/couplingmanager.hh:37
The base class for spatial parameters used with finite-volume or finite-element schemes.
Definition common/spatialparams.hh:34
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
Element-wise FE continuity residual for the one-phase mass subdomain.
Definition mass/1p/felocalresidual.hh:35
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
Variables for the single-phase Navier-Stokes mass model.
Definition freeflow/navierstokes/mass/1p/variables.hh:28
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.
Basic spatial parameters to be used with finite-volume or finite-element schemes.
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.
Variables for the single-phase Navier-Stokes mass model.
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...
Pure-FE (continuous Galerkin) continuity residual for the one-phase Navier-Stokes mass subdomain.
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:65
static constexpr bool enableMolecularDiffusion()
The one-phase one-component model has no molecular diffusion.
Definition freeflow/navierstokes/mass/1p/model.hh:80
static constexpr bool enableAdvection()
Enable advection.
Definition freeflow/navierstokes/mass/1p/model.hh:77
static constexpr int numFluidComponents()
The number of components is 1.
Definition freeflow/navierstokes/mass/1p/model.hh:74
NavierStokesMassOnePIndices Indices
the indices
Definition freeflow/navierstokes/mass/1p/model.hh:86
static constexpr bool enableEnergyBalance()
The model is isothermal.
Definition freeflow/navierstokes/mass/1p/model.hh:83
static constexpr int numEq()
Definition freeflow/navierstokes/mass/1p/model.hh:68
static constexpr int numFluidPhases()
The number of phases is 1.
Definition freeflow/navierstokes/mass/1p/model.hh:71
Traits class for the volume variables of the Navier-Stokes model.
Definition freeflow/navierstokes/mass/1p/model.hh:103
FST FluidState
Definition freeflow/navierstokes/mass/1p/model.hh:106
PV PrimaryVariables
Definition freeflow/navierstokes/mass/1p/model.hh:104
FSY FluidSystem
Definition freeflow/navierstokes/mass/1p/model.hh:105
MT ModelTraits
Definition freeflow/navierstokes/mass/1p/model.hh:107
struct EmptyCouplingManager {} type
Definition freeflow/navierstokes/mass/1p/model.hh:242
Dumux::ImmiscibleFluidState< Scalar, FluidSystem > type
Definition freeflow/navierstokes/mass/1p/model.hh:147
NavierStokesMassOnePFluxVariables< Problem, ModelTraits, DiffusiveFluxTypes, ElementVolumeVariables, ElementFluxVariablesCache > type
Definition freeflow/navierstokes/mass/1p/model.hh:229
NavierStokesMassOnePFluxVariables< Problem, ModelTraits, DiffusiveFluxTypes, ElementVolumeVariables, ElementFluxVariablesCache > type
Definition freeflow/navierstokes/mass/1p/model.hh:328
Definition freeflow/navierstokes/mass/1p/model.hh:337
FreeFlowScalarFluxVariablesCacheFiller< Problem, ModelTraits, diffusionIsSolDependent, heatConductionIsSolDependent > type
Definition freeflow/navierstokes/mass/1p/model.hh:349
GetPropType< TypeTag, Properties::Problem > Problem
Definition freeflow/navierstokes/mass/1p/model.hh:343
GetPropType< TypeTag, Properties::ModelTraits > ModelTraits
Definition freeflow/navierstokes/mass/1p/model.hh:344
static constexpr bool diffusionIsSolDependent
Definition freeflow/navierstokes/mass/1p/model.hh:345
static constexpr bool heatConductionIsSolDependent
Definition freeflow/navierstokes/mass/1p/model.hh:347
FouriersLaw< TypeTag > type
Definition freeflow/navierstokes/mass/1p/model.hh:309
NavierStokesMassOnePIOFields type
Definition freeflow/navierstokes/mass/1p/model.hh:236
NavierStokesEnergyIOFields< NavierStokesMassOnePIOFields > type
Definition freeflow/navierstokes/mass/1p/model.hh:260
NavierStokesMassOnePLocalResidual< TypeTag > type
Definition freeflow/navierstokes/mass/1p/model.hh:153
NavierStokesMassOnePFELocalResidual< TypeTag > type
Definition freeflow/navierstokes/mass/1p/model.hh:158
NavierStokesMassOnePModelTraits type
Definition freeflow/navierstokes/mass/1p/model.hh:132
NavierStokesEnergyModelTraits< NavierStokesMassOnePModelTraits > type
Definition freeflow/navierstokes/mass/1p/model.hh:265
static constexpr bool value
Definition freeflow/navierstokes/mass/1p/model.hh:356
Definition freeflow/navierstokes/mass/1p/model.hh:187
FreeFlowDefaultSpatialParams< GridGeometry, Scalar > type
Definition freeflow/navierstokes/mass/1p/model.hh:251
GetPropType< TypeTag, Properties::GridGeometry > GridGeometry
Definition freeflow/navierstokes/mass/1p/model.hh:249
GetPropType< TypeTag, Properties::Scalar > Scalar
Definition freeflow/navierstokes/mass/1p/model.hh:250
GetPropType< TypeTag, Properties::GridGeometry > GridGeometry
Definition freeflow/navierstokes/mass/1p/model.hh:194
Dumux::Experimental::SpatialParams< GridGeometry, Scalar, DefaultSpatialParams< GridGeometry, Scalar > > type
Definition freeflow/navierstokes/mass/1p/model.hh:196
GetPropType< TypeTag, Properties::Scalar > Scalar
Definition freeflow/navierstokes/mass/1p/model.hh:195
Assembles the continuity equation in weak form instead of as a control volume flux balance.
Definition freeflow/navierstokes/mass/1p/model.hh:126
std::tuple< NavierStokesMassOneP > InheritsFrom
Definition freeflow/navierstokes/mass/1p/model.hh:126
The type tag for the single-phase, isothermal Navier-Stokes model.
Definition freeflow/navierstokes/mass/1p/model.hh:123
std::tuple< ModelProperties > InheritsFrom
Definition freeflow/navierstokes/mass/1p/model.hh:123
Definition freeflow/navierstokes/mass/1p/model.hh:124
std::tuple< NavierStokesMassOneP > InheritsFrom
Definition freeflow/navierstokes/mass/1p/model.hh:124
Definition freeflow/navierstokes/mass/1p/model.hh:298
static auto effectiveThermalConductivity(const VolVars &volVars)
Definition freeflow/navierstokes/mass/1p/model.hh:300
NavierStokesMassOnePVolumeVariables< Traits > type
Definition freeflow/navierstokes/mass/1p/model.hh:176
NavierStokesMassOnePVariables< Traits > type
Definition freeflow/navierstokes/mass/1p/model.hh:215
NavierStokesMassOnePVolumeVariables< NITraits > type
Definition freeflow/navierstokes/mass/1p/model.hh:290