Loading [MathJax]/extensions/tex2jax.js
3.6-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
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 *****************************************************************************/
47#ifndef DUMUX_TRACER_MODEL_HH
48#define DUMUX_TRACER_MODEL_HH
49
54
55#include "indices.hh"
56#include "volumevariables.hh"
57#include "iofields.hh"
58#include "localresidual.hh"
59
60namespace Dumux {
61
69template<int nComp, bool useMol, bool enableCompDisp, class CDM = void>
71{
74
75 static constexpr int numEq() { return nComp; }
76 static constexpr int numFluidPhases() { return 1; }
77 static constexpr int numFluidComponents() { return nComp; }
78
79 static constexpr bool enableAdvection() { return true; }
80 static constexpr bool enableMolecularDiffusion() { return true; }
81 static constexpr bool enableEnergyBalance() { return false; }
82 static constexpr bool enableCompositionalDispersion() { return enableCompDisp; }
83
84 static constexpr bool useMoles() { return useMol; }
85};
86
95template<class PV, class FSY, class SSY, class SST, class MT, class DT, class EDM>
97{
98 using PrimaryVariables = PV;
99 using FluidSystem = FSY;
100 using SolidSystem = SSY;
102 using ModelTraits = MT;
103 using DiffusionType = DT;
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:
135public:
136 using type = TracerModelTraits<FluidSystem::numComponents,
137 getPropValue<TypeTag, Properties::UseMoles>(),
138 getPropValue<TypeTag, Properties::EnableCompositionalDispersion>(),
139 CDM>;
140};
141
143template<class TypeTag>
144struct LocalResidual<TypeTag, TTag::Tracer> { using type = TracerLocalResidual<TypeTag>; };
145
147template<class TypeTag>
148struct IOFields<TypeTag, TTag::Tracer> { using type = TracerIOFields; };
149
151template<class TypeTag>
152struct VolumeVariables<TypeTag, TTag::Tracer>
153{
154private:
162
164public:
166};
167
169template<class TypeTag>
171
173template<class TypeTag>
175} // end namespace Properties
176// \}
177} // end namespace Dumux
178
179#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.
Adaption of the non-isothermal two-phase two-component flow model to problems with CO2.
Definition: adapt.hh:29
typename GetProp< TypeTag, Property >::type GetPropType
get the type alias defined in the property
Definition: propertysystem.hh:180
Traits class encapsulating model specifications.
Definition: common/properties.hh:51
A class helping models to define input and output fields.
Definition: common/properties.hh:61
Definition: common/properties.hh:72
Property whether to use moles or kg as amount unit for balance equations.
Definition: common/properties.hh:83
The secondary variables within a sub-control volume.
Definition: common/properties.hh:105
The type for the calculation the advective fluxes.
Definition: common/properties.hh:139
The employed model for the computation of the effective diffusivity.
Definition: common/properties.hh:168
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:47
Specifies a number properties of the Richards n-components model.
Definition: porousmediumflow/tracer/model.hh:71
static constexpr int numFluidComponents()
Definition: porousmediumflow/tracer/model.hh:77
static constexpr int numFluidPhases()
Definition: porousmediumflow/tracer/model.hh:76
static constexpr bool enableCompositionalDispersion()
Definition: porousmediumflow/tracer/model.hh:82
static constexpr bool useMoles()
Definition: porousmediumflow/tracer/model.hh:84
CDM CompositionalDispersionModel
Definition: porousmediumflow/tracer/model.hh:73
static constexpr bool enableEnergyBalance()
Definition: porousmediumflow/tracer/model.hh:81
static constexpr int numEq()
Definition: porousmediumflow/tracer/model.hh:75
static constexpr bool enableAdvection()
Definition: porousmediumflow/tracer/model.hh:79
static constexpr bool enableMolecularDiffusion()
Definition: porousmediumflow/tracer/model.hh:80
Traits class for the volume variables of the single-phase model.
Definition: porousmediumflow/tracer/model.hh:97
FSY FluidSystem
Definition: porousmediumflow/tracer/model.hh:99
EDM EffectiveDiffusivityModel
Definition: porousmediumflow/tracer/model.hh:104
SSY SolidSystem
Definition: porousmediumflow/tracer/model.hh:100
SST SolidState
Definition: porousmediumflow/tracer/model.hh:101
PV PrimaryVariables
Definition: porousmediumflow/tracer/model.hh:98
MT ModelTraits
Definition: porousmediumflow/tracer/model.hh:102
DT DiffusionType
Definition: porousmediumflow/tracer/model.hh:103
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: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.
Python wrapper for volume variables (finite volume schemes)
Defines the primary variable and equation indices used by the isothermal tracer model.