opm-simulators
Toggle main menu visibility
Loading...
Searching...
No Matches
WellGroupConstraints.hpp
1
/*
2
Copyright 2017 SINTEF Digital, Mathematics and Cybernetics.
3
Copyright 2017 Statoil ASA.
4
Copyright 2017 IRIS
5
Copyright 2019 Norce
6
7
This file is part of the Open Porous Media project (OPM).
8
9
OPM is free software: you can redistribute it and/or modify
10
it under the terms of the GNU General Public License as published by
11
the Free Software Foundation, either version 3 of the License, or
12
(at your option) any later version.
13
14
OPM is distributed in the hope that it will be useful,
15
but WITHOUT ANY WARRANTY; without even the implied warranty of
16
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
GNU General Public License for more details.
18
19
You should have received a copy of the GNU General Public License
20
along with OPM. If not, see <http://www.gnu.org/licenses/>.
21
*/
22
23
24
#ifndef OPM_WELL_GROUP_CONSTRAINTS_HEADER_INCLUDED
25
#define OPM_WELL_GROUP_CONSTRAINTS_HEADER_INCLUDED
26
27
#include <functional>
28
#include <utility>
29
#include <vector>
30
#include <string>
31
#include <optional>
32
33
namespace
Opm
34
{
35
36
class
DeferredLogger
;
37
class
Group;
38
template
<
class
Scalar>
class
GroupState
;
39
enum class
InjectorType;
40
using
RegionId = int;
41
class
Schedule;
42
class
SummaryState;
43
template
<
typename
Scalar,
typename
IndexTraits>
class
WellInterfaceGeneric
;
44
template
<
typename
Scalar,
typename
IndexTraits>
class
WellState
;
45
47
template
<
typename
Scalar,
typename
IndexTraits>
48
class
WellGroupConstraints
{
49
public
:
51
explicit
WellGroupConstraints
(
const
WellInterfaceGeneric<Scalar, IndexTraits>
& well) : well_(well) {}
52
53
using
RateConvFunc = std::function<void(
const
RegionId,
54
const
int
,
55
const
std::optional<std::string>&,
56
std::vector<Scalar>&)>;
57
58
bool
checkGroupConstraints(
WellState<Scalar, IndexTraits>
& well_state,
59
const
GroupState<Scalar>
& group_state,
60
const
Schedule& schedule,
61
const
SummaryState& summaryState,
62
const
RateConvFunc& rateConverter,
63
const
bool
check_guide_rate,
64
DeferredLogger
& deferred_logger)
const
;
65
66
private
:
67
std::pair<bool, Scalar>
68
checkGroupConstraintsInj(
const
Group& group,
69
const
WellState<Scalar, IndexTraits>
& well_state,
70
const
GroupState<Scalar>
& group_state,
71
const
Scalar efficiencyFactor,
72
const
Schedule& schedule,
73
const
SummaryState& summaryState,
74
const
RateConvFunc& rateConverter,
75
const
bool
check_guide_rate,
76
DeferredLogger
& deferred_logger)
const
;
77
78
std::pair<bool, Scalar>
79
checkGroupConstraintsProd(
const
Group& group,
80
const
WellState<Scalar, IndexTraits>
& well_state,
81
const
GroupState<Scalar>
& group_state,
82
const
Scalar efficiencyFactor,
83
const
Schedule& schedule,
84
const
SummaryState& summaryState,
85
const
RateConvFunc& rateConverter,
86
const
bool
check_guide_rate,
87
DeferredLogger
& deferred_logger)
const
;
88
89
const
WellInterfaceGeneric<Scalar, IndexTraits>
& well_;
90
};
91
92
}
93
94
#endif
// OPM_WELL_GROUP_CONSTRAINTS_HEADER_INCLUDED
Opm::DeferredLogger
Definition
DeferredLogger.hpp:57
Opm::GroupState
Definition
GroupState.hpp:41
Opm::WellGroupConstraints::WellGroupConstraints
WellGroupConstraints(const WellInterfaceGeneric< Scalar, IndexTraits > &well)
Constructor sets reference to well.
Definition
WellGroupConstraints.hpp:51
Opm::WellInterfaceGeneric
Definition
WellInterfaceGeneric.hpp:53
Opm::WellState
The state of a set of wells, tailored for use by the fully implicit blackoil simulator.
Definition
WellState.hpp:66
Opm
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition
blackoilbioeffectsmodules.hh:43
opm
simulators
wells
WellGroupConstraints.hpp
Generated by
1.17.0