3.2-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
common/properties.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 *****************************************************************************/
27#ifndef DUMUX_PROPERTIES_HH
28#define DUMUX_PROPERTIES_HH
29
30// explicitly guard the include so that the property system
31// header doesn't need to be opened and checked all the time
32#ifndef DUMUX_PROPERTY_SYSTEM_HH
34
35// per default, we do not allow the old property macros
36// remove this after release 3.2
37#ifndef DUMUX_ENABLE_OLD_PROPERTY_MACROS
38#define DUMUX_ENABLE_OLD_PROPERTY_MACROS 0
39#endif
40
41// remove this after release 3.2 to remove macros completely
42#if DUMUX_ENABLE_OLD_PROPERTY_MACROS
44#endif // DUMUX_ENABLE_OLD_PROPERTY_MACROS
45#endif // DUMUX_PROPERTY_SYSTEM_HH
46
47namespace Dumux {
48namespace Properties {
49
51// Basic properties of numeric models:
53template<class TypeTag, class MyTypeTag>
54struct Scalar { using type = UndefinedProperty; };
55template<class TypeTag, class MyTypeTag>
57template<class TypeTag, class MyTypeTag>
58struct Grid { using type = UndefinedProperty; };
59template<class TypeTag, class MyTypeTag>
61template<class TypeTag, class MyTypeTag>
62struct NumEqVector { using type = UndefinedProperty; };
63template<class TypeTag, class MyTypeTag>
64struct [[deprecated("Access GridView via 'GridGeometry::GridView' or 'Grid::LeafGridView' instead. Will be removed after 3.2")]] GridView { using type = UndefinedProperty; };
65template<class TypeTag, class MyTypeTag>
66struct ModelTraits { using type = UndefinedProperty; };
67template<class TypeTag, class MyTypeTag>
69template<class TypeTag, class MyTypeTag>
70struct Problem { using type = UndefinedProperty; };
71template<class TypeTag, class MyTypeTag>
72struct PointSource { using type = UndefinedProperty; };
73template<class TypeTag, class MyTypeTag>
75template<class TypeTag, class MyTypeTag>
76struct IOFields { using type = UndefinedProperty; };
77template<class TypeTag, class MyTypeTag>
79template<class TypeTag, class MyTypeTag>
81template<class TypeTag, class MyTypeTag>
83template<class TypeTag, class MyTypeTag>
85
88template<class TypeTag, class MyTypeTag>
90
92template<class TypeTag, class MyTypeTag>
94
96// Basic properties regarding balance equations
98// TODO: Integrate UseMoles into BalanceEqOpts
99template<class TypeTag, class MyTypeTag>
100struct UseMoles { using type = UndefinedProperty; };
101template<class TypeTag, class MyTypeTag>
103template<class TypeTag, class MyTypeTag>
105
107// Properties used by finite volume schemes:
109template<class TypeTag, class MyTypeTag>
111
112template<class TypeTag, class MyTypeTag>
114template <class TypeTag, class MyTypeTag>
116
117template<class TypeTag, class MyTypeTag>
119template<class TypeTag, class MyTypeTag>
121template<class TypeTag, class MyTypeTag>
123template<class TypeTag, class MyTypeTag>
125template<class TypeTag, class MyTypeTag>
127template<class TypeTag, class MyTypeTag>
129template<class TypeTag, class MyTypeTag>
131template<class TypeTag, class MyTypeTag>
133template<class TypeTag, class MyTypeTag>
135
137// Additional properties used by the cell-centered mpfa schemes:
139template<class TypeTag, class MyTypeTag>
141template<class TypeTag, class MyTypeTag>
143template<class TypeTag, class MyTypeTag>
145
147// Properties used by models involving flow in porous media:
149template<class TypeTag, class MyTypeTag>
151template<class TypeTag, class MyTypeTag>
153template<class TypeTag, class MyTypeTag>
155template<class TypeTag, class MyTypeTag>
157template<class TypeTag, class MyTypeTag>
159template<class TypeTag, class MyTypeTag>
161template<class TypeTag, class MyTypeTag>
163
164template<class TypeTag, class MyTypeTag>
166template<class TypeTag, class MyTypeTag>
167struct FluidSystem { using type = UndefinedProperty; };
168template<class TypeTag, class MyTypeTag>
169struct FluidState { using type = UndefinedProperty; };
170template<class TypeTag, class MyTypeTag>
171struct SolidSystem { using type = UndefinedProperty; };
172template<class TypeTag, class MyTypeTag>
173struct SolidState { using type = UndefinedProperty; };
174template<class TypeTag, class MyTypeTag>
176template<class TypeTag, class MyTypeTag>
178template<class TypeTag, class MyTypeTag>
180template<class TypeTag, class MyTypeTag>
181struct Formulation { using type = UndefinedProperty; };
182// TODO: is this useful? -> everything is a constraint solver just a different type
183template<class TypeTag, class MyTypeTag>
185
186// When using the box method in a multi-phase context, an interface solver might be necessary
187template<class TypeTag, class MyTypeTag>
189
191// Additional properties used by the 2pnc and 2pncmin models:
193template<class TypeTag, class MyTypeTag>
194struct Chemistry { using type = UndefinedProperty; };
195template<class TypeTag, class MyTypeTag>
197
199// Additional properties used by the richards model
201template<class TypeTag, class MyTypeTag>
203
205// Additional properties used by the 3pwateroil model:
207template<class TypeTag, class MyTypeTag>
209
211// Properties used by geomechanical models:
213template<class TypeTag, class MyTypeTag>
214struct StressType { using type = UndefinedProperty; };
215
217// Properties used by the staggered-grid discretization method
219
220template<class TypeTag, class MyTypeTag>
222template<class TypeTag, class MyTypeTag>
223struct NumEqFace { using type = UndefinedProperty; };
224template<class TypeTag, class MyTypeTag>
226template<class TypeTag, class MyTypeTag>
228template<class TypeTag, class MyTypeTag>
230template<class TypeTag, class MyTypeTag>
232template<class TypeTag, class MyTypeTag>
234template<class TypeTag, class MyTypeTag>
236template<class TypeTag, class MyTypeTag>
238template<class TypeTag, class MyTypeTag>
239struct BaseEpsilon { using type = UndefinedProperty; };
240template<class TypeTag, class MyTypeTag>
242template<class TypeTag, class MyTypeTag>
244template<class TypeTag, class MyTypeTag>
246template<class TypeTag, class MyTypeTag>
248template<class TypeTag, class MyTypeTag>
250
252// Properties used by the mpnc model
254
255template<class TypeTag, class MyTypeTag>
257
259// Properties used by the nonequilibrium model
261template<class TypeTag, class MyTypeTag>
263template<class TypeTag, class MyTypeTag>
265template<class TypeTag, class MyTypeTag>
267template<class TypeTag, class MyTypeTag>
269template<class TypeTag, class MyTypeTag>
271template<class TypeTag, class MyTypeTag>
273template<class TypeTag, class MyTypeTag>
275template<class TypeTag, class MyTypeTag>
277template<class TypeTag, class MyTypeTag>
279
280template<class TypeTag, class MyTypeTag>
282template<class TypeTag, class MyTypeTag>
284
286// Properties used by free flow models
288
289template<class TypeTag, class MyTypeTag>
291
293// Properties used by multidomain simulations
295template<class TypeTag, class MyTypeTag>
297
299// Basic properties of sequential models:
301template<class TypeTag, class MyTypeTag>
303
304} // end namespace Properties
305} // end namespace Dumux
306
307#endif // DUMUX_PROPERTIES_HH
The Dumux property system, traits with inheritance.
Provides the magic behind the DuMuX property system.
Definition: adapt.hh:29
Property to specify the type of scalar values.
Definition: common/properties.hh:54
Property which defines the group that is queried for parameters by default.
Definition: common/properties.hh:56
The DUNE grid type.
Definition: common/properties.hh:58
A vector of primary variables.
Definition: common/properties.hh:60
A vector of size number equations that can be used for Neumann fluxes, sources, residuals,...
Definition: common/properties.hh:62
The type of the grid view according to the grid type.
Definition: common/properties.hh:64
Traits class encapsulating model specifications.
Definition: common/properties.hh:66
Model traits to be used as a base for nonisothermal, mineralization ... models.
Definition: common/properties.hh:68
Property to specify the type of a problem which has to be solved.
Definition: common/properties.hh:70
Property defining the type of point source used.
Definition: common/properties.hh:72
Property defining the class that computes which sub control volume point sources belong to.
Definition: common/properties.hh:74
A class helping models to define input and output fields.
Definition: common/properties.hh:76
The type of the base class of the local residual (specific to a discretization scheme)
Definition: common/properties.hh:78
Type of the global jacobian matrix.
Definition: common/properties.hh:80
Vector containing all primary variable vector of the grid.
Definition: common/properties.hh:82
Stores the boundary types of a single degree of freedom.
Definition: common/properties.hh:84
Definition: common/properties.hh:89
TODO: Remove this property as soon as the decoupled models are integrated.
Definition: common/properties.hh:93
Property whether to use moles or kg as amount unit for balance equations.
Definition: common/properties.hh:100
The component balance index that should be replaced by the total mass/mole balance.
Definition: common/properties.hh:102
A class that collects options for the evaluation of the balance equations.
Definition: common/properties.hh:104
Stores the boundary types on an element.
Definition: common/properties.hh:110
Definition: common/properties.hh:113
Definition: common/properties.hh:115
The secondary variables within a sub-control volume.
Definition: common/properties.hh:118
The type for a global container for the volume variables.
Definition: common/properties.hh:120
If disabled, the volume variables are not stored (reduces memory, but is slower)
Definition: common/properties.hh:122
Container storing the different types of flux variables.
Definition: common/properties.hh:124
Stores data associated with flux vars.
Definition: common/properties.hh:126
The engine behind the global flux cache (how to fill caches for the stencil)
Definition: common/properties.hh:128
The global vector of flux variable containers.
Definition: common/properties.hh:130
specifies if data on flux vars should be saved (faster, but more memory consuming)
Definition: common/properties.hh:132
The grid variables object managing variable data on the grid (volvars/fluxvars cache)
Definition: common/properties.hh:134
The primary interaction volume type.
Definition: common/properties.hh:140
The secondary interaction volume type used e.g. on the boundaries.
Definition: common/properties.hh:142
The type used for the nodal index sets of the dual grid.
Definition: common/properties.hh:144
The local residual of the energy equation.
Definition: common/properties.hh:150
The type for the calculation the advective fluxes.
Definition: common/properties.hh:152
specifies if the parameters for the advective fluxes depend on the solution
Definition: common/properties.hh:154
The type for the calculation of the molecular diffusion fluxes.
Definition: common/properties.hh:156
specifies if the parameters for the diffusive fluxes depend on the solution
Definition: common/properties.hh:158
The type for the calculation of the heat conduction fluxes.
Definition: common/properties.hh:160
specifies if the parameters for the heat conduction fluxes depend on the solution
Definition: common/properties.hh:162
The type of the spatial parameters object.
Definition: common/properties.hh:165
The type of the fluid system to use.
Definition: common/properties.hh:167
The type of the fluid state to use.
Definition: common/properties.hh:169
The type of the solid system to use.
Definition: common/properties.hh:171
The type of the solid state to use.
Definition: common/properties.hh:173
The employed model for the computation of the effective diffusivity.
Definition: common/properties.hh:175
Model to be used for the calculation of the effective conductivity.
Definition: common/properties.hh:177
specifies the velocity calculation module to be used
Definition: common/properties.hh:179
The formulation of the model.
Definition: common/properties.hh:181
Whether to use a contraint solver for computing the secondary variables.
Definition: common/properties.hh:184
Definition: common/properties.hh:188
The chemistry class with which solves equlibrium reactions.
Definition: common/properties.hh:194
Set the mole fraction in the wetting or non-wetting phase.
Definition: common/properties.hh:196
Property for turning Richards into extended Richards.
Definition: common/properties.hh:202
reduces the phasestates to threePhases and wnPhaseOnly
Definition: common/properties.hh:208
The type used for the evaluation of stress tensors and forces.
Definition: common/properties.hh:214
The number of equations for cell-centered dofs.
Definition: common/properties.hh:221
The number of equations for face dofs.
Definition: common/properties.hh:223
The solution vector type for cell-centered dofs.
Definition: common/properties.hh:225
The solution vector type for face dofs.
Definition: common/properties.hh:227
Global vector containing face-related data.
Definition: common/properties.hh:229
The primary variables container type for cell-centered dofs.
Definition: common/properties.hh:231
The primary variables container type for face dofs.
Definition: common/properties.hh:233
Specifies the intersection mapper.
Definition: common/properties.hh:235
The hybrid primary variables container type.
Definition: common/properties.hh:237
A base epsilon for numerical differentiation, can contain multiple values.
Definition: common/properties.hh:239
Class containing local face-related data.
Definition: common/properties.hh:241
Class containing local boundary data.
Definition: common/properties.hh:243
A vector containing the solution for a face (similar to ElementSolution)
Definition: common/properties.hh:245
Switch on/off caching of face variables.
Definition: common/properties.hh:247
Specifies the order of the upwinding scheme (1 == first order, 2 == second order(tvd methods))
Definition: common/properties.hh:249
Definition: common/properties.hh:256
the formulation of the pressure e.g most wetting first
Definition: common/properties.hh:262
Definition: common/properties.hh:264
Definition: common/properties.hh:266
Definition: common/properties.hh:268
Definition: common/properties.hh:270
Definition: common/properties.hh:272
Definition: common/properties.hh:274
Definition: common/properties.hh:276
Definition: common/properties.hh:278
Definition: common/properties.hh:281
Definition: common/properties.hh:283
Returns whether to normalize the pressure term in the momentum balance or not.
Definition: common/properties.hh:290
Definition: common/properties.hh:296
Definition: common/properties.hh:302
a tag to mark properties as undefined
Definition: propertysystem.hh:36