3.1-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
porousmediumflow/tracer/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 3 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 *****************************************************************************/
50#ifndef DUMUX_TRACER_MODEL_HH
51#define DUMUX_TRACER_MODEL_HH
52
58
59#include "indices.hh"
60#include "volumevariables.hh"
61#include "iofields.hh"
62#include "localresidual.hh"
63
64namespace Dumux {
65
73template<int nComp, bool useMol>
75{
77
78 static constexpr int numEq() { return nComp; }
79 static constexpr int numFluidPhases() { return 1; }
80 static constexpr int numFluidComponents() { return nComp; }
81
82 static constexpr bool enableAdvection() { return true; }
83 static constexpr bool enableMolecularDiffusion() { return true; }
84 static constexpr bool enableEnergyBalance() { return false; }
85
86 static constexpr bool useMoles() { return useMol; }
87};
88
97template<class PV, class FSY, class SSY, class SST, class MT>
99{
101 using FluidSystem = FSY;
102 using SolidSystem = SSY;
103 using SolidState = SST;
104 using ModelTraits = MT;
105};
106
107// \{
108namespace Properties {
109
111// Type tags
113
115// Create new type tags
116namespace TTag {
117struct Tracer { using InheritsFrom = std::tuple<PorousMediumFlow>; };
118} // end namespace TTag
119
121// properties for the tracer model
123
125template<class TypeTag>
126struct UseMoles<TypeTag, TTag::Tracer> { static constexpr bool value = true; };
127
129template<class TypeTag>
130struct ModelTraits<TypeTag, TTag::Tracer>
131{
132private:
134public:
136};
137
139template<class TypeTag>
140struct LocalResidual<TypeTag, TTag::Tracer> { using type = TracerLocalResidual<TypeTag>; };
141
143template<class TypeTag>
144struct IOFields<TypeTag, TTag::Tracer> { using type = TracerIOFields; };
145
147template<class TypeTag>
148struct VolumeVariables<TypeTag, TTag::Tracer>
149{
150private:
156
158public:
160};
161
163template<class TypeTag>
165
167template<class TypeTag>
169} // end namespace Properties
170// \}
171} // end namespace Dumux
172
173#endif
Constant velocity advective law for transport models. This file contains the data which is required t...
Relation for the saturation-dependent effective diffusion coefficient.
The base class for spatial parameters of one-phase problems using a fully implicit discretization met...
make the local view function available whenever we use the grid geometry
Definition: adapt.hh:29
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(....
Definition: propertysystem.hh:149
Traits class encapsulating model specifications.
Definition: common/properties.hh:65
A class helping models to define input and output fields.
Definition: common/properties.hh:78
Definition: common/properties.hh:91
Property whether to use moles or kg as amount unit for balance equations.
Definition: common/properties.hh:102
The secondary variables within a sub-control volume.
Definition: common/properties.hh:174
The type for the calculation the advective fluxes.
Definition: common/properties.hh:208
The employed model for the computation of the effective diffusivity.
Definition: common/properties.hh:231
Evaluates a user given velocity field.
Definition: stationaryvelocityfield.hh:41
Relation for the saturation-dependent effective diffusion coefficient.
Definition: diffusivityconstanttortuosity.hh:49
Defines the primary variable and equation indices used by the isothermal tracer model.
Definition: porousmediumflow/tracer/indices.hh:37
Adds I/O fields specific to the tracer model.
Definition: dumux/porousmediumflow/tracer/iofields.hh:39
Element-wise calculation of the local residual for problems using fully implicit tracer model.
Definition: porousmediumflow/tracer/localresidual.hh:43
Specifies a number properties of the Richards n-components model.
Definition: porousmediumflow/tracer/model.hh:75
static constexpr int numFluidComponents()
Definition: porousmediumflow/tracer/model.hh:80
static constexpr bool enableAdvection()
Definition: porousmediumflow/tracer/model.hh:82
static constexpr bool enableMolecularDiffusion()
Definition: porousmediumflow/tracer/model.hh:83
static constexpr bool enableEnergyBalance()
Definition: porousmediumflow/tracer/model.hh:84
static constexpr int numFluidPhases()
Definition: porousmediumflow/tracer/model.hh:79
static constexpr int numEq()
Definition: porousmediumflow/tracer/model.hh:78
static constexpr bool useMoles()
Definition: porousmediumflow/tracer/model.hh:86
Traits class for the volume variables of the single-phase model.
Definition: porousmediumflow/tracer/model.hh:99
PV PrimaryVariables
Definition: porousmediumflow/tracer/model.hh:100
MT ModelTraits
Definition: porousmediumflow/tracer/model.hh:104
SST SolidState
Definition: porousmediumflow/tracer/model.hh:103
FSY FluidSystem
Definition: porousmediumflow/tracer/model.hh:101
SSY SolidSystem
Definition: porousmediumflow/tracer/model.hh:102
Definition: porousmediumflow/tracer/model.hh:117
std::tuple< PorousMediumFlow > InheritsFrom
Definition: porousmediumflow/tracer/model.hh:117
Contains the quantities which are constant within a finite volume for the tracer model.
Definition: porousmediumflow/tracer/volumevariables.hh:56
Declares all properties used in Dumux.
Defines a type tag and some properties for models using the box scheme.
Adds I/O fields specific to the twop model.
Element-wise calculation of the local residual for problems using fully implicit tracer model.
Base class for the model specific class which provides access to all volume averaged quantities.
Defines the primary variable and equation indices used by the isothermal tracer model.