corrections to allocation function plus addition to unit tests

This commit is contained in:
Jostein Alvestad
2019-08-22 16:59:07 +02:00
parent 20523b46cc
commit d99791d442
2 changed files with 53 additions and 16 deletions

View File

@@ -68,8 +68,9 @@ namespace {
allocate(const std::vector<int>& udqDims)
{
using WV = Opm::RestartIO::Helpers::WindowedArray<int>;
int nwin = std::max(udqDims[0], 1);
return WV {
WV::NumWindows{ static_cast<std::size_t>(udqDims[0]) },
WV::NumWindows{ static_cast<std::size_t>(nwin) },
WV::WindowSize{ static_cast<std::size_t>(udqDims[1]) }
};
}
@@ -95,9 +96,10 @@ namespace {
allocate(const std::vector<int>& udqDims)
{
using WV = Opm::RestartIO::Helpers::WindowedArray<int>;
int nwin = std::max(udqDims[2], 1);
return WV {
WV::NumWindows{ static_cast<std::size_t>(udqDims[2]) },
WV::WindowSize{ static_cast<std::size_t>(udqDims[3]) }
WV::NumWindows{ static_cast<std::size_t>(nwin) },
WV::WindowSize{ static_cast<std::size_t>(udqDims[3]) }
};
}
@@ -124,11 +126,10 @@ namespace {
allocate(const std::vector<int>& udqDims)
{
using WV = Opm::RestartIO::Helpers::WindowedArray<
Opm::EclIO::PaddedOutputString<8>
>;
Opm::EclIO::PaddedOutputString<8>>;
int nwin = std::max(udqDims[0], 1);
return WV {
WV::NumWindows{ static_cast<std::size_t>(udqDims[0]) },
WV::NumWindows{ static_cast<std::size_t>(nwin) },
WV::WindowSize{ static_cast<std::size_t>(udqDims[4]) }
};
}
@@ -150,11 +151,10 @@ namespace {
allocate(const std::vector<int>& udqDims)
{
using WV = Opm::RestartIO::Helpers::WindowedArray<
Opm::EclIO::PaddedOutputString<8>
>;
Opm::EclIO::PaddedOutputString<8>>;
int nwin = std::max(udqDims[0], 1);
return WV {
WV::NumWindows{ static_cast<std::size_t>(udqDims[0]) },
WV::NumWindows{ static_cast<std::size_t>(nwin) },
WV::WindowSize{ static_cast<std::size_t>(udqDims[5]) }
};
}
@@ -211,8 +211,9 @@ namespace {
allocate(const std::vector<int>& udqDims)
{
using WV = Opm::RestartIO::Helpers::WindowedArray<int>;
int nwin = std::max(udqDims[7], 1);
return WV {
WV::NumWindows{ static_cast<std::size_t>(udqDims[7]) },
WV::NumWindows{ static_cast<std::size_t>(nwin) },
WV::WindowSize{ static_cast<std::size_t>(1) }
};
}
@@ -231,8 +232,9 @@ namespace {
allocate(const std::vector<int>& udqDims)
{
using WV = Opm::RestartIO::Helpers::WindowedArray<double>;
int nwin = std::max(udqDims[9], 1);
return WV {
WV::NumWindows{ static_cast<std::size_t>(udqDims[9]) },
WV::NumWindows{ static_cast<std::size_t>(nwin) },
WV::WindowSize{ static_cast<std::size_t>(udqDims[8]) }
};
}
@@ -267,8 +269,9 @@ namespace {
allocate(const std::vector<int>& udqDims)
{
using WV = Opm::RestartIO::Helpers::WindowedArray<double>;
int nwin = std::max(udqDims[11], 1);
return WV {
WV::NumWindows{ static_cast<std::size_t>(udqDims[11]) },
WV::NumWindows{ static_cast<std::size_t>(nwin) },
WV::WindowSize{ static_cast<std::size_t>(udqDims[10]) }
};
}
@@ -303,8 +306,9 @@ namespace {
allocate(const std::vector<int>& udqDims)
{
using WV = Opm::RestartIO::Helpers::WindowedArray<double>;
int nwin = std::max(udqDims[12], 1);
return WV {
WV::NumWindows{ static_cast<std::size_t>(udqDims[12]) },
WV::NumWindows{ static_cast<std::size_t>(nwin) },
WV::WindowSize{ static_cast<std::size_t>(1) }
};
}

View File

@@ -91,7 +91,6 @@ namespace {
state.update_group_var("WGRP1", "GUOPRU", 360.);
state.update_group_var("WGRP2", "GUOPRU", 361.);
state.update_group_var("GRP1", "GUOPRU", 362.);
state.update_group_var("GRP2", "GUOPRU", 363.);
state.update_well_var("PROD1", "WULPRU", 160.);
state.update_well_var("PROD2", "WULPRU", 161.);
@@ -411,7 +410,41 @@ BOOST_AUTO_TEST_CASE (Declared_UDQ_data)
}
{
/*
'DUDG ' 5 'DOUB'
Dimension = (max no groups+1) * no of group UDQ's
Value = value of UDQ for the different groups
*/
const auto& dUdg = udqData.getDUDG();
auto start = 0*udqDims[11];
BOOST_CHECK_EQUAL(dUdg[start + 0] , 362); // duDg NO. 1
BOOST_CHECK_EQUAL(dUdg[start + 1] , 360); // duDg NO. 1
BOOST_CHECK_EQUAL(dUdg[start + 2] , 361); // duDg NO. 1
BOOST_CHECK_EQUAL(dUdg[start + 3] , -0.3E+21); // duDg NO. 1
BOOST_CHECK_EQUAL(dUdg[start + 4] , -0.3E+21); // duDg NO. 1
}
{
/*
'DUDG ' 1 'DOUB'
Dimension = 1 * no of Field UDQ's
Value = value of UDQ for the field
*/
const auto& dUdf = udqData.getDUDF();
auto start = 0*udqDims[12];
BOOST_CHECK_EQUAL(dUdf[start + 0] , 460); // duDf NO. 1
}
}
BOOST_AUTO_TEST_SUITE_END()