opm-simulators
newtonmethodparams.hpp
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_NEWTON_METHOD_PARAMS_HPP
24 #define OPM_NEWTON_METHOD_PARAMS_HPP
25 
26 namespace Opm::Parameters {
27 
30 template<class Scalar>
31 struct NewtonMaxError { static constexpr Scalar value = 1e100; };
32 
34 struct NewtonMaxIterations { static constexpr int value = 20; };
35 
44 struct NewtonTargetIterations { static constexpr int value = 10; };
45 
52 template<class Scalar>
53 struct NewtonTolerance { static constexpr Scalar value = 1e-8; };
54 
56 struct NewtonVerbose { static constexpr bool value = true; };
57 
60 struct NewtonWriteConvergence { static constexpr bool value = false; };
61 
62 } // end namespace Opm::Parameters
63 
64 namespace Opm {
65 
69 template<class Scalar>
71 {
73  static void registerParameters();
74 
76  void read();
77 
78  bool verbose_;
79  bool writeConvergence_;
82  Scalar tolerance_;
83  Scalar maxError_;
84 };
85 
86 } // namespace Opm
87 
88 #endif // OPM_NEWTON_METHOD_PARAMS_HPP
The value for the error below which convergence is declared.
Definition: newtonmethodparams.hpp:53
int maxIterations_
Maximum number of iterations we do before giving up.
Definition: newtonmethodparams.hpp:81
The maximum error which may occur in a simulation before the Newton method for the time step is abort...
Definition: newtonmethodparams.hpp:31
The number of iterations at which the Newton method should aim at.
Definition: newtonmethodparams.hpp:44
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: blackoilbioeffectsmodules.hh:45
Definition: blackoilnewtonmethodparams.hpp:31
static void registerParameters()
Registers the parameters in parameter system.
Definition: newtonmethodparams.cpp:36
Struct holding the parameters for NewtonMethod.
Definition: newtonmethodparams.hpp:70
Number of maximum iterations for the Newton method.
Definition: newtonmethodparams.hpp:34
Specifies whether the convergence rate and the global residual gets written out to disk for every New...
Definition: newtonmethodparams.hpp:60
void read()
Reads the parameter values from the parameter system.
Definition: newtonmethodparams.cpp:57
Specifies whether the Newton method should print messages or not.
Definition: newtonmethodparams.hpp:56
int targetIterations_
Optimal number of iterations we want to achieve.
Definition: newtonmethodparams.hpp:80