mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
add mpi serialization for SolventDensityTable
This commit is contained in:
parent
c23dd11d6b
commit
92303531b9
@ -855,6 +855,7 @@ std::size_t packSize(const TableManager& data, Dune::MPIHelper::MPICommunicator
|
|||||||
packSize(data.getWatdentTable(), comm) +
|
packSize(data.getWatdentTable(), comm) +
|
||||||
packSize(data.getPvtwSaltTables(), comm) +
|
packSize(data.getPvtwSaltTables(), comm) +
|
||||||
packSize(data.getBrineDensityTables(), comm) +
|
packSize(data.getBrineDensityTables(), comm) +
|
||||||
|
packSize(data.getSolventDensityTables(), comm) +
|
||||||
packSize(data.getPlymwinjTables(), comm) +
|
packSize(data.getPlymwinjTables(), comm) +
|
||||||
packSize(data.getSkprwatTables(), comm) +
|
packSize(data.getSkprwatTables(), comm) +
|
||||||
packSize(data.getSkprpolyTables(), comm) +
|
packSize(data.getSkprpolyTables(), comm) +
|
||||||
@ -2029,6 +2030,12 @@ std::size_t packSize(const FaultCollection& data,
|
|||||||
return packSize(data.getFaults(), comm);
|
return packSize(data.getFaults(), comm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::size_t packSize(const SolventDensityTable& data,
|
||||||
|
Dune::MPIHelper::MPICommunicator comm)
|
||||||
|
{
|
||||||
|
return packSize(data.getSolventDensityColumn(), comm);
|
||||||
|
}
|
||||||
|
|
||||||
////// pack routines
|
////// pack routines
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
@ -2702,6 +2709,7 @@ void pack(const TableManager& data, std::vector<char>& buffer, int& position,
|
|||||||
pack(data.getWatdentTable(), buffer, position, comm);
|
pack(data.getWatdentTable(), buffer, position, comm);
|
||||||
pack(data.getPvtwSaltTables(), buffer, position, comm);
|
pack(data.getPvtwSaltTables(), buffer, position, comm);
|
||||||
pack(data.getBrineDensityTables(), buffer, position, comm);
|
pack(data.getBrineDensityTables(), buffer, position, comm);
|
||||||
|
pack(data.getSolventDensityTables(), buffer, position, comm);
|
||||||
pack(data.getPlymwinjTables(), buffer, position, comm);
|
pack(data.getPlymwinjTables(), buffer, position, comm);
|
||||||
pack(data.getSkprwatTables(), buffer, position, comm);
|
pack(data.getSkprwatTables(), buffer, position, comm);
|
||||||
pack(data.getSkprpolyTables(), buffer, position, comm);
|
pack(data.getSkprpolyTables(), buffer, position, comm);
|
||||||
@ -3939,6 +3947,13 @@ void pack(const EclEpsScalingPointsInfo<Scalar>& data, std::vector<char>& buffer
|
|||||||
pack(data.maxKrg, buffer, position, comm);
|
pack(data.maxKrg, buffer, position, comm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void pack(const SolventDensityTable& data,
|
||||||
|
std::vector<char>& buffer, int& position,
|
||||||
|
Dune::MPIHelper::MPICommunicator comm)
|
||||||
|
{
|
||||||
|
pack(data.getSolventDensityColumn(), buffer, position, comm);
|
||||||
|
}
|
||||||
|
|
||||||
/// unpack routines
|
/// unpack routines
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
@ -4833,6 +4848,7 @@ void unpack(TableManager& data, std::vector<char>& buffer, int& position,
|
|||||||
WatdentTable watdentTable;
|
WatdentTable watdentTable;
|
||||||
std::vector<PvtwsaltTable> pvtwsaltTables;
|
std::vector<PvtwsaltTable> pvtwsaltTables;
|
||||||
std::vector<BrineDensityTable> bdensityTables;
|
std::vector<BrineDensityTable> bdensityTables;
|
||||||
|
std::vector<SolventDensityTable> sdensityTables;
|
||||||
std::map<int, PlymwinjTable> plymwinjTables;
|
std::map<int, PlymwinjTable> plymwinjTables;
|
||||||
std::map<int, SkprwatTable> skprwatTables;
|
std::map<int, SkprwatTable> skprwatTables;
|
||||||
std::map<int, SkprpolyTable> skprpolyTables;
|
std::map<int, SkprpolyTable> skprpolyTables;
|
||||||
@ -4860,6 +4876,7 @@ void unpack(TableManager& data, std::vector<char>& buffer, int& position,
|
|||||||
unpack(watdentTable, buffer, position, comm);
|
unpack(watdentTable, buffer, position, comm);
|
||||||
unpack(pvtwsaltTables, buffer, position, comm);
|
unpack(pvtwsaltTables, buffer, position, comm);
|
||||||
unpack(bdensityTables, buffer, position, comm);
|
unpack(bdensityTables, buffer, position, comm);
|
||||||
|
unpack(sdensityTables, buffer, position, comm);
|
||||||
unpack(plymwinjTables, buffer, position, comm);
|
unpack(plymwinjTables, buffer, position, comm);
|
||||||
unpack(skprwatTables, buffer, position, comm);
|
unpack(skprwatTables, buffer, position, comm);
|
||||||
unpack(skprpolyTables, buffer, position, comm);
|
unpack(skprpolyTables, buffer, position, comm);
|
||||||
@ -4885,7 +4902,7 @@ void unpack(TableManager& data, std::vector<char>& buffer, int& position,
|
|||||||
data = TableManager(simpleTables, pvtgTables, pvtoTables, rock2dTables,
|
data = TableManager(simpleTables, pvtgTables, pvtoTables, rock2dTables,
|
||||||
rock2dtrTables, pvtwTable, pvcdoTable, densityTable,
|
rock2dtrTables, pvtwTable, pvcdoTable, densityTable,
|
||||||
rockTable, viscrefTable, watdentTable, pvtwsaltTables,
|
rockTable, viscrefTable, watdentTable, pvtwsaltTables,
|
||||||
bdensityTables, plymwinjTables,
|
bdensityTables, sdensityTables, plymwinjTables,
|
||||||
skprwatTables, skprpolyTables, tabdims, regdims, eqldims,
|
skprwatTables, skprpolyTables, tabdims, regdims, eqldims,
|
||||||
aqudims, hasImptvd, hasEntpvd, hasEqlnum, jfunc, oilDenT, gasDenT,
|
aqudims, hasImptvd, hasEntpvd, hasEqlnum, jfunc, oilDenT, gasDenT,
|
||||||
watDenT, gas_comp_index, rtemp);
|
watDenT, gas_comp_index, rtemp);
|
||||||
@ -6691,6 +6708,15 @@ void unpack(FaultCollection& data,
|
|||||||
data = FaultCollection(faults);
|
data = FaultCollection(faults);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void unpack(SolventDensityTable& data, std::vector<char>& buffer, int& position,
|
||||||
|
Dune::MPIHelper::MPICommunicator comm)
|
||||||
|
{
|
||||||
|
std::vector<double> tableValues;
|
||||||
|
|
||||||
|
unpack(tableValues, buffer, position, comm);
|
||||||
|
data = SolventDensityTable(tableValues);
|
||||||
|
}
|
||||||
|
|
||||||
#define INSTANTIATE_PACK_VECTOR(...) \
|
#define INSTANTIATE_PACK_VECTOR(...) \
|
||||||
template std::size_t packSize(const std::vector<__VA_ARGS__>& data, \
|
template std::size_t packSize(const std::vector<__VA_ARGS__>& data, \
|
||||||
Dune::MPIHelper::MPICommunicator comm); \
|
Dune::MPIHelper::MPICommunicator comm); \
|
||||||
|
@ -141,6 +141,7 @@ class SimulationConfig;
|
|||||||
class SimpleTable;
|
class SimpleTable;
|
||||||
class SkprpolyTable;
|
class SkprpolyTable;
|
||||||
class SkprwatTable;
|
class SkprwatTable;
|
||||||
|
class SolventDensityTable;
|
||||||
class SpiralICD;
|
class SpiralICD;
|
||||||
class SummaryConfig;
|
class SummaryConfig;
|
||||||
class SummaryNode;
|
class SummaryNode;
|
||||||
@ -767,6 +768,7 @@ ADD_PACK_PROTOTYPES(SimulationConfig)
|
|||||||
ADD_PACK_PROTOTYPES(SimpleTable)
|
ADD_PACK_PROTOTYPES(SimpleTable)
|
||||||
ADD_PACK_PROTOTYPES(SkprpolyTable)
|
ADD_PACK_PROTOTYPES(SkprpolyTable)
|
||||||
ADD_PACK_PROTOTYPES(SkprwatTable)
|
ADD_PACK_PROTOTYPES(SkprwatTable)
|
||||||
|
ADD_PACK_PROTOTYPES(SolventDensityTable)
|
||||||
ADD_PACK_PROTOTYPES(SpiralICD)
|
ADD_PACK_PROTOTYPES(SpiralICD)
|
||||||
ADD_PACK_PROTOTYPES(std::string)
|
ADD_PACK_PROTOTYPES(std::string)
|
||||||
ADD_PACK_PROTOTYPES(SummaryConfig)
|
ADD_PACK_PROTOTYPES(SummaryConfig)
|
||||||
|
@ -1206,6 +1206,7 @@ BOOST_AUTO_TEST_CASE(TableManager)
|
|||||||
Opm::WatdentTable({Opm::WATDENTRecord{1.0, 2.0, 3.0}}),
|
Opm::WatdentTable({Opm::WATDENTRecord{1.0, 2.0, 3.0}}),
|
||||||
{{1.0, 2.0, {1.0, 2.0, 3.0}}},
|
{{1.0, 2.0, {1.0, 2.0, 3.0}}},
|
||||||
{{{1.0, 2.0, 3.0}}},
|
{{{1.0, 2.0, 3.0}}},
|
||||||
|
{{{4.0, 5.0, 6.0}}},
|
||||||
{{1, Opm::PlymwinjTable({1.0}, {2.0}, 1, {{1.0}, {2.0}})}},
|
{{1, Opm::PlymwinjTable({1.0}, {2.0}, 1, {{1.0}, {2.0}})}},
|
||||||
{{2, Opm::SkprwatTable({1.0}, {2.0}, 1, {{1.0}, {2.0}})}},
|
{{2, Opm::SkprwatTable({1.0}, {2.0}, 1, {{1.0}, {2.0}})}},
|
||||||
{{3, Opm::SkprpolyTable({1.0}, {2.0}, 1, {{1.0}, {2.0}}, 3.0)}},
|
{{3, Opm::SkprpolyTable({1.0}, {2.0}, 1, {{1.0}, {2.0}}, 3.0)}},
|
||||||
@ -2509,6 +2510,16 @@ BOOST_AUTO_TEST_CASE(EclEpsScalingPointsInfo)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(SolventDensityTable)
|
||||||
|
{
|
||||||
|
#ifdef HAVE_MPI
|
||||||
|
Opm::SolventDensityTable val1({1.0, 2.0, 3.0});
|
||||||
|
auto val2 = PackUnpack(val1);
|
||||||
|
DO_CHECKS(SolventDensityTable)
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool init_unit_test_func()
|
bool init_unit_test_func()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
Reference in New Issue
Block a user