3.4
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Loading...
Searching...
No Matches
freeflow/shallowwater/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 * See the file COPYING for full copying permissions. *
5 * *
6 * This program is free software: you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation, either version 2 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
18 *****************************************************************************/
62#ifndef DUMUX_FREEFLOW_SHALLOW_WATER_MODEL_HH
63#define DUMUX_FREEFLOW_SHALLOW_WATER_MODEL_HH
64
68
72
73#include "localresidual.hh"
74#include "volumevariables.hh"
75#include "fluxvariables.hh"
76#include "indices.hh"
77#include "iofields.hh"
78
79namespace Dumux {
80
86{
88
89 static constexpr int numEq() { return 3; }
90 static constexpr int numPhases() { return 1; }
91
93 static constexpr bool enableAdvection() { return true; }
94};
95
103template<class PV,
104 class MT>
110
111
112namespace Properties {
113
115namespace TTag {
116struct ShallowWater { using InheritsFrom = std::tuple<ModelProperties>; };
117}// end namespace TTag
118
120// Define properties
122
123template<class TypeTag>
126
127template<class TypeTag>
130
131template<class TypeTag>
134
135template<class TypeTag>
145
146template<class TypeTag>
149
150template<class TypeTag>
153
154template<class TypeTag>
157
158template<class TypeTag>
161
162template<class TypeTag>
165
166} // end properties
167} // end namespace Dumux
168
169#endif
A helper to deduce a vector with the same size as numbers of equations.
Computes the shallow water flux by solving a riemann problem.
Classes related to flux variables caching.
Computes the shallow water viscous momentum flux due to (turbulent) viscosity by adding all surroundi...
typename NumEqVectorTraits< PrimaryVariables >::type NumEqVector
A vector with the same size as numbers of equations This is the default implementation and has to be ...
Definition numeqvector.hh:46
Definition adapt.hh:29
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property
Definition propertysystem.hh:150
Definition common/properties.hh:37
Type tag for numeric models.
Definition grid.hh:36
Definition exactriemann.hh:31
Traits class encapsulating model specifications.
Definition common/properties.hh:53
A class helping models to define input and output fields.
Definition common/properties.hh:63
Definition common/properties.hh:74
The secondary variables within a sub-control volume.
Definition common/properties.hh:103
Container storing the different types of flux variables.
Definition common/properties.hh:109
Stores data associated with flux vars.
Definition common/properties.hh:111
The engine behind the global flux cache (how to fill caches for the stencil).
Definition common/properties.hh:113
The type for the calculation the advective fluxes.
Definition common/properties.hh:137
The type for the calculation of the (turbulent) viscous (momentum) fluxes.
Definition common/properties.hh:277
The empty filler class corresponding to EmptyCache.
Definition fluxvariablescaching.hh:32
An empty flux variables cache.
Definition fluxvariablescaching.hh:47
Computes the shallow water flux by solving a riemann problem.
Definition shallowwaterflux.hh:38
Computes the shallow water viscous momentum flux due to (turbulent) viscosity by adding all surroundi...
Definition shallowwaterviscousflux.hh:63
The flux variables class for the shallow water model.
Definition freeflow/shallowwater/fluxvariables.hh:44
The common indices for the shallow water equations model.
Definition freeflow/shallowwater/indices.hh:35
Adds vtk output fields for the shallow water model.
Definition freeflow/shallowwater/iofields.hh:37
Element-wise calculation of the residual for the shallow water equations.
Definition freeflow/shallowwater/localresidual.hh:40
Specifies a number properties of shallow water models.
Definition freeflow/shallowwater/model.hh:86
static constexpr bool enableAdvection()
Enable advection.
Definition freeflow/shallowwater/model.hh:93
ShallowWaterIndices Indices
Definition freeflow/shallowwater/model.hh:87
static constexpr int numPhases()
Definition freeflow/shallowwater/model.hh:90
static constexpr int numEq()
Definition freeflow/shallowwater/model.hh:89
Traits class for the volume variables of the shallow water model.
Definition freeflow/shallowwater/model.hh:106
PV PrimaryVariables
Definition freeflow/shallowwater/model.hh:107
MT ModelTraits
Definition freeflow/shallowwater/model.hh:108
Definition freeflow/shallowwater/model.hh:116
std::tuple< ModelProperties > InheritsFrom
Definition freeflow/shallowwater/model.hh:116
ShallowWaterModelTraits type
Definition freeflow/shallowwater/model.hh:125
ShallowWaterResidual< TypeTag > type
Definition freeflow/shallowwater/model.hh:129
ShallowWaterFluxVariables< TypeTag > type
Definition freeflow/shallowwater/model.hh:133
ShallowWaterVolumeVariables< Traits > type
Definition freeflow/shallowwater/model.hh:143
FluxVariablesCaching::EmptyCache< GetPropType< TypeTag, Properties::Scalar > > type
Definition freeflow/shallowwater/model.hh:148
FluxVariablesCaching::EmptyCacheFiller type
Definition freeflow/shallowwater/model.hh:152
ShallowWaterIOFields type
Definition freeflow/shallowwater/model.hh:156
ShallowWaterFlux< Dumux::NumEqVector< GetPropType< TypeTag, Properties::PrimaryVariables > > > type
Definition freeflow/shallowwater/model.hh:160
ShallowWaterViscousFlux< GetPropType< TypeTag, Properties::PrimaryVariables >, Dumux::NumEqVector< GetPropType< TypeTag, Properties::PrimaryVariables > > > type
Definition freeflow/shallowwater/model.hh:164
Volume variables for the shallow water equations model.
Definition freeflow/shallowwater/volumevariables.hh:35
Declares all properties used in Dumux.
Defines a type tags and some fundamental properties for all models.
The flux variables class for the shallow water model.
The common indices for the shallow water equations model.
Add I/O fields specific to shallow water.
Element-wise calculation of the residual for the shallow water equations.
Volume variables for the shallow water equations model.