From 7767a8b2b5bd5431e8eae45270ab22200ed6f008 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Tue, 10 Mar 2020 14:51:31 +0100 Subject: [PATCH 1/7] add serialization template to NNC and EDITNNC --- opm/parser/eclipse/EclipseState/EclipseState.hpp | 4 ++-- opm/parser/eclipse/EclipseState/Edit/EDITNNC.hpp | 6 ++++++ opm/parser/eclipse/EclipseState/Grid/NNC.hpp | 14 ++++++++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/opm/parser/eclipse/EclipseState/EclipseState.hpp b/opm/parser/eclipse/EclipseState/EclipseState.hpp index fa672507e..c9ad93032 100644 --- a/opm/parser/eclipse/EclipseState/EclipseState.hpp +++ b/opm/parser/eclipse/EclipseState/EclipseState.hpp @@ -122,8 +122,8 @@ namespace Opm { serializer(m_runspec); serializer(m_eclipseConfig); serializer(m_deckUnitSystem); - serializer(m_inputNnc); - serializer(m_inputEditNnc); + m_inputNnc.serializeOp(serializer); + m_inputEditNnc.serializeOp(serializer); serializer(m_gridDims); serializer(m_simulationConfig); serializer(m_transMult); diff --git a/opm/parser/eclipse/EclipseState/Edit/EDITNNC.hpp b/opm/parser/eclipse/EclipseState/Edit/EDITNNC.hpp index c85027555..105bb221e 100644 --- a/opm/parser/eclipse/EclipseState/Edit/EDITNNC.hpp +++ b/opm/parser/eclipse/EclipseState/Edit/EDITNNC.hpp @@ -46,6 +46,12 @@ public: bool operator==(const EDITNNC& data) const; + template + void serializeOp(Serializer& serializer) + { + serializer.vector(m_editnnc); + } + private: std::vector m_editnnc; }; diff --git a/opm/parser/eclipse/EclipseState/Grid/NNC.hpp b/opm/parser/eclipse/EclipseState/Grid/NNC.hpp index c08d53e28..1c5099dfb 100644 --- a/opm/parser/eclipse/EclipseState/Grid/NNC.hpp +++ b/opm/parser/eclipse/EclipseState/Grid/NNC.hpp @@ -40,6 +40,14 @@ struct NNCdata { trans == data.trans; } + template + void serializeOp(Serializer& serializer) + { + serializer(cell1); + serializer(cell2); + serializer(trans); + } + size_t cell1; size_t cell2; double trans; @@ -64,6 +72,12 @@ public: bool operator==(const NNC& data) const; + template + void serializeOp(Serializer& serializer) + { + serializer.vector(m_nnc); + } + private: std::vector m_nnc; From 2419bb8d6a1d44fc60ea0400cdea80045f1ae2b6 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Thu, 12 Mar 2020 15:29:29 +0100 Subject: [PATCH 2/7] add serialization template to GridDims --- opm/parser/eclipse/EclipseState/EclipseState.hpp | 2 +- opm/parser/eclipse/EclipseState/Grid/GridDims.hpp | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/opm/parser/eclipse/EclipseState/EclipseState.hpp b/opm/parser/eclipse/EclipseState/EclipseState.hpp index c9ad93032..8d88b818a 100644 --- a/opm/parser/eclipse/EclipseState/EclipseState.hpp +++ b/opm/parser/eclipse/EclipseState/EclipseState.hpp @@ -124,7 +124,7 @@ namespace Opm { serializer(m_deckUnitSystem); m_inputNnc.serializeOp(serializer); m_inputEditNnc.serializeOp(serializer); - serializer(m_gridDims); + m_gridDims.serializeOp(serializer); serializer(m_simulationConfig); serializer(m_transMult); serializer(m_faults); diff --git a/opm/parser/eclipse/EclipseState/Grid/GridDims.hpp b/opm/parser/eclipse/EclipseState/Grid/GridDims.hpp index 3f72d13dc..caab756cd 100644 --- a/opm/parser/eclipse/EclipseState/Grid/GridDims.hpp +++ b/opm/parser/eclipse/EclipseState/Grid/GridDims.hpp @@ -59,6 +59,14 @@ namespace Opm { bool operator==(const GridDims& data) const; + template + void serializeOp(Serializer& serializer) + { + serializer(m_nx); + serializer(m_ny); + serializer(m_nz); + } + protected: size_t m_nx; size_t m_ny; From 31a53f2ec502f10dde3c4231d1ffd9752805e829 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Thu, 12 Mar 2020 15:44:36 +0100 Subject: [PATCH 3/7] add serialization template to ThresholdPressure --- .../SimulationConfig/ThresholdPressure.hpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/opm/parser/eclipse/EclipseState/SimulationConfig/ThresholdPressure.hpp b/opm/parser/eclipse/EclipseState/SimulationConfig/ThresholdPressure.hpp index 77706dc85..9c1f3d37e 100644 --- a/opm/parser/eclipse/EclipseState/SimulationConfig/ThresholdPressure.hpp +++ b/opm/parser/eclipse/EclipseState/SimulationConfig/ThresholdPressure.hpp @@ -81,6 +81,16 @@ namespace Opm { { return m_pressureTable; } bool operator==(const ThresholdPressure& data) const; + + template + void serializeOp(Serializer& serializer) + { + serializer(m_active); + serializer(m_restart); + serializer(m_thresholdPressureTable); + serializer(m_pressureTable); + } + private: bool m_active; bool m_restart; From 10e3e5c998ad507ecb66cbaef1aace911601acae Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Thu, 12 Mar 2020 15:45:44 +0100 Subject: [PATCH 4/7] remove accessors added to ThresholdPressure for external serialization --- .../EclipseState/SimulationConfig/ThresholdPressure.hpp | 6 ------ .../EclipseState/SimulationConfig/ThresholdPressure.cpp | 4 ++-- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/opm/parser/eclipse/EclipseState/SimulationConfig/ThresholdPressure.hpp b/opm/parser/eclipse/EclipseState/SimulationConfig/ThresholdPressure.hpp index 9c1f3d37e..24d993cdd 100644 --- a/opm/parser/eclipse/EclipseState/SimulationConfig/ThresholdPressure.hpp +++ b/opm/parser/eclipse/EclipseState/SimulationConfig/ThresholdPressure.hpp @@ -74,12 +74,6 @@ namespace Opm { bool active() const; bool restart() const; - const ThresholdPressureTable& thresholdPressureTable() const - { return m_thresholdPressureTable; } - - const PressureTable& pressureTable() const - { return m_pressureTable; } - bool operator==(const ThresholdPressure& data) const; template diff --git a/src/opm/parser/eclipse/EclipseState/SimulationConfig/ThresholdPressure.cpp b/src/opm/parser/eclipse/EclipseState/SimulationConfig/ThresholdPressure.cpp index 4ded494d5..0238ef77b 100644 --- a/src/opm/parser/eclipse/EclipseState/SimulationConfig/ThresholdPressure.cpp +++ b/src/opm/parser/eclipse/EclipseState/SimulationConfig/ThresholdPressure.cpp @@ -218,8 +218,8 @@ namespace Opm { bool ThresholdPressure::operator==(const ThresholdPressure& data) const { return this->active() == data.active() && this->restart() == data.restart() && - this->thresholdPressureTable() == data.thresholdPressureTable() && - this->pressureTable() == data.pressureTable(); + this->m_thresholdPressureTable == data.m_thresholdPressureTable && + this->m_pressureTable == data.m_pressureTable; } From 561518317b74c4fce0a1f78709d6f8a532c386ac Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Thu, 12 Mar 2020 15:48:16 +0100 Subject: [PATCH 5/7] add serialization templates to BCConfig --- .../SimulationConfig/BCConfig.hpp | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/opm/parser/eclipse/EclipseState/SimulationConfig/BCConfig.hpp b/opm/parser/eclipse/EclipseState/SimulationConfig/BCConfig.hpp index c25d43fc6..c50859a24 100644 --- a/opm/parser/eclipse/EclipseState/SimulationConfig/BCConfig.hpp +++ b/opm/parser/eclipse/EclipseState/SimulationConfig/BCConfig.hpp @@ -69,6 +69,21 @@ public: BCComponent comp_arg, double rate_arg); bool operator==(const BCFace& other) const; + + template + void serializeOp(Serializer& serializer) + { + serializer(i1); + serializer(i2); + serializer(j1); + serializer(j2); + serializer(k1); + serializer(k2); + serializer(bctype); + serializer(dir); + serializer(component); + serializer(rate); + } }; @@ -80,6 +95,13 @@ public: std::vector::const_iterator begin() const; std::vector::const_iterator end() const; bool operator==(const BCConfig& other) const; + + template + void serializeOp(Serializer& serializer) + { + serializer.vector(m_faces); + } + private: std::vector m_faces; }; From 8569274c019c617247a7388a8edbcc9a211cac45 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Thu, 12 Mar 2020 15:50:56 +0100 Subject: [PATCH 6/7] add serialization template to RockConfig --- .../SimulationConfig/RockConfig.hpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/opm/parser/eclipse/EclipseState/SimulationConfig/RockConfig.hpp b/opm/parser/eclipse/EclipseState/SimulationConfig/RockConfig.hpp index 5a163cfaa..67192ec44 100644 --- a/opm/parser/eclipse/EclipseState/SimulationConfig/RockConfig.hpp +++ b/opm/parser/eclipse/EclipseState/SimulationConfig/RockConfig.hpp @@ -49,6 +49,13 @@ struct RockComp { RockComp() = default; RockComp(double pref_arg, double comp_arg); bool operator==(const RockComp& other) const; + + template + void serializeOp(Serializer& serializer) + { + serializer(pref); + serializer(compressibility); + } }; @@ -64,6 +71,18 @@ struct RockComp { bool water_compaction() const; bool operator==(const RockConfig& other) const; + + template + void serializeOp(Serializer& serializer) + { + serializer(m_active); + serializer.vector(m_comp); + serializer(num_property); + serializer(num_tables); + serializer(m_water_compaction); + serializer(hyst_mode); + } + private: bool m_active = false; std::vector m_comp; From 9e804f36e5dc65dd44c268889d4a6681a75cfc38 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Thu, 12 Mar 2020 15:52:12 +0100 Subject: [PATCH 7/7] add serialization template to SimulationConfig --- opm/parser/eclipse/EclipseState/EclipseState.hpp | 2 +- .../SimulationConfig/SimulationConfig.hpp | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/opm/parser/eclipse/EclipseState/EclipseState.hpp b/opm/parser/eclipse/EclipseState/EclipseState.hpp index 8d88b818a..2a74c182c 100644 --- a/opm/parser/eclipse/EclipseState/EclipseState.hpp +++ b/opm/parser/eclipse/EclipseState/EclipseState.hpp @@ -125,7 +125,7 @@ namespace Opm { m_inputNnc.serializeOp(serializer); m_inputEditNnc.serializeOp(serializer); m_gridDims.serializeOp(serializer); - serializer(m_simulationConfig); + m_simulationConfig.serializeOp(serializer); serializer(m_transMult); serializer(m_faults); serializer(m_title); diff --git a/opm/parser/eclipse/EclipseState/SimulationConfig/SimulationConfig.hpp b/opm/parser/eclipse/EclipseState/SimulationConfig/SimulationConfig.hpp index a2553c17c..0104a1fed 100644 --- a/opm/parser/eclipse/EclipseState/SimulationConfig/SimulationConfig.hpp +++ b/opm/parser/eclipse/EclipseState/SimulationConfig/SimulationConfig.hpp @@ -53,6 +53,18 @@ namespace Opm { bool operator==(const SimulationConfig& data) const; + template + void serializeOp(Serializer& serializer) + { + m_ThresholdPressure.serializeOp(serializer); + m_bcconfig.serializeOp(serializer); + m_rock_config.serializeOp(serializer); + serializer(m_useCPR); + serializer(m_DISGAS); + serializer(m_VAPOIL); + serializer(m_isThermal); + } + private: ThresholdPressure m_ThresholdPressure; BCConfig m_bcconfig;