EclTimeSteppingParams.hpp
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*/
23#ifndef OPM_ECL_TIMESTEPPING_PARAMS_HPP
24#define OPM_ECL_TIMESTEPPING_PARAMS_HPP
25
26#include <opm/models/utils/basicproperties.hh>
27#include <opm/models/utils/propertysystem.hh>
28
29namespace Opm::Properties {
30
31namespace TTag {
33}
34
35template<class TypeTag, class MyTypeTag>
37 using type = UndefinedProperty;
38};
39
40template<class TypeTag, class MyTypeTag>
42 using type = UndefinedProperty;
43};
44
45template<class TypeTag, class MyTypeTag>
47 using type = UndefinedProperty;
48};
49
50template<class TypeTag, class MyTypeTag>
52 using type = UndefinedProperty;
53};
54
55template<class TypeTag, class MyTypeTag>
57 using type = UndefinedProperty;
58};
59
60template<class TypeTag, class MyTypeTag>
62 using type = UndefinedProperty;
63};
64
65template<class TypeTag, class MyTypeTag>
67 using type = UndefinedProperty;
68};
69
70template<class TypeTag>
71struct EnableTuning<TypeTag, TTag::EclTimeSteppingParameters> {
72 static constexpr bool value = false;
73};
74
75template<class TypeTag>
76struct SolverGrowthFactor<TypeTag, TTag::EclTimeSteppingParameters> {
77 using type = GetPropType<TypeTag, Scalar>;
78 static constexpr type value = 2.0;
79};
80
81template<class TypeTag>
82struct SolverMaxGrowth<TypeTag, TTag::EclTimeSteppingParameters> {
83 using type = GetPropType<TypeTag, Scalar>;
84 static constexpr type value = 3.0;
85};
86
87template<class TypeTag>
88struct SolverMinTimeStep<TypeTag, TTag::EclTimeSteppingParameters> {
89 using type = GetPropType<TypeTag, Scalar>;
90 static constexpr type value = 1.0e-12;
91};
92
93template<class TypeTag>
94struct SolverMaxTimeStepInDays<TypeTag, TTag::EclTimeSteppingParameters> {
95 using type = GetPropType<TypeTag, Scalar>;
96 static constexpr type value = 365.0;
97};
98
99template<class TypeTag>
100struct SolverRestartFactor<TypeTag, TTag::EclTimeSteppingParameters> {
101 using type = GetPropType<TypeTag, Scalar>;
102 static constexpr type value = 0.33;
103};
104
105template<class TypeTag>
106struct TimeStepAfterEventInDays<TypeTag, TTag::EclTimeSteppingParameters> {
107 using type = GetPropType<TypeTag, Scalar>;
108 static constexpr type value = -1.0;
109};
110
111} // namespace Opm::Properties
112
113namespace Opm {
114
115template<class TypeTag>
117{
118 Parameters::registerParam<TypeTag, Properties::EnableTuning>
119 ("Honor some aspects of the TUNING keyword.");
120 Parameters::registerParam<TypeTag, Properties::SolverGrowthFactor>
121 ("The factor time steps are elongated after a successful substep");
122 Parameters::registerParam<TypeTag, Properties::SolverMaxGrowth>
123 ("The maximum factor time steps are elongated after a report step");
124 Parameters::registerParam<TypeTag, Properties::SolverMaxTimeStepInDays>
125 ("The maximum size of a time step in days");
126 Parameters::registerParam<TypeTag, Properties::SolverMinTimeStep>
127 ("The minimum size of a time step in days for field and "
128 "metric and hours for lab. If a step cannot converge without "
129 "getting cut below this step size the simulator will stop");
130 Parameters::registerParam<TypeTag, Properties::SolverRestartFactor>
131 ("The factor time steps are elongated after restarts");
132 Parameters::registerParam<TypeTag, Properties::TimeStepAfterEventInDays>
133 ("Time step size of the first time step after an event "
134 "occurs during the simulation in days");
135}
136
137} // namespace Opm
138
139#endif // OPM_ECL_TIME_STEPPING_PARAMS_HPP
Definition: AluGridVanguard.hpp:57
Definition: BlackoilPhases.hpp:27
void registerEclTimeSteppingParameters()
Definition: EclTimeSteppingParams.hpp:116
Definition: EclTimeSteppingParams.hpp:36
UndefinedProperty type
Definition: EclTimeSteppingParams.hpp:37
GetPropType< TypeTag, Scalar > type
Definition: EclTimeSteppingParams.hpp:77
Definition: EclTimeSteppingParams.hpp:41
UndefinedProperty type
Definition: EclTimeSteppingParams.hpp:42
GetPropType< TypeTag, Scalar > type
Definition: EclTimeSteppingParams.hpp:83
Definition: EclTimeSteppingParams.hpp:46
UndefinedProperty type
Definition: EclTimeSteppingParams.hpp:47
GetPropType< TypeTag, Scalar > type
Definition: EclTimeSteppingParams.hpp:95
Definition: EclTimeSteppingParams.hpp:51
UndefinedProperty type
Definition: EclTimeSteppingParams.hpp:52
GetPropType< TypeTag, Scalar > type
Definition: EclTimeSteppingParams.hpp:89
Definition: EclTimeSteppingParams.hpp:56
UndefinedProperty type
Definition: EclTimeSteppingParams.hpp:57
GetPropType< TypeTag, Scalar > type
Definition: EclTimeSteppingParams.hpp:101
Definition: EclTimeSteppingParams.hpp:61
UndefinedProperty type
Definition: EclTimeSteppingParams.hpp:62
Definition: EclTimeSteppingParams.hpp:32
GetPropType< TypeTag, Scalar > type
Definition: EclTimeSteppingParams.hpp:107
Definition: EclTimeSteppingParams.hpp:66
UndefinedProperty type
Definition: EclTimeSteppingParams.hpp:67