19 #ifndef OPM_IO_ERST_HPP
20 #define OPM_IO_ERST_HPP
22 #include <opm/io/eclipse/EclFile.hpp>
27 #include <unordered_map>
31 namespace Opm {
namespace EclIO {
namespace OutputStream {
35 namespace Opm {
namespace EclIO {
40 explicit ERst(
const std::string& filename);
42 bool hasReportStepNumber(
int number)
const;
43 bool hasLGR(
const std::string& gridname,
int reportStepNumber)
const;
45 void loadReportStepNumber(
int number);
48 const std::vector<T>& getRestartData(
const std::string& name,
int reportStepNumber)
50 return getRestartData<T>(name,reportStepNumber, 0);
54 const std::vector<T>& getRestartData(
const std::string& name,
int reportStepNumber,
int occurrence);
57 const std::vector<T>& getRestartData(
int index,
int reportStepNumber)
59 auto indRange = this->getIndexRange(reportStepNumber);
60 return this->get<T>(index + std::get<0>(indRange));
64 const std::vector<T>& getRestartData(
const std::string& name,
int reportStepNumber,
const std::string& lgr_name);
67 const std::vector<T>& getRestartData(
int index,
int reportStepNumber,
const std::string& lgr_name);
69 int occurrence_count(
const std::string& name,
int reportStepNumber)
const;
70 size_t numberOfReportSteps()
const {
return seqnum.size(); };
72 const std::vector<int>& listOfReportStepNumbers()
const {
return seqnum; }
74 std::vector<EclEntry> listOfRstArrays(
int reportStepNumber);
75 std::vector<EclEntry> listOfRstArrays(
int reportStepNumber,
const std::string& lgr_name);
81 std::vector<int> seqnum;
82 mutable std::unordered_map<int,bool> reportLoaded;
83 std::map<int, std::pair<int,int>> arrIndexRange;
84 std::vector<std::vector<std::string>> lgr_names;
87 void initSeparate(
const int number);
89 int get_start_index_lgrname(
int number,
const std::string& lgr_name);
91 int getArrayIndex(
const std::string& name,
int seqnum,
int occurrence);
92 int getArrayIndex(
const std::string& name,
int number,
const std::string& lgr_name);
94 std::tuple<int,int> getIndexRange(
int reportStepNumber)
const;
97 restartStepWritePosition(
const int seqnumValue)
const;
Definition: EclFile.hpp:35
File manager for restart output streams.
Definition: OutputStream.hpp:136
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29