opm-simulators
BlackoilWellModelRestart.hpp
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 
31 namespace Opm {
32 
33 template<typename Scalar, typename IndexTraits> class BlackoilWellModelGeneric;
34 namespace data {
35 struct GroupData;
36 class GroupAndNetworkValues;
37 }
38 template<class Scalar> class GroupState;
39 class GuideRate;
40 class GuideRateConfig;
41 template<class Scalar> struct PerforationData;
42 template<typename Scalar, typename IndexTraits> class SingleWellState;
43 template<typename Scalar, typename IndexTraits> class WellState;
44 
46 template<typename Scalar, typename IndexTraits>
48 {
49 public:
52  : wellModel_(wellModel)
53  {}
54 
56  void loadRestartGuideRates(const int report_step,
57  const GuideRateModel::Target target,
58  const data::Wells& rst_wells,
59  GuideRate& guide_rate) const;
60 
62  void loadRestartGuideRates(const int report_step,
63  const GuideRateConfig& config,
64  const std::map<std::string, data::GroupData>& rst_groups,
65  GuideRate& guide_rate) const;
66 
68  void loadRestartData(const data::Wells& rst_wells,
69  const data::GroupAndNetworkValues& grpNwrkValues,
70  const bool handle_ms_well,
72  GroupState<Scalar>& grpState) const;
73 
74 private:
76  void loadRestartConnectionData(const std::vector<data::Rates::opt>& phs,
77  const data::Well& rst_well,
78  const std::vector<PerforationData<Scalar>>& old_perf_data,
80 
82  void loadRestartSegmentData(const std::string& well_name,
83  const std::vector<data::Rates::opt>& phs,
84  const data::Well& rst_well,
86 
88  void loadRestartWellData(const std::string& well_name,
89  const bool handle_ms_well,
90  const std::vector<data::Rates::opt>& phs,
91  const data::Well& rst_well,
92  const std::vector<PerforationData<Scalar>>& old_perf_data,
94 
96  void loadRestartGroupData(const std::string& group,
97  const data::GroupData& value,
98  GroupState<Scalar>& grpState) const;
99 
101 };
102 
103 
104 } // namespace Opm
105 
106 #endif
Class for handling the blackoil well model.
Definition: ActionHandler.hpp:39
void loadRestartData(const data::Wells &rst_wells, const data::GroupAndNetworkValues &grpNwrkValues, const bool handle_ms_well, WellState< Scalar, IndexTraits > &well_state, GroupState< Scalar > &grpState) const
Loads well data from restart structures.
Definition: BlackoilWellModelRestart.cpp:234
BlackoilWellModelRestart(const BlackoilWellModelGeneric< Scalar, IndexTraits > &wellModel)
Constructor initializes reference to the well model.
Definition: BlackoilWellModelRestart.hpp:51
Definition: BlackoilWellModelConstraints.hpp:34
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: blackoilbioeffectsmodules.hh:45
Class for restarting the blackoil well model.
Definition: BlackoilWellModelRestart.hpp:47
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.
Definition: BlackoilWellModelRestart.cpp:191
Static data associated with a well perforation.
Definition: BlackoilWellModelRestart.hpp:41
Definition: BlackoilWellModelRestart.hpp:42
The state of a set of wells, tailored for use by the fully implicit blackoil simulator.
Definition: TemperatureModel.hpp:61