version 3.8
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// SPDX-FileCopyrightInfo: Copyright © DuMux Project contributors, see AUTHORS.md in root folder
5// SPDX-License-Identifier: GPL-3.0-or-later
6//
58#ifndef DUMUX_FREEFLOW_SHALLOW_WATER_MODEL_HH
59#define DUMUX_FREEFLOW_SHALLOW_WATER_MODEL_HH
60
64
69
70#include "localresidual.hh"
71#include "volumevariables.hh"
72#include "fluxvariables.hh"
73#include "indices.hh"
74#include "iofields.hh"
75
76namespace Dumux {
77
83{
85
86 static constexpr int numEq() { return 3; }
87 static constexpr int numPhases() { return 1; }
88
90 static constexpr bool enableAdvection() { return true; }
91};
92
101template<class PV,
102 class FSY,
103 class MT>
105{
107 using FluidSystem = FSY;
108 using ModelTraits = MT;
109};
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>
124struct ModelTraits<TypeTag, TTag::ShallowWater>
126
127template<class TypeTag>
128struct LocalResidual<TypeTag, TTag::ShallowWater>
130
131template<class TypeTag>
132struct FluxVariables<TypeTag, TTag::ShallowWater>
134
135template<class TypeTag>
136struct VolumeVariables<TypeTag, TTag::ShallowWater>
137{
138private:
143public:
145};
146
147template<class TypeTag>
148struct IOFields<TypeTag, TTag::ShallowWater>
150
151template<class TypeTag>
152struct AdvectionType<TypeTag, TTag::ShallowWater>
154
155template<class TypeTag>
156struct ViscousFluxType<TypeTag, TTag::ShallowWater>
158
159template<class TypeTag>
160struct FluidSystem<TypeTag, TTag::ShallowWater>
161{
162private:
164public:
166};
167
168} // end properties
169} // end namespace Dumux
170
171#endif
A liquid phase consisting of a single component.
A liquid phase consisting of a single component.
Definition: 1pliquid.hh:34
Prepare and compute the shallow water advective flux.
Definition: shallowwaterflux.hh:37
The flux variables class for the shallow water model.
Definition: freeflow/shallowwater/fluxvariables.hh:32
Adds vtk output fields for the shallow water model.
Definition: freeflow/shallowwater/iofields.hh:25
Element-wise calculation of the residual for the shallow water equations.
Definition: freeflow/shallowwater/localresidual.hh:28
Compute the shallow water viscous momentum flux due to viscosity.
Definition: shallowwaterviscousflux.hh:65
Volume variables for the shallow water equations model.
Definition: freeflow/shallowwater/volumevariables.hh:23
Defines a type tags and some fundamental properties for all models.
Defines all properties used in Dumux.
typename GetProp< TypeTag, Property >::type GetPropType
get the type alias defined in the property
Definition: propertysystem.hh:296
Definition: adapt.hh:17
A helper to deduce a vector with the same size as numbers of equations.
Base class for the flux variables in porous medium models.
Defines the primary variable and equation indices used by the isothermal tracer model.
Adds I/O fields specific to the tracer model.
Element-wise calculation of the local residual for problems using fully implicit tracer model.
Python wrapper for volume variables (finite volume schemes)
A simple implementation of pure water.
Definition: freeflow/shallowwater/model.hh:116
std::tuple< ModelProperties > InheritsFrom
Definition: freeflow/shallowwater/model.hh:116
The common indices for the shallow water equations model.
Definition: freeflow/shallowwater/indices.hh:23
Specifies a number properties of shallow water models.
Definition: freeflow/shallowwater/model.hh:83
static constexpr bool enableAdvection()
Enable advection.
Definition: freeflow/shallowwater/model.hh:90
static constexpr int numPhases()
Definition: freeflow/shallowwater/model.hh:87
static constexpr int numEq()
Definition: freeflow/shallowwater/model.hh:86
Traits class for the volume variables of the shallow water model.
Definition: freeflow/shallowwater/model.hh:105
MT ModelTraits
Definition: freeflow/shallowwater/model.hh:108
PV PrimaryVariables
Definition: freeflow/shallowwater/model.hh:106
FSY FluidSystem
Definition: freeflow/shallowwater/model.hh:107