AquiferNumerical: add serialization of dynamic state

This commit is contained in:
Arne Morten Kvarving
2023-02-02 10:27:48 +01:00
parent 03f6309ff7
commit a66fd75715
2 changed files with 51 additions and 2 deletions

View File

@@ -21,10 +21,13 @@
#ifndef OPM_AQUIFERNUMERICAL_HEADER_INCLUDED
#define OPM_AQUIFERNUMERICAL_HEADER_INCLUDED
#include <opm/output/data/Aquifer.hpp>
#include <opm/input/eclipse/EclipseState/Aquifer/NumericalAquifer/SingleNumericalAquifer.hpp>
#include <opm/material/common/MathToolbox.hpp>
#include <opm/material/densead/Evaluation.hpp>
#include <opm/output/data/Aquifer.hpp>
#include <opm/simulators/aquifers/AquiferInterface.hpp>
#include <opm/simulators/utils/DeferredLoggingErrorHelpers.hpp>
@@ -86,6 +89,17 @@ public:
}
}
static AquiferNumerical serializationTestObject(const Simulator& ebos_simulator)
{
AquiferNumerical result({}, ebos_simulator);
result.flux_rate_ = 1.0;
result.cumulative_flux_ = 2.0;
result.init_pressure_ = {3.0, 4.0};
result.pressure_ = 5.0;
return result;
}
void initFromRestart(const data::Aquifers& aquiferSoln) override
{
auto xaqPos = aquiferSoln.find(this->aquiferID());
@@ -140,6 +154,23 @@ public:
this->cumulative_flux_ = 0.;
}
template<class Serializer>
void serializeOp(Serializer& serializer)
{
serializer(flux_rate_);
serializer(cumulative_flux_);
serializer(init_pressure_);
serializer(pressure_);
}
bool operator==(const AquiferNumerical& rhs) const
{
return this->flux_rate_ == rhs.flux_rate_ &&
this->cumulative_flux_ == rhs.cumulative_flux_ &&
this->init_pressure_ == rhs.init_pressure_ &&
this->pressure_ == rhs.pressure_;
}
private:
void checkConnectsToReservoir()
{