Add code to internalize GPMAINT keyword in Group objects
This commit is contained in:
@@ -537,3 +537,62 @@ BOOST_AUTO_TEST_CASE(GCONINJE_GCONPROD) {
|
||||
BOOST_CHECK( g2.injectionGroupControlAvailable(Phase::GAS));
|
||||
}
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(GPMAINT) {
|
||||
const auto input = R"(
|
||||
SCHEDULE
|
||||
|
||||
GRUPTREE
|
||||
'PROD' 'FIELD' /
|
||||
|
||||
'M5S' 'PLAT-A' /
|
||||
'M5N' 'PLAT-A' /
|
||||
|
||||
'C1' 'M5N' /
|
||||
'F1' 'M5N' /
|
||||
'B1' 'M5S' /
|
||||
'G1' 'M5S' /
|
||||
/
|
||||
|
||||
GPMAINT
|
||||
'PROD' 'WINJ' 2 1* 100 0.25 1.0 /
|
||||
'C1' 'GINJ' 0 1* 100 0.25 1.0 /
|
||||
/
|
||||
|
||||
TSTEP
|
||||
10 /
|
||||
|
||||
GPMAINT
|
||||
'PROD' 'NONE' /
|
||||
/
|
||||
|
||||
)";
|
||||
Opm::UnitSystem unitSystem = UnitSystem( UnitSystem::UnitType::UNIT_TYPE_METRIC );
|
||||
double siFactorG = unitSystem.parse("GasSurfaceVolume/Time").getSIScaling();
|
||||
const auto sched = create_schedule(input);
|
||||
{
|
||||
const auto& prod_group = sched.getGroup("PROD", 0);
|
||||
const auto& plat_group = sched.getGroup("PLAT-A", 0);
|
||||
const auto& c1_group = sched.getGroup("C1", 0);
|
||||
|
||||
const auto& gpm_prod = prod_group.gpmaint();
|
||||
BOOST_CHECK( gpm_prod );
|
||||
BOOST_CHECK(gpm_prod->flow_target() == GPMaint::FlowTarget::RESV_WINJ);
|
||||
|
||||
auto [name, number] = *gpm_prod->region();
|
||||
BOOST_CHECK_EQUAL(number, 2);
|
||||
BOOST_CHECK_EQUAL(name, "FIPNUM");
|
||||
|
||||
const auto& gpm_c1 = c1_group.gpmaint();
|
||||
BOOST_CHECK(!gpm_c1->region());
|
||||
|
||||
const auto& plat_prod = plat_group.gpmaint();
|
||||
BOOST_CHECK( !plat_prod );
|
||||
}
|
||||
{
|
||||
const auto& prod_group = sched.getGroup("PROD", 1);
|
||||
const auto& gpm_prod = prod_group.gpmaint();
|
||||
BOOST_CHECK( !gpm_prod );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user