version 3.11-dev
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-FileCopyrightText: 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:33
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:29
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.
Adds I/O fields specific to the tracer model.
A simple implementation of pure water.
Defines the indices for the elastic model.
Local residual for the hyperelastic model.
Volume variables for the hyperelasticity model.
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