BlackoilWellModelRestart.hpp
Go to the documentation of this file.
1/*
2 Copyright 2016 SINTEF ICT, Applied Mathematics.
3 Copyright 2016 - 2017 Statoil ASA.
4 Copyright 2017 Dr. Blatt - HPC-Simulation-Software & Services
5 Copyright 2016 - 2018 IRIS AS
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#ifndef OPM_BLACKOILWELLMODEL_RESTART_HEADER_INCLUDED
24#define OPM_BLACKOILWELLMODEL_RESTART_HEADER_INCLUDED
25
26#include <opm/input/eclipse/Schedule/Group/GuideRateModel.hpp>
27#include <opm/output/data/Wells.hpp>
28
29#include <vector>
30
31namespace Opm {
32
33template<class Scalar> class BlackoilWellModelGeneric;
34namespace data {
35struct GroupData;
36class GroupAndNetworkValues;
37}
38template<class Scalar> class GroupState;
39class GuideRate;
40class GuideRateConfig;
41struct PerforationData;
42struct PhaseUsage;
43template<class Scalar> class SingleWellState;
44template<class Scalar> class WellState;
45
47template<class Scalar>
49{
50public:
53 : wellModel_(wellModel)
54 {}
55
57 void loadRestartGuideRates(const int report_step,
58 const GuideRateModel::Target target,
59 const data::Wells& rst_wells,
60 GuideRate& guide_rate) const;
61
63 void loadRestartGuideRates(const int report_step,
64 const GuideRateConfig& config,
65 const std::map<std::string, data::GroupData>& rst_groups,
66 GuideRate& guide_rate) const;
67
69 void loadRestartData(const data::Wells& rst_wells,
70 const data::GroupAndNetworkValues& grpNwrkValues,
71 const bool handle_ms_well,
72 WellState<Scalar>& well_state,
73 GroupState<Scalar>& grpState) const;
74
75private:
77 void loadRestartConnectionData(const std::vector<data::Rates::opt>& phs,
78 const data::Well& rst_well,
79 const std::vector<PerforationData>& old_perf_data,
80 SingleWellState<Scalar>& ws) const;
81
83 void loadRestartSegmentData(const std::string& well_name,
84 const std::vector<data::Rates::opt>& phs,
85 const data::Well& rst_well,
86 SingleWellState<Scalar>& ws) const;
87
89 void loadRestartWellData(const std::string& well_name,
90 const bool handle_ms_well,
91 const std::vector<data::Rates::opt>& phs,
92 const data::Well& rst_well,
93 const std::vector<PerforationData>& old_perf_data,
94 SingleWellState<Scalar>& ws) const;
95
97 void loadRestartGroupData(const std::string& group,
98 const data::GroupData& value,
99 GroupState<Scalar>& grpState) const;
100
101 const BlackoilWellModelGeneric<Scalar>& wellModel_;
102};
103
104
105} // namespace Opm
106
107#endif
Class for handling the blackoil well model.
Definition: BlackoilWellModelGeneric.hpp:83
Class for restarting the blackoil well model.
Definition: BlackoilWellModelRestart.hpp:49
void loadRestartData(const data::Wells &rst_wells, const data::GroupAndNetworkValues &grpNwrkValues, const bool handle_ms_well, WellState< Scalar > &well_state, GroupState< Scalar > &grpState) const
Loads well data from restart structures.
void loadRestartGuideRates(const int report_step, const GuideRateModel::Target target, const data::Wells &rst_wells, GuideRate &guide_rate) const
Loads guide rates from restart structures.
void loadRestartGuideRates(const int report_step, const GuideRateConfig &config, const std::map< std::string, data::GroupData > &rst_groups, GuideRate &guide_rate) const
Loads guide rates from restart structures.
BlackoilWellModelRestart(const BlackoilWellModelGeneric< Scalar > &wellModel)
Constructor initializes reference to the well model.
Definition: BlackoilWellModelRestart.hpp:52
Definition: GroupState.hpp:35
Definition: SingleWellState.hpp:41
Definition: WellState.hpp:62
Definition: BlackoilPhases.hpp:27