opm-simulators
WellConvergence.hpp
1 /*
2  Copyright 2017 SINTEF Digital, Mathematics and Cybernetics.
3  Copyright 2017 Statoil ASA.
4  Copyright 2016 - 2017 IRIS AS.
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 3 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 */
21 
22 
23 #ifndef OPM_WELL_CONVERGENCE_HEADER_INCLUDED
24 #define OPM_WELL_CONVERGENCE_HEADER_INCLUDED
25 
26 #include <vector>
27 
28 namespace Opm
29 {
30 
31 class ConvergenceReport;
32 class DeferredLogger;
33 template<typename Scalar, typename IndexTraits> class WellInterfaceGeneric;
34 template<typename Scalar, typename IndexTraits> class WellState;
35 
36 template<typename Scalar, typename IndexTraits>
38 {
39 public:
41  : well_(well)
42  {}
43 
44  struct Tolerances {
45  Scalar bhp;
46  Scalar thp;
47  Scalar rates;
48  Scalar grup;
50  };
51 
52  // checking the convergence of the well control equations
53  void checkConvergenceControlEq(const WellState<Scalar, IndexTraits>& well_state,
54  const Tolerances& tolerances,
55  const Scalar well_control_residual,
56  const bool well_is_stopped,
57  ConvergenceReport& report,
58  DeferredLogger& deferred_logger) const;
59 
60  void checkConvergencePolyMW(const std::vector<Scalar>& res,
61  const int Bhp,
62  const Scalar maxResidualAllowed,
63  ConvergenceReport& report) const;
64 
65 private:
67 };
68 
69 }
70 
71 #endif // OPM_WELL_CONVERGENCE_HEADER_INCLUDED
Scalar max_residual_allowed
Max residual allowd.
Definition: WellConvergence.hpp:49
Scalar rates
Tolerance for a rate controlled well.
Definition: WellConvergence.hpp:47
Scalar thp
Tolerance for thp controlled well.
Definition: WellConvergence.hpp:46
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: blackoilbioeffectsmodules.hh:45
Scalar grup
Tolerance for a grup controlled well.
Definition: WellConvergence.hpp:48
Definition: WellConvergence.hpp:37
Definition: DeferredLogger.hpp:56
Represents the convergence status of the whole simulator, to make it possible to query and store the ...
Definition: ConvergenceReport.hpp:37
Scalar bhp
Tolerance for bhp controlled well.
Definition: WellConvergence.hpp:45
Definition: BlackoilWellModelGeneric.hpp:75
Definition: WellConvergence.hpp:44
The state of a set of wells, tailored for use by the fully implicit blackoil simulator.
Definition: TemperatureModel.hpp:61