3.2-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
55// Create new type tags
56namespace TTag {
57struct SequentialTwoPTwoC { using InheritsFrom = std::tuple<Transport, IMPET, Pressure>; };
58} // end namespace TTag
59
61// Property tags
63template<class TypeTag, class MyTypeTag>
65template<class TypeTag, class MyTypeTag>
68template<class TypeTag, class MyTypeTag>
70}}
71
72//DUMUX includes
75
76namespace Dumux {
77namespace Properties {
79// Properties
81
82template<class TypeTag>
83struct Indices<TypeTag, TTag::SequentialTwoPTwoC> { using type = SequentialTwoPTwoCIndices<TypeTag>; };
84
85template<class TypeTag>
86struct NumEq<TypeTag, TTag::SequentialTwoPTwoC> { static constexpr int value = 3; };
87
88// set fluid/component information
89template<class TypeTag>
90struct NumPhases<TypeTag, TTag::SequentialTwoPTwoC>
91{
92 // the property is declared in dumux/porousmediumflow/sequential/properties.hh
93private:
95
96public:
97 static const int value = FluidSystem::numPhases;
98 static_assert(value == 2,
99 "Only fluid systems with 2 phases are supported by the 2p2c model!");
100};
101
102template<class TypeTag>
103struct NumComponents<TypeTag, TTag::SequentialTwoPTwoC>
104{
105private:
107
108public:
109 static const int value = FluidSystem::numComponents;
110 static_assert(value == 2,
111 "Only fluid systems with 2 components are supported by the 2p2c model!");
112};
113
115template<class TypeTag>
116struct PressureFormulation<TypeTag, TTag::SequentialTwoPTwoC> { static constexpr int value = GetPropType<TypeTag, Properties::Indices>::pressureN; };
117
118template<class TypeTag>
119struct SaturationFormulation<TypeTag, TTag::SequentialTwoPTwoC> { static constexpr int value = GetPropType<TypeTag, Properties::Indices>::saturationW; };
120
121template<class TypeTag>
122struct VelocityFormulation<TypeTag, TTag::SequentialTwoPTwoC> { static constexpr int value = GetPropType<TypeTag, Properties::Indices>::velocityW; };
123
124template<class TypeTag>
125struct TransportSolutionType<TypeTag, TTag::SequentialTwoPTwoC>
126{
129 using type = Dune::BlockVector<Dune::BlockVector<Dune::FieldVector<Scalar,1> > >;
130
131};
132
133template<class TypeTag>
134struct EnableCompressibility<TypeTag, TTag::SequentialTwoPTwoC> { static constexpr bool value = true; };
135template<class TypeTag>
136struct VisitFacesOnlyOnce<TypeTag, TTag::SequentialTwoPTwoC> { static constexpr bool value = false; };
137template<class TypeTag>
138struct EnableCapillarity<TypeTag, TTag::SequentialTwoPTwoC> { static constexpr bool value = false; };
139
140template<class TypeTag>
141struct BoundaryMobility<TypeTag, TTag::SequentialTwoPTwoC>
143
144template<class TypeTag>
145struct Variables<TypeTag, TTag::SequentialTwoPTwoC> { using type = VariableClass<TypeTag>; };
146template<class TypeTag>
147struct CellData<TypeTag, TTag::SequentialTwoPTwoC> { using type = CellData2P2C<TypeTag>; };
148template<class TypeTag>
150
151
153template<class TypeTag>
154struct SpatialParams<TypeTag, TTag::SequentialTwoPTwoC> { using type = SequentialFVSpatialParams<TypeTag>; };
156template<class TypeTag>
157struct RegulateBoundaryPermeability<TypeTag, TTag::SequentialTwoPTwoC> { static constexpr bool value = false; };
158}
159
168template <class TypeTag>
170{
171private:
173
174public:
175 // Component indices
176 static const int wPhaseIdx = FluidSystem::phase0Idx;
177 static const int nPhaseIdx = FluidSystem::phase1Idx;
178
179 // Component indices
180 static const int wCompIdx = wPhaseIdx;
181 static const int nCompIdx = nPhaseIdx;
182
183 // Ensure pressure formulation index coincides with FluidSystem
184 static const int pressureW = wPhaseIdx;
185 static const int pressureN = nPhaseIdx;
186
187 // Equation indices
188 static const int pressureEqIdx = 0;
189 static const int transportEqOffset = pressureEqIdx + 1;
192
199
200
201 // BoundaryCondition flags
202 static const int satDependent = 0;
203 static const int permDependent = 1;
204};
205
206// \}
207
208} // end namespace Dumux
209
210#endif
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.
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
Definition common/properties.hh:48
Type tag for numeric models.
Definition grid.hh:36
The type of the spatial parameters object.
Definition common/properties.hh:165
The type of the fluid state to use.
Definition common/properties.hh:169
Definition common/properties.hh:256
a tag to mark properties as undefined
Definition propertysystem.hh:36
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
The formulation of the saturation model.
Definition porousmediumflow/2p/sequential/properties.hh:57
The type of velocity reconstructed for the transport model.
Definition porousmediumflow/2p/sequential/properties.hh:59
Returns whether compressibility is allowed.
Definition porousmediumflow/2p/sequential/properties.hh:61
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:170
static const int wCompIdx
Component index equals phase index.
Definition porousmediumflow/2p2c/sequential/properties.hh:180
static const int contiWEqIdx
Index of the wetting component transport equation.
Definition porousmediumflow/2p2c/sequential/properties.hh:190
static const int wPhaseIdx
Definition porousmediumflow/2p2c/sequential/properties.hh:176
static const int nPhaseIdx
Definition porousmediumflow/2p2c/sequential/properties.hh:177
static const int contiNEqIdx
Index of the nonwetting component transport equation.
Definition porousmediumflow/2p2c/sequential/properties.hh:191
static const int satDependent
Definition porousmediumflow/2p2c/sequential/properties.hh:202
static const int pressureN
Definition porousmediumflow/2p2c/sequential/properties.hh:185
static const int pressureW
Definition porousmediumflow/2p2c/sequential/properties.hh:184
static const int pressureEqIdx
Definition porousmediumflow/2p2c/sequential/properties.hh:188
static const int transportEqOffset
Offset to access transport (mass conservation -) equations.
Definition porousmediumflow/2p2c/sequential/properties.hh:189
static const int permDependent
Definition porousmediumflow/2p2c/sequential/properties.hh:203
BoundaryFormulation
Type of value on the Boundary.
Definition porousmediumflow/2p2c/sequential/properties.hh:195
@ concentration
Definition porousmediumflow/2p2c/sequential/properties.hh:197
@ saturation
Definition porousmediumflow/2p2c/sequential/properties.hh:196
static const int nCompIdx
Component index equals phase index.
Definition porousmediumflow/2p2c/sequential/properties.hh:181
Definition porousmediumflow/2p2c/sequential/properties.hh:57
std::tuple< Transport, IMPET, Pressure > InheritsFrom
Definition porousmediumflow/2p2c/sequential/properties.hh:57
Returns whether capillarity is regarded.
Definition porousmediumflow/2p2c/sequential/properties.hh:64
UndefinedProperty type
Definition porousmediumflow/2p2c/sequential/properties.hh:64
Definition porousmediumflow/2p2c/sequential/properties.hh:66
UndefinedProperty type
Definition porousmediumflow/2p2c/sequential/properties.hh:66
A minimum permeability can be assigned via the runtime-Parameter SpatialParams.minBoundaryPermeabilit...
Definition porousmediumflow/2p2c/sequential/properties.hh:69
UndefinedProperty type
Definition porousmediumflow/2p2c/sequential/properties.hh:69
SequentialTwoPTwoCIndices< TypeTag > type
Definition porousmediumflow/2p2c/sequential/properties.hh:83
static constexpr int value
Definition porousmediumflow/2p2c/sequential/properties.hh:86
static const int value
Definition porousmediumflow/2p2c/sequential/properties.hh:97
static const int value
Definition porousmediumflow/2p2c/sequential/properties.hh:109
static constexpr int value
Definition porousmediumflow/2p2c/sequential/properties.hh:116
static constexpr int value
Definition porousmediumflow/2p2c/sequential/properties.hh:119
static constexpr int value
Definition porousmediumflow/2p2c/sequential/properties.hh:122
GetPropType< TypeTag, Properties::Scalar > Scalar
Definition porousmediumflow/2p2c/sequential/properties.hh:127
Dune::BlockVector< Dune::BlockVector< Dune::FieldVector< Scalar, 1 > > > type
type for vector of vector (of scalars)
Definition porousmediumflow/2p2c/sequential/properties.hh:129
static constexpr bool value
Definition porousmediumflow/2p2c/sequential/properties.hh:134
static constexpr bool value
Definition porousmediumflow/2p2c/sequential/properties.hh:136
static constexpr bool value
Definition porousmediumflow/2p2c/sequential/properties.hh:138
static const int value
Definition porousmediumflow/2p2c/sequential/properties.hh:142
VariableClass< TypeTag > type
Definition porousmediumflow/2p2c/sequential/properties.hh:145
CellData2P2C< TypeTag > type
Definition porousmediumflow/2p2c/sequential/properties.hh:147
CompositionalFluidState< GetPropType< TypeTag, Properties::Scalar >, GetPropType< TypeTag, Properties::FluidSystem > > type
Definition porousmediumflow/2p2c/sequential/properties.hh:149
SequentialFVSpatialParams< TypeTag > type
Definition porousmediumflow/2p2c/sequential/properties.hh:154
static constexpr bool value
Definition porousmediumflow/2p2c/sequential/properties.hh:157
Type of solution vector or pressure systemIndicates if faces are only regarded from one side.
Definition sequential/pressureproperties.hh:68
Definition porousmediumflow/sequential/properties.hh:66
Number of equations in the system of PDEs.
Definition porousmediumflow/sequential/properties.hh:81
Number of phases in the system.
Definition porousmediumflow/sequential/properties.hh:83
Number of components in the system.
Definition porousmediumflow/sequential/properties.hh:85
The type of the container of global variables.
Definition porousmediumflow/sequential/properties.hh:87
Defines data object to be stored.
Definition porousmediumflow/sequential/properties.hh:89
Definition transportproperties.hh:53
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.