opm-simulators
Toggle main menu visibility
Loading...
Searching...
No Matches
GasLiftSingleWell.hpp
1
/*
2
Copyright 2020 Equinor ASA.
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 3 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
20
#ifndef OPM_GASLIFT_SINGLE_WELL_HEADER_INCLUDED
21
#define OPM_GASLIFT_SINGLE_WELL_HEADER_INCLUDED
22
23
#include <
opm/models/utils/propertysystem.hh
>
24
#include <
opm/models/utils/parametersystem.hpp
>
25
#include <
opm/models/blackoil/blackoilmodel.hh
>
26
#include <
opm/models/discretization/common/fvbaseproperties.hh
>
27
#include <opm/simulators/wells/GasLiftSingleWellGeneric.hpp>
28
#include <opm/simulators/wells/GasLiftGroupInfo.hpp>
29
30
#include <optional>
31
32
namespace
Opm
{
33
34
template
<
class
TypeTag>
class
WellInterface
;
35
36
template
<
class
TypeTag>
37
class
GasLiftSingleWell :
public
GasLiftSingleWellGeneric<GetPropType<TypeTag, Properties::Scalar>,
38
typename GetPropType<TypeTag, Properties::FluidSystem>::IndexTraitsType>
39
{
40
using
Scalar =
GetPropType<TypeTag, Properties::Scalar>
;
41
using
Simulator =
GetPropType<TypeTag, Properties::Simulator>
;
42
using
FluidSystem =
GetPropType<TypeTag, Properties::FluidSystem>
;
43
using
IndexTraits =
typename
FluidSystem::IndexTraitsType;
44
using
GLiftSyncGroups =
typename
GasLiftSingleWellGeneric<Scalar, IndexTraits>::GLiftSyncGroups;
45
using
BasicRates =
typename
GasLiftSingleWellGeneric<Scalar, IndexTraits>::BasicRates
;
46
47
public
:
48
GasLiftSingleWell(
const
WellInterface<TypeTag>
& well,
49
const
Simulator& simulator,
50
const
SummaryState& summary_state,
51
DeferredLogger
& deferred_logger,
52
WellState<Scalar, IndexTraits>
& well_state,
53
const
GroupState<Scalar>
& group_state,
54
GasLiftGroupInfo<Scalar, IndexTraits>
& group_info,
55
GLiftSyncGroups& sync_groups,
56
const
Parallel::Communication& comm,
57
bool
glift_debug);
58
59
const
WellInterfaceGeneric<Scalar, IndexTraits>
& getWell()
const override
{
return
well_; }
60
61
private
:
62
std::optional<Scalar>
63
computeBhpAtThpLimit_(Scalar alq,
64
bool
debug_ouput =
true
)
const override
;
65
66
BasicRates computeWellRates_(Scalar bhp,
67
bool
bhp_is_limited,
68
bool
debug_output =
true
)
const override
;
69
70
void
setAlqMaxRate_(
const
GasLiftWell& well);
71
void
setupPhaseVariables_();
72
bool
checkThpControl_()
const override
;
73
74
const
Simulator& simulator_;
75
const
WellInterface<TypeTag>
& well_;
76
};
77
78
}
// namespace Opm
79
80
#include "GasLiftSingleWell_impl.hpp"
81
82
#endif
// OPM_GASLIFT_SINGLE_WELL_HEADER_INCLUDED
blackoilmodel.hh
A fully-implicit black-oil flow model.
Opm::DeferredLogger
Definition
DeferredLogger.hpp:57
Opm::GasLiftGroupInfo
Definition
GasLiftGroupInfo.hpp:46
Opm::GroupState
Definition
GroupState.hpp:41
Opm::WellInterfaceGeneric
Definition
WellInterfaceGeneric.hpp:53
Opm::WellInterface
Definition
WellInterface.hpp:76
Opm::WellState
The state of a set of wells, tailored for use by the fully implicit blackoil simulator.
Definition
WellState.hpp:66
fvbaseproperties.hh
Declare the properties used by the infrastructure code of the finite volume discretizations.
Opm
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition
blackoilbioeffectsmodules.hh:43
Opm::GetPropType
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(....
Definition
propertysystem.hh:233
parametersystem.hpp
This file provides the infrastructure to retrieve run-time parameters.
propertysystem.hh
The Opm property system, traits with inheritance.
Opm::GasLiftSingleWellGeneric::BasicRates
Definition
GasLiftSingleWellGeneric.hpp:126
opm
simulators
wells
GasLiftSingleWell.hpp
Generated by
1.17.0