adjust serialization of VFPProdTable

This commit is contained in:
Arne Morten Kvarving
2020-02-12 15:38:02 +01:00
parent 649818730c
commit 99c019a6bb
6 changed files with 21 additions and 37 deletions

View File

@@ -124,10 +124,8 @@ struct TrivialFixture {
nz(gfr_axis.size()),
nu(alq_axis.size()),
nv(flo_axis.size()),
size{{ nx, ny, nz, nu, nv }},
data(size)
data(nx*ny*nz*nu*nv)
{
}
~TrivialFixture() {
@@ -143,7 +141,7 @@ struct TrivialFixture {
for (int k=0; k<nz; ++k) {
for (int l=0; l<nu; ++l) {
for (int m=0; m<nv; ++m) {
data[i][j][k][l][m] = value;
(*this)(i,j,k,l,m) = value;
}
}
}
@@ -166,7 +164,7 @@ struct TrivialFixture {
for (int m=0; m<nv; ++m) {
double v = m / static_cast<double>(nv-1);
// table[thp_idx][wfr_idx][gfr_idx][alq_idx][flo_idx];
data[i][j][k][l][m] = x + 2*y + 3*z + 4*u + 5*v;
(*this)(i,j,k,l,m) = x + 2*y + 3*z + 4*u + 5*v;
}
}
}
@@ -187,7 +185,7 @@ struct TrivialFixture {
for (int k=0; k<nz; ++k) {
for (int l=0; l<nu; ++l) {
for (int m=0; m<nv; ++m) {
data[i][j][k][l][m] = randx / max_val;
(*this)(i,j,k,l,m) = randx / max_val;
randx = (randx*1103515245 + 12345);
}
}
@@ -214,6 +212,11 @@ struct TrivialFixture {
properties.reset(new Opm::VFPProdProperties(table.get()));
}
double& operator()(size_t thp_idx, size_t wfr_idx, size_t gfr_idx, size_t alq_idx, size_t flo_idx) {
return data[thp_idx*ny*nz*nu*nv + wfr_idx*nz*nu*nv + gfr_idx*nu*nv + alq_idx*nv + flo_idx];
}
std::shared_ptr<Opm::VFPProdProperties> properties;
@@ -231,7 +234,6 @@ private:
int nz;
int nu;
int nv;
Opm::VFPProdTable::extents size;
Opm::VFPProdTable::array_type data;
};