24 #include <unordered_map>
27 #include <opm/io/eclipse/rst/aquifer.hpp>
28 #include <opm/io/eclipse/rst/action.hpp>
29 #include <opm/io/eclipse/rst/group.hpp>
30 #include <opm/io/eclipse/rst/header.hpp>
31 #include <opm/io/eclipse/rst/network.hpp>
32 #include <opm/io/eclipse/rst/udq.hpp>
33 #include <opm/io/eclipse/rst/well.hpp>
35 #include <opm/input/eclipse/EclipseState/Runspec.hpp>
36 #include <opm/input/eclipse/Schedule/Tuning.hpp>
38 #include <opm/input/eclipse/Units/UnitSystem.hpp>
45 namespace Opm {
namespace EclIO {
46 class RestartFileView;
49 namespace Opm {
namespace RestartIO {
52 RstState(std::shared_ptr<EclIO::RestartFileView> rstView,
54 const ::Opm::EclipseGrid* grid);
56 static RstState load(std::shared_ptr<EclIO::RestartFileView> rstView,
59 const ::Opm::EclipseGrid* grid =
nullptr);
61 const RstWell& get_well(
const std::string& wname)
const;
67 std::vector<RstWell> wells;
68 std::vector<RstGroup> groups;
69 std::vector<RstUDQ> udqs;
71 std::vector<RstAction> actions;
73 std::unordered_map<std::string, std::vector<std::string>> wlists;
76 void load_tuning(
const std::vector<int>& intehead,
77 const std::vector<double>& doubhead);
79 void add_groups(
const std::vector<std::string>& zgrp,
80 const std::vector<int>& igrp,
81 const std::vector<float>& sgrp,
82 const std::vector<double>& xgrp);
84 void add_wells(
const std::vector<std::string>& zwel,
85 const std::vector<int>& iwel,
86 const std::vector<float>& swel,
87 const std::vector<double>& xwel,
88 const std::vector<int>& icon,
89 const std::vector<float>& scon,
90 const std::vector<double>& xcon);
92 void add_msw(
const std::vector<std::string>& zwel,
93 const std::vector<int>& iwel,
94 const std::vector<float>& swel,
95 const std::vector<double>& xwel,
96 const std::vector<int>& icon,
97 const std::vector<float>& scon,
98 const std::vector<double>& xcon,
99 const std::vector<int>& iseg,
100 const std::vector<double>& rseg);
102 void add_udqs(
const std::vector<int>& iudq,
103 const std::vector<std::string>& zudn,
104 const std::vector<std::string>& zudl,
105 const std::vector<double>& dudw,
106 const std::vector<double>& dudg,
107 const std::vector<double>& dudf);
109 void add_actions(
const Parser& parser,
111 std::time_t sim_time,
112 const std::vector<std::string>& zact,
113 const std::vector<int>& iact,
114 const std::vector<float>& sact,
115 const std::vector<std::string>& zacn,
116 const std::vector<int>& iacn,
117 const std::vector<double>& sacn,
118 const std::vector<std::string>& zlact);
120 void add_wlist(
const std::vector<std::string>& zwls,
121 const std::vector<int>& iwls);
The hub of the parsing process.
Definition: Parser.hpp:59
Definition: aquifer.hpp:45
Definition: network.hpp:39
Definition: Runspec.hpp:439
Definition: UnitSystem.hpp:34
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29
Definition: Tuning.hpp:46