partial completion of unit tests

This commit is contained in:
Jostein Alvestad 2021-05-12 16:47:41 +02:00
parent 50cb354e23
commit 5dd815bcbe
3 changed files with 263 additions and 32 deletions

View File

@ -66,7 +66,7 @@ std::size_t maxNoWells(const std::vector<int>& inteHead)
return inteHead[VI::intehead::NWMAXZ];
}
int maxNoOfWellListsPrWell(const std::vector<int>& inteHead)
std::size_t maxNoOfWellListsPrWell(const std::vector<int>& inteHead)
{
return inteHead[VI::intehead::MXWLSTPRWELL];
}
@ -90,8 +90,6 @@ std::vector<std::vector<std::size_t>> wellOrderInWList(const Opm::Schedule& sc
std::vector<std::vector<std::size_t>> curWelOrd;
std::size_t iwlst;
Opm::WList wlist;
//std::vector<std::size_t> min_ind;
//min_ind.resize(maxNoOfWellListsPrWell(inteHead), maxNoOfWellListsPrWell(inteHead));
std::vector<std::size_t> well_order;
well_order.resize(maxNoOfWellListsPrWell(inteHead), 0);
@ -103,22 +101,11 @@ std::vector<std::vector<std::size_t>> wellOrderInWList(const Opm::Schedule& sc
// loop over well lists for well - and assign well sequence in the different well lists
//
iwlst = 0;
std::cout << "wellOrderInWList - loop over wells, well - name: " << wname << std::endl;
for ( const auto& wlst_name : well.wListNames()) {
std::cout << "wlst_name: " << wlst_name << " Wells: " << std::endl;
if (wlmngr.hasList(wlst_name)) {
wlist = wlmngr.getList(wlst_name);
for (auto& wn : wlist.wells()) {
std::cout << "well-name - wn; " << wn << std::endl;
}
auto well_no = findInVector<std::string>(wlist.wells(), wname);
if (well_no) {
std::cout << "well found in well list - well no: " << well_no.value() << " wlist.wells()[well_no.value()] " << wlist.wells()[well_no.value()] << std::endl;
} else {
std::cout << "well not found in well list" << std::endl;
}
if (well_no) well_order[iwlst] = well_no.value() + 1;
std::cout << "WList-name: " << wlst_name << " iwlst: " << iwlst << " well_order[iwlst]: " << well_order[iwlst] << std::endl;
iwlst += 1;
} else {
auto msg = fmt::format("Well List Manager does not contain WLIST: {} ", wlst_name);
@ -127,9 +114,6 @@ std::vector<std::vector<std::size_t>> wellOrderInWList(const Opm::Schedule& sc
}
//store vector in map - and reset vector values to zero
curWelOrd.push_back(well_order);
for (auto& wno : well_order) {
std::cout << "well_order; " << wno << std::endl;
}
std::fill(well_order.begin(), well_order.end(), 0);
}
return curWelOrd;
@ -171,9 +155,7 @@ void staticContrib(const Opm::Well& well,
// set values for iWls to the well order for all Wlists
//
std::size_t ind = 0;
std::cout << "Well-name: " << well.name() << " seq_ind: " << seq_ind << std::endl;
for (const auto& wlist_vec : welOrdLst[seq_ind]) {
std::cout << " ind " << ind << "well seq no in WList: " << wlist_vec << std::endl;
iWls[ind] = wlist_vec;
ind += 1;
}
@ -208,9 +190,7 @@ void staticContrib(const Opm::Well& well,
// set values if zWls to the well list name for wells with well order > 0
//
std::size_t ind = 0;
std::cout << "Well-name: " << well.name() << " seq_ind: " << seq_ind << std::endl;
for (const auto& wlist_vec : welOrdLst[seq_ind]) {
std::cout << " ind " << ind << "well seq no in WList: " << wlist_vec << std::endl;
if (wlist_vec > 0) zWls[ind] = well.wListNames()[ind];
ind += 1;
}

View File

@ -1619,8 +1619,6 @@ namespace {
for (const auto& well : wells) {
wlist.add(well);
auto wel = this->snapshots.back().wells.get( well );
std::cout << "kwrd_handl - wlist - name: " << name << std::endl;
std::cout << "kwrd_handl - add well: " << well << " well name wel.name(): " << wel.name() << std::endl;
wel.addWlist(name);
this->snapshots.back().wells.update( std::move(wel) );
}

View File

@ -122,21 +122,19 @@ BOOST_AUTO_TEST_CASE (Constructor)
const auto simCase = SimulationCase{first_sim("TEST_WLIST.DATA")};
Opm::EclipseState es = simCase.es;
//Opm::Runspec rspec = es.runspec();
//Opm::SummaryState st = sum_state();
Opm::Schedule sched = simCase.sched;
Opm::EclipseGrid grid = simCase.grid;
//const auto& ioConfig = es.getIOConfig();
const auto& units = es.getUnits();
// Report Step 1: 2008-10-10 --> 2011-01-20
const auto rptStep = std::size_t{8};
// Report Step 2
std::size_t rptStep = 0;
std::size_t rptStepP1 = 0;
rptStep = std::size_t{2};
rptStepP1 = rptStep + 1;
double secs_elapsed = 3.1536E07;
const auto ih = Opm::RestartIO::Helpers::
createInteHead(es, grid, sched, secs_elapsed,
rptStep, rptStep+1, rptStep);
rptStep, rptStepP1, rptStep);
auto wListData = Opm::RestartIO::Helpers::AggregateWListData(ih);
wListData.captureDeclaredWListData(sched, rptStep, ih);
@ -145,7 +143,7 @@ BOOST_AUTO_TEST_CASE (Constructor)
BOOST_CHECK_EQUAL(static_cast<int>(wListData.getZWls().size()), ih[VI::intehead::NWMAXZ] * ih[VI::intehead::MXWLSTPRWELL]);
//IWls-parameters
const auto& iWLs = wListData.getIWls();
auto iWLs = wListData.getIWls();
auto start = 0*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(iWLs[start + 0], 2);
BOOST_CHECK_EQUAL(iWLs[start + 1], 2);
@ -173,6 +171,133 @@ BOOST_AUTO_TEST_CASE (Constructor)
//ZWLs-parameters
const std::string blank8 = " ";
auto zWLs = wListData.getZWls();
start = 0*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), pad8("*PRD1"));
BOOST_CHECK_EQUAL(zWLs[start + 1].c_str(), pad8("*PRD2"));
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
start = 1*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), pad8("*PRD2"));
BOOST_CHECK_EQUAL(zWLs[start + 1].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
start = 2*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), pad8("*PRD2"));
BOOST_CHECK_EQUAL(zWLs[start + 1].c_str(), pad8("*PRD1"));
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
start = 3*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), pad8("*INJ1"));
BOOST_CHECK_EQUAL(zWLs[start + 1].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
// Report Step 3
rptStep = std::size_t{3};
rptStepP1 = rptStep + 1;
secs_elapsed = 3.1536E07;
ih = Opm::RestartIO::Helpers::
createInteHead(es, grid, sched, secs_elapsed,
rptStep, rptStepP1, rptStep);
wListData = Opm::RestartIO::Helpers::AggregateWListData(ih);
wListData.captureDeclaredWListData(sched, rptStep, ih);
//IWls-parameters
iWLs = wListData.getIWls();
start = 0*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(iWLs[start + 0], 2);
BOOST_CHECK_EQUAL(iWLs[start + 1], 2);
BOOST_CHECK_EQUAL(iWLs[start + 2], 0);
BOOST_CHECK_EQUAL(iWLs[start + 3], 0);
start = 1*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(iWLs[start + 0], 3);
BOOST_CHECK_EQUAL(iWLs[start + 1], 0);
BOOST_CHECK_EQUAL(iWLs[start + 2], 0);
BOOST_CHECK_EQUAL(iWLs[start + 3], 0);
start = 2*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(iWLs[start + 0], 1);
BOOST_CHECK_EQUAL(iWLs[start + 1], 1);
BOOST_CHECK_EQUAL(iWLs[start + 2], 0);
BOOST_CHECK_EQUAL(iWLs[start + 3], 0);
start = 3*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(iWLs[start + 0], 1);
BOOST_CHECK_EQUAL(iWLs[start + 1], 0);
BOOST_CHECK_EQUAL(iWLs[start + 2], 0);
BOOST_CHECK_EQUAL(iWLs[start + 3], 0);
//ZWLs-parameters
zWLs = wListData.getZWls();
start = 0*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), pad8("*PRD1"));
BOOST_CHECK_EQUAL(zWLs[start + 1].c_str(), pad8("*PRD2"));
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
start = 1*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), pad8("*PRD2"));
BOOST_CHECK_EQUAL(zWLs[start + 1].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
start = 2*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), pad8("*PRD2"));
BOOST_CHECK_EQUAL(zWLs[start + 1].c_str(), pad8("*PRD1"));
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
start = 3*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), pad8("*INJ1"));
BOOST_CHECK_EQUAL(zWLs[start + 1].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
// Report Step 4
rptStep = std::size_t{4};
secs_elapsed = 3.1536E07;
ih = Opm::RestartIO::Helpers::
createInteHead(es, grid, sched, secs_elapsed,
rptStep, rptStep+1, rptStep);
wListData = Opm::RestartIO::Helpers::AggregateWListData(ih);
wListData.captureDeclaredWListData(sched, rptStep, ih);
//IWls-parameters
iWLs = wListData.getIWls();
start = 0*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(iWLs[start + 0], 2);
BOOST_CHECK_EQUAL(iWLs[start + 1], 2);
BOOST_CHECK_EQUAL(iWLs[start + 2], 0);
BOOST_CHECK_EQUAL(iWLs[start + 3], 0);
start = 1*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(iWLs[start + 0], 3);
BOOST_CHECK_EQUAL(iWLs[start + 1], 0);
BOOST_CHECK_EQUAL(iWLs[start + 2], 0);
BOOST_CHECK_EQUAL(iWLs[start + 3], 0);
start = 2*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(iWLs[start + 0], 1);
BOOST_CHECK_EQUAL(iWLs[start + 1], 1);
BOOST_CHECK_EQUAL(iWLs[start + 2], 0);
BOOST_CHECK_EQUAL(iWLs[start + 3], 0);
start = 3*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(iWLs[start + 0], 1);
BOOST_CHECK_EQUAL(iWLs[start + 1], 0);
BOOST_CHECK_EQUAL(iWLs[start + 2], 0);
BOOST_CHECK_EQUAL(iWLs[start + 3], 0);
//ZWLs-parameters
const std::string blank8 = " ";
const auto& zWLs = wListData.getZWls();
start = 0*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), pad8("*PRD1"));
@ -198,6 +323,134 @@ BOOST_AUTO_TEST_CASE (Constructor)
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
// Report Step 6
rptStep = std::size_t{6};
secs_elapsed = 3.1536E07;
ih = Opm::RestartIO::Helpers::
createInteHead(es, grid, sched, secs_elapsed,
rptStep, rptStep+1, rptStep);
wListData = Opm::RestartIO::Helpers::AggregateWListData(ih);
wListData.captureDeclaredWListData(sched, rptStep, ih);
//IWls-parameters
iWLs = wListData.getIWls();
start = 0*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(iWLs[start + 0], 2);
BOOST_CHECK_EQUAL(iWLs[start + 1], 2);
BOOST_CHECK_EQUAL(iWLs[start + 2], 0);
BOOST_CHECK_EQUAL(iWLs[start + 3], 0);
start = 1*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(iWLs[start + 0], 3);
BOOST_CHECK_EQUAL(iWLs[start + 1], 0);
BOOST_CHECK_EQUAL(iWLs[start + 2], 0);
BOOST_CHECK_EQUAL(iWLs[start + 3], 0);
start = 2*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(iWLs[start + 0], 1);
BOOST_CHECK_EQUAL(iWLs[start + 1], 1);
BOOST_CHECK_EQUAL(iWLs[start + 2], 0);
BOOST_CHECK_EQUAL(iWLs[start + 3], 0);
start = 3*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(iWLs[start + 0], 1);
BOOST_CHECK_EQUAL(iWLs[start + 1], 0);
BOOST_CHECK_EQUAL(iWLs[start + 2], 0);
BOOST_CHECK_EQUAL(iWLs[start + 3], 0);
//ZWLs-parameters
const std::string blank8 = " ";
const auto& zWLs = wListData.getZWls();
start = 0*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), pad8("*PRD1"));
BOOST_CHECK_EQUAL(zWLs[start + 1].c_str(), pad8("*PRD2"));
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
start = 1*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), pad8("*PRD2"));
BOOST_CHECK_EQUAL(zWLs[start + 1].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
start = 2*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), pad8("*PRD2"));
BOOST_CHECK_EQUAL(zWLs[start + 1].c_str(), pad8("*PRD1"));
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
start = 3*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), pad8("*INJ1"));
BOOST_CHECK_EQUAL(zWLs[start + 1].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
// Report Step 8
rptStep = std::size_t{8};
secs_elapsed = 3.1536E07;
ih = Opm::RestartIO::Helpers::
createInteHead(es, grid, sched, secs_elapsed,
rptStep, rptStep+1, rptStep);
wListData = Opm::RestartIO::Helpers::AggregateWListData(ih);
wListData.captureDeclaredWListData(sched, rptStep, ih);
//IWls-parameters
iWLs = wListData.getIWls();
auto start = 0*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(iWLs[start + 0], 2);
BOOST_CHECK_EQUAL(iWLs[start + 1], 2);
BOOST_CHECK_EQUAL(iWLs[start + 2], 0);
BOOST_CHECK_EQUAL(iWLs[start + 3], 0);
start = 1*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(iWLs[start + 0], 3);
BOOST_CHECK_EQUAL(iWLs[start + 1], 0);
BOOST_CHECK_EQUAL(iWLs[start + 2], 0);
BOOST_CHECK_EQUAL(iWLs[start + 3], 0);
start = 2*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(iWLs[start + 0], 1);
BOOST_CHECK_EQUAL(iWLs[start + 1], 1);
BOOST_CHECK_EQUAL(iWLs[start + 2], 0);
BOOST_CHECK_EQUAL(iWLs[start + 3], 0);
start = 3*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(iWLs[start + 0], 1);
BOOST_CHECK_EQUAL(iWLs[start + 1], 0);
BOOST_CHECK_EQUAL(iWLs[start + 2], 0);
BOOST_CHECK_EQUAL(iWLs[start + 3], 0);
//ZWLs-parameters
zWLs = wListData.getZWls();
start = 0*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), pad8("*PRD1"));
BOOST_CHECK_EQUAL(zWLs[start + 1].c_str(), pad8("*PRD2"));
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
start = 1*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), pad8("*PRD2"));
BOOST_CHECK_EQUAL(zWLs[start + 1].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
start = 2*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), pad8("*PRD2"));
BOOST_CHECK_EQUAL(zWLs[start + 1].c_str(), pad8("*PRD1"));
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
start = 3*ih[VI::intehead::MXWLSTPRWELL];
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), pad8("*INJ1"));
BOOST_CHECK_EQUAL(zWLs[start + 1].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
}
BOOST_AUTO_TEST_SUITE_END()