From 0d1075daee854cab6206a057c4fd79a6277da62f Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Mon, 13 Jun 2022 15:02:40 +0200 Subject: [PATCH] changed: pass table ID into SimpleTable constructors use this to improve logging in case of failure --- .../EclipseState/Tables/AqutabTable.hpp | 2 +- .../EclipseState/Tables/EnkrvdTable.hpp | 2 +- .../EclipseState/Tables/EnptvdTable.hpp | 2 +- .../EclipseState/Tables/FoamadsTable.hpp | 2 +- .../EclipseState/Tables/FoammobTable.hpp | 2 +- .../EclipseState/Tables/ImkrvdTable.hpp | 2 +- .../EclipseState/Tables/ImptvdTable.hpp | 2 +- .../eclipse/EclipseState/Tables/MiscTable.hpp | 2 +- .../eclipse/EclipseState/Tables/MsfnTable.hpp | 2 +- .../EclipseState/Tables/OilvisctTable.hpp | 2 +- .../EclipseState/Tables/OverburdTable.hpp | 2 +- .../eclipse/EclipseState/Tables/PbvdTable.hpp | 2 +- .../eclipse/EclipseState/Tables/PdvdTable.hpp | 2 +- .../EclipseState/Tables/PermfactTable.hpp | 2 +- .../EclipseState/Tables/PlyadsTable.hpp | 2 +- .../EclipseState/Tables/PlydhflfTable.hpp | 2 +- .../EclipseState/Tables/PlyviscTable.hpp | 2 +- .../EclipseState/Tables/PmiscTable.hpp | 2 +- .../eclipse/EclipseState/Tables/PvdgTable.hpp | 2 +- .../eclipse/EclipseState/Tables/PvdoTable.hpp | 2 +- .../eclipse/EclipseState/Tables/PvdsTable.hpp | 2 +- .../EclipseState/Tables/RocktabTable.hpp | 3 +- .../EclipseState/Tables/RockwnodTable.hpp | 2 +- .../eclipse/EclipseState/Tables/RsvdTable.hpp | 2 +- .../EclipseState/Tables/RtempvdTable.hpp | 2 +- .../eclipse/EclipseState/Tables/RvvdTable.hpp | 2 +- .../Tables/SaltSolubilityTable.hpp | 2 +- .../EclipseState/Tables/SaltpvdTable.hpp | 2 +- .../EclipseState/Tables/SaltvdTable.hpp | 2 +- .../EclipseState/Tables/SgcwmisTable.hpp | 2 +- .../eclipse/EclipseState/Tables/SgfnTable.hpp | 2 +- .../eclipse/EclipseState/Tables/SgofTable.hpp | 2 +- .../EclipseState/Tables/SgwfnTable.hpp | 2 +- .../EclipseState/Tables/SimpleTable.hpp | 7 +- .../EclipseState/Tables/SlgofTable.hpp | 2 +- .../eclipse/EclipseState/Tables/Sof2Table.hpp | 2 +- .../eclipse/EclipseState/Tables/Sof3Table.hpp | 2 +- .../EclipseState/Tables/SorwmisTable.hpp | 2 +- .../EclipseState/Tables/SpecheatTable.hpp | 2 +- .../EclipseState/Tables/SpecrockTable.hpp | 2 +- .../eclipse/EclipseState/Tables/SsfnTable.hpp | 2 +- .../eclipse/EclipseState/Tables/SwfnTable.hpp | 2 +- .../eclipse/EclipseState/Tables/SwofTable.hpp | 2 +- .../EclipseState/Tables/TlpmixpaTable.hpp | 2 +- .../EclipseState/Tables/TracerVdTable.hpp | 2 +- .../EclipseState/Tables/WatvisctTable.hpp | 2 +- .../eclipse/EclipseState/Tables/PvtxTable.cpp | 2 +- .../EclipseState/Tables/SimpleTable.cpp | 14 +- .../EclipseState/Tables/TableManager.cpp | 6 +- .../eclipse/EclipseState/Tables/Tables.cpp | 183 +++++++++--------- .../eclipse/EclipseState/TracerConfig.cpp | 7 +- tests/parser/TableContainerTests.cpp | 2 +- tests/parser/TableManagerTests.cpp | 38 ++-- tests/parser/integration/ParseKEYWORD.cpp | 28 +-- 54 files changed, 194 insertions(+), 184 deletions(-) diff --git a/opm/input/eclipse/EclipseState/Tables/AqutabTable.hpp b/opm/input/eclipse/EclipseState/Tables/AqutabTable.hpp index bf2b74509..61c7e3120 100644 --- a/opm/input/eclipse/EclipseState/Tables/AqutabTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/AqutabTable.hpp @@ -27,7 +27,7 @@ namespace Opm { class AqutabTable : public SimpleTable { public: - AqutabTable( const DeckItem& item ); + AqutabTable( const DeckItem& item, const int tableID ); const TableColumn& getTimeColumn() const; const TableColumn& getPressureColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/EnkrvdTable.hpp b/opm/input/eclipse/EclipseState/Tables/EnkrvdTable.hpp index d3163d031..6d19f7461 100644 --- a/opm/input/eclipse/EclipseState/Tables/EnkrvdTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/EnkrvdTable.hpp @@ -28,7 +28,7 @@ namespace Opm { class EnkrvdTable : public SimpleTable { public: - EnkrvdTable( const DeckItem& item ); + EnkrvdTable( const DeckItem& item, const int tableID ); // using this method is strongly discouraged but the current endpoint scaling diff --git a/opm/input/eclipse/EclipseState/Tables/EnptvdTable.hpp b/opm/input/eclipse/EclipseState/Tables/EnptvdTable.hpp index d45c61b5a..723bca81f 100644 --- a/opm/input/eclipse/EclipseState/Tables/EnptvdTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/EnptvdTable.hpp @@ -27,7 +27,7 @@ namespace Opm { class EnptvdTable : public SimpleTable { public: - EnptvdTable( const DeckItem& item ); + EnptvdTable( const DeckItem& item, const int tableID ); // using this method is strongly discouraged but the current endpoint scaling // code makes it hard to avoid diff --git a/opm/input/eclipse/EclipseState/Tables/FoamadsTable.hpp b/opm/input/eclipse/EclipseState/Tables/FoamadsTable.hpp index 25fc93929..c5da361d6 100644 --- a/opm/input/eclipse/EclipseState/Tables/FoamadsTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/FoamadsTable.hpp @@ -28,7 +28,7 @@ namespace Opm { class FoamadsTable : public SimpleTable { public: - FoamadsTable( const DeckItem& item ); + FoamadsTable( const DeckItem& item, const int tableID ); const TableColumn& getFoamConcentrationColumn() const; const TableColumn& getAdsorbedFoamColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/FoammobTable.hpp b/opm/input/eclipse/EclipseState/Tables/FoammobTable.hpp index fcc256e96..51cf8efd6 100644 --- a/opm/input/eclipse/EclipseState/Tables/FoammobTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/FoammobTable.hpp @@ -29,7 +29,7 @@ namespace Opm { class FoammobTable : public SimpleTable { public: - FoammobTable( const DeckItem& item ); + FoammobTable( const DeckItem& item, const int tableID ); const TableColumn& getFoamConcentrationColumn() const; const TableColumn& getMobilityMultiplierColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/ImkrvdTable.hpp b/opm/input/eclipse/EclipseState/Tables/ImkrvdTable.hpp index c40b2a7b0..8023238f0 100644 --- a/opm/input/eclipse/EclipseState/Tables/ImkrvdTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/ImkrvdTable.hpp @@ -27,7 +27,7 @@ namespace Opm { class ImkrvdTable : public SimpleTable { public: - ImkrvdTable( const DeckItem& item ); + ImkrvdTable( const DeckItem& item, const int tableID ); /*! * \brief The datum depth for the remaining columns diff --git a/opm/input/eclipse/EclipseState/Tables/ImptvdTable.hpp b/opm/input/eclipse/EclipseState/Tables/ImptvdTable.hpp index 707816b4f..b2ce264a3 100644 --- a/opm/input/eclipse/EclipseState/Tables/ImptvdTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/ImptvdTable.hpp @@ -29,7 +29,7 @@ namespace Opm { class ImptvdTable : public SimpleTable { public: - ImptvdTable( const DeckItem& item ); + ImptvdTable( const DeckItem& item, const int tableID ); const TableColumn& getDepthColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/MiscTable.hpp b/opm/input/eclipse/EclipseState/Tables/MiscTable.hpp index 6facfa800..ce3c478a3 100644 --- a/opm/input/eclipse/EclipseState/Tables/MiscTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/MiscTable.hpp @@ -28,7 +28,7 @@ namespace Opm { class MiscTable : public SimpleTable { public: - explicit MiscTable( const DeckItem& item ); + MiscTable( const DeckItem& item, const int tableID ); const TableColumn& getSolventFractionColumn() const; const TableColumn& getMiscibilityColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/MsfnTable.hpp b/opm/input/eclipse/EclipseState/Tables/MsfnTable.hpp index e2e57ada4..00e8ec69d 100644 --- a/opm/input/eclipse/EclipseState/Tables/MsfnTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/MsfnTable.hpp @@ -28,7 +28,7 @@ namespace Opm { class MsfnTable : public SimpleTable { public: - explicit MsfnTable( const DeckItem& item ); + MsfnTable( const DeckItem& item, const int tableID ); const TableColumn& getGasPhaseFractionColumn() const; const TableColumn& getGasSolventRelpermMultiplierColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/OilvisctTable.hpp b/opm/input/eclipse/EclipseState/Tables/OilvisctTable.hpp index 2f7d73848..ee0030915 100644 --- a/opm/input/eclipse/EclipseState/Tables/OilvisctTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/OilvisctTable.hpp @@ -27,7 +27,7 @@ namespace Opm { class OilvisctTable : public SimpleTable { public: - OilvisctTable( const DeckItem& item ); + OilvisctTable( const DeckItem& item, const int tableID ); const TableColumn& getTemperatureColumn() const; const TableColumn& getOilViscosityColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/OverburdTable.hpp b/opm/input/eclipse/EclipseState/Tables/OverburdTable.hpp index 3e48191b3..1fa43f4b7 100644 --- a/opm/input/eclipse/EclipseState/Tables/OverburdTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/OverburdTable.hpp @@ -27,7 +27,7 @@ namespace Opm { class OverburdTable : public SimpleTable { public: - OverburdTable( const DeckItem& item ); + OverburdTable( const DeckItem& item, const int tableID ); const TableColumn& getDepthColumn() const; const TableColumn& getOverburdenPressureColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/PbvdTable.hpp b/opm/input/eclipse/EclipseState/Tables/PbvdTable.hpp index a0f6d7c64..fc583f0b6 100644 --- a/opm/input/eclipse/EclipseState/Tables/PbvdTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/PbvdTable.hpp @@ -27,7 +27,7 @@ namespace Opm { class PbvdTable : public SimpleTable { public: - PbvdTable( const DeckItem& item ); + PbvdTable( const DeckItem& item, const int tableID ); const TableColumn& getDepthColumn() const; const TableColumn& getPbubColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/PdvdTable.hpp b/opm/input/eclipse/EclipseState/Tables/PdvdTable.hpp index dfce28941..2a5a8122d 100644 --- a/opm/input/eclipse/EclipseState/Tables/PdvdTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/PdvdTable.hpp @@ -27,7 +27,7 @@ namespace Opm { class PdvdTable : public SimpleTable { public: - PdvdTable( const DeckItem& item ); + PdvdTable( const DeckItem& item, const int tableID ); const TableColumn& getDepthColumn() const; const TableColumn& getPdewColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/PermfactTable.hpp b/opm/input/eclipse/EclipseState/Tables/PermfactTable.hpp index 3ac9f6416..047741939 100644 --- a/opm/input/eclipse/EclipseState/Tables/PermfactTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/PermfactTable.hpp @@ -28,7 +28,7 @@ namespace Opm { class PermfactTable : public SimpleTable { public: - PermfactTable( const DeckItem& item ); + PermfactTable( const DeckItem& item, const int tableID ); const TableColumn& getPorosityChangeColumn() const; const TableColumn& getPermeabilityMultiplierColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/PlyadsTable.hpp b/opm/input/eclipse/EclipseState/Tables/PlyadsTable.hpp index 0c9b9dc34..9450b9ff3 100644 --- a/opm/input/eclipse/EclipseState/Tables/PlyadsTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/PlyadsTable.hpp @@ -27,7 +27,7 @@ namespace Opm { class PlyadsTable : public SimpleTable { public: - PlyadsTable( const DeckItem& item ); + PlyadsTable( const DeckItem& item, const int tableID ); const TableColumn& getPolymerConcentrationColumn() const; const TableColumn& getAdsorbedPolymerColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/PlydhflfTable.hpp b/opm/input/eclipse/EclipseState/Tables/PlydhflfTable.hpp index 37efd2b9d..ae945c0e0 100644 --- a/opm/input/eclipse/EclipseState/Tables/PlydhflfTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/PlydhflfTable.hpp @@ -28,7 +28,7 @@ namespace Opm { class PlydhflfTable : public SimpleTable { public: - PlydhflfTable( const DeckItem& item ); + PlydhflfTable( const DeckItem& item, const int tableID ); const TableColumn& getTemperatureColumn() const; const TableColumn& getPolymerHalflifeColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/PlyviscTable.hpp b/opm/input/eclipse/EclipseState/Tables/PlyviscTable.hpp index df5f34a37..2ba8b70bc 100644 --- a/opm/input/eclipse/EclipseState/Tables/PlyviscTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/PlyviscTable.hpp @@ -27,7 +27,7 @@ namespace Opm { class PlyviscTable : public SimpleTable { public: - PlyviscTable( const DeckItem& item ); + PlyviscTable( const DeckItem& item, const int tableID ); const TableColumn& getPolymerConcentrationColumn() const; const TableColumn& getViscosityMultiplierColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/PmiscTable.hpp b/opm/input/eclipse/EclipseState/Tables/PmiscTable.hpp index e977b9e94..f871640c6 100644 --- a/opm/input/eclipse/EclipseState/Tables/PmiscTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/PmiscTable.hpp @@ -29,7 +29,7 @@ namespace Opm { class PmiscTable : public SimpleTable { public: - explicit PmiscTable( const DeckItem& item ); + PmiscTable( const DeckItem& item, const int tableID ); const TableColumn& getOilPhasePressureColumn() const; const TableColumn& getMiscibilityColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/PvdgTable.hpp b/opm/input/eclipse/EclipseState/Tables/PvdgTable.hpp index 996eb43a4..22083b71c 100644 --- a/opm/input/eclipse/EclipseState/Tables/PvdgTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/PvdgTable.hpp @@ -27,7 +27,7 @@ namespace Opm { class PvdgTable : public SimpleTable { public: - PvdgTable( const DeckItem& item ); + PvdgTable( const DeckItem& item, const int tableID ); const TableColumn& getPressureColumn() const; const TableColumn& getFormationFactorColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/PvdoTable.hpp b/opm/input/eclipse/EclipseState/Tables/PvdoTable.hpp index d046c493f..fb96ae312 100644 --- a/opm/input/eclipse/EclipseState/Tables/PvdoTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/PvdoTable.hpp @@ -28,7 +28,7 @@ namespace Opm { class PvdoTable : public SimpleTable { public: - PvdoTable( const DeckItem& item ); + PvdoTable( const DeckItem& item, const int tableID ); const TableColumn& getPressureColumn() const; const TableColumn& getFormationFactorColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/PvdsTable.hpp b/opm/input/eclipse/EclipseState/Tables/PvdsTable.hpp index 2fcf096c5..cdea57fab 100644 --- a/opm/input/eclipse/EclipseState/Tables/PvdsTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/PvdsTable.hpp @@ -28,7 +28,7 @@ namespace Opm { class PvdsTable : public SimpleTable { public: - PvdsTable( const DeckItem& item ); + PvdsTable( const DeckItem& item, const int tableID ); const TableColumn& getPressureColumn() const; const TableColumn& getFormationFactorColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/RocktabTable.hpp b/opm/input/eclipse/EclipseState/Tables/RocktabTable.hpp index 7afd90b19..5b058d0ae 100644 --- a/opm/input/eclipse/EclipseState/Tables/RocktabTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/RocktabTable.hpp @@ -30,7 +30,8 @@ namespace Opm { RocktabTable() = default; RocktabTable(const DeckItem& item, bool isDirectional, - bool hasStressOption); + bool hasStressOption, + const int tableID); static RocktabTable serializeObject(); diff --git a/opm/input/eclipse/EclipseState/Tables/RockwnodTable.hpp b/opm/input/eclipse/EclipseState/Tables/RockwnodTable.hpp index a80409add..5ce13af05 100644 --- a/opm/input/eclipse/EclipseState/Tables/RockwnodTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/RockwnodTable.hpp @@ -27,7 +27,7 @@ namespace Opm { class RockwnodTable : public SimpleTable { public: - RockwnodTable( const DeckItem& item ); + RockwnodTable( const DeckItem& item, const int tableID ); const TableColumn& getSaturationColumn() const; }; diff --git a/opm/input/eclipse/EclipseState/Tables/RsvdTable.hpp b/opm/input/eclipse/EclipseState/Tables/RsvdTable.hpp index 4ddc23e72..fe8916b64 100644 --- a/opm/input/eclipse/EclipseState/Tables/RsvdTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/RsvdTable.hpp @@ -27,7 +27,7 @@ namespace Opm { class RsvdTable : public SimpleTable { public: - RsvdTable( const DeckItem& item ); + RsvdTable( const DeckItem& item, const int tableID ); const TableColumn& getDepthColumn() const; const TableColumn& getRsColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/RtempvdTable.hpp b/opm/input/eclipse/EclipseState/Tables/RtempvdTable.hpp index d442925e4..dd6eff7d1 100644 --- a/opm/input/eclipse/EclipseState/Tables/RtempvdTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/RtempvdTable.hpp @@ -27,7 +27,7 @@ namespace Opm { class RtempvdTable : public SimpleTable { public: - RtempvdTable( const DeckItem& item ); + RtempvdTable( const DeckItem& item, const int tableID ); const TableColumn& getDepthColumn() const; const TableColumn& getTemperatureColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/RvvdTable.hpp b/opm/input/eclipse/EclipseState/Tables/RvvdTable.hpp index 717920990..642c69731 100644 --- a/opm/input/eclipse/EclipseState/Tables/RvvdTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/RvvdTable.hpp @@ -27,7 +27,7 @@ namespace Opm { class RvvdTable : public SimpleTable { public: - RvvdTable( const DeckItem& item ); + RvvdTable( const DeckItem& item, const int tableID ); const TableColumn& getDepthColumn() const; const TableColumn& getRvColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/SaltSolubilityTable.hpp b/opm/input/eclipse/EclipseState/Tables/SaltSolubilityTable.hpp index 36faf396c..29eb043cf 100644 --- a/opm/input/eclipse/EclipseState/Tables/SaltSolubilityTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/SaltSolubilityTable.hpp @@ -27,7 +27,7 @@ class DeckItem; class SaltsolTable : public SimpleTable { public: - SaltsolTable( const DeckItem& item ); + SaltsolTable( const DeckItem& item, const int tableID ); const TableColumn& getSaltsolColumn() const; }; diff --git a/opm/input/eclipse/EclipseState/Tables/SaltpvdTable.hpp b/opm/input/eclipse/EclipseState/Tables/SaltpvdTable.hpp index 32cbcb5b6..c41cbe3dd 100644 --- a/opm/input/eclipse/EclipseState/Tables/SaltpvdTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/SaltpvdTable.hpp @@ -28,7 +28,7 @@ namespace Opm { class SaltpvdTable : public SimpleTable { public: - SaltpvdTable( const DeckItem& item ); + SaltpvdTable( const DeckItem& item, const int tableID ); const TableColumn& getDepthColumn() const; const TableColumn& getSaltpColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/SaltvdTable.hpp b/opm/input/eclipse/EclipseState/Tables/SaltvdTable.hpp index 9a400f4b2..e23c5ed24 100644 --- a/opm/input/eclipse/EclipseState/Tables/SaltvdTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/SaltvdTable.hpp @@ -27,7 +27,7 @@ namespace Opm { class SaltvdTable : public SimpleTable { public: - SaltvdTable( const DeckItem& item ); + SaltvdTable( const DeckItem& item, const int tableID ); const TableColumn& getDepthColumn() const; const TableColumn& getSaltColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/SgcwmisTable.hpp b/opm/input/eclipse/EclipseState/Tables/SgcwmisTable.hpp index 26fa1ca57..fb88fa886 100644 --- a/opm/input/eclipse/EclipseState/Tables/SgcwmisTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/SgcwmisTable.hpp @@ -28,7 +28,7 @@ namespace Opm { class SgcwmisTable : public SimpleTable { public: - explicit SgcwmisTable( const DeckItem& item ); + SgcwmisTable( const DeckItem& item, const int tableID ); const TableColumn& getWaterSaturationColumn() const; const TableColumn& getMiscibleResidualGasColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/SgfnTable.hpp b/opm/input/eclipse/EclipseState/Tables/SgfnTable.hpp index bf46a0204..0ab09d332 100644 --- a/opm/input/eclipse/EclipseState/Tables/SgfnTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/SgfnTable.hpp @@ -28,7 +28,7 @@ namespace Opm { class SgfnTable : public SimpleTable { public: - SgfnTable( const DeckItem& item, const bool jfunc ); + SgfnTable( const DeckItem& item, const bool jfunc, const int tableID ); const TableColumn& getSgColumn() const; const TableColumn& getKrgColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/SgofTable.hpp b/opm/input/eclipse/EclipseState/Tables/SgofTable.hpp index a9a49e151..af37886ca 100644 --- a/opm/input/eclipse/EclipseState/Tables/SgofTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/SgofTable.hpp @@ -27,7 +27,7 @@ namespace Opm { class SgofTable : public SimpleTable { public: - SgofTable( const DeckItem& item, const bool jfunc ); + SgofTable( const DeckItem& item, const bool jfunc, const int tableID ); const TableColumn& getSgColumn() const; const TableColumn& getKrgColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/SgwfnTable.hpp b/opm/input/eclipse/EclipseState/Tables/SgwfnTable.hpp index ac47c018d..16e5f0a97 100644 --- a/opm/input/eclipse/EclipseState/Tables/SgwfnTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/SgwfnTable.hpp @@ -28,7 +28,7 @@ namespace Opm { class SgwfnTable : public SimpleTable { public: - SgwfnTable( const DeckItem& item ); + SgwfnTable( const DeckItem& item, const int tableID ); const TableColumn& getSgColumn() const; const TableColumn& getKrgColumn() const; const TableColumn& getKrgwColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/SimpleTable.hpp b/opm/input/eclipse/EclipseState/Tables/SimpleTable.hpp index c9c5c14e6..15aa7ca8b 100644 --- a/opm/input/eclipse/EclipseState/Tables/SimpleTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/SimpleTable.hpp @@ -36,7 +36,7 @@ namespace Opm { public: SimpleTable() = default; - SimpleTable(TableSchema, const DeckItem& deckItem); + SimpleTable(TableSchema, const DeckItem& deckItem, const int tableID); explicit SimpleTable( TableSchema ); static SimpleTable serializeObject(); @@ -44,8 +44,11 @@ namespace Opm { void addColumns(); //! \brief Initialize deck item. //! \param deckItem item to initialize + //! \param tableID Index for table to initialize //! \param scaling_factor If zero use SI value, else use value scaled by scaling factor - void init( const DeckItem& deckItem, double scaling_factor = 0.0); + void init( const DeckItem& deckItem, + const int tableID, + double scaling_factor = 0.0); size_t numColumns() const; size_t numRows() const; void addRow( const std::vector& row); diff --git a/opm/input/eclipse/EclipseState/Tables/SlgofTable.hpp b/opm/input/eclipse/EclipseState/Tables/SlgofTable.hpp index 17bdba33c..ee2cdb82f 100644 --- a/opm/input/eclipse/EclipseState/Tables/SlgofTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/SlgofTable.hpp @@ -28,7 +28,7 @@ namespace Opm { class SlgofTable : public SimpleTable { public: - SlgofTable( const DeckItem& item, const bool jfunc ); + SlgofTable( const DeckItem& item, const bool jfunc, const int tableID ); const TableColumn& getSlColumn() const; const TableColumn& getKrgColumn() const; const TableColumn& getKrogColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/Sof2Table.hpp b/opm/input/eclipse/EclipseState/Tables/Sof2Table.hpp index 9e6686ad8..92c31bb59 100644 --- a/opm/input/eclipse/EclipseState/Tables/Sof2Table.hpp +++ b/opm/input/eclipse/EclipseState/Tables/Sof2Table.hpp @@ -27,7 +27,7 @@ namespace Opm { class Sof2Table : public SimpleTable { public: - Sof2Table( const DeckItem& item ); + Sof2Table( const DeckItem& item, const int tableID ); const TableColumn& getSoColumn() const; const TableColumn& getKroColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/Sof3Table.hpp b/opm/input/eclipse/EclipseState/Tables/Sof3Table.hpp index e3e66a2e1..28885ffcf 100644 --- a/opm/input/eclipse/EclipseState/Tables/Sof3Table.hpp +++ b/opm/input/eclipse/EclipseState/Tables/Sof3Table.hpp @@ -27,7 +27,7 @@ namespace Opm { class Sof3Table : public SimpleTable { public: - Sof3Table( const DeckItem& item ); + Sof3Table( const DeckItem& item, const int tableID ); const TableColumn& getSoColumn() const; const TableColumn& getKrowColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/SorwmisTable.hpp b/opm/input/eclipse/EclipseState/Tables/SorwmisTable.hpp index c78b379bd..115e33d47 100644 --- a/opm/input/eclipse/EclipseState/Tables/SorwmisTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/SorwmisTable.hpp @@ -29,7 +29,7 @@ namespace Opm { class SorwmisTable : public SimpleTable { public: - explicit SorwmisTable( const DeckItem& item ); + SorwmisTable( const DeckItem& item, const int tableID ); const TableColumn& getWaterSaturationColumn() const; const TableColumn& getMiscibleResidualOilColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/SpecheatTable.hpp b/opm/input/eclipse/EclipseState/Tables/SpecheatTable.hpp index d36c365b5..32b8e9303 100644 --- a/opm/input/eclipse/EclipseState/Tables/SpecheatTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/SpecheatTable.hpp @@ -28,7 +28,7 @@ namespace Opm { // not for a way to cheat on the SPE test cases ;) class SpecheatTable : public SimpleTable { public: - SpecheatTable(const DeckItem& item); + SpecheatTable(const DeckItem& item, const int tableID); const TableColumn& getTemperatureColumn() const; const TableColumn& getCvOilColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/SpecrockTable.hpp b/opm/input/eclipse/EclipseState/Tables/SpecrockTable.hpp index 24d4c49ba..ce247f1d6 100644 --- a/opm/input/eclipse/EclipseState/Tables/SpecrockTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/SpecrockTable.hpp @@ -27,7 +27,7 @@ namespace Opm { // pore space. class SpecrockTable : public SimpleTable { public: - SpecrockTable(const DeckItem& item); + SpecrockTable(const DeckItem& item, const int tableID); const TableColumn& getTemperatureColumn() const; const TableColumn& getCvRockColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/SsfnTable.hpp b/opm/input/eclipse/EclipseState/Tables/SsfnTable.hpp index 8095bdd56..c3cec2619 100644 --- a/opm/input/eclipse/EclipseState/Tables/SsfnTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/SsfnTable.hpp @@ -28,7 +28,7 @@ namespace Opm { class SsfnTable : public SimpleTable { public: friend class TableManager; - SsfnTable( const DeckItem& item ); + SsfnTable( const DeckItem& item, const int tableID ); const TableColumn& getSolventFractionColumn() const; const TableColumn& getGasRelPermMultiplierColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/SwfnTable.hpp b/opm/input/eclipse/EclipseState/Tables/SwfnTable.hpp index ddebd87b6..99d4754d5 100644 --- a/opm/input/eclipse/EclipseState/Tables/SwfnTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/SwfnTable.hpp @@ -25,7 +25,7 @@ namespace Opm { class SwfnTable : public SimpleTable { public: - SwfnTable( const DeckItem& item, const bool jfunc ); + SwfnTable( const DeckItem& item, const bool jfunc, const int tableID ); const TableColumn& getSwColumn() const; const TableColumn& getKrwColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/SwofTable.hpp b/opm/input/eclipse/EclipseState/Tables/SwofTable.hpp index d68122a43..41eafc9dd 100644 --- a/opm/input/eclipse/EclipseState/Tables/SwofTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/SwofTable.hpp @@ -27,7 +27,7 @@ namespace Opm { class SwofTable : public SimpleTable { public: - SwofTable( const DeckItem& item, const bool jfunc ); + SwofTable( const DeckItem& item, const bool jfunc, const int tableID ); const TableColumn& getSwColumn() const; const TableColumn& getKrwColumn() const; const TableColumn& getKrowColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/TlpmixpaTable.hpp b/opm/input/eclipse/EclipseState/Tables/TlpmixpaTable.hpp index 1dd6fddab..7111afedf 100644 --- a/opm/input/eclipse/EclipseState/Tables/TlpmixpaTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/TlpmixpaTable.hpp @@ -28,7 +28,7 @@ namespace Opm { class TlpmixpaTable : public SimpleTable { public: - TlpmixpaTable( const DeckItem& item ); + TlpmixpaTable( const DeckItem& item, const int tableID ); const TableColumn& getOilPhasePressureColumn() const; const TableColumn& getMiscibilityColumn() const; diff --git a/opm/input/eclipse/EclipseState/Tables/TracerVdTable.hpp b/opm/input/eclipse/EclipseState/Tables/TracerVdTable.hpp index a75af67a0..ee9c178aa 100644 --- a/opm/input/eclipse/EclipseState/Tables/TracerVdTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/TracerVdTable.hpp @@ -35,7 +35,7 @@ class TracerVdTable : public SimpleTable { public: TracerVdTable() = default; - explicit TracerVdTable(const Opm::DeckItem& item, double inv_volume); + TracerVdTable(const Opm::DeckItem& item, double inv_volume, const int tableID); /*! * \brief Return the depth column diff --git a/opm/input/eclipse/EclipseState/Tables/WatvisctTable.hpp b/opm/input/eclipse/EclipseState/Tables/WatvisctTable.hpp index 944a7ba13..38157bc59 100644 --- a/opm/input/eclipse/EclipseState/Tables/WatvisctTable.hpp +++ b/opm/input/eclipse/EclipseState/Tables/WatvisctTable.hpp @@ -25,7 +25,7 @@ namespace Opm { class WatvisctTable : public SimpleTable { public: - WatvisctTable( const DeckItem& item ); + WatvisctTable( const DeckItem& item, const int tableID ); const TableColumn& getTemperatureColumn() const; const TableColumn& getWaterViscosityColumn() const; diff --git a/src/opm/input/eclipse/EclipseState/Tables/PvtxTable.cpp b/src/opm/input/eclipse/EclipseState/Tables/PvtxTable.cpp index e3b9b1c5c..e83b7c672 100644 --- a/src/opm/input/eclipse/EclipseState/Tables/PvtxTable.cpp +++ b/src/opm/input/eclipse/EclipseState/Tables/PvtxTable.cpp @@ -64,7 +64,7 @@ namespace Opm { m_outerColumn.addValue( deckRecord.getItem( 0 ).getSIDouble( 0 )); const auto& dataItem = deckRecord.getItem(1); - m_underSaturatedTables.emplace_back( this->m_underSaturatedSchema, dataItem ); + m_underSaturatedTables.emplace_back( this->m_underSaturatedSchema, dataItem, tableIdx ); } diff --git a/src/opm/input/eclipse/EclipseState/Tables/SimpleTable.cpp b/src/opm/input/eclipse/EclipseState/Tables/SimpleTable.cpp index 5d3b55e2e..abb5e9f8d 100644 --- a/src/opm/input/eclipse/EclipseState/Tables/SimpleTable.cpp +++ b/src/opm/input/eclipse/EclipseState/Tables/SimpleTable.cpp @@ -27,11 +27,12 @@ namespace Opm { - SimpleTable::SimpleTable( TableSchema schema, const DeckItem& deckItem) : + SimpleTable::SimpleTable( TableSchema schema, const DeckItem& deckItem, + const int tableID) : m_schema( std::move( schema ) ), m_jfunc (false) { - init( deckItem ); + init( deckItem, tableID ); } @@ -84,15 +85,18 @@ namespace Opm { return col[row]; } - void SimpleTable::init( const DeckItem& deckItem, double scaling_factor) { + void SimpleTable::init( const DeckItem& deckItem, + const int tableID, + double scaling_factor) { this->addColumns(); if ( (deckItem.data_size() % numColumns()) != 0) { throw std::runtime_error { - fmt::format("Number of input table elements ({}) is " + fmt::format("For table with ID {}: " + "Number of input table elements ({}) is " "not a multiple of table's specified number " "of columns ({})", - deckItem.data_size(), this->numColumns()) + tableID+1, deckItem.data_size(), this->numColumns()) }; } diff --git a/src/opm/input/eclipse/EclipseState/Tables/TableManager.cpp b/src/opm/input/eclipse/EclipseState/Tables/TableManager.cpp index 069ca1a12..75fe4c083 100644 --- a/src/opm/input/eclipse/EclipseState/Tables/TableManager.cpp +++ b/src/opm/input/eclipse/EclipseState/Tables/TableManager.cpp @@ -871,7 +871,7 @@ DensityTable make_density_table(const GravityTable& gravity) { const auto& tableRecord = rocktabKeyword.getRecord( tableIdx ); const auto& dataItem = tableRecord.getItem( 0 ); if (dataItem.data_size() > 0) { - std::shared_ptr table = std::make_shared( dataItem , isDirectional, useStressOption ); + std::shared_ptr table = std::make_shared( dataItem , isDirectional, useStressOption, tableIdx ); container.addTable( tableIdx , table ); } } @@ -1563,7 +1563,7 @@ DensityTable make_density_table(const GravityTable& gravity) { const auto& dataItem = tableKeyword.getRecord( tableIdx ).getItem("DATA"); if (dataItem.data_size() > 0) { try { - std::shared_ptr table = std::make_shared( dataItem, useJFunc() ); + std::shared_ptr table = std::make_shared( dataItem, useJFunc(), tableIdx ); container.addTable( tableIdx , table ); } catch (const std::runtime_error& err) { throw OpmInputError(err, tableKeyword.location()); @@ -1591,7 +1591,7 @@ DensityTable make_density_table(const GravityTable& gravity) { for (size_t tableIdx = 0; tableIdx < tableKeyword.size(); ++tableIdx) { const auto& dataItem = tableKeyword.getRecord( tableIdx ).getItem("DATA"); if (dataItem.data_size() > 0) { - std::shared_ptr table = std::make_shared( dataItem ); + std::shared_ptr table = std::make_shared( dataItem, tableIdx ); container.addTable( tableIdx , table ); } } diff --git a/src/opm/input/eclipse/EclipseState/Tables/Tables.cpp b/src/opm/input/eclipse/EclipseState/Tables/Tables.cpp index b3a862def..3a2c4b6db 100644 --- a/src/opm/input/eclipse/EclipseState/Tables/Tables.cpp +++ b/src/opm/input/eclipse/EclipseState/Tables/Tables.cpp @@ -255,14 +255,14 @@ bool PvtsolTable::operator==(const PvtsolTable& data) const { return static_cast(*this) == static_cast(data); } -SpecheatTable::SpecheatTable(const DeckItem& item) +SpecheatTable::SpecheatTable(const DeckItem& item, const int tableID) { m_schema.addColumn(ColumnSchema("TEMPERATURE", Table::STRICTLY_INCREASING, Table::DEFAULT_NONE)); m_schema.addColumn(ColumnSchema("CV_OIL", Table::RANDOM, Table::DEFAULT_LINEAR)); m_schema.addColumn(ColumnSchema("CV_WATER", Table::RANDOM, Table::DEFAULT_LINEAR)); m_schema.addColumn(ColumnSchema("CV_GAS", Table::RANDOM, Table::DEFAULT_LINEAR)); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& SpecheatTable::getTemperatureColumn() const @@ -277,12 +277,12 @@ const TableColumn& SpecheatTable::getCvWaterColumn() const const TableColumn& SpecheatTable::getCvGasColumn() const { return SimpleTable::getColumn(3); } -SpecrockTable::SpecrockTable(const DeckItem& item) +SpecrockTable::SpecrockTable(const DeckItem& item, const int tableID) { m_schema.addColumn(ColumnSchema("TEMPERATURE", Table::STRICTLY_INCREASING, Table::DEFAULT_NONE)); m_schema.addColumn(ColumnSchema("CV_ROCK", Table::RANDOM, Table::DEFAULT_LINEAR)); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& SpecrockTable::getTemperatureColumn() const @@ -291,7 +291,7 @@ const TableColumn& SpecrockTable::getTemperatureColumn() const const TableColumn& SpecrockTable::getCvRockColumn() const { return SimpleTable::getColumn(1); } -SwofTable::SwofTable( const DeckItem& item , const bool jfunc) { +SwofTable::SwofTable( const DeckItem& item , const bool jfunc, const int tableID) { m_schema.addColumn( ColumnSchema( "SW" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE) ); m_schema.addColumn( ColumnSchema( "KRW" , Table::RANDOM , Table::DEFAULT_LINEAR) ); @@ -299,7 +299,7 @@ SwofTable::SwofTable( const DeckItem& item , const bool jfunc) { m_schema.addColumn( ColumnSchema( "PCOW" , Table::RANDOM , Table::DEFAULT_LINEAR) ); m_jfunc = jfunc; - SimpleTable::init( item ); + SimpleTable::init( item, tableID ); } const TableColumn& SwofTable::getSwColumn() const { @@ -324,14 +324,14 @@ const TableColumn& SwofTable::getJFuncColumn() const { return SimpleTable::getColumn(3); } -SgwfnTable::SgwfnTable( const DeckItem& item ) { +SgwfnTable::SgwfnTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "SG" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE ) ); m_schema.addColumn( ColumnSchema( "KRG" , Table::RANDOM , Table::DEFAULT_LINEAR ) ); m_schema.addColumn( ColumnSchema( "KRGW" , Table::RANDOM , Table::DEFAULT_LINEAR ) ); m_schema.addColumn( ColumnSchema( "PCGW" , Table::RANDOM , Table::DEFAULT_LINEAR ) ); - SimpleTable::init( item ); + SimpleTable::init( item, tableID ); } const TableColumn& SgwfnTable::getSgColumn() const { @@ -350,14 +350,14 @@ const TableColumn& SgwfnTable::getPcgwColumn() const { return SimpleTable::getColumn(3); } -SgofTable::SgofTable( const DeckItem& item , const bool jfunc) { +SgofTable::SgofTable( const DeckItem& item , const bool jfunc, const int tableID ) { m_schema.addColumn( ColumnSchema("SG" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE)); m_schema.addColumn( ColumnSchema("KRG" , Table::RANDOM , Table::DEFAULT_LINEAR )); m_schema.addColumn( ColumnSchema("KROG" , Table::RANDOM , Table::DEFAULT_LINEAR )); m_schema.addColumn( ColumnSchema("PCOG" , Table::RANDOM , Table::DEFAULT_LINEAR )); m_jfunc = jfunc; - SimpleTable::init( item ); + SimpleTable::init( item, tableID ); } const TableColumn& SgofTable::getSgColumn() const { @@ -382,14 +382,14 @@ const TableColumn& SgofTable::getJFuncColumn() const { return SimpleTable::getColumn(3); } -SlgofTable::SlgofTable( const DeckItem& item, const bool jfunc ) { +SlgofTable::SlgofTable( const DeckItem& item, const bool jfunc, const int tableID ) { m_schema.addColumn( ColumnSchema("SL" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE )); m_schema.addColumn( ColumnSchema("KRG" , Table::DECREASING , Table::DEFAULT_LINEAR )); m_schema.addColumn( ColumnSchema("KROG" , Table::INCREASING , Table::DEFAULT_LINEAR )); m_schema.addColumn( ColumnSchema("PCOG" , Table::DECREASING , Table::DEFAULT_LINEAR )); m_jfunc = jfunc; - SimpleTable::init( item ); + SimpleTable::init( item, tableID ); if (getSlColumn().back() != 1.0) { throw std::invalid_argument("The last saturation of the SLGOF keyword must be 1!"); @@ -418,11 +418,11 @@ const TableColumn& SlgofTable::getJFuncColumn() const { return SimpleTable::getColumn(3); } -Sof2Table::Sof2Table( const DeckItem& item ) { +Sof2Table::Sof2Table( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "SO" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE )); m_schema.addColumn( ColumnSchema( "KRO" , Table::INCREASING , Table::DEFAULT_LINEAR)); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& Sof2Table::getSoColumn() const { @@ -433,13 +433,13 @@ const TableColumn& Sof2Table::getKroColumn() const { return SimpleTable::getColumn(1); } -Sof3Table::Sof3Table( const DeckItem& item ) { +Sof3Table::Sof3Table( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema("SO" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE )); m_schema.addColumn( ColumnSchema("KROW" , Table::INCREASING , Table::DEFAULT_LINEAR )); m_schema.addColumn( ColumnSchema("KROG" , Table::INCREASING , Table::DEFAULT_LINEAR )); - SimpleTable::init( item ); + SimpleTable::init( item, tableID ); } @@ -455,12 +455,12 @@ const TableColumn& Sof3Table::getKrogColumn() const { return SimpleTable::getColumn(2); } -PvdgTable::PvdgTable( const DeckItem& item ) { +PvdgTable::PvdgTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "P" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE )); m_schema.addColumn( ColumnSchema( "BG" , Table::STRICTLY_DECREASING , Table::DEFAULT_LINEAR)); m_schema.addColumn( ColumnSchema( "MUG" , Table::INCREASING , Table::DEFAULT_LINEAR )); - SimpleTable::init( item ); + SimpleTable::init( item, tableID ); } @@ -476,12 +476,12 @@ const TableColumn& PvdgTable::getViscosityColumn() const { return SimpleTable::getColumn(2); } -PvdoTable::PvdoTable( const DeckItem& item ) { +PvdoTable::PvdoTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "P" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE )); m_schema.addColumn( ColumnSchema( "BO" , Table::STRICTLY_DECREASING , Table::DEFAULT_LINEAR)); m_schema.addColumn( ColumnSchema( "MUO" , Table::INCREASING , Table::DEFAULT_LINEAR )); - SimpleTable::init( item ); + SimpleTable::init( item, tableID ); } @@ -497,13 +497,13 @@ const TableColumn& PvdoTable::getViscosityColumn() const { return SimpleTable::getColumn(2); } -SwfnTable::SwfnTable( const DeckItem& item, const bool jfunc ) { +SwfnTable::SwfnTable( const DeckItem& item, const bool jfunc, const int tableID ) { m_schema.addColumn( ColumnSchema("SW" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE )); m_schema.addColumn( ColumnSchema("KRW" , Table::INCREASING , Table::DEFAULT_LINEAR )); m_schema.addColumn( ColumnSchema("PCOW" , Table::DECREASING , Table::DEFAULT_LINEAR )); m_jfunc = jfunc; - SimpleTable::init( item ); + SimpleTable::init( item, tableID ); } const TableColumn& SwfnTable::getSwColumn() const { @@ -525,13 +525,13 @@ const TableColumn& SwfnTable::getJFuncColumn() const { } -SgfnTable::SgfnTable( const DeckItem& item, const bool jfunc ) { +SgfnTable::SgfnTable( const DeckItem& item, const bool jfunc, const int tableID ) { m_schema.addColumn( ColumnSchema("SG" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE ) ); m_schema.addColumn( ColumnSchema("KRG" , Table::INCREASING , Table::DEFAULT_LINEAR)); m_schema.addColumn( ColumnSchema("PCOG" , Table::INCREASING , Table::DEFAULT_LINEAR)); m_jfunc = jfunc; - SimpleTable::init( item ); + SimpleTable::init( item, tableID ); } @@ -553,12 +553,12 @@ const TableColumn& SgfnTable::getJFuncColumn() const { return SimpleTable::getColumn(2); } -SsfnTable::SsfnTable( const DeckItem& item ) { +SsfnTable::SsfnTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema("SolventFraction" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE)); m_schema.addColumn( ColumnSchema("GasRelPermMultiplier" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE)); m_schema.addColumn( ColumnSchema("SolventRelPermMultiplier" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE)); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& SsfnTable::getSolventFractionColumn() const { @@ -574,12 +574,12 @@ const TableColumn& SsfnTable::getSolventRelPermMultiplierColumn() const { } -PvdsTable::PvdsTable( const DeckItem& item ) { +PvdsTable::PvdsTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "P" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE )); m_schema.addColumn( ColumnSchema( "BG" , Table::STRICTLY_DECREASING , Table::DEFAULT_LINEAR )); m_schema.addColumn( ColumnSchema( "MUG" , Table::INCREASING , Table::DEFAULT_LINEAR )); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& PvdsTable::getPressureColumn() const { @@ -594,11 +594,11 @@ const TableColumn& PvdsTable::getViscosityColumn() const { return SimpleTable::getColumn(2); } -PlyadsTable::PlyadsTable( const DeckItem& item ) { +PlyadsTable::PlyadsTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema("PolymerConcentration" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE )); m_schema.addColumn( ColumnSchema("AdsorbedPolymer" , Table::INCREASING , Table::DEFAULT_NONE )); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } @@ -610,11 +610,11 @@ const TableColumn& PlyadsTable::getAdsorbedPolymerColumn() const { return SimpleTable::getColumn(1); } -FoamadsTable::FoamadsTable( const DeckItem& item ) { +FoamadsTable::FoamadsTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema("FoamConcentration" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE )); m_schema.addColumn( ColumnSchema("AdsorbedFoam" , Table::INCREASING , Table::DEFAULT_NONE )); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& FoamadsTable::getFoamConcentrationColumn() const { @@ -625,11 +625,11 @@ const TableColumn& FoamadsTable::getAdsorbedFoamColumn() const { return SimpleTable::getColumn(1); } -FoammobTable::FoammobTable( const DeckItem& item ) { +FoammobTable::FoammobTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema("FoamConcentration" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE )); m_schema.addColumn( ColumnSchema("MobilityMultiplier" , Table::DECREASING , Table::DEFAULT_NONE )); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& FoammobTable::getFoamConcentrationColumn() const { @@ -695,10 +695,10 @@ const TableColumn& PlyrockTable::getMaxAdsorbtionColumn() const { return SimpleTable::getColumn(4); } -PlyviscTable::PlyviscTable( const DeckItem& item ) { +PlyviscTable::PlyviscTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "PolymerConcentration" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE)); m_schema.addColumn( ColumnSchema( "ViscosityMultiplier" , Table::INCREASING , Table::DEFAULT_NONE)); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& PlyviscTable::getPolymerConcentrationColumn() const { @@ -709,11 +709,11 @@ const TableColumn& PlyviscTable::getViscosityMultiplierColumn() const { return SimpleTable::getColumn(1); } -PlydhflfTable::PlydhflfTable( const DeckItem& item ) { +PlydhflfTable::PlydhflfTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema("Temperature" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE ) ); m_schema.addColumn( ColumnSchema("PolymerHalflife" , Table::STRICTLY_DECREASING , Table::DEFAULT_NONE ) ); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& PlydhflfTable::getTemperatureColumn() const { @@ -754,7 +754,7 @@ PlyshlogTable::PlyshlogTable( m_schema.addColumn( ColumnSchema("WaterVelocity" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE)); m_schema.addColumn( ColumnSchema("ShearMultiplier" , Table::RANDOM , Table::DEFAULT_NONE)); - SimpleTable::init( dataRecord.getItem() ); + SimpleTable::init( dataRecord.getItem(), 1 ); } PlyshlogTable PlyshlogTable::serializeObject() @@ -826,11 +826,11 @@ bool PlyshlogTable::operator==(const PlyshlogTable& data) const { m_hasRefTemperature == data.m_hasRefTemperature; } -OilvisctTable::OilvisctTable( const DeckItem& item ) { +OilvisctTable::OilvisctTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema("Temperature" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE) ); m_schema.addColumn( ColumnSchema("Viscosity" , Table::DECREASING , Table::DEFAULT_NONE) ); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& OilvisctTable::getTemperatureColumn() const { @@ -841,11 +841,11 @@ const TableColumn& OilvisctTable::getOilViscosityColumn() const { return SimpleTable::getColumn(1); } -WatvisctTable::WatvisctTable( const DeckItem& item ) { +WatvisctTable::WatvisctTable( const DeckItem& item, const int tableID ) { m_schema.addColumn(ColumnSchema("Temperature" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE)); m_schema.addColumn(ColumnSchema("Viscosity" , Table::DECREASING , Table::DEFAULT_NONE)); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& WatvisctTable::getTemperatureColumn() const { @@ -905,11 +905,11 @@ const TableColumn& GasvisctTable::getGasViscosityColumn(size_t compIdx) const { return SimpleTable::getColumn(1 + compIdx); } -RtempvdTable::RtempvdTable(const DeckItem& item) { +RtempvdTable::RtempvdTable(const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "Depth" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE) ); m_schema.addColumn( ColumnSchema( "Temperature" , Table::RANDOM , Table::DEFAULT_NONE) ); - SimpleTable::init( item ); + SimpleTable::init( item, tableID ); } const TableColumn& RtempvdTable::getDepthColumn() const { @@ -924,7 +924,8 @@ const TableColumn& RtempvdTable::getTemperatureColumn() const { RocktabTable::RocktabTable( const DeckItem& item, bool isDirectional, - bool hasStressOption ) : + bool hasStressOption, + const int tableID ) : m_isDirectional( isDirectional ) { @@ -945,7 +946,7 @@ RocktabTable::RocktabTable( } else m_schema.addColumn( ColumnSchema("PV_MULT_TRAN" , Table::RANDOM , Table::DEFAULT_LINEAR ) ); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } RocktabTable RocktabTable::serializeObject() @@ -990,11 +991,11 @@ bool RocktabTable::operator==(const RocktabTable& data) const { m_isDirectional == data.m_isDirectional; } -RsvdTable::RsvdTable( const DeckItem& item ) { +RsvdTable::RsvdTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "DEPTH" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE )); m_schema.addColumn( ColumnSchema( "RS" , Table::RANDOM , Table::DEFAULT_NONE )); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& RsvdTable::getDepthColumn() const { @@ -1005,10 +1006,10 @@ const TableColumn& RsvdTable::getRsColumn() const { return SimpleTable::getColumn(1); } -RvvdTable::RvvdTable( const DeckItem& item ) { +RvvdTable::RvvdTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "DEPTH" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE ) ); m_schema.addColumn( ColumnSchema( "RV" , Table::RANDOM , Table::DEFAULT_LINEAR ) ); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& RvvdTable::getDepthColumn() const { @@ -1019,11 +1020,11 @@ const TableColumn& RvvdTable::getRvColumn() const { return SimpleTable::getColumn(1); } -PbvdTable::PbvdTable( const DeckItem& item ) { +PbvdTable::PbvdTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "DEPTH" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE )); m_schema.addColumn( ColumnSchema( "PBUB" , Table::RANDOM , Table::DEFAULT_NONE )); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& PbvdTable::getDepthColumn() const { @@ -1034,11 +1035,11 @@ const TableColumn& PbvdTable::getPbubColumn() const { return SimpleTable::getColumn(1); } -PdvdTable::PdvdTable( const DeckItem& item ) { +PdvdTable::PdvdTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "DEPTH" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE )); m_schema.addColumn( ColumnSchema( "PDEW" , Table::RANDOM , Table::DEFAULT_NONE )); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& PdvdTable::getDepthColumn() const { @@ -1049,11 +1050,11 @@ const TableColumn& PdvdTable::getPdewColumn() const { return SimpleTable::getColumn(1); } -SaltvdTable::SaltvdTable( const DeckItem& item ) { +SaltvdTable::SaltvdTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "DEPTH" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE )); m_schema.addColumn( ColumnSchema( "SALT" , Table::RANDOM , Table::DEFAULT_NONE )); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& SaltvdTable::getDepthColumn() const { @@ -1064,11 +1065,11 @@ const TableColumn& SaltvdTable::getSaltColumn() const { return SimpleTable::getColumn(1); } -SaltpvdTable::SaltpvdTable( const DeckItem& item ) { +SaltpvdTable::SaltpvdTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "DEPTH" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE )); m_schema.addColumn( ColumnSchema( "SALTP" , Table::RANDOM , Table::DEFAULT_NONE )); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& SaltpvdTable::getDepthColumn() const { @@ -1080,10 +1081,10 @@ const TableColumn& SaltpvdTable::getSaltpColumn() const { } -SaltsolTable::SaltsolTable( const DeckItem& item ) { +SaltsolTable::SaltsolTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "SALTSOLUBILITY" , Table::RANDOM , Table::DEFAULT_NONE )); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& SaltsolTable::getSaltsolColumn() const { @@ -1091,11 +1092,11 @@ const TableColumn& SaltsolTable::getSaltsolColumn() const { } -PermfactTable::PermfactTable( const DeckItem& item ) { +PermfactTable::PermfactTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "POROSITYCHANGE" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE )); m_schema.addColumn( ColumnSchema( "PERMEABILIYMULTIPLIER" , Table::RANDOM , Table::DEFAULT_NONE )); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& PermfactTable::getPorosityChangeColumn() const { @@ -1107,10 +1108,10 @@ const TableColumn& PermfactTable::getPermeabilityMultiplierColumn() const { } -AqutabTable::AqutabTable( const DeckItem& item ) { +AqutabTable::AqutabTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "TD" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE ) ); m_schema.addColumn( ColumnSchema( "PD" , Table::RANDOM , Table::DEFAULT_LINEAR ) ); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& AqutabTable::getTimeColumn() const { @@ -1121,7 +1122,7 @@ const TableColumn& AqutabTable::getPressureColumn() const { return SimpleTable::getColumn(1); } -EnkrvdTable::EnkrvdTable( const DeckItem& item ) { +EnkrvdTable::EnkrvdTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "DEPTH" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE ) ); m_schema.addColumn( ColumnSchema( "KRWMAX", Table::RANDOM , Table::DEFAULT_LINEAR ) ); m_schema.addColumn( ColumnSchema( "KRGMAX", Table::RANDOM , Table::DEFAULT_LINEAR ) ); @@ -1131,7 +1132,7 @@ EnkrvdTable::EnkrvdTable( const DeckItem& item ) { m_schema.addColumn( ColumnSchema( "KROCRITG",Table::RANDOM , Table::DEFAULT_LINEAR ) ); m_schema.addColumn( ColumnSchema( "KROCRITW",Table::RANDOM , Table::DEFAULT_LINEAR ) ); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& EnkrvdTable::getDepthColumn() const { @@ -1166,7 +1167,7 @@ const TableColumn& EnkrvdTable::getKrocritwColumn() const { return SimpleTable::getColumn(7); } -EnptvdTable::EnptvdTable( const DeckItem& item ) { +EnptvdTable::EnptvdTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "DEPTH" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE ) ); m_schema.addColumn( ColumnSchema( "SWCO", Table::RANDOM , Table::DEFAULT_LINEAR ) ); m_schema.addColumn( ColumnSchema( "SWCRIT", Table::RANDOM , Table::DEFAULT_LINEAR ) ); @@ -1177,7 +1178,7 @@ EnptvdTable::EnptvdTable( const DeckItem& item ) { m_schema.addColumn( ColumnSchema( "SOWCRIT", Table::RANDOM , Table::DEFAULT_LINEAR ) ); m_schema.addColumn( ColumnSchema( "SOGCRIT", Table::RANDOM , Table::DEFAULT_LINEAR ) ); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& EnptvdTable::getDepthColumn() const { @@ -1216,7 +1217,7 @@ const TableColumn& EnptvdTable::getSogcritColumn() const { return SimpleTable::getColumn(8); } -ImkrvdTable::ImkrvdTable( const DeckItem& item ) { +ImkrvdTable::ImkrvdTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "DEPTH" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE ) ); m_schema.addColumn( ColumnSchema( "KRWMAX", Table::RANDOM , Table::DEFAULT_LINEAR ) ); m_schema.addColumn( ColumnSchema( "KRGMAX", Table::RANDOM , Table::DEFAULT_LINEAR ) ); @@ -1226,7 +1227,7 @@ ImkrvdTable::ImkrvdTable( const DeckItem& item ) { m_schema.addColumn( ColumnSchema( "KROCRITG",Table::RANDOM , Table::DEFAULT_LINEAR ) ); m_schema.addColumn( ColumnSchema( "KROCRITW", Table::RANDOM , Table::DEFAULT_LINEAR ) ); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& ImkrvdTable::getDepthColumn() const { @@ -1262,7 +1263,7 @@ const TableColumn& ImkrvdTable::getKrocritwColumn() const { } -ImptvdTable::ImptvdTable( const DeckItem& item ) { +ImptvdTable::ImptvdTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "DEPTH" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE ) ); m_schema.addColumn( ColumnSchema( "SWCO", Table::RANDOM , Table::DEFAULT_LINEAR ) ); m_schema.addColumn( ColumnSchema( "SWCRIT", Table::RANDOM , Table::DEFAULT_LINEAR ) ); @@ -1273,7 +1274,7 @@ ImptvdTable::ImptvdTable( const DeckItem& item ) { m_schema.addColumn( ColumnSchema( "SOWCRIT", Table::RANDOM , Table::DEFAULT_LINEAR ) ); m_schema.addColumn( ColumnSchema( "SOGCRIT", Table::RANDOM , Table::DEFAULT_LINEAR ) ); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& ImptvdTable::getDepthColumn() const { @@ -1312,11 +1313,11 @@ const TableColumn& ImptvdTable::getSogcritColumn() const { return SimpleTable::getColumn(8); } -SorwmisTable::SorwmisTable( const DeckItem& item ) { +SorwmisTable::SorwmisTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "WaterSaturation" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE) ); m_schema.addColumn( ColumnSchema( "MiscibleResidualOilSaturation" , Table::INCREASING , Table::DEFAULT_NONE) ); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& SorwmisTable::getWaterSaturationColumn() const { @@ -1327,10 +1328,10 @@ const TableColumn& SorwmisTable::getMiscibleResidualOilColumn() const { return SimpleTable::getColumn(1); } -SgcwmisTable::SgcwmisTable( const DeckItem& item ) { +SgcwmisTable::SgcwmisTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "WaterSaturation" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE) ); m_schema.addColumn( ColumnSchema( "MiscibleResidualGasSaturation" , Table::INCREASING , Table::DEFAULT_NONE) ); - SimpleTable::init(item); + SimpleTable::init(item, tableID); } const TableColumn& SgcwmisTable::getWaterSaturationColumn() const { @@ -1341,10 +1342,10 @@ const TableColumn& SgcwmisTable::getMiscibleResidualGasColumn() const { return SimpleTable::getColumn(1); } -MiscTable::MiscTable( const DeckItem& item ) { +MiscTable::MiscTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "SolventFraction" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE) ); m_schema.addColumn( ColumnSchema( "Miscibility" , Table::INCREASING , Table::DEFAULT_NONE) ); - SimpleTable::init( item ); + SimpleTable::init( item, tableID); } const TableColumn& MiscTable::getSolventFractionColumn() const { @@ -1356,10 +1357,10 @@ const TableColumn& MiscTable::getMiscibilityColumn() const { } -PmiscTable::PmiscTable( const DeckItem& item ) { +PmiscTable::PmiscTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "OilPhasePressure" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE) ); m_schema.addColumn( ColumnSchema( "Miscibility" , Table::INCREASING , Table::DEFAULT_NONE) ); - SimpleTable::init( item ); + SimpleTable::init( item, tableID); } const TableColumn& PmiscTable::getOilPhasePressureColumn() const { @@ -1370,10 +1371,10 @@ const TableColumn& PmiscTable::getMiscibilityColumn() const { return SimpleTable::getColumn(1); } -TlpmixpaTable::TlpmixpaTable( const DeckItem& item ) { +TlpmixpaTable::TlpmixpaTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "OilPhasePressure" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE) ); m_schema.addColumn( ColumnSchema( "Miscibility" , Table::INCREASING , Table::DEFAULT_NONE) ); - SimpleTable::init( item ); + SimpleTable::init( item, tableID); } const TableColumn& TlpmixpaTable::getOilPhasePressureColumn() const { @@ -1384,12 +1385,12 @@ const TableColumn& TlpmixpaTable::getMiscibilityColumn() const { return SimpleTable::getColumn(1); } -MsfnTable::MsfnTable( const DeckItem& item ) { +MsfnTable::MsfnTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "GasPhaseFraction", Table::STRICTLY_INCREASING , Table::DEFAULT_NONE)); m_schema.addColumn( ColumnSchema( "GasSolventRelpermMultiplier", Table::INCREASING , Table::DEFAULT_NONE)); m_schema.addColumn( ColumnSchema( "OilRelpermMultiplier", Table::DECREASING , Table::DEFAULT_NONE)); - SimpleTable::init( item ); + SimpleTable::init( item, tableID); getColumn("GasPhaseFraction").assertUnitRange(); } @@ -1407,19 +1408,19 @@ const TableColumn& MsfnTable::getOilRelpermMultiplierColumn() const { return SimpleTable::getColumn(2); } -RockwnodTable::RockwnodTable( const DeckItem& item ) { +RockwnodTable::RockwnodTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "Saturation" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE) ); - SimpleTable::init( item ); + SimpleTable::init( item, tableID); } const TableColumn& RockwnodTable::getSaturationColumn() const { return SimpleTable::getColumn(0); } -OverburdTable::OverburdTable( const DeckItem& item ) { +OverburdTable::OverburdTable( const DeckItem& item, const int tableID ) { m_schema.addColumn( ColumnSchema( "Depth" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE) ); m_schema.addColumn( ColumnSchema( "OverburdenPressure" , Table::STRICTLY_INCREASING , Table::DEFAULT_NONE) ); - SimpleTable::init( item ); + SimpleTable::init( item, tableID); } const TableColumn& OverburdTable::getDepthColumn() const { @@ -1430,10 +1431,10 @@ const TableColumn& OverburdTable::getOverburdenPressureColumn() const { return SimpleTable::getColumn(1); } -TracerVdTable::TracerVdTable(const Opm::DeckItem& item, double inv_volume) { +TracerVdTable::TracerVdTable(const Opm::DeckItem& item, double inv_volume, const int tableID ) { m_schema.addColumn(Opm::ColumnSchema("DEPTH", Table::STRICTLY_INCREASING, Table::DEFAULT_NONE)); m_schema.addColumn(Opm::ColumnSchema("TRACER_CONCENTRATION", Table::RANDOM, Table::DEFAULT_NONE)); - SimpleTable::init(item, inv_volume); + SimpleTable::init(item, tableID, inv_volume); } const TableColumn& TracerVdTable::getDepthColumn() const { diff --git a/src/opm/input/eclipse/EclipseState/TracerConfig.cpp b/src/opm/input/eclipse/EclipseState/TracerConfig.cpp index 082c11f1d..ceaadc48d 100644 --- a/src/opm/input/eclipse/EclipseState/TracerConfig.cpp +++ b/src/opm/input/eclipse/EclipseState/TracerConfig.cpp @@ -142,12 +142,13 @@ TracerConfig::TracerConfig(const UnitSystem& unit_system, const Deck& deck) const auto& deck_item_solution = tracer_keyword_solution.getRecord(0).getItem(0); logger(tracer_keyword_solution.location().format("Loading tracer concentration from {keyword} in {file} line {line}")); - this->tracers.emplace_back(name, unit_string, phase, TracerVdTable(deck_item, inv_volume), - TracerVdTable(deck_item_solution, inv_volume)) ; + this->tracers.emplace_back(name, unit_string, phase, + TracerVdTable(deck_item, inv_volume, this->tracers.size()), + TracerVdTable(deck_item_solution, inv_volume, this->tracers.size())) ; continue; } - this->tracers.emplace_back(name, unit_string, phase, TracerVdTable(deck_item, inv_volume)); + this->tracers.emplace_back(name, unit_string, phase, TracerVdTable(deck_item, inv_volume, this->tracers.size())); continue; } diff --git a/tests/parser/TableContainerTests.cpp b/tests/parser/TableContainerTests.cpp index 1bec3546d..5baed8283 100644 --- a/tests/parser/TableContainerTests.cpp +++ b/tests/parser/TableContainerTests.cpp @@ -59,7 +59,7 @@ BOOST_AUTO_TEST_CASE( CreateContainer ) { BOOST_CHECK_EQUAL( 0U , container.size() ); BOOST_CHECK_EQUAL( false , container.hasTable( 1 )); - std::shared_ptr table = std::make_shared( deck["SWOF"].back().getRecord(0).getItem(0), false ); + std::shared_ptr table = std::make_shared( deck["SWOF"].back().getRecord(0).getItem(0), false, 0 ); BOOST_CHECK_THROW( container.addTable( 10 , table ), std::invalid_argument ); container.addTable( 6 , table ); BOOST_CHECK_EQUAL( 1U , container.size() ); diff --git a/tests/parser/TableManagerTests.cpp b/tests/parser/TableManagerTests.cpp index 64e29aae9..54934ac25 100644 --- a/tests/parser/TableManagerTests.cpp +++ b/tests/parser/TableManagerTests.cpp @@ -271,8 +271,8 @@ SWOF END )"); - Opm::SwofTable swof1Table(deck["SWOF"].back().getRecord(0).getItem(0), false); - Opm::SwofTable swof2Table(deck["SWOF"].back().getRecord(1).getItem(0), false); + Opm::SwofTable swof1Table(deck["SWOF"].back().getRecord(0).getItem(0), false, 0); + Opm::SwofTable swof2Table(deck["SWOF"].back().getRecord(1).getItem(0), false, 1); BOOST_CHECK_EQUAL(swof1Table.numRows(), 2U); BOOST_CHECK_EQUAL(swof2Table.numRows(), 3U); @@ -313,7 +313,7 @@ BOOST_AUTO_TEST_CASE(PbvdTable_Tests) { Opm::Parser parser; auto deck = parser.parseString(deckData); - Opm::PbvdTable pbvdTable1(deck["PBVD"].back().getRecord(0).getItem(0)); + Opm::PbvdTable pbvdTable1(deck["PBVD"].back().getRecord(0).getItem(0), 0); BOOST_CHECK_EQUAL(pbvdTable1.numRows(), 2U); BOOST_CHECK_EQUAL(pbvdTable1.numColumns(), 2U); @@ -322,7 +322,7 @@ BOOST_AUTO_TEST_CASE(PbvdTable_Tests) { BOOST_CHECK_EQUAL(pbvdTable1.getPbubColumn().front(), 100000); // 1 barsa // depth must be increasing down the column. - BOOST_CHECK_THROW(Opm::PbvdTable pbvdTable2(deck["PBVD"].back().getRecord(1).getItem(0)), std::invalid_argument); + BOOST_CHECK_THROW(Opm::PbvdTable pbvdTable2(deck["PBVD"].back().getRecord(1).getItem(0), 1), std::invalid_argument); } @@ -341,7 +341,7 @@ BOOST_AUTO_TEST_CASE(PdvdTable_Tests) { Opm::Parser parser; auto deck = parser.parseString(deckData); - Opm::PdvdTable pdvdTable1(deck["PDVD"].back().getRecord(0).getItem(0)); + Opm::PdvdTable pdvdTable1(deck["PDVD"].back().getRecord(0).getItem(0), 0); BOOST_CHECK_EQUAL(pdvdTable1.numRows(), 2U); BOOST_CHECK_EQUAL(pdvdTable1.numColumns(), 2U); @@ -350,7 +350,7 @@ BOOST_AUTO_TEST_CASE(PdvdTable_Tests) { BOOST_CHECK_EQUAL(pdvdTable1.getPdewColumn().front(), 100000); // 1 barsa // depth must be increasing down the column. - BOOST_CHECK_THROW(Opm::PdvdTable pdvdTable2(deck["PDVD"].back().getRecord(1).getItem(0)), std::invalid_argument); + BOOST_CHECK_THROW(Opm::PdvdTable pdvdTable2(deck["PDVD"].back().getRecord(1).getItem(0), 1), std::invalid_argument); } BOOST_AUTO_TEST_CASE(SgwfnTable_Tests) { @@ -369,8 +369,8 @@ BOOST_AUTO_TEST_CASE(SgwfnTable_Tests) { auto deck = parser.parseString(deckData); - Opm::SgwfnTable sgwfn1Table(deck["SGWFN"].back().getRecord(0).getItem(0)); - Opm::SgwfnTable sgwfn2Table(deck["SGWFN"].back().getRecord(1).getItem(0)); + Opm::SgwfnTable sgwfn1Table(deck["SGWFN"].back().getRecord(0).getItem(0), 0); + Opm::SgwfnTable sgwfn2Table(deck["SGWFN"].back().getRecord(1).getItem(0), 1); BOOST_CHECK_EQUAL(sgwfn1Table.numRows(), 2U); BOOST_CHECK_EQUAL(sgwfn2Table.numRows(), 3U); @@ -414,8 +414,8 @@ SGOF END )"); - Opm::SgofTable sgof1Table(deck["SGOF"].back().getRecord(0).getItem(0), false); - Opm::SgofTable sgof2Table(deck["SGOF"].back().getRecord(1).getItem(0), false); + Opm::SgofTable sgof1Table(deck["SGOF"].back().getRecord(0).getItem(0), false, 0); + Opm::SgofTable sgof2Table(deck["SGOF"].back().getRecord(1).getItem(0), false, 1); BOOST_CHECK_EQUAL(sgof1Table.numRows(), 2U); BOOST_CHECK_EQUAL(sgof2Table.numRows(), 3U); @@ -460,7 +460,7 @@ BOOST_AUTO_TEST_CASE(PlyadsTable_Tests) { Opm::Parser parser; auto deck = parser.parseString(correctDeckData); const auto& plyadsKeyword = deck["PLYADS"].back(); - Opm::PlyadsTable plyadsTable(plyadsKeyword.getRecord(0).getItem(0)); + Opm::PlyadsTable plyadsTable(plyadsKeyword.getRecord(0).getItem(0), 0); BOOST_CHECK_CLOSE(plyadsTable.getPolymerConcentrationColumn().front(), 0.0, 1e-6); @@ -490,7 +490,7 @@ BOOST_AUTO_TEST_CASE(PlyadsTable_Tests) { auto deck = parser.parseString(incorrectDeckData); const auto& plyadsKeyword = deck["PLYADS"].back(); - BOOST_CHECK_THROW(Opm::PlyadsTable(plyadsKeyword.getRecord(0).getItem(0)), std::invalid_argument); + BOOST_CHECK_THROW(Opm::PlyadsTable(plyadsKeyword.getRecord(0).getItem(0), 0), std::invalid_argument); } { @@ -513,7 +513,7 @@ BOOST_AUTO_TEST_CASE(PlyadsTable_Tests) { auto deck = parser.parseString(incorrectDeckData); const auto& plyadsKeyword = deck["PLYADS"].back(); - BOOST_CHECK_THROW(Opm::PlyadsTable(plyadsKeyword.getRecord(0).getItem(0)), std::invalid_argument); + BOOST_CHECK_THROW(Opm::PlyadsTable(plyadsKeyword.getRecord(0).getItem(0), 0), std::invalid_argument); } } @@ -536,7 +536,7 @@ BOOST_AUTO_TEST_CASE(FoamadsTable_Tests) { Opm::Parser parser; auto deck = parser.parseString(correctDeckData); const auto& foamadsKeyword = deck["FOAMADS"].back(); - Opm::FoamadsTable foamadsTable(foamadsKeyword.getRecord(0).getItem(0)); + Opm::FoamadsTable foamadsTable(foamadsKeyword.getRecord(0).getItem(0), 0); BOOST_CHECK_CLOSE(foamadsTable.getFoamConcentrationColumn().front(), 0.0, 1e-6); @@ -566,7 +566,7 @@ BOOST_AUTO_TEST_CASE(FoamadsTable_Tests) { auto deck = parser.parseString(incorrectDeckData); const auto& foamadsKeyword = deck["FOAMADS"].back(); - BOOST_CHECK_THROW(Opm::FoamadsTable(foamadsKeyword.getRecord(0).getItem(0)), std::invalid_argument); + BOOST_CHECK_THROW(Opm::FoamadsTable(foamadsKeyword.getRecord(0).getItem(0), 0), std::invalid_argument); } { @@ -589,7 +589,7 @@ BOOST_AUTO_TEST_CASE(FoamadsTable_Tests) { auto deck = parser.parseString(incorrectDeckData); const auto& foamadsKeyword = deck["FOAMADS"].back(); - BOOST_CHECK_THROW(Opm::FoamadsTable(foamadsKeyword.getRecord(0).getItem(0)), std::invalid_argument); + BOOST_CHECK_THROW(Opm::FoamadsTable(foamadsKeyword.getRecord(0).getItem(0), 0), std::invalid_argument); } } @@ -606,7 +606,7 @@ BOOST_AUTO_TEST_CASE(FoammobTable_Tests) { Opm::Parser parser; auto deck = parser.parseString(correctDeckData); const auto& foammobKeyword = deck["FOAMMOB"].back(); - Opm::FoammobTable foammobTable(foammobKeyword.getRecord(0).getItem(0)); + Opm::FoammobTable foammobTable(foammobKeyword.getRecord(0).getItem(0), 0); BOOST_CHECK_CLOSE(foammobTable.getFoamConcentrationColumn().front(), 0.0, 1e-6); @@ -630,7 +630,7 @@ BOOST_AUTO_TEST_CASE(FoammobTable_Tests) { auto deck = parser.parseString(incorrectDeckData); const auto& foammobKeyword = deck["FOAMMOB"].back(); - BOOST_CHECK_THROW(Opm::FoammobTable(foammobKeyword.getRecord(0).getItem(0)), std::invalid_argument); + BOOST_CHECK_THROW(Opm::FoammobTable(foammobKeyword.getRecord(0).getItem(0), 0), std::invalid_argument); } { @@ -647,7 +647,7 @@ BOOST_AUTO_TEST_CASE(FoammobTable_Tests) { auto deck = parser.parseString(incorrectDeckData); const auto& foammobKeyword = deck["FOAMMOB"].back(); - BOOST_CHECK_THROW(Opm::FoammobTable(foammobKeyword.getRecord(0).getItem(0)), std::invalid_argument); + BOOST_CHECK_THROW(Opm::FoammobTable(foammobKeyword.getRecord(0).getItem(0), 0), std::invalid_argument); } } diff --git a/tests/parser/integration/ParseKEYWORD.cpp b/tests/parser/integration/ParseKEYWORD.cpp index ed38816a6..fb555d186 100644 --- a/tests/parser/integration/ParseKEYWORD.cpp +++ b/tests/parser/integration/ParseKEYWORD.cpp @@ -236,7 +236,7 @@ BOOST_AUTO_TEST_CASE( SORWMIS ) { // test number of columns size_t ntmisc = miscible0.getItem(0).get< int >(0); - Opm::SorwmisTable sorwmisTable0(sorwmis0.getItem(0)); + Opm::SorwmisTable sorwmisTable0(sorwmis0.getItem(0), 0); BOOST_CHECK_EQUAL(sorwmisTable0.numColumns(),ntmisc); // test table input 1 @@ -245,7 +245,7 @@ BOOST_AUTO_TEST_CASE( SORWMIS ) { BOOST_CHECK_EQUAL(0.0, sorwmisTable0.getMiscibleResidualOilColumn()[2]); // test table input 2 - Opm::SorwmisTable sorwmisTable1(sorwmis1.getItem(0)); + Opm::SorwmisTable sorwmisTable1(sorwmis1.getItem(0), 1); BOOST_CHECK_EQUAL(sorwmisTable1.numColumns(),ntmisc); BOOST_CHECK_EQUAL(3U, sorwmisTable1.getWaterSaturationColumn().size()); @@ -266,7 +266,7 @@ BOOST_AUTO_TEST_CASE( SGCWMIS ) { // test number of columns size_t ntmisc = miscible0.getItem(0).get< int >(0); - Opm::SgcwmisTable sgcwmisTable0(sgcwmis0.getItem(0)); + Opm::SgcwmisTable sgcwmisTable0(sgcwmis0.getItem(0), 0); BOOST_CHECK_EQUAL(sgcwmisTable0.numColumns(),ntmisc); // test table input 1 @@ -275,7 +275,7 @@ BOOST_AUTO_TEST_CASE( SGCWMIS ) { BOOST_CHECK_EQUAL(0.0, sgcwmisTable0.getMiscibleResidualGasColumn()[1]); // test table input 2 - Opm::SgcwmisTable sgcwmisTable1(sgcwmis1.getItem(0)); + Opm::SgcwmisTable sgcwmisTable1(sgcwmis1.getItem(0), 1); BOOST_CHECK_EQUAL(sgcwmisTable1.numColumns(),ntmisc); BOOST_CHECK_EQUAL(3U, sgcwmisTable1.getWaterSaturationColumn().size()); @@ -318,17 +318,17 @@ BOOST_AUTO_TEST_CASE( MISC ) { // out of range MISC keyword auto deck1 = parser.parseString(miscOutOfRangeData); const auto& item = deck1["MISC"].back().getRecord(0).getItem(0); - Opm::MiscTable miscTable1(item); + Opm::MiscTable miscTable1(item, 0); // too litle range of MISC keyword auto deck2 = parser.parseString(miscTooSmallRangeData); const auto& item2 = deck2["MISC"].back().getRecord(0).getItem(0); - Opm::MiscTable miscTable2(item2); + Opm::MiscTable miscTable2(item2, 0); // test table input auto deck3 = parser.parseString(miscData); const auto& item3 = deck3["MISC"].back().getRecord(0).getItem(0); - Opm::MiscTable miscTable3(item3); + Opm::MiscTable miscTable3(item3, 0); BOOST_CHECK_EQUAL(3U, miscTable3.getSolventFractionColumn().size()); BOOST_CHECK_EQUAL(0.1, miscTable3.getSolventFractionColumn()[1]); BOOST_CHECK_EQUAL(0.5, miscTable3.getMiscibilityColumn()[1]); @@ -347,7 +347,7 @@ PMISC BOOST_AUTO_TEST_CASE( PMISC ) { Parser parser; auto deck = parser.parseString(pmiscData); - Opm::PmiscTable pmiscTable(deck["PMISC"].back().getRecord(0).getItem(0)); + Opm::PmiscTable pmiscTable(deck["PMISC"].back().getRecord(0).getItem(0), 0); BOOST_CHECK_EQUAL(3U, pmiscTable.getOilPhasePressureColumn().size()); BOOST_CHECK_EQUAL(200*1e5, pmiscTable.getOilPhasePressureColumn()[1]); BOOST_CHECK_EQUAL(0.5, pmiscTable.getMiscibilityColumn()[1]); @@ -369,13 +369,13 @@ BOOST_AUTO_TEST_CASE( MSFN ) { Parser parser; auto deck = parser.parseString(msfnData); - Opm::MsfnTable msfnTable1(deck["MSFN"].back().getRecord(0).getItem(0)); + Opm::MsfnTable msfnTable1(deck["MSFN"].back().getRecord(0).getItem(0), 0); BOOST_CHECK_EQUAL(2U, msfnTable1.getGasPhaseFractionColumn().size()); BOOST_CHECK_EQUAL(1.0, msfnTable1.getGasPhaseFractionColumn()[1]); BOOST_CHECK_EQUAL(1.0, msfnTable1.getGasSolventRelpermMultiplierColumn()[1]); BOOST_CHECK_EQUAL(0.0, msfnTable1.getOilRelpermMultiplierColumn()[1]); - Opm::MsfnTable msfnTable2(deck["MSFN"].back().getRecord(1).getItem(0)); + Opm::MsfnTable msfnTable2(deck["MSFN"].back().getRecord(1).getItem(0), 1); BOOST_CHECK_EQUAL(3U, msfnTable2.getGasPhaseFractionColumn().size()); BOOST_CHECK_EQUAL(0.5, msfnTable2.getGasPhaseFractionColumn()[1]); BOOST_CHECK_EQUAL(0.3, msfnTable2.getGasSolventRelpermMultiplierColumn()[1]); @@ -395,7 +395,7 @@ BOOST_AUTO_TEST_CASE( TLPMIXPA ) { Parser parser; auto deck = parser.parseString(tlpmixpa); - Opm::TlpmixpaTable tlpmixpaTable(deck["TLPMIXPA"].back().getRecord(0).getItem(0)); + Opm::TlpmixpaTable tlpmixpaTable(deck["TLPMIXPA"].back().getRecord(0).getItem(0), 0); BOOST_CHECK_EQUAL(3U, tlpmixpaTable.getOilPhasePressureColumn().size()); BOOST_CHECK_EQUAL(200*1e5, tlpmixpaTable.getOilPhasePressureColumn()[1]); BOOST_CHECK_EQUAL(0.5, tlpmixpaTable.getMiscibilityColumn()[1]); @@ -972,7 +972,7 @@ SGOF const auto& item0 = record0.getItem(0); BOOST_CHECK_EQUAL(10U * 4, item0.data_size()); - Opm::SgofTable sgofTable(deck["SGOF"].back().getRecord(0).getItem(0), false); + Opm::SgofTable sgofTable(deck["SGOF"].back().getRecord(0).getItem(0), false, 0); BOOST_CHECK_EQUAL(10U, sgofTable.getSgColumn().size()); BOOST_CHECK_EQUAL(0.1, sgofTable.getSgColumn()[0]); BOOST_CHECK_EQUAL(0.0, sgofTable.getKrgColumn()[0]); @@ -1013,7 +1013,7 @@ SWOF BOOST_CHECK_EQUAL(1U , record0.size()); BOOST_CHECK_EQUAL(10U * 4, item0.data_size()); - Opm::SwofTable swofTable(deck["SWOF"].back().getRecord(0).getItem(0), false); + Opm::SwofTable swofTable(deck["SWOF"].back().getRecord(0).getItem(0), false, 0); BOOST_CHECK_EQUAL(10U, swofTable.getSwColumn().size()); BOOST_CHECK_CLOSE(0.1, swofTable.getSwColumn()[0], 1e-8); BOOST_CHECK_CLOSE(1.0, swofTable.getSwColumn().back(), 1e-8); @@ -1071,7 +1071,7 @@ SLGOF BOOST_CHECK_EQUAL(1U , record0.size()); BOOST_CHECK_EQUAL(10U * 4, item0.data_size()); - Opm::SlgofTable slgofTable( deck["SLGOF"].back().getRecord(0).getItem(0), false ); + Opm::SlgofTable slgofTable( deck["SLGOF"].back().getRecord(0).getItem(0), false, 0 ); BOOST_CHECK_EQUAL(10U, slgofTable.getSlColumn().size()); BOOST_CHECK_EQUAL(0.1, slgofTable.getSlColumn()[0]); BOOST_CHECK_EQUAL(1.0, slgofTable.getSlColumn()[9]);