20 #ifndef OPM_PARSER_ECLIPSE_ECLIPSESTATE_TABLES_VFPPRODTABLE_HPP_ 21 #define OPM_PARSER_ECLIPSE_ECLIPSESTATE_TABLES_VFPPRODTABLE_HPP_ 23 #include <opm/common/OpmLog/KeywordLocation.hpp> 25 #include <opm/input/eclipse/Units/Dimension.hpp> 84 const std::vector<double>& flo_data,
85 const std::vector<double>& thp_data,
86 const std::vector<double>& wfr_data,
87 const std::vector<double>& gfr_data,
88 const std::vector<double>& alq_data,
89 const std::vector<double>& data);
93 static std::pair<int, ALQ_TYPE>
94 getALQType(
const DeckKeyword& inputTable,
bool gaslift_opt_active);
98 inline int getTableNum()
const {
103 return this->m_location;
107 inline int name()
const {
111 inline double getDatumDepth()
const {
112 return m_datum_depth;
115 inline FLO_TYPE getFloType()
const {
119 inline WFR_TYPE getWFRType()
const {
123 inline GFR_TYPE getGFRType()
const {
127 inline ALQ_TYPE getALQType()
const {
131 inline const std::vector<double>& getFloAxis()
const {
135 inline const std::vector<double>& getTHPAxis()
const {
139 inline const std::vector<double>& getWFRAxis()
const {
143 inline const std::vector<double>& getGFRAxis()
const {
147 inline const std::vector<double>& getALQAxis()
const {
165 inline const std::vector<double>&
getTable()
const {
171 std::array<std::size_t,5> shape()
const;
173 double operator()(std::size_t thp_idx, std::size_t wfr_idx, std::size_t gfr_idx, std::size_t alq_idx, std::size_t flo_idx)
const;
175 template<
class Serializer>
178 serializer(m_table_num);
179 serializer(m_datum_depth);
180 serializer(m_flo_type);
181 serializer(m_wfr_type);
182 serializer(m_gfr_type);
183 serializer(m_alq_type);
184 serializer(m_flo_data);
185 serializer(m_thp_data);
186 serializer(m_wfr_data);
187 serializer(m_gfr_data);
188 serializer(m_alq_data);
190 serializer(m_location);
195 double m_datum_depth{};
196 FLO_TYPE m_flo_type{};
197 WFR_TYPE m_wfr_type{};
198 GFR_TYPE m_gfr_type{};
199 ALQ_TYPE m_alq_type{};
201 std::vector<double> m_flo_data{};
202 std::vector<double> m_thp_data{};
203 std::vector<double> m_wfr_data{};
204 std::vector<double> m_gfr_data{};
205 std::vector<double> m_alq_data{};
207 std::vector<double> m_data{};
208 KeywordLocation m_location{};
212 double& mutableData(std::size_t thp_idx, std::size_t wfr_idx, std::size_t gfr_idx, std::size_t alq_idx, std::size_t flo_idx);
214 static void scaleValues(std::vector<double>& values,
215 const double& scaling_factor);
217 static void convertFloToSI(
const FLO_TYPE& type,
218 std::vector<double>& values,
219 const UnitSystem& unit_system);
220 static void convertTHPToSI(std::vector<double>& values,
221 const UnitSystem& unit_system);
222 static void convertWFRToSI(
const WFR_TYPE& type,
223 std::vector<double>& values,
224 const UnitSystem& unit_system);
225 static void convertGFRToSI(
const GFR_TYPE& type,
226 std::vector<double>& values,
227 const UnitSystem& unit_system);
228 static void convertAlqToSI(
const ALQ_TYPE& type,
229 std::vector<double>& values,
230 const UnitSystem& unit_system);
235 #endif // OPM_PARSER_ECLIPSE_ECLIPSESTATE_TABLES_VFPPRODTABLE_HPP_ Definition: KeywordLocation.hpp:27
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:30
const std::vector< double > & getTable() const
Returns the data of the table itself.
Definition: VFPProdTable.hpp:165
Class for reading data from a VFPPROD (vertical flow performance production) table.
Definition: VFPProdTable.hpp:45
Definition: UnitSystem.hpp:34
Class for (de-)serializing.
Definition: Serializer.hpp:95
Definition: Dimension.hpp:27
Definition: DeckKeyword.hpp:38