opm-simulators
fvbaseproperties.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  This file is part of the Open Porous Media project (OPM).
5 
6  OPM 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 2 of the License, or
9  (at your option) any later version.
10 
11  OPM 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 OPM. If not, see <http://www.gnu.org/licenses/>.
18 
19  Consult the COPYING file in the top-level source directory of this
20  module for the precise wording of the license and the list of
21  copyright holders.
22 */
30 #ifndef EWOMS_FV_BASE_PROPERTIES_HH
31 #define EWOMS_FV_BASE_PROPERTIES_HH
32 
34 
35 namespace Opm::Properties {
36 
37 namespace TTag {
38 struct FvBaseNewtonMethod;
39 struct FiniteDifferenceLocalLinearizer;
40 struct ParallelBiCGStabLinearSolver;
41 }
42 
43 namespace TTag {
44 
47 { using InheritsFrom = std::tuple<FvBaseNewtonMethod, ImplicitModel>; };
48 
49 template<class TypeTag, template<class> class Storage>
50 struct to_gpu_type {};
51 
52 template<class TypeTag, template <class> class Storage>
53 using to_gpu_type_t = typename to_gpu_type<TypeTag, Storage>::type;
54 
55 } // namespace TTag
56 
57 
58 template<class TypeTag, class MyTypeTag>
60 template<class TypeTag, class MyTypeTag>
62 
71 template<class TypeTag, class MyTypeTag>
72 struct Evaluation { using type = UndefinedProperty; };
73 
75 template<class TypeTag, class MyTypeTag>
76 struct Stencil { using type = UndefinedProperty; };
77 
79 template<class TypeTag, class MyTypeTag>
81 
82 template<class TypeTag, class MyTypeTag>
84 
86 template<class TypeTag, class MyTypeTag>
87 struct Problem { using type = UndefinedProperty; };
89 template<class TypeTag, class MyTypeTag>
90 struct BaseProblem { using type = UndefinedProperty; };
91 
93 template<class TypeTag, class MyTypeTag>
96 template<class TypeTag, class MyTypeTag>
99 template<class TypeTag, class MyTypeTag>
102 template<class TypeTag, class MyTypeTag>
106 template<class TypeTag, class MyTypeTag>
108 
110 template<class TypeTag, class MyTypeTag>
112 
114 template<class TypeTag, class MyTypeTag>
115 struct EqVector { using type = UndefinedProperty; };
117 template<class TypeTag, class MyTypeTag>
119 
121 template<class TypeTag, class MyTypeTag>
122 struct RateVector { using type = UndefinedProperty; };
124 template<class TypeTag, class MyTypeTag>
127 template<class TypeTag, class MyTypeTag>
128 struct Constraints { using type = UndefinedProperty; };
129 
131 template<class TypeTag, class MyTypeTag>
133 
135 template<class TypeTag, class MyTypeTag>
138 template<class TypeTag, class MyTypeTag>
140 
142 template<class TypeTag, class MyTypeTag>
144 
146 
147 template<class TypeTag, class MyTypeTag>
149 
150 template<class TypeTag, class MyTypeTag>
152 
154 template<class TypeTag, class MyTypeTag>
157 template<class TypeTag, class MyTypeTag>
160 template<class TypeTag, class MyTypeTag>
163 template<class TypeTag, class MyTypeTag>
166 template<class TypeTag, class MyTypeTag>
168 
170 template<class TypeTag, class MyTypeTag>
172 
174 template<class TypeTag, class MyTypeTag>
176 
178 template<class TypeTag, class MyTypeTag>
180 
182 template<class TypeTag, class MyTypeTag>
184 
188 template<class TypeTag, class MyTypeTag>
190 
195 template<class TypeTag, class MyTypeTag>
197 
198 // high-level simulation control
199 
209 template<class TypeTag, class MyTypeTag>
211 
213 template<class TypeTag, class MyTypeTag>
215 
216 // mappers from local to global DOF indices
217 
221 template<class TypeTag, class MyTypeTag>
222 struct VertexMapper { using type = UndefinedProperty; };
223 
227 template<class TypeTag, class MyTypeTag>
229 
233 template<class TypeTag, class MyTypeTag>
234 struct DofMapper { using type = UndefinedProperty; };
235 
239 template<class TypeTag, class MyTypeTag>
241 
247 template<class TypeTag, class MyTypeTag>
249 
251 template<class TypeTag, class MyTypeTag>
253 
255 template<class TypeTag, class MyTypeTag>
257 
258 // Set defaults
259 
261 template<class TypeTag>
262 struct Splices<TypeTag, TTag::FvBaseDiscretization>
263 {
264  using type = std::tuple<GetSplicePropType<TypeTag, TTag::FvBaseDiscretization, Properties::LinearSolverSplice>,
265  GetSplicePropType<TypeTag, TTag::FvBaseDiscretization, Properties::LocalLinearizerSplice>>;
266 };
267 
269 template<class TypeTag>
272 
274 template<class TypeTag>
277 
278 } // namespace Opm::Properties
279 
280 #endif
Calculates gradients of arbitrary quantities at flux integration points.
Definition: fvbaseproperties.hh:167
The class describing the stencil of the spatial discretization.
Definition: fvbaseproperties.hh:76
The type tag for models based on the finite volume schemes.
Definition: fvbaseproperties.hh:46
The type of the base class for all problems which use this model.
Definition: fvbaseproperties.hh:90
The type of the spatial discretization used by the model.
Definition: fvbaseproperties.hh:94
The type of the local residual function.
Definition: fvbaseproperties.hh:100
The base class for the finite volume discretization schemes.
Definition: fvbasediscretization.hh:87
The mapper to find the global index of an element.
Definition: fvbaseproperties.hh:228
Specify if elements that do not belong to the local process&#39; grid partition should be skipped...
Definition: fvbaseproperties.hh:107
The type of the local linearizer.
Definition: fvbaseproperties.hh:103
Linearizes the global non-linear system of equations.
Definition: fvbaseproperties.hh:111
Definition: propertysystem.hh:41
The discretization specific part of the local residual.
Definition: fvbaseproperties.hh:97
use locking to prevent race conditions when linearizing the global system of equations in multi-threa...
Definition: fvbaseproperties.hh:196
Specify whether the storage terms use extensive quantities or not.
Definition: fvbaseproperties.hh:248
The mapper to find the global index of a vertex.
Definition: fvbaseproperties.hh:222
a tag to mark properties as undefined
Definition: propertysystem.hh:38
The OpenMP threads manager.
Definition: fvbaseproperties.hh:189
A vector of holding a quantity for each equation (usually at a given spatial location) ...
Definition: fvbaseproperties.hh:115
Specify whether the some degrees of fredom can be constraint.
Definition: fvbaseproperties.hh:214
The part of the VTK ouput modules which is specific to the spatial discretization.
Definition: fvbaseproperties.hh:179
The discretization specific part of the intensive quantities.
Definition: fvbaseproperties.hh:148
Vector containing volumetric or areal rates of quantities.
Definition: fvbaseproperties.hh:122
Type of object for specifying boundary conditions.
Definition: fvbaseproperties.hh:125
Data required to calculate a flux over a face.
Definition: fvbaseproperties.hh:164
The blackoilmodel that is tailored for GPU compatibility.
Definition: fvbaseproperties.hh:143
The secondary variables of all degrees of freedom in an element&#39;s stencil.
Definition: fvbaseproperties.hh:155
Definition: fvbaseproperties.hh:151
Definition: fvbaseproperties.hh:61
The secondary variables of a constraint degree of freedom.
Definition: fvbaseproperties.hh:161
The class which represents a constraint degree of freedom.
Definition: fvbaseproperties.hh:128
The class describing the discrete function space when dune-fem is used, otherwise it points to the st...
Definition: fvbaseproperties.hh:80
The secondary variables within a sub-control volume.
Definition: fvbaseproperties.hh:139
Definition: fvbaseproperties.hh:50
Definition: fvbaseproperties.hh:59
The part of the extensive quantities which is specific to the spatial discretization.
Definition: fvbaseproperties.hh:175
Specify if experimental features should be enabled or not.
Definition: fvbaseproperties.hh:256
Definition: fvbasefdlocallinearizer.hh:65
The class to create grid communication handles.
Definition: fvbaseproperties.hh:183
The type of the problem.
Definition: fvbaseproperties.hh:87
The mapper to find the global index of a degree of freedom.
Definition: fvbaseproperties.hh:234
A vector of holding a quantity for each equation for each DOF of an element.
Definition: fvbaseproperties.hh:118
The history size required by the time discretization.
Definition: fvbaseproperties.hh:240
Specify the format the VTK output is written to disk.
Definition: fvbaseproperties.hh:210
Vector containing all primary variables of the grid.
Definition: fvbaseproperties.hh:132
The part of the intensive quantities which is specific to the spatial discretization.
Definition: fvbaseproperties.hh:171
Representation of a function evaluation and all necessary derivatives with regard to the intensive qu...
Definition: fvbaseproperties.hh:72
Definition: blackoilmodel.hh:75
Definition: parallelbicgstabbackend.hh:51
Defines a type tags and some fundamental properties all models.
The secondary variables of a boundary segment.
Definition: fvbaseproperties.hh:158
A vector of primary variables within a sub-control volume.
Definition: fvbaseproperties.hh:136
Definition: fvbaseproperties.hh:83
Specify whether to use volumetric residuals or not.
Definition: fvbaseproperties.hh:252