version 3.11-dev
Loading...
Searching...
No Matches
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-FileCopyrightText: Copyright © DuMux Project contributors, see AUTHORS.md in root folder
5// SPDX-License-Identifier: GPL-3.0-or-later
6//
32
33#ifndef DUMUX_NAVIERSTOKES_MOMENTUM_CVFE_MODEL_HH
34#define DUMUX_NAVIERSTOKES_MOMENTUM_CVFE_MODEL_HH
35
39
44
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
86};
87
97template<class PV, class FSY, class FST, class MT>
105
106} // end namespace Dumux
107
108// \{
110// properties for the single-phase Navier-Stokes model
112namespace Dumux::Properties {
113
115// Type tags
117
118// Create new type tags
119namespace TTag {
121struct NavierStokesMomentumCVFEBase { using InheritsFrom = std::tuple<FreeFlow>; };
122struct NavierStokesMomentumCVFE { using InheritsFrom = std::tuple<NavierStokesMomentumCVFEBase>; };
123struct NavierStokesMomentumFE { using InheritsFrom = std::tuple<NavierStokesMomentumCVFEBase>; };
124} // end namespace TTag
125
127// default property values for the isothermal single phase model
130template<class TypeTag>
131struct ModelTraits<TypeTag, TTag::NavierStokesMomentumCVFEBase>
132{
133private:
135 static constexpr auto dim = GridView::dimension;
136public:
138};
139
146template<class TypeTag>
147struct FluidState<TypeTag, TTag::NavierStokesMomentumCVFEBase>{
148private:
151public:
153};
154
156template<class TypeTag>
157struct LocalResidual<TypeTag, TTag::NavierStokesMomentumCVFE>
159
161template<class TypeTag>
162struct LocalResidual<TypeTag, TTag::NavierStokesMomentumFE>
164
165// Set the default spatial parameters for the fe scheme
166template<class TypeTag>
167struct SpatialParams<TypeTag, TTag::NavierStokesMomentumFE>
168{
169 template<class GG, class S>
171 : public Dumux::Experimental::SpatialParams<GG, S, DefaultSpatialParams<GG, S>>
172 {
173 private:
175 public:
176 using ParentType::ParentType;
177 };
178
182};
183
185template<class TypeTag>
186struct VolumeVariables<TypeTag, TTag::NavierStokesMomentumCVFEBase>
187{
188private:
193
194 static_assert(FSY::numPhases == MT::numFluidPhases(), "Number of phases mismatch between model and fluid system");
195 static_assert(FST::numPhases == MT::numFluidPhases(), "Number of phases mismatch between model and fluid state");
196 static_assert(!FSY::isMiscible(), "The Navier-Stokes model only works with immiscible fluid systems.");
197
199public:
201};
202
204template<class TypeTag>
216
217// This is the default (model not coupled with a mass (pressure) discretization)
218// i.e. the pressure is supplied via the problem as an analytical solution
219// or from a separate computation
220template<class TypeTag>
221struct CouplingManager<TypeTag, TTag::NavierStokesMomentumCVFEBase>
222{
225};
226
227} // end namespace Dumux::Properties
228
229#endif
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
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 CVFE discretizations.
Definition freeflow/navierstokes/momentum/cvfe/localresidual.hh:58
Variables for the single-phase Navier-Stokes model.
Definition freeflow/navierstokes/momentum/cvfe/variables.hh:25
Volume variables for the single-phase Navier-Stokes model.
Definition freeflow/navierstokes/momentum/cvfe/volumevariables.hh:25
Element-wise calculation of the Navier-Stokes residual for models using FE discretizations.
Definition momentum/cvfe/felocalresidual.hh:172
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.
Classes related to flux variables caching.
The common indices for the isothermal Navier-Stokes model.
Element-wise calculation of the Navier-Stokes residual for models using CVFE discretizations.
Variables for the single-phase Navier-Stokes model.
Volume variables for the single-phase Navier-Stokes 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.
Helper functions for assembling FE-based local residuals.
Type tag for numeric models.
Definition grid.hh:24
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 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
NavierStokesMomentumCVFEIndices< dim()> Indices
the indices
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:99
FST FluidState
Definition freeflow/navierstokes/momentum/cvfe/model.hh:102
MT ModelTraits
Definition freeflow/navierstokes/momentum/cvfe/model.hh:103
PV PrimaryVariables
Definition freeflow/navierstokes/momentum/cvfe/model.hh:100
FSY FluidSystem
Definition freeflow/navierstokes/momentum/cvfe/model.hh:101
EmptyCouplingManager type
Definition freeflow/navierstokes/momentum/cvfe/model.hh:224
ImmiscibleFluidState< Scalar, FluidSystem > type
Definition freeflow/navierstokes/momentum/cvfe/model.hh:152
NavierStokesMomentumCVFELocalResidual< TypeTag > type
Definition freeflow/navierstokes/momentum/cvfe/model.hh:158
NavierStokesMomentumFELocalResidual< TypeTag > type
Definition freeflow/navierstokes/momentum/cvfe/model.hh:163
NavierStokesMomentumCVFEModelTraits< dim > type
Definition freeflow/navierstokes/momentum/cvfe/model.hh:137
Dumux::Experimental::SpatialParams< GridGeometry, Scalar, DefaultSpatialParams< GridGeometry, Scalar > > type
Definition freeflow/navierstokes/momentum/cvfe/model.hh:181
GetPropType< TypeTag, Properties::GridGeometry > GridGeometry
Definition freeflow/navierstokes/momentum/cvfe/model.hh:179
GetPropType< TypeTag, Properties::Scalar > Scalar
Definition freeflow/navierstokes/momentum/cvfe/model.hh:180
The type tag for the single-phase, isothermal Navier-Stokes model.
Definition freeflow/navierstokes/momentum/cvfe/model.hh:121
std::tuple< FreeFlow > InheritsFrom
Definition freeflow/navierstokes/momentum/cvfe/model.hh:121
Definition freeflow/navierstokes/momentum/cvfe/model.hh:122
std::tuple< NavierStokesMomentumCVFEBase > InheritsFrom
Definition freeflow/navierstokes/momentum/cvfe/model.hh:122
Definition freeflow/navierstokes/momentum/cvfe/model.hh:123
std::tuple< NavierStokesMomentumCVFEBase > InheritsFrom
Definition freeflow/navierstokes/momentum/cvfe/model.hh:123
NavierStokesMomentumCVFEVariables< Traits > type
Definition freeflow/navierstokes/momentum/cvfe/model.hh:214
NavierStokesMomentumCVFEVolumeVariables< Traits > type
Definition freeflow/navierstokes/momentum/cvfe/model.hh:200