3.1-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Loading...
Searching...
No Matches
porousmediumflow/2p2c/sequential/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 *****************************************************************************/
24#ifndef DUMUX_2P2CPROPERTIES_HH
25#define DUMUX_2P2CPROPERTIES_HH
26
33
34namespace Dumux {
35
36//****** forward declarations ******//
37template<class TypeTag>
38class VariableClass;
39
40template<class TypeTag>
41class CellData2P2C;
42
43template <class TypeTag>
45
47// properties
49namespace Properties {
50
52// Type tags
55NEW_TYPE_TAG(SequentialTwoPTwoC, INHERITS_FROM(Pressure, Transport, IMPET));
56
58// Property tags
64}}
65
66//DUMUX includes
69
70namespace Dumux {
71namespace Properties {
73// Properties
75
77
78SET_INT_PROP(SequentialTwoPTwoC, NumEq, 3);
79
80// set fluid/component information
81template<class TypeTag>
82struct NumPhases<TypeTag, TTag::SequentialTwoPTwoC>
83{
84 // the property is declared in dumux/porousmediumflow/sequential/properties.hh
85private:
86 using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
87
88public:
89 static const int value = FluidSystem::numPhases;
90 static_assert(value == 2,
91 "Only fluid systems with 2 phases are supported by the 2p2c model!");
92};
93
94template<class TypeTag>
95struct NumComponents<TypeTag, TTag::SequentialTwoPTwoC>
96{
97private:
98 using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
99
100public:
101 static const int value = FluidSystem::numComponents;
102 static_assert(value == 2,
103 "Only fluid systems with 2 components are supported by the 2p2c model!");
104};
105
107SET_INT_PROP(SequentialTwoPTwoC,
109 GET_PROP_TYPE(TypeTag, Indices)::pressureN);
110
111SET_INT_PROP(SequentialTwoPTwoC,
113 GET_PROP_TYPE(TypeTag, Indices)::saturationW);
114
115SET_INT_PROP(SequentialTwoPTwoC,
117 GET_PROP_TYPE(TypeTag, Indices)::velocityW);
118
119template<class TypeTag>
120struct TransportSolutionType<TypeTag, TTag::SequentialTwoPTwoC>
121{
122 using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
124 using type = Dune::BlockVector<Dune::BlockVector<Dune::FieldVector<Scalar,1> > >;
125
126};
127
128SET_BOOL_PROP(SequentialTwoPTwoC, EnableCompressibility, true);
129SET_BOOL_PROP(SequentialTwoPTwoC, VisitFacesOnlyOnce, false);
130SET_BOOL_PROP(SequentialTwoPTwoC, EnableCapillarity, false);
131
132template<class TypeTag>
133struct BoundaryMobility<TypeTag, TTag::SequentialTwoPTwoC>
135
138SET_TYPE_PROP(SequentialTwoPTwoC, FluidState, CompositionalFluidState<typename GET_PROP_TYPE(TypeTag, Scalar), typename GET_PROP_TYPE(TypeTag, FluidSystem)>);
139
140
144SET_BOOL_PROP(SequentialTwoPTwoC, RegulateBoundaryPermeability, false);
145}
146
155template <class TypeTag>
157{
158private:
159 using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
160
161public:
162 // Component indices
163 static const int wPhaseIdx = FluidSystem::phase0Idx;
164 static const int nPhaseIdx = FluidSystem::phase1Idx;
165
166 // Component indices
167 static const int wCompIdx = wPhaseIdx;
168 static const int nCompIdx = nPhaseIdx;
169
170 // Ensure pressure formulation index coincides with FluidSystem
171 static const int pressureW = wPhaseIdx;
172 static const int pressureN = nPhaseIdx;
173
174 // Equation indices
175 static const int pressureEqIdx = 0;
176 static const int transportEqOffset = pressureEqIdx + 1;
179
186
187
188 // BoundaryCondition flags
189 static const int satDependent = 0;
190 static const int permDependent = 1;
191};
192
193// \}
194
195} // end namespace Dumux
196
197#endif
#define GET_PROP_TYPE(TypeTag, PropTagName)
Definition propertysystemmacros.hh:283
#define NEW_TYPE_TAG(...)
Definition propertysystemmacros.hh:130
Represents all relevant thermodynamic quantities of a multi-phase, multi-component fluid system assum...
The base class for spatial parameters of problems using the fv method.
Base file for properties related to sequential IMPET algorithms.
Specifies the properties for immiscible 2p transport.
#define INHERITS_FROM(...)
Syntactic sugar for NEW_TYPE_TAG.
Definition propertysystemmacros.hh:142
#define NEW_PROP_TAG(PTagName)
Define a property tag.
Definition propertysystemmacros.hh:159
#define SET_INT_PROP(EffTypeTagName, PropTagName,...)
Set a property to a simple constant integer value.
Definition propertysystemmacros.hh:204
#define SET_TYPE_PROP(EffTypeTagName, PropTagName,...)
Set a property which defines a type.
Definition propertysystemmacros.hh:232
#define SET_BOOL_PROP(EffTypeTagName, PropTagName,...)
Set a property to a simple constant boolean value.
Definition propertysystemmacros.hh:218
make the local view function available whenever we use the grid geometry
Definition adapt.hh:29
Definition common/properties.hh:47
Property tag TransportSolutionType
Definition transportproperties.hh:49
Property tag EnableCapillarity
Returns whether capillarity is regarded.
Definition porousmediumflow/2p2c/sequential/properties.hh:60
Property tag BoundaryMobility
Definition porousmediumflow/2p2c/sequential/properties.hh:61
Property tag Variables
The type of the container of global variables.
Definition porousmediumflow/sequential/properties.hh:71
Property tag VisitFacesOnlyOnce
Type of solution vector or pressure system.
Definition sequential/pressureproperties.hh:62
Property tag CellData
Defines data object to be stored.
Definition porousmediumflow/sequential/properties.hh:72
Property tag EnableCompressibility
Returns whether compressibility is allowed.
Definition porousmediumflow/2p/sequential/properties.hh:55
Property tag SaturationFormulation
The formulation of the saturation model.
Definition porousmediumflow/2p/sequential/properties.hh:53
Property tag NumComponents
Number of components in the system.
Definition porousmediumflow/sequential/properties.hh:70
Property tag Indices
Definition porousmediumflow/sequential/properties.hh:59
Property tag NumEq
Number of equations in the system of PDEs.
Definition porousmediumflow/sequential/properties.hh:68
Property tag RegulateBoundaryPermeability
A minimum permeability can be assigned via the runtime-Parameter SpatialParams.minBoundaryPermeabilit...
Definition porousmediumflow/2p2c/sequential/properties.hh:63
Property tag NumPhases
Number of phases in the system.
Definition porousmediumflow/sequential/properties.hh:69
Property tag VelocityFormulation
The type of velocity reconstructed for the transport model.
Definition porousmediumflow/2p/sequential/properties.hh:54
Type tag for numeric models.
Definition grid.hh:35
Property to specify the type of scalar values.
Definition common/properties.hh:53
The type of the spatial parameters object.
Definition common/properties.hh:221
The type of the fluid system to use.
Definition common/properties.hh:223
The type of the fluid state to use.
Definition common/properties.hh:225
Definition common/properties.hh:312
Represents all relevant thermodynamic quantities of a multi-phase, multi-component fluid system assum...
Definition compositional.hh:47
The base class for spatial parameters of a multi-phase problem using the fv method.
Definition sequentialfv.hh:43
The common indices for the isothermal two-phase model.
Definition porousmediumflow/2p/sequential/indices.hh:33
Storage container for discretized data of the constitutive relations for one element.
Definition 2p2c/sequential/celldata.hh:44
Base class holding the variables and discretized data for sequential models.
Definition variableclass.hh:49
The common indices for the 2p2c model.
Definition porousmediumflow/2p2c/sequential/properties.hh:157
static const int wCompIdx
Component index equals phase index.
Definition porousmediumflow/2p2c/sequential/properties.hh:167
static const int contiWEqIdx
Index of the wetting component transport equation.
Definition porousmediumflow/2p2c/sequential/properties.hh:177
static const int wPhaseIdx
Definition porousmediumflow/2p2c/sequential/properties.hh:163
static const int nPhaseIdx
Definition porousmediumflow/2p2c/sequential/properties.hh:164
static const int contiNEqIdx
Index of the nonwetting component transport equation.
Definition porousmediumflow/2p2c/sequential/properties.hh:178
static const int satDependent
Definition porousmediumflow/2p2c/sequential/properties.hh:189
static const int pressureN
Definition porousmediumflow/2p2c/sequential/properties.hh:172
static const int pressureW
Definition porousmediumflow/2p2c/sequential/properties.hh:171
static const int pressureEqIdx
Definition porousmediumflow/2p2c/sequential/properties.hh:175
static const int transportEqOffset
Offset to access transport (mass conservation -) equations.
Definition porousmediumflow/2p2c/sequential/properties.hh:176
static const int permDependent
Definition porousmediumflow/2p2c/sequential/properties.hh:190
BoundaryFormulation
Type of value on the Boundary.
Definition porousmediumflow/2p2c/sequential/properties.hh:182
@ concentration
Definition porousmediumflow/2p2c/sequential/properties.hh:184
@ saturation
Definition porousmediumflow/2p2c/sequential/properties.hh:183
static const int nCompIdx
Component index equals phase index.
Definition porousmediumflow/2p2c/sequential/properties.hh:168
static const int value
Definition porousmediumflow/2p2c/sequential/properties.hh:89
static const int value
Definition porousmediumflow/2p2c/sequential/properties.hh:101
typename GET_PROP_TYPE(TypeTag, Scalar) Scalar
Definition porousmediumflow/2p2c/sequential/properties.hh:122
Dune::BlockVector< Dune::BlockVector< Dune::FieldVector< Scalar, 1 > > > type
type for vector of vector (of scalars)
Definition porousmediumflow/2p2c/sequential/properties.hh:124
static const int value
Definition porousmediumflow/2p2c/sequential/properties.hh:134
IMplicit Pressure Explicit Transport (IMPET) scheme for the solution of weakly coupled diffusion-tran...
Definition impet.hh:49
Defines the properties required for (immiscible) two-phase sequential models.
Defines the indices required for the two-phase sequential model.
Storage container for discretized data of the constitutive relations for one element.
Base file for properties related to sequential IMPET algorithms.