diff --git a/opm/parser/eclipse/EclipseState/EclipseState.hpp b/opm/parser/eclipse/EclipseState/EclipseState.hpp index fa672507e..2a74c182c 100644 --- a/opm/parser/eclipse/EclipseState/EclipseState.hpp +++ b/opm/parser/eclipse/EclipseState/EclipseState.hpp @@ -122,10 +122,10 @@ namespace Opm { serializer(m_runspec); serializer(m_eclipseConfig); serializer(m_deckUnitSystem); - serializer(m_inputNnc); - serializer(m_inputEditNnc); - serializer(m_gridDims); - serializer(m_simulationConfig); + m_inputNnc.serializeOp(serializer); + m_inputEditNnc.serializeOp(serializer); + m_gridDims.serializeOp(serializer); + m_simulationConfig.serializeOp(serializer); serializer(m_transMult); serializer(m_faults); serializer(m_title); 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/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; 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; 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; }; 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; 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; diff --git a/opm/parser/eclipse/EclipseState/SimulationConfig/ThresholdPressure.hpp b/opm/parser/eclipse/EclipseState/SimulationConfig/ThresholdPressure.hpp index 77706dc85..24d993cdd 100644 --- a/opm/parser/eclipse/EclipseState/SimulationConfig/ThresholdPressure.hpp +++ b/opm/parser/eclipse/EclipseState/SimulationConfig/ThresholdPressure.hpp @@ -74,13 +74,17 @@ 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 + void serializeOp(Serializer& serializer) + { + serializer(m_active); + serializer(m_restart); + serializer(m_thresholdPressureTable); + serializer(m_pressureTable); + } + private: bool m_active; bool m_restart; 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; }