RGIPL+RGIPG support.

This commit is contained in:
Jørgen Kvalsvik 2016-11-21 12:35:23 +01:00
parent 0253d1675d
commit 84690ce6b6
2 changed files with 20 additions and 0 deletions

View File

@ -392,6 +392,14 @@ quantity roipg(const fn_args& args) {
return region_sum( args , "OIPG", measure::volume );
}
quantity rgipl(const fn_args& args) {
return region_sum( args , "GIPL", measure::volume );
}
quantity rgipg(const fn_args& args) {
return region_sum( args , "GIPG", measure::volume );
}
quantity fgip( const fn_args& args ) {
quantity zero { 0.0, measure::volume };
if( !args.state.has( "GIP" ) )
@ -641,6 +649,8 @@ static const std::unordered_map< std::string, ofun > funs = {
{ "ROIPL" , roipl},
{ "ROIPG" , roipg},
{ "RGIP" , rgip},
{ "RGIPL" , rgipl},
{ "RGIPG" , rgipg},
{ "RWIP" , rwip},
{ "ROIR" , region_rate< rt::oil, injector > },
{ "RGIR" , region_rate< rt::gas, injector > },

View File

@ -75,6 +75,8 @@ static data::Solution make_solution( const EclipseGrid& grid ) {
std::vector<double> roipl(numCells);
std::vector<double> roipg(numCells);
std::vector<double> rgip(numCells);
std::vector<double> rgipl(numCells);
std::vector<double> rgipg(numCells);
std::vector<double> rwip(numCells);
for (size_t k=0; k < grid.getNZ(); k++) {
@ -86,6 +88,8 @@ static data::Solution make_solution( const EclipseGrid& grid ) {
roipl[g] = roip[g] - 1;
roipg[g] = roip[g] + 1;
rgip[g] = 2.1*(k + 1);
rgipl[g] = rgip[g] - 1;
rgipg[g] = rgip[g] + 1;
rwip[g] = 2.2*(k + 1);
}
}
@ -96,6 +100,8 @@ static data::Solution make_solution( const EclipseGrid& grid ) {
sol.insert( "OIPL" , UnitSystem::measure::volume , roipl, data::TargetType::RESTART_AUXILLARY);
sol.insert( "OIPG" , UnitSystem::measure::volume , roipg, data::TargetType::RESTART_AUXILLARY);
sol.insert( "GIP" , UnitSystem::measure::volume , rgip , data::TargetType::RESTART_AUXILLARY);
sol.insert( "GIPL" , UnitSystem::measure::volume , rgipl, data::TargetType::RESTART_AUXILLARY);
sol.insert( "GIPG" , UnitSystem::measure::volume , rgipg, data::TargetType::RESTART_AUXILLARY);
sol.insert( "WIP" , UnitSystem::measure::volume , rwip , data::TargetType::RESTART_AUXILLARY);
}
return sol;
@ -671,6 +677,8 @@ BOOST_AUTO_TEST_CASE(region_vars) {
std::string rgip_key = "RGIP:" + std::to_string( r );
std::string roipl_key = "ROIPL:" + std::to_string( r );
std::string roipg_key = "ROIPG:" + std::to_string( r );
std::string rgipl_key = "RGIPL:" + std::to_string( r );
std::string rgipg_key = "RGIPG:" + std::to_string( r );
const double area = cfg.grid.getNX() * cfg.grid.getNY();
BOOST_CHECK_CLOSE( r * 1.0 , units.to_si( UnitSystem::measure::pressure , ecl_sum_get_general_var( resp, 1, rpr_key.c_str())) , 1e-5);
@ -679,6 +687,8 @@ BOOST_AUTO_TEST_CASE(region_vars) {
BOOST_CHECK_CLOSE( area * (2*r - 1) * 1.0 , units.to_si( UnitSystem::measure::volume , ecl_sum_get_general_var( resp, 1, roipl_key.c_str())) , 1e-5);
BOOST_CHECK_CLOSE( area * (2*r + 1 ) * 1.0 , units.to_si( UnitSystem::measure::volume , ecl_sum_get_general_var( resp, 1, roipg_key.c_str())) , 1e-5);
BOOST_CHECK_CLOSE( area * 2.1*r * 1.0 , units.to_si( UnitSystem::measure::volume , ecl_sum_get_general_var( resp, 1, rgip_key.c_str())) , 1e-5);
BOOST_CHECK_CLOSE( area * (2.1*r - 1) * 1.0, units.to_si( UnitSystem::measure::volume , ecl_sum_get_general_var( resp, 1, rgipl_key.c_str())) , 1e-5);
BOOST_CHECK_CLOSE( area * (2.1*r + 1) * 1.0, units.to_si( UnitSystem::measure::volume , ecl_sum_get_general_var( resp, 1, rgipg_key.c_str())) , 1e-5);
BOOST_CHECK_CLOSE( area * 2.2*r * 1.0 , units.to_si( UnitSystem::measure::volume , ecl_sum_get_general_var( resp, 1, rwip_key.c_str())) , 1e-5);
}
}