EclGenericVanguard: add serialization support

This commit is contained in:
Arne Morten Kvarving
2023-01-31 12:38:54 +01:00
parent afba3f948c
commit a825a060c3
3 changed files with 125 additions and 7 deletions

View File

@@ -20,9 +20,15 @@
#include <config.h>
#include <ebos/ebos.hh>
#include <ebos/eclgenericvanguard.hh>
#include <opm/common/utility/Serializer.hpp>
#include <opm/input/eclipse/Schedule/Action/State.hpp>
#include <opm/input/eclipse/EclipseState/SummaryConfig/SummaryConfig.hpp>
#include <opm/input/eclipse/Schedule/SummaryState.hpp>
#include <opm/input/eclipse/Schedule/UDQ/UDQState.hpp>
#include <opm/simulators/timestepping/AdaptiveTimeSteppingEbos.hpp>
#include <opm/simulators/timestepping/SimulatorTimer.hpp>
#include <opm/simulators/timestepping/TimeStepControl.hpp>
@@ -75,6 +81,28 @@ TEST_FOR_TYPE_NAMED_OBJ(ATE, AdaptiveTimeSteppingEbosPID, serializationTestObjec
TEST_FOR_TYPE_NAMED_OBJ(ATE, AdaptiveTimeSteppingEbosPIDIt, serializationTestObjectPIDIt)
TEST_FOR_TYPE_NAMED_OBJ(ATE, AdaptiveTimeSteppingEbosSimple, serializationTestObjectSimple)
BOOST_AUTO_TEST_CASE(EclGenericVanguard)
{
auto in_params = Opm::EclGenericVanguard::serializationTestParams();
Opm::EclGenericVanguard val1(std::move(in_params));
Opm::Serialization::MemPacker packer;
Opm::Serializer ser(packer);
ser.pack(val1);
const size_t pos1 = ser.position();
Opm::EclGenericVanguard::SimulationModelParams out_params;
out_params.setupTime_ = 0.0;
out_params.actionState_ = std::make_unique<Opm::Action::State>();
out_params.udqState_ = std::make_unique<Opm::UDQState>();
out_params.eclSchedule_ = std::make_shared<Opm::Schedule>();
out_params.summaryState_ = std::make_unique<Opm::SummaryState>();
Opm::EclGenericVanguard val2(std::move(out_params));
ser.unpack(val2);
const size_t pos2 = ser.position();
BOOST_CHECK_MESSAGE(pos1 == pos2, "Packed size differ from unpack size for EclGenericVanguard");
BOOST_CHECK_MESSAGE(val1 == val2, "Deserialized EclGenericVanguard differ");
}
bool init_unit_test_func()
{
return true;