diff --git a/ebos/ecltracermodel.hh b/ebos/ecltracermodel.hh index 3418b136b..1fd1e887c 100644 --- a/ebos/ecltracermodel.hh +++ b/ebos/ecltracermodel.hh @@ -205,6 +205,13 @@ public: void deserialize(Restarter&) { /* not implemented */ } + template + void serializeOp(Serializer& serializer) + { + serializer(static_cast(*this)); + serializer(tbatch); + } + protected: // evaluate water storage volume(s) in a single cell @@ -555,7 +562,32 @@ protected: std::vector residual_; std::unique_ptr mat; - TracerBatch(int phaseIdx) : phaseIdx_(phaseIdx) {} + bool operator==(const TracerBatch& rhs) const + { + return this->concentrationInitial_ == rhs.concentrationInitial_ && + this->concentration_ == rhs.concentration_; + } + + static TracerBatch serializationTestObject() + { + TracerBatch result(4); + result.idx_ = {1,2,3}; + result.concentrationInitial_ = {5.0, 6.0}; + result.concentration_ = {7.0, 8.0}; + result.storageOfTimeIndex1_ = {9.0, 10.0, 11.0}; + result.residual_ = {12.0, 13.0}; + + return result; + } + + template + void serializeOp(Serializer& serializer) + { + serializer(concentrationInitial_); + serializer(concentration_); + } + + TracerBatch(int phaseIdx = 0) : phaseIdx_(phaseIdx) {} int numTracer() const {return idx_.size(); } diff --git a/tests/test_RestartSerialization.cpp b/tests/test_RestartSerialization.cpp index f73e7c3c0..fb718e800 100644 --- a/tests/test_RestartSerialization.cpp +++ b/tests/test_RestartSerialization.cpp @@ -202,6 +202,16 @@ BOOST_AUTO_TEST_CASE(EclGenericTracerModel) BOOST_CHECK_MESSAGE(data_out == data_in, "Deserialized EclGenericTracerModel differ"); } +namespace Opm { + +class TBatchExport : public EclTracerModel { +public: + using TBatch = TracerBatch; +}; + +} + +TEST_FOR_TYPE_NAMED(TBatchExport::TBatch, TracerBatch) namespace {