34#ifndef DUMUX_FREEFLOW_NAVIERSTOKES_1P_MODEL_HH 
   35#define DUMUX_FREEFLOW_NAVIERSTOKES_1P_MODEL_HH 
   65    static constexpr int numEq() { 
return 1; }
 
 
  132template<
class TypeTag>
 
  133struct ModelTraits<TypeTag, 
TTag::NavierStokesMassOneP>
 
 
  142template<
class TypeTag>
 
  143struct FluidState<TypeTag, 
TTag::NavierStokesMassOneP>
 
 
  153template<
class TypeTag>
 
  154struct LocalResidual<TypeTag, 
TTag::NavierStokesMassOneP>
 
 
  158template<
class TypeTag>
 
  159struct VolumeVariables<TypeTag, 
TTag::NavierStokesMassOneP>
 
  167    static_assert(FSY::numPhases == MT::numFluidPhases(), 
"Number of phases mismatch between model and fluid system");
 
  168    static_assert(FST::numPhases == MT::numFluidPhases(), 
"Number of phases mismatch between model and fluid state");
 
  169    static_assert(!FSY::isMiscible(), 
"The Navier-Stokes model only works with immiscible fluid systems.");
 
 
  177template<
class TypeTag>
 
  178struct FluxVariables<TypeTag, 
TTag::NavierStokesMassOneP>
 
  183    struct DiffusiveFluxTypes {}; 
 
  188        Problem, ModelTraits, DiffusiveFluxTypes, ElementVolumeVariables, ElementFluxVariablesCache
 
 
  193template<
class TypeTag>
 
  196template<
class TypeTag>
 
  200    using type = 
struct EmptyCouplingManager {};
 
 
  204template<
class TypeTag>
 
  205struct SpatialParams<TypeTag, 
TTag::NavierStokesMassOneP>
 
 
  216template<
class TypeTag>
 
  217struct IOFields<TypeTag, 
TTag::NavierStokesMassOnePNI>
 
 
  221template<
class TypeTag>
 
  222struct ModelTraits<TypeTag, 
TTag::NavierStokesMassOnePNI>
 
 
  226template<
class TypeTag>
 
  227struct VolumeVariables<TypeTag, 
TTag::NavierStokesMassOnePNI>
 
  235    static_assert(FSY::numPhases == MT::numFluidPhases(), 
"Number of phases mismatch between model and fluid system");
 
  236    static_assert(FST::numPhases == MT::numFluidPhases(), 
"Number of phases mismatch between model and fluid state");
 
  237    static_assert(!FSY::isMiscible(), 
"The Navier-Stokes model only works with immiscible fluid systems.");
 
  242    struct NITraits : 
public BaseTraits
 
  244        using EffectiveThermalConductivityModel = ETCM;
 
  245        using HeatConductionType = HCT;
 
 
  252template<
class TypeTag>
 
  253struct ThermalConductivityModel<TypeTag, 
TTag::NavierStokesMassOnePNI>
 
  257        template<
class VolVars>
 
  260            return volVars.fluidThermalConductivity();
 
 
 
 
  265template<
class TypeTag>
 
  266struct HeatConductionType<TypeTag, 
TTag::NavierStokesMassOnePNI>
 
 
  270template<
class TypeTag>
 
  271struct FluxVariables<TypeTag, 
TTag::NavierStokesMassOnePNI>
 
  277    struct DiffusiveFluxTypes
 
  287        Problem, ModelTraits, DiffusiveFluxTypes, ElementVolumeVariables, ElementFluxVariablesCache
 
 
  291template<
class TypeTag>
 
  292struct FluxVariablesCache<TypeTag, 
TTag::NavierStokesMassOnePNI>
 
 
  298template<
class TypeTag>
 
  299struct FluxVariablesCacheFiller<TypeTag, 
TTag::NavierStokesMassOnePNI>
 
 
  312template<
class TypeTag>
 
  313struct SolutionDependentHeatConduction<TypeTag, 
TTag::NavierStokesMassOnePNI>
 
  314{ 
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
Adds I/O fields for the Navier-Stokes model.
Definition freeflow/navierstokes/iofields.hh:67
The flux variables class for the single-phase flow Navier-Stokes model.
Definition freeflow/navierstokes/mass/1p/fluxvariables.hh:39
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.
Adds I/O fields for the Navier-Stokes model.
The flux variables class for the single-phase flow Navier-Stokes model.
The common indices for the isothermal Navier-Stokes model.
Element-wise calculation of the Navier-Stokes residual for models using the staggered discretization.
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
@ none
Definition turbulencemodel.hh:27
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:47
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:62
static constexpr bool enableMolecularDiffusion()
The one-phase one-component model has no molecular diffusion.
Definition freeflow/navierstokes/mass/1p/model.hh:77
static constexpr auto turbulenceModel()
return the type of turbulence model used
Definition freeflow/navierstokes/mass/1p/model.hh:86
static constexpr bool enableAdvection()
Enable advection.
Definition freeflow/navierstokes/mass/1p/model.hh:74
static constexpr bool usesTurbulenceModel()
The model does not include a turbulence model.
Definition freeflow/navierstokes/mass/1p/model.hh:83
static constexpr int numFluidComponents()
The number of components is 1.
Definition freeflow/navierstokes/mass/1p/model.hh:71
NavierStokesMassOnePIndices Indices
the indices
Definition freeflow/navierstokes/mass/1p/model.hh:90
static constexpr bool enableEnergyBalance()
The model is isothermal.
Definition freeflow/navierstokes/mass/1p/model.hh:80
static constexpr int numEq()
Definition freeflow/navierstokes/mass/1p/model.hh:65
static constexpr int numFluidPhases()
The number of phases is 1.
Definition freeflow/navierstokes/mass/1p/model.hh:68
Traits class for the volume variables of the Navier-Stokes model.
Definition freeflow/navierstokes/mass/1p/model.hh:107
FST FluidState
Definition freeflow/navierstokes/mass/1p/model.hh:110
PV PrimaryVariables
Definition freeflow/navierstokes/mass/1p/model.hh:108
FSY FluidSystem
Definition freeflow/navierstokes/mass/1p/model.hh:109
MT ModelTraits
Definition freeflow/navierstokes/mass/1p/model.hh:111
struct EmptyCouplingManager {} type
Definition freeflow/navierstokes/mass/1p/model.hh:200
Dumux::ImmiscibleFluidState< Scalar, FluidSystem > type
Definition freeflow/navierstokes/mass/1p/model.hh:149
NavierStokesMassOnePFluxVariables< Problem, ModelTraits, DiffusiveFluxTypes, ElementVolumeVariables, ElementFluxVariablesCache > type
Definition freeflow/navierstokes/mass/1p/model.hh:187
NavierStokesMassOnePFluxVariables< Problem, ModelTraits, DiffusiveFluxTypes, ElementVolumeVariables, ElementFluxVariablesCache > type
Definition freeflow/navierstokes/mass/1p/model.hh:286
Definition freeflow/navierstokes/mass/1p/model.hh:295
GetPropType< TypeTag, Properties::Problem > Problem
Definition freeflow/navierstokes/mass/1p/model.hh:301
GetPropType< TypeTag, Properties::ModelTraits > ModelTraits
Definition freeflow/navierstokes/mass/1p/model.hh:302
FreeFlowScalarFluxVariablesCacheFiller< Problem, ModelTraits, diffusionIsSolDependent, heatConductionIsSolDependent > type
Definition freeflow/navierstokes/mass/1p/model.hh:307
static constexpr bool diffusionIsSolDependent
Definition freeflow/navierstokes/mass/1p/model.hh:303
static constexpr bool heatConductionIsSolDependent
Definition freeflow/navierstokes/mass/1p/model.hh:305
FouriersLaw< TypeTag > type
Definition freeflow/navierstokes/mass/1p/model.hh:267
NavierStokesIOFields type
Definition freeflow/navierstokes/mass/1p/model.hh:194
NavierStokesEnergyIOFields< NavierStokesIOFields > type
Definition freeflow/navierstokes/mass/1p/model.hh:218
NavierStokesMassOnePLocalResidual< TypeTag > type
Definition freeflow/navierstokes/mass/1p/model.hh:155
NavierStokesMassOnePModelTraits type
Definition freeflow/navierstokes/mass/1p/model.hh:134
NavierStokesEnergyModelTraits< NavierStokesMassOnePModelTraits > type
Definition freeflow/navierstokes/mass/1p/model.hh:223
static constexpr bool value
Definition freeflow/navierstokes/mass/1p/model.hh:314
FreeFlowDefaultSpatialParams< GridGeometry, Scalar > type
Definition freeflow/navierstokes/mass/1p/model.hh:209
GetPropType< TypeTag, Properties::GridGeometry > GridGeometry
Definition freeflow/navierstokes/mass/1p/model.hh:207
GetPropType< TypeTag, Properties::Scalar > Scalar
Definition freeflow/navierstokes/mass/1p/model.hh:208
The type tag for the single-phase, isothermal Navier-Stokes model.
Definition freeflow/navierstokes/mass/1p/model.hh:127
std::tuple< ModelProperties > InheritsFrom
Definition freeflow/navierstokes/mass/1p/model.hh:127
Definition freeflow/navierstokes/mass/1p/model.hh:128
std::tuple< NavierStokesMassOneP > InheritsFrom
Definition freeflow/navierstokes/mass/1p/model.hh:128
Definition freeflow/navierstokes/mass/1p/model.hh:256
static auto effectiveThermalConductivity(const VolVars &volVars)
Definition freeflow/navierstokes/mass/1p/model.hh:258
NavierStokesMassOnePVolumeVariables< Traits > type
Definition freeflow/navierstokes/mass/1p/model.hh:173
NavierStokesMassOnePVolumeVariables< NITraits > type
Definition freeflow/navierstokes/mass/1p/model.hh:248
The available free flow turbulence models in Dumux.