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  Copyright (C) 2009-2013 by Andreas Lauser
5 
6  This file is part of the Open Porous Media project (OPM).
7 
8  OPM is free software: you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation, either version 2 of the License, or
11  (at your option) any later version.
12 
13  OPM is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with OPM. If not, see <http://www.gnu.org/licenses/>.
20 */
28 #ifndef EWOMS_FV_BASE_PROPERTIES_HH
29 #define EWOMS_FV_BASE_PROPERTIES_HH
30 
31 #include "fvbasenewtonmethod.hh"
32 #include "fvbaseproperties.hh"
34 
38 
39 namespace Ewoms {
40 namespace Properties {
42 NEW_TYPE_TAG(FvBaseDiscretization,
43  INHERITS_FROM(ImplicitModel,
44  FvBaseNewtonMethod,
45  VtkPrimaryVars));
46 
47 
49 NEW_PROP_TAG(LinearSolverSplice);
50 NEW_PROP_TAG(ParallelIterativeLinearSolver);
51 
52 NEW_PROP_TAG(LocalLinearizerSplice);
53 NEW_PROP_TAG(FiniteDifferenceLocalLinearizer);
54 
55 SET_SPLICES(FvBaseDiscretization, LinearSolverSplice, LocalLinearizerSplice);
56 
58 SET_TAG_PROP(FvBaseDiscretization, LinearSolverSplice, ParallelIterativeLinearSolver);
59 
61 SET_TAG_PROP(FvBaseDiscretization, LocalLinearizerSplice, FiniteDifferenceLocalLinearizer);
62 
71 NEW_PROP_TAG(Evaluation);
72 
74 NEW_PROP_TAG(Grid);
76 NEW_PROP_TAG(GridView);
77 
79 NEW_PROP_TAG(Stencil);
80 
82 NEW_PROP_TAG(Problem);
84 NEW_PROP_TAG(BaseProblem);
86 NEW_PROP_TAG(Model);
88 NEW_PROP_TAG(NumEq);
89 
91 NEW_PROP_TAG(Discretization);
93 NEW_PROP_TAG(DiscLocalResidual);
95 NEW_PROP_TAG(LocalResidual);
97 NEW_PROP_TAG(LocalLinearizer);
100 NEW_PROP_TAG(LinearizeNonLocalElements);
101 
103 NEW_PROP_TAG(BaseLinearizer);
105 NEW_PROP_TAG(JacobianMatrix);
106 
108 NEW_PROP_TAG(EqVector);
110 NEW_PROP_TAG(ElementEqVector);
112 NEW_PROP_TAG(GlobalEqVector);
113 
115 NEW_PROP_TAG(RateVector);
117 NEW_PROP_TAG(BoundaryRateVector);
119 NEW_PROP_TAG(Constraints);
120 
122 NEW_PROP_TAG(SolutionVector);
123 
125 NEW_PROP_TAG(PrimaryVariables);
127 NEW_PROP_TAG(IntensiveQuantities);
129 NEW_PROP_TAG(DiscIntensiveQuantities);
130 
132 NEW_PROP_TAG(ElementContext);
134 NEW_PROP_TAG(BoundaryContext);
136 NEW_PROP_TAG(ConstraintsContext);
138 NEW_PROP_TAG(ExtensiveQuantities);
140 NEW_PROP_TAG(GradientCalculator);
141 
143 NEW_PROP_TAG(DiscBaseIntensiveQuantities);
144 
146 NEW_PROP_TAG(DiscExtensiveQuantities);
147 
149 NEW_PROP_TAG(DiscBaseOutputModule);
150 
152 NEW_PROP_TAG(GridCommHandleFactory);
153 
157 NEW_PROP_TAG(ThreadManager);
158 NEW_PROP_TAG(ThreadsPerProcess);
159 
160 // high-level simulation control
161 
163 NEW_PROP_TAG(Simulator);
164 
171 NEW_PROP_TAG(EnableVtkOutput);
172 
182 NEW_PROP_TAG(VtkOutputFormat);
183 
187 NEW_PROP_TAG(EnableLinearizationRecycling);
188 
192 NEW_PROP_TAG(EnablePartialRelinearization);
193 
195 NEW_PROP_TAG(EnableConstraints);
196 
202 NEW_PROP_TAG(MaxTimeStepSize);
203 
209 NEW_PROP_TAG(MinTimeStepSize);
210 
215 NEW_PROP_TAG(MaxTimeStepDivisions);
216 
226 NEW_PROP_TAG(EnableIntensiveQuantityCache);
227 
236 NEW_PROP_TAG(EnableThermodynamicHints);
237 
238 // mappers from local to global DOF indices
239 
243 NEW_PROP_TAG(VertexMapper);
244 
248 NEW_PROP_TAG(ElementMapper);
249 
253 NEW_PROP_TAG(DofMapper);
254 
261 NEW_PROP_TAG(BorderListCreator);
262 
266 NEW_PROP_TAG(TimeDiscHistorySize);
267 
274 NEW_PROP_TAG(RequireScvCenterGradients);
275 
276 }} // namespace Properties, Ewoms
277 
278 #endif
SET_TAG_PROP(FvBaseDiscretization, LinearSolverSplice, ParallelIterativeLinearSolver)
use a parallel iterative linear solver by default
Declare the properties used by the infrastructure code of the finite volume discretizations.
Defines a type tags and some fundamental properties all models.
Calculates the Jacobian of the local residual for finite volume spatial discretizations using a finit...
NEW_PROP_TAG(Grid)
The type of the DUNE grid.
VTK output module for the fluid composition.
Definition: baseauxiliarymodule.hh:35
A Newton method for models using a finite volume discretization.
NEW_TYPE_TAG(AuxModule)
#define INHERITS_FROM(...)
Syntactic sugar for NEW_TYPE_TAG.
Definition: propertysystem.hh:229
Implements a generic linear solver abstraction.
SET_SPLICES(FvBaseDiscretization, LinearSolverSplice, LocalLinearizerSplice)