3.3.0
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, class DT, class EDM>
99{
101 using FluidSystem = FSY;
102 using SolidSystem = SSY;
103 using SolidState = SST;
104 using ModelTraits = MT;
105 using DiffusionType = DT;
107};
108
109// \{
110namespace Properties {
111
113// Type tags
115
117// Create new type tags
118namespace TTag {
119struct Tracer { using InheritsFrom = std::tuple<PorousMediumFlow>; };
120} // end namespace TTag
121
123// properties for the tracer model
125
127template<class TypeTag>
128struct UseMoles<TypeTag, TTag::Tracer> { static constexpr bool value = true; };
129
131template<class TypeTag>
132struct ModelTraits<TypeTag, TTag::Tracer>
133{
134private:
136public:
138};
139
141template<class TypeTag>
142struct LocalResidual<TypeTag, TTag::Tracer> { using type = TracerLocalResidual<TypeTag>; };
143
145template<class TypeTag>
146struct IOFields<TypeTag, TTag::Tracer> { using type = TracerIOFields; };
147
149template<class TypeTag>
150struct VolumeVariables<TypeTag, TTag::Tracer>
151{
152private:
160
162public:
164};
165
167template<class TypeTag>
169
171template<class TypeTag>
173} // end namespace Properties
174// \}
175} // end namespace Dumux
176
177#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...
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:53
A class helping models to define input and output fields.
Definition: common/properties.hh:63
Definition: common/properties.hh:77
Property whether to use moles or kg as amount unit for balance equations.
Definition: common/properties.hh:88
The secondary variables within a sub-control volume.
Definition: common/properties.hh:106
The type for the calculation the advective fluxes.
Definition: common/properties.hh:140
The employed model for the computation of the effective diffusivity.
Definition: common/properties.hh:163
Evaluates a user given velocity field.
Definition: stationaryvelocityfield.hh:44
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: porousmediumflow/tracer/iofields.hh:39
Element-wise calculation of the local residual for problems using fully implicit tracer model.
Definition: porousmediumflow/tracer/localresidual.hh:46
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
FSY FluidSystem
Definition: porousmediumflow/tracer/model.hh:101
EDM EffectiveDiffusivityModel
Definition: porousmediumflow/tracer/model.hh:106
SSY SolidSystem
Definition: porousmediumflow/tracer/model.hh:102
SST SolidState
Definition: porousmediumflow/tracer/model.hh:103
PV PrimaryVariables
Definition: porousmediumflow/tracer/model.hh:100
MT ModelTraits
Definition: porousmediumflow/tracer/model.hh:104
DT DiffusionType
Definition: porousmediumflow/tracer/model.hh:105
Definition: porousmediumflow/tracer/model.hh:119
std::tuple< PorousMediumFlow > InheritsFrom
Definition: porousmediumflow/tracer/model.hh:119
Contains the quantities which are constant within a finite volume for the tracer model.
Definition: porousmediumflow/tracer/volumevariables.hh:58
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 tracer 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.