WellConvergence.hpp
Go to the documentation of this file.
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
28namespace Opm
29{
30
31class ConvergenceReport;
32class DeferredLogger;
33template<class Scalar> class WellInterfaceGeneric;
34template<class Scalar> class WellState;
35
36template<class Scalar>
38{
39public:
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
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
65private:
67};
68
69}
70
71#endif // OPM_WELL_CONVERGENCE_HEADER_INCLUDED
Definition: ConvergenceReport.hpp:38
Definition: DeferredLogger.hpp:57
Definition: WellConvergence.hpp:38
WellConvergence(const WellInterfaceGeneric< Scalar > &well)
Definition: WellConvergence.hpp:40
void checkConvergenceControlEq(const WellState< Scalar > &well_state, const Tolerances &tolerances, const Scalar well_control_residual, const bool well_is_stopped, ConvergenceReport &report, DeferredLogger &deferred_logger) const
void checkConvergencePolyMW(const std::vector< Scalar > &res, const int Bhp, const Scalar maxResidualAllowed, ConvergenceReport &report) const
Definition: WellInterfaceGeneric.hpp:51
Definition: WellState.hpp:62
Definition: blackoilboundaryratevector.hh:37
Definition: WellConvergence.hpp:44
Scalar bhp
Tolerance for bhp controlled well.
Definition: WellConvergence.hpp:45
Scalar grup
Tolerance for a grup controlled well.
Definition: WellConvergence.hpp:48
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