version 3.8
freeflow/navierstokes/momentum/cvfe/model.hh
Go to the documentation of this file.
1// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2// vi: set et ts=4 sw=4 sts=4:
3//
4// SPDX-FileCopyrightInfo: Copyright © DuMux Project contributors, see AUTHORS.md in root folder
5// SPDX-License-Identifier: GPL-3.0-or-later
6//
33#ifndef DUMUX_NAVIERSTOKES_MOMENTUM_CVFE_MODEL_HH
34#define DUMUX_NAVIERSTOKES_MOMENTUM_CVFE_MODEL_HH
35
41
46
50
51namespace Dumux {
52
59template<int dimension>
61{
63 static constexpr int dim() { return dimension; }
64
67 static constexpr int numEq() { return dim(); }
68
70 static constexpr int numFluidPhases() { return 1; }
71
73 static constexpr int numFluidComponents() { return 1; }
74
76 static constexpr bool enableAdvection() { return true; }
77
79 static constexpr bool enableMolecularDiffusion() { return false; }
80
82 static constexpr bool enableEnergyBalance() { return false; }
83
85 static constexpr bool usesTurbulenceModel() { return false; }
86
88 static constexpr auto turbulenceModel()
89 { return TurbulenceModel::none; }
90
93};
94
104template<class PV, class FSY, class FST, class MT>
106{
108 using FluidSystem = FSY;
109 using FluidState = FST;
110 using ModelTraits = MT;
111};
112
113} // end namespace Dumux
114
115// \{
117// properties for the single-phase Navier-Stokes model
119namespace Dumux::Properties {
120
122// Type tags
124
125// Create new type tags
126namespace TTag {
128struct NavierStokesMomentumCVFE { using InheritsFrom = std::tuple<FreeFlow>; };
129} // end namespace TTag
130
132// default property values for the isothermal single phase model
135template<class TypeTag>
136struct ModelTraits<TypeTag, TTag::NavierStokesMomentumCVFE>
137{
138private:
140 static constexpr auto dim = GridView::dimension;
141public:
143};
144
151template<class TypeTag>
152struct FluidState<TypeTag, TTag::NavierStokesMomentumCVFE>{
153private:
156public:
158};
159
161template<class TypeTag>
162struct LocalResidual<TypeTag, TTag::NavierStokesMomentumCVFE>
164
166template<class TypeTag>
167struct VolumeVariables<TypeTag, TTag::NavierStokesMomentumCVFE>
168{
169private:
174
175 static_assert(FSY::numPhases == MT::numFluidPhases(), "Number of phases mismatch between model and fluid system");
176 static_assert(FST::numPhases == MT::numFluidPhases(), "Number of phases mismatch between model and fluid state");
177 static_assert(!FSY::isMiscible(), "The Navier-Stokes model only works with immiscible fluid systems.");
178
180public:
182};
183
184// This is the default (model not coupled with a mass (pressure) discretization)
185// i.e. the pressure is supplied via the problem as an analytical solution
186// or from a separate computation
187template<class TypeTag>
188struct CouplingManager<TypeTag, TTag::NavierStokesMomentumCVFE>
189{
190 struct EmptyCouplingManager {};
191 using type = EmptyCouplingManager;
192};
193
194} // end namespace Dumux::Properties
195
196#endif
The interface of the coupling manager for multi domain problems.
Definition: multidomain/couplingmanager.hh:48
Represents all relevant thermodynamic quantities of a multi-phase fluid system assuming immiscibility...
Definition: immiscible.hh:30
Element-wise calculation of the Navier-Stokes residual for models using the CVFE discretizations.
Definition: freeflow/navierstokes/momentum/cvfe/localresidual.hh:35
Volume variables for the single-phase Navier-Stokes model.
Definition: freeflow/navierstokes/momentum/cvfe/volumevariables.hh:25
Defines all properties used in Dumux.
Diffusive heat flux according to Fourier's law.
Classes related to flux variables caching.
A single-phase, non-isothermal free-flow model.
Defines a type tag and some properties for free flow models.
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...
The available discretization methods in Dumux.
The energy balance equation for a porous solid.
Definition: common/properties.hh:26
Definition: adapt.hh:17
The common indices for the isothermal Navier-Stokes model.
Definition: freeflow/navierstokes/momentum/cvfe/indices.hh:25
Traits for the Navier-Stokes model.
Definition: freeflow/navierstokes/momentum/cvfe/model.hh:61
static constexpr bool enableEnergyBalance()
The model is isothermal.
Definition: freeflow/navierstokes/momentum/cvfe/model.hh:82
static constexpr auto turbulenceModel()
return the type of turbulence model used
Definition: freeflow/navierstokes/momentum/cvfe/model.hh:88
static constexpr int numEq()
Definition: freeflow/navierstokes/momentum/cvfe/model.hh:67
static constexpr bool enableMolecularDiffusion()
The one-phase model has no molecular diffusion.
Definition: freeflow/navierstokes/momentum/cvfe/model.hh:79
static constexpr int numFluidComponents()
The number of components is 1.
Definition: freeflow/navierstokes/momentum/cvfe/model.hh:73
static constexpr int numFluidPhases()
The number of phases is 1.
Definition: freeflow/navierstokes/momentum/cvfe/model.hh:70
static constexpr bool enableAdvection()
Enable advection.
Definition: freeflow/navierstokes/momentum/cvfe/model.hh:76
static constexpr int dim()
The dimension of the model.
Definition: freeflow/navierstokes/momentum/cvfe/model.hh:63
static constexpr bool usesTurbulenceModel()
The model does not include a turbulence model.
Definition: freeflow/navierstokes/momentum/cvfe/model.hh:85
Traits class for the volume variables of the Navier-Stokes model.
Definition: freeflow/navierstokes/momentum/cvfe/model.hh:106
FST FluidState
Definition: freeflow/navierstokes/momentum/cvfe/model.hh:109
MT ModelTraits
Definition: freeflow/navierstokes/momentum/cvfe/model.hh:110
PV PrimaryVariables
Definition: freeflow/navierstokes/momentum/cvfe/model.hh:107
FSY FluidSystem
Definition: freeflow/navierstokes/momentum/cvfe/model.hh:108
EmptyCouplingManager type
Definition: freeflow/navierstokes/momentum/cvfe/model.hh:191
The type tag for the single-phase, isothermal Navier-Stokes model.
Definition: freeflow/navierstokes/momentum/cvfe/model.hh:128
std::tuple< FreeFlow > InheritsFrom
Definition: freeflow/navierstokes/momentum/cvfe/model.hh:128