mirror of
https://github.com/OPM/opm-simulators.git
synced 2026-09-05 04:40:19 -05:00
EclGenericProblem: add serialization support
This commit is contained in:
@@ -104,6 +104,37 @@ EclGenericProblem(const EclipseState& eclState,
|
||||
{
|
||||
}
|
||||
|
||||
template<class GridView, class FluidSystem, class Scalar>
|
||||
EclGenericProblem<GridView,FluidSystem,Scalar>
|
||||
EclGenericProblem<GridView,FluidSystem,Scalar>::
|
||||
serializationTestObject(const EclipseState& eclState,
|
||||
const Schedule& schedule,
|
||||
const GridView& gridView)
|
||||
{
|
||||
EclGenericProblem result(eclState, schedule, gridView);
|
||||
result.maxOilSaturation_ = {1.0, 2.0};
|
||||
result.maxPolymerAdsorption_ = {3.0, 4.0, 5.0};
|
||||
result.maxWaterSaturation_ = {6.0};
|
||||
result.minOilPressure_ = {7.0, 8.0, 9.0, 10.0};
|
||||
result.overburdenPressure_ = {11.0};
|
||||
result.polymerConcentration_ = {12.0};
|
||||
result.polymerMoleWeight_ = {13.0, 14.0};
|
||||
result.solventSaturation_ = {15.0};
|
||||
result.microbialConcentration_ = {16.0};
|
||||
result.oxygenConcentration_ = {17.0};
|
||||
result.ureaConcentration_ = {18.0};
|
||||
result.biofilmConcentration_ = {19.0};
|
||||
result.calciteConcentration_ = {20.0};
|
||||
result.lastRv_ = {21.0};
|
||||
result.maxDRv_ = {22.0, 23.0};
|
||||
result.convectiveDrs_ = {24.0, 25.0, 26.0};
|
||||
result.lastRs_ = {27.0};
|
||||
result.maxDRs_ = {28.0};
|
||||
result.dRsDtOnlyFreeGas_ = {false, true};
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
template<class GridView, class FluidSystem, class Scalar>
|
||||
std::string
|
||||
EclGenericProblem<GridView,FluidSystem,Scalar>::
|
||||
@@ -755,6 +786,31 @@ initDRSDT_(size_t numDof,
|
||||
}
|
||||
}
|
||||
|
||||
template<class GridView, class FluidSystem, class Scalar>
|
||||
bool EclGenericProblem<GridView,FluidSystem,Scalar>::
|
||||
operator==(const EclGenericProblem& rhs) const
|
||||
{
|
||||
return this->maxOilSaturation_ == rhs.maxOilSaturation_ &&
|
||||
this->maxPolymerAdsorption_ == rhs.maxPolymerAdsorption_ &&
|
||||
this->maxWaterSaturation_ == rhs.maxWaterSaturation_ &&
|
||||
this->minOilPressure_ == rhs.minOilPressure_ &&
|
||||
this->overburdenPressure_ == rhs.overburdenPressure_ &&
|
||||
this->polymerConcentration_ == rhs.polymerConcentration_ &&
|
||||
this->polymerMoleWeight_ == rhs.polymerMoleWeight_ &&
|
||||
this->solventSaturation_ == rhs.solventSaturation_ &&
|
||||
this->microbialConcentration_ == rhs.microbialConcentration_ &&
|
||||
this->oxygenConcentration_ == rhs.oxygenConcentration_ &&
|
||||
this->ureaConcentration_ == rhs.ureaConcentration_ &&
|
||||
this->biofilmConcentration_ == rhs.biofilmConcentration_ &&
|
||||
this->calciteConcentration_ == rhs.calciteConcentration_ &&
|
||||
this->lastRv_ == rhs.lastRv_ &&
|
||||
this->maxDRv_ == rhs.maxDRv_ &&
|
||||
this->convectiveDrs_ == rhs.convectiveDrs_ &&
|
||||
this->lastRs_ == rhs.lastRs_ &&
|
||||
this->maxDRs_ == rhs.maxDRs_ &&
|
||||
this->dRsDtOnlyFreeGas_ == rhs.dRsDtOnlyFreeGas_;
|
||||
}
|
||||
|
||||
#if HAVE_DUNE_FEM
|
||||
template class EclGenericProblem<Dune::GridView<Dune::Fem::GridPart2GridViewTraits<Dune::Fem::AdaptiveLeafGridPart<Dune::CpGrid, Dune::PartitionIteratorType(4), false>>>,
|
||||
BlackOilFluidSystem<double,BlackOilDefaultIndexTraits>,
|
||||
|
||||
@@ -74,6 +74,11 @@ public:
|
||||
const Schedule& schedule,
|
||||
const GridView& gridView);
|
||||
|
||||
|
||||
static EclGenericProblem serializationTestObject(const EclipseState& eclState,
|
||||
const Schedule& schedule,
|
||||
const GridView& gridView);
|
||||
|
||||
/*!
|
||||
* \copydoc FvBaseProblem::helpPreamble
|
||||
*/
|
||||
@@ -257,6 +262,32 @@ public:
|
||||
|
||||
bool vapparsActive(int episodeIdx) const;
|
||||
|
||||
bool operator==(const EclGenericProblem& rhs) const;
|
||||
|
||||
template<class Serializer>
|
||||
void serializeOp(Serializer& serializer)
|
||||
{
|
||||
serializer(maxOilSaturation_);
|
||||
serializer(maxPolymerAdsorption_);
|
||||
serializer(maxWaterSaturation_);
|
||||
serializer(minOilPressure_);
|
||||
serializer(overburdenPressure_);
|
||||
serializer(polymerConcentration_);
|
||||
serializer(polymerMoleWeight_);
|
||||
serializer(solventSaturation_);
|
||||
serializer(microbialConcentration_);
|
||||
serializer(oxygenConcentration_);
|
||||
serializer(ureaConcentration_);
|
||||
serializer(biofilmConcentration_);
|
||||
serializer(calciteConcentration_);
|
||||
serializer(lastRv_);
|
||||
serializer(maxDRv_);
|
||||
serializer(convectiveDrs_);
|
||||
serializer(lastRs_);
|
||||
serializer(maxDRs_);
|
||||
serializer(dRsDtOnlyFreeGas_);
|
||||
}
|
||||
|
||||
protected:
|
||||
bool drsdtActive_(int episodeIdx) const;
|
||||
bool drvdtActive_(int episodeIdx) const;
|
||||
|
||||
Reference in New Issue
Block a user