All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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 
33 #include "fvbasenewtonmethod.hh"
34 #include "fvbaseproperties.hh"
36 
40 
41 namespace Ewoms {
42 namespace Properties {
44 NEW_TYPE_TAG(FvBaseDiscretization,
45  INHERITS_FROM(ImplicitModel,
46  FvBaseNewtonMethod,
47  VtkPrimaryVars));
48 
49 
51 NEW_PROP_TAG(LinearSolverSplice);
52 NEW_PROP_TAG(ParallelBiCGStabLinearSolver);
53 
54 NEW_PROP_TAG(LocalLinearizerSplice);
55 NEW_PROP_TAG(FiniteDifferenceLocalLinearizer);
56 
57 SET_SPLICES(FvBaseDiscretization, LinearSolverSplice, LocalLinearizerSplice);
58 
60 SET_TAG_PROP(FvBaseDiscretization, LinearSolverSplice, ParallelBiCGStabLinearSolver);
61 
63 SET_TAG_PROP(FvBaseDiscretization, LocalLinearizerSplice, FiniteDifferenceLocalLinearizer);
64 
73 NEW_PROP_TAG(Evaluation);
74 
76 NEW_PROP_TAG(Grid);
78 NEW_PROP_TAG(GridView);
79 
81 NEW_PROP_TAG(Stencil);
82 
84 NEW_PROP_TAG(DiscreteFunctionSpace);
85 
87 NEW_PROP_TAG(Problem);
89 NEW_PROP_TAG(BaseProblem);
91 NEW_PROP_TAG(Model);
93 NEW_PROP_TAG(NumEq);
94 
96 NEW_PROP_TAG(Discretization);
98 NEW_PROP_TAG(DiscLocalResidual);
100 NEW_PROP_TAG(LocalResidual);
102 NEW_PROP_TAG(LocalLinearizer);
105 NEW_PROP_TAG(LinearizeNonLocalElements);
106 
108 NEW_PROP_TAG(BaseLinearizer);
110 NEW_PROP_TAG(JacobianMatrix);
111 
113 NEW_PROP_TAG(EqVector);
115 NEW_PROP_TAG(ElementEqVector);
117 NEW_PROP_TAG(GlobalEqVector);
118 
120 NEW_PROP_TAG(RateVector);
122 NEW_PROP_TAG(BoundaryRateVector);
124 NEW_PROP_TAG(Constraints);
125 
127 NEW_PROP_TAG(SolutionVector);
128 
130 NEW_PROP_TAG(PrimaryVariables);
132 NEW_PROP_TAG(IntensiveQuantities);
134 NEW_PROP_TAG(DiscIntensiveQuantities);
135 
137 NEW_PROP_TAG(ElementContext);
139 NEW_PROP_TAG(BoundaryContext);
141 NEW_PROP_TAG(ConstraintsContext);
143 NEW_PROP_TAG(ExtensiveQuantities);
145 NEW_PROP_TAG(GradientCalculator);
146 
148 NEW_PROP_TAG(DiscBaseIntensiveQuantities);
149 
151 NEW_PROP_TAG(DiscExtensiveQuantities);
152 
154 NEW_PROP_TAG(DiscBaseOutputModule);
155 
157 NEW_PROP_TAG(GridCommHandleFactory);
158 
162 NEW_PROP_TAG(ThreadManager);
163 NEW_PROP_TAG(ThreadsPerProcess);
164 
169 NEW_PROP_TAG(UseLinearizationLock);
170 
171 // high-level simulation control
172 
174 NEW_PROP_TAG(Simulator);
175 
182 NEW_PROP_TAG(EnableGridAdaptation);
183 
190 NEW_PROP_TAG(EnableVtkOutput);
191 
201 NEW_PROP_TAG(VtkOutputFormat);
202 
204 NEW_PROP_TAG(EnableConstraints);
205 
211 NEW_PROP_TAG(MaxTimeStepSize);
212 
218 NEW_PROP_TAG(MinTimeStepSize);
219 
224 NEW_PROP_TAG(MaxTimeStepDivisions);
225 
235 NEW_PROP_TAG(EnableIntensiveQuantityCache);
236 
243 NEW_PROP_TAG(EnableStorageCache);
244 
253 NEW_PROP_TAG(EnableThermodynamicHints);
254 
255 // mappers from local to global DOF indices
256 
260 NEW_PROP_TAG(VertexMapper);
261 
265 NEW_PROP_TAG(ElementMapper);
266 
270 NEW_PROP_TAG(DofMapper);
271 
278 NEW_PROP_TAG(BorderListCreator);
279 
283 NEW_PROP_TAG(TimeDiscHistorySize);
284 
290 NEW_PROP_TAG(ExtensiveStorageTerm);
291 
293 NEW_PROP_TAG(UseVolumetricResidual);
294 
295 }} // namespace Properties, Ewoms
296 
297 #endif
Implements a generic linear solver abstraction.
#define NEW_TYPE_TAG(...)
Define a new type tag.
Definition: propertysystem.hh:169
#define SET_TAG_PROP(EffTypeTagName, PropTagName, ValueTypeTagName)
Define a property containing a type tag.
Definition: propertysystem.hh:436
A Newton method for models using a finite volume discretization.
#define INHERITS_FROM(...)
Syntactic sugar for NEW_TYPE_TAG.
Definition: propertysystem.hh:230
Declare the properties used by the infrastructure code of the finite volume discretizations.
#define SET_SPLICES(TypeTagName,...)
Define splices for a given type tag.
Definition: propertysystem.hh:213
VTK output module for the fluid composition.
Calculates the Jacobian of the local residual for finite volume spatial discretizations using a finit...
#define NEW_PROP_TAG(PTagName)
Define a property tag.
Definition: propertysystem.hh:247
Defines a type tags and some fundamental properties all models.