36#ifndef DUMUX_NAVIERSTOKES_1PNC_MODEL_HH 
   37#define DUMUX_NAVIERSTOKES_1PNC_MODEL_HH 
   65template<
int nComp, 
bool useM, 
int repCompEqIdx = nComp>
 
   70    static constexpr int numEq() { 
return nComp; }
 
   79    static constexpr bool useMoles() { 
return useM; }
 
 
  144template<
class TypeTag>
 
  145struct BaseModelTraits<TypeTag, 
TTag::NavierStokesMassOnePNC>
 
 
  155template<
class TypeTag>
 
  156struct ModelTraits<TypeTag, 
TTag::NavierStokesMassOnePNC>
 
 
  165 template<
class TypeTag>
 
  166 struct FluidState<TypeTag, 
TTag::NavierStokesMassOnePNC>
 
 
  177template<
class TypeTag>
 
  178struct LocalResidual<TypeTag, 
TTag::NavierStokesMassOnePNC>
 
 
  182template<
class TypeTag>
 
  183struct VolumeVariables<TypeTag, 
TTag::NavierStokesMassOnePNC>
 
  191    static_assert(FSY::numPhases == MT::numFluidPhases(), 
"Number of phases mismatch between model and fluid system");
 
  192    static_assert(FST::numPhases == MT::numFluidPhases(), 
"Number of phases mismatch between model and fluid state");
 
  199    template<
class BaseTraits, 
class DT, 
class EDM>
 
  200    struct NCTraits : 
public BaseTraits
 
  202        using DiffusionType = DT;
 
  203        using EffectiveDiffusivityModel = EDM;
 
 
  211template<
class TypeTag>
 
  215template<
class TypeTag>
 
  216struct EffectiveDiffusivityModel<TypeTag, 
TTag::NavierStokesMassOnePNC>
 
  220        template<
class VolumeVariables>
 
  226            return volVars.diffusionCoefficient(phaseIdx, compIdxI, compIdxJ);
 
 
 
 
  232template<
class TypeTag>
 
  233struct FluxVariables<TypeTag, 
TTag::NavierStokesMassOnePNC>
 
 
  249template<
class TypeTag>
 
  250struct SolutionDependentMolecularDiffusion<TypeTag, 
TTag::NavierStokesMassOnePNC> { 
static constexpr bool value = 
true; };
 
  253template<
class TypeTag>
 
  254struct FluxVariablesCache<TypeTag, 
TTag::NavierStokesMassOnePNC>
 
 
  260template<
class TypeTag>
 
  261struct FluxVariablesCacheFiller<TypeTag, 
TTag::NavierStokesMassOnePNC>
 
 
  272template<
class TypeTag>
 
  275template<
class TypeTag>
 
  279    struct EmptyCouplingManager {};
 
  281    using type = EmptyCouplingManager;
 
 
  285template<
class TypeTag>
 
  286struct SpatialParams<TypeTag, 
TTag::NavierStokesMassOnePNC>
 
 
  297template<
class TypeTag>
 
  301template<
class TypeTag>
 
  305template<
class TypeTag>
 
  306struct VolumeVariables<TypeTag, 
TTag::NavierStokesMassOnePNCNI>
 
  314    static_assert(FSY::numPhases == MT::numFluidPhases(), 
"Number of phases mismatch between model and fluid system");
 
  315    static_assert(FST::numPhases == MT::numFluidPhases(), 
"Number of phases mismatch between model and fluid state");
 
  316    static_assert(!FSY::isMiscible(), 
"The Navier-Stokes model only works with immiscible fluid systems.");
 
  325    struct NCNITraits : 
public BaseTraits
 
  327        using DiffusionType = DT;
 
  328        using EffectiveDiffusivityModel = EDM;
 
  329        using EffectiveThermalConductivityModel = ETCM;
 
  330        using HeatConductionType = HCT;
 
 
  338template<
class TypeTag>
 
  339struct ThermalConductivityModel<TypeTag, 
TTag::NavierStokesMassOnePNCNI>
 
  343        template<
class VolVars>
 
  346            return volVars.fluidThermalConductivity();
 
 
 
 
  351template<
class TypeTag>
 
  352struct HeatConductionType<TypeTag, 
TTag::NavierStokesMassOnePNCNI>
 
 
  356template<
class TypeTag>
 
  357struct FluxVariables<TypeTag, 
TTag::NavierStokesMassOnePNCNI>
 
 
  374template<
class TypeTag>
 
  375struct FluxVariablesCache<TypeTag, 
TTag::NavierStokesMassOnePNCNI>
 
  378    : 
public GetPropType<TypeTag, Properties::MolecularDiffusionType>::Cache
 
  379    , 
public GetPropType<TypeTag, Properties::HeatConductionType>::Cache
 
 
 
  383template<
class TypeTag>
 
  384struct FluxVariablesCacheFiller<TypeTag, 
TTag::NavierStokesMassOnePNCNI>
 
 
  394template<
class TypeTag>
 
  395struct SolutionDependentHeatConduction<TypeTag, 
TTag::NavierStokesMassOnePNCNI> { 
static constexpr bool value = 
true; };
 
Represents all relevant thermodynamic quantities of a multi-phase, multi-component fluid system assum...
Definition compositional.hh:35
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
The flux variables class for the single-phase flow, multi-component Navier-Stokes model.
Definition freeflow/navierstokes/mass/1pnc/fluxvariables.hh:42
Element-wise calculation of the Navier-Stokes residual for multicomponent single-phase flow.
Definition freeflow/navierstokes/mass/1pnc/localresidual.hh:29
Volume variables for the single-phase Navier-Stokes model.
Definition freeflow/navierstokes/mass/1pnc/volumevariables.hh:29
Defines a type tags and some fundamental properties for all models.
Defines all properties used in Dumux.
Represents all relevant thermodynamic quantities of a multi-phase, multi-component fluid system assum...
Diffusive mass flux according to Fick's law.
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, multi-component Navier-Stokes model.
The common indices for the isothermal Navier-Stokes model.
Adds I/O fields specific to the FreeflowNC model.
Element-wise calculation of the Navier-Stokes residual for multicomponent single-phase flow.
Volume variables for the single-phase Navier-Stokes model.
Definition of the spatial parameters for the freeflow problems.
FicksLawImplementation< TypeTag, typename GetPropType< TypeTag, Properties::GridGeometry >::DiscretizationMethod, referenceSystem > FicksLaw
Evaluates the diffusive mass flux according to Fick's law.
Definition fickslaw_fwd.hh:33
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
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
Adds I/O fields specific to the FreeflowNC model.
Definition freeflow/navierstokes/mass/1pnc/iofields.hh:26
The common indices for the isothermal Navier-Stokes mass conservation model.
Definition freeflow/navierstokes/mass/1pnc/indices.hh:22
Traits for the Navier-Stokes model.
Definition freeflow/navierstokes/mass/1pnc/model.hh:67
static constexpr bool enableMolecularDiffusion()
The one-phase model has no molecular diffusion.
Definition freeflow/navierstokes/mass/1pnc/model.hh:88
static constexpr auto turbulenceModel()
return the type of turbulence model used
Definition freeflow/navierstokes/mass/1pnc/model.hh:97
static constexpr bool enableAdvection()
Definition freeflow/navierstokes/mass/1pnc/model.hh:82
static constexpr int replaceCompEqIdx()
Index of of a component balance eq. to be replaced by a total mass/mole balance.
Definition freeflow/navierstokes/mass/1pnc/model.hh:91
static constexpr int numFluidPhases()
The number of phases is 1.
Definition freeflow/navierstokes/mass/1pnc/model.hh:73
static constexpr bool useMoles()
Use moles or not.
Definition freeflow/navierstokes/mass/1pnc/model.hh:79
static constexpr bool usesTurbulenceModel()
The model does not include a turbulence model.
Definition freeflow/navierstokes/mass/1pnc/model.hh:94
static constexpr int numFluidComponents()
The number of components can be freely chosen.
Definition freeflow/navierstokes/mass/1pnc/model.hh:76
NavierStokesMassOnePNCIndices Indices
the indices
Definition freeflow/navierstokes/mass/1pnc/model.hh:101
static constexpr bool enableEnergyBalance()
The model is isothermal.
Definition freeflow/navierstokes/mass/1pnc/model.hh:85
static constexpr int numEq()
Definition freeflow/navierstokes/mass/1pnc/model.hh:70
Traits class for the volume variables of the Navier-Stokes model.
Definition freeflow/navierstokes/mass/1pnc/model.hh:118
MT ModelTraits
Definition freeflow/navierstokes/mass/1pnc/model.hh:122
FSY FluidSystem
Definition freeflow/navierstokes/mass/1pnc/model.hh:120
PV PrimaryVariables
Definition freeflow/navierstokes/mass/1pnc/model.hh:119
FST FluidState
Definition freeflow/navierstokes/mass/1pnc/model.hh:121
NavierStokesMassOnePNCModelTraits< FluidSystem::numComponents, getPropValue< TypeTag, Properties::UseMoles >(), getPropValue< TypeTag, Properties::ReplaceCompEqIdx >()> type
Definition freeflow/navierstokes/mass/1pnc/model.hh:150
EmptyCouplingManager type
Definition freeflow/navierstokes/mass/1pnc/model.hh:281
Definition freeflow/navierstokes/mass/1pnc/model.hh:219
static auto effectiveDiffusionCoefficient(const VolumeVariables &volVars, const int phaseIdx, const int compIdxI, const int compIdxJ)
Definition freeflow/navierstokes/mass/1pnc/model.hh:221
CompositionalFluidState< Scalar, FluidSystem > type
Definition freeflow/navierstokes/mass/1pnc/model.hh:173
Definition freeflow/navierstokes/mass/1pnc/model.hh:363
GetPropType< TypeTag, Properties::MolecularDiffusionType > MolecularDiffusionType
Definition freeflow/navierstokes/mass/1pnc/model.hh:364
GetPropType< TypeTag, Properties::HeatConductionType > HeatConductionType
Definition freeflow/navierstokes/mass/1pnc/model.hh:365
Definition freeflow/navierstokes/mass/1pnc/model.hh:239
GetPropType< TypeTag, Properties::MolecularDiffusionType > MolecularDiffusionType
Definition freeflow/navierstokes/mass/1pnc/model.hh:240
typename GetPropType< TypeTag, Properties::GridVolumeVariables >::LocalView ElementVolumeVariables
Definition freeflow/navierstokes/mass/1pnc/model.hh:243
GetPropType< TypeTag, Properties::ModelTraits > ModelTraits
Definition freeflow/navierstokes/mass/1pnc/model.hh:236
GetPropType< TypeTag, Properties::Problem > Problem
Definition freeflow/navierstokes/mass/1pnc/model.hh:235
NavierStokesMassOnePNCFluxVariables< Problem, ModelTraits, FluxTypes, ElementVolumeVariables, ElementFluxVariablesCache > type
Definition freeflow/navierstokes/mass/1pnc/model.hh:246
typename GetPropType< TypeTag, Properties::GridFluxVariablesCache >::LocalView ElementFluxVariablesCache
Definition freeflow/navierstokes/mass/1pnc/model.hh:244
typename GetPropType< TypeTag, Properties::GridVolumeVariables >::LocalView ElementVolumeVariables
Definition freeflow/navierstokes/mass/1pnc/model.hh:368
GetPropType< TypeTag, Properties::Problem > Problem
Definition freeflow/navierstokes/mass/1pnc/model.hh:359
GetPropType< TypeTag, Properties::ModelTraits > ModelTraits
Definition freeflow/navierstokes/mass/1pnc/model.hh:360
NavierStokesMassOnePNCFluxVariables< Problem, ModelTraits, FluxTypes, ElementVolumeVariables, ElementFluxVariablesCache > type
Definition freeflow/navierstokes/mass/1pnc/model.hh:371
typename GetPropType< TypeTag, Properties::GridFluxVariablesCache >::LocalView ElementFluxVariablesCache
Definition freeflow/navierstokes/mass/1pnc/model.hh:369
Definition freeflow/navierstokes/mass/1pnc/model.hh:257
Definition freeflow/navierstokes/mass/1pnc/model.hh:380
FreeFlowScalarFluxVariablesCacheFiller< Problem, ModelTraits, diffusionIsSolDependent, heatConductionIsSolDependent > type
Definition freeflow/navierstokes/mass/1pnc/model.hh:268
static constexpr bool diffusionIsSolDependent
Definition freeflow/navierstokes/mass/1pnc/model.hh:265
GetPropType< TypeTag, Properties::ModelTraits > ModelTraits
Definition freeflow/navierstokes/mass/1pnc/model.hh:264
GetPropType< TypeTag, Properties::Problem > Problem
Definition freeflow/navierstokes/mass/1pnc/model.hh:263
static constexpr bool heatConductionIsSolDependent
Definition freeflow/navierstokes/mass/1pnc/model.hh:266
GetPropType< TypeTag, Properties::Problem > Problem
Definition freeflow/navierstokes/mass/1pnc/model.hh:386
FreeFlowScalarFluxVariablesCacheFiller< Problem, ModelTraits, diffusionIsSolDependent, heatConductionIsSolDependent > type
Definition freeflow/navierstokes/mass/1pnc/model.hh:391
static constexpr bool heatConductionIsSolDependent
Definition freeflow/navierstokes/mass/1pnc/model.hh:389
GetPropType< TypeTag, Properties::ModelTraits > ModelTraits
Definition freeflow/navierstokes/mass/1pnc/model.hh:387
static constexpr bool diffusionIsSolDependent
Definition freeflow/navierstokes/mass/1pnc/model.hh:388
FouriersLaw< TypeTag > type
Definition freeflow/navierstokes/mass/1pnc/model.hh:353
NavierStokesMassOnePNCIOFields< NavierStokesIOFields > type
Definition freeflow/navierstokes/mass/1pnc/model.hh:273
NavierStokesEnergyIOFields< NavierStokesMassOnePNCIOFields< NavierStokesIOFields > > type
Definition freeflow/navierstokes/mass/1pnc/model.hh:298
NavierStokesMassOnePNCLocalResidual< TypeTag > type
Definition freeflow/navierstokes/mass/1pnc/model.hh:179
GetPropType< TypeTag, Properties::BaseModelTraits > type
Definition freeflow/navierstokes/mass/1pnc/model.hh:157
NavierStokesEnergyModelTraits< GetPropType< TypeTag, Properties::BaseModelTraits > > type
Definition freeflow/navierstokes/mass/1pnc/model.hh:302
FicksLaw< TypeTag > type
Definition freeflow/navierstokes/mass/1pnc/model.hh:212
static constexpr bool value
Definition freeflow/navierstokes/mass/1pnc/model.hh:395
static constexpr bool value
Definition freeflow/navierstokes/mass/1pnc/model.hh:250
GetPropType< TypeTag, Properties::GridGeometry > GridGeometry
Definition freeflow/navierstokes/mass/1pnc/model.hh:288
FreeFlowDefaultSpatialParams< GridGeometry, Scalar > type
Definition freeflow/navierstokes/mass/1pnc/model.hh:290
GetPropType< TypeTag, Properties::Scalar > Scalar
Definition freeflow/navierstokes/mass/1pnc/model.hh:289
The type tag for the single-phase, isothermal Navier-Stokes model.
Definition freeflow/navierstokes/mass/1pnc/model.hh:138
std::tuple< ModelProperties > InheritsFrom
Definition freeflow/navierstokes/mass/1pnc/model.hh:138
Definition freeflow/navierstokes/mass/1pnc/model.hh:139
std::tuple< NavierStokesMassOnePNC > InheritsFrom
Definition freeflow/navierstokes/mass/1pnc/model.hh:139
Definition freeflow/navierstokes/mass/1pnc/model.hh:342
static auto effectiveThermalConductivity(const VolVars &volVars)
Definition freeflow/navierstokes/mass/1pnc/model.hh:344
NavierStokesMassOnePNCVolumeVariables< NCTraits< BaseTraits, DT, EDM > > type
Definition freeflow/navierstokes/mass/1pnc/model.hh:207
NavierStokesMassOnePNCVolumeVariables< NCNITraits > type
Definition freeflow/navierstokes/mass/1pnc/model.hh:334
The available free flow turbulence models in Dumux.