Merge pull request #1568 from akva2/serialize_internal_eclstate_part1

Internal serialization in EclipseState - part 1
This commit is contained in:
Arne Morten Kvarving 2020-03-16 11:42:51 +01:00 committed by GitHub
commit 037620d83f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 97 additions and 12 deletions

View File

@ -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);

View File

@ -46,6 +46,12 @@ public:
bool operator==(const EDITNNC& data) const;
template<class Serializer>
void serializeOp(Serializer& serializer)
{
serializer.vector(m_editnnc);
}
private:
std::vector<NNCdata> m_editnnc;
};

View File

@ -59,6 +59,14 @@ namespace Opm {
bool operator==(const GridDims& data) const;
template<class Serializer>
void serializeOp(Serializer& serializer)
{
serializer(m_nx);
serializer(m_ny);
serializer(m_nz);
}
protected:
size_t m_nx;
size_t m_ny;

View File

@ -40,6 +40,14 @@ struct NNCdata {
trans == data.trans;
}
template<class Serializer>
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<class Serializer>
void serializeOp(Serializer& serializer)
{
serializer.vector(m_nnc);
}
private:
std::vector<NNCdata> m_nnc;

View File

@ -69,6 +69,21 @@ public:
BCComponent comp_arg,
double rate_arg);
bool operator==(const BCFace& other) const;
template<class Serializer>
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<BCFace>::const_iterator begin() const;
std::vector<BCFace>::const_iterator end() const;
bool operator==(const BCConfig& other) const;
template<class Serializer>
void serializeOp(Serializer& serializer)
{
serializer.vector(m_faces);
}
private:
std::vector<BCFace> m_faces;
};

View File

@ -49,6 +49,13 @@ struct RockComp {
RockComp() = default;
RockComp(double pref_arg, double comp_arg);
bool operator==(const RockComp& other) const;
template<class Serializer>
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<class Serializer>
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<RockComp> m_comp;

View File

@ -53,6 +53,18 @@ namespace Opm {
bool operator==(const SimulationConfig& data) const;
template<class Serializer>
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;

View File

@ -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<class Serializer>
void serializeOp(Serializer& serializer)
{
serializer(m_active);
serializer(m_restart);
serializer(m_thresholdPressureTable);
serializer(m_pressureTable);
}
private:
bool m_active;
bool m_restart;

View File

@ -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;
}