Skip to content

Commit

Permalink
Add support for WTHPH+WBHPH keywords
Browse files Browse the repository at this point in the history
  • Loading branch information
Sveinung Styve Rundhovde (IT SI SIB) committed Dec 1, 2017
1 parent 6f198ea commit c58cd09
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 0 deletions.
7 changes: 7 additions & 0 deletions lib/eclipse/EclipseState/Schedule/Schedule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -740,6 +740,13 @@ namespace Opm {
}
properties.predictionMode = false;

properties.BHPH = record.getItem( "BHP" ).hasValue(0)
? record.getItem("BHP").getSIDouble(0)
: 0.0;
properties.THPH = record.getItem( "THP" ).hasValue(0)
? record.getItem("THP").getSIDouble(0)
: 0.0;

if (well.setInjectionProperties(currentStep, properties))
m_events.addEvent( ScheduleEvents::INJECTION_UPDATE , currentStep );

Expand Down
6 changes: 6 additions & 0 deletions lib/eclipse/EclipseState/Schedule/WellInjectionProperties.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ namespace Opm {
reservoirInjectionRate=0.0;
BHPLimit=0.0;
THPLimit=0.0;
BHPH=0.0;
THPH=0.0;
VFPTableNumber=0;
predictionMode=true;
injectionControls=0;
Expand All @@ -42,6 +44,8 @@ namespace Opm {
(reservoirInjectionRate == other.reservoirInjectionRate) &&
(BHPLimit == other.BHPLimit) &&
(THPLimit == other.THPLimit) &&
(BHPH == other.BHPH) &&
(THPH == other.THPH) &&
(VFPTableNumber == other.VFPTableNumber) &&
(predictionMode == other.predictionMode) &&
(injectionControls == other.injectionControls) &&
Expand All @@ -64,6 +68,8 @@ namespace Opm {
<< "reservoir rate " << wp.reservoirInjectionRate << ", "
<< "BHP limit: " << wp.BHPLimit << ", "
<< "THP limit: " << wp.THPLimit << ", "
<< "BHPH: " << wp.BHPH << ", "
<< "THPH: " << wp.THPH << ", "
<< "VFP table: " << wp.VFPTableNumber << ", "
<< "prediction mode: " << wp.predictionMode << ", "
<< "injection ctrl: " << wp.injectionControls << ", "
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,9 @@ namespace Opm {
throw std::invalid_argument("Setting CMODE to unspecified control");
}

p.BHPH = record.getItem("BHP").getSIDouble(0);
p.THPH = record.getItem("THP").getSIDouble(0);

return p;
}

Expand Down Expand Up @@ -146,6 +149,8 @@ namespace Opm {
&& ResVRate == other.ResVRate
&& BHPLimit == other.BHPLimit
&& THPLimit == other.THPLimit
&& BHPH == other.BHPH
&& THPH == other.THPH
&& VFPTableNumber == other.VFPTableNumber
&& controlMode == other.controlMode
&& m_productionControls == other.m_productionControls
Expand All @@ -168,6 +173,8 @@ namespace Opm {
<< "ResV rate: " << wp.ResVRate << ", "
<< "BHP limit: " << wp.BHPLimit << ", "
<< "THP limit: " << wp.THPLimit << ", "
<< "BHPH: " << wp.BHPH << ", "
<< "THPH: " << wp.THPH << ", "
<< "VFP table: " << wp.VFPTableNumber << ", "
<< "ALQ: " << wp.ALQValue << ", "
<< "prediction: " << wp.predictionMode << " }";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ namespace Opm {
double reservoirInjectionRate;
double BHPLimit;
double THPLimit;
double BHPH;
double THPH;
int VFPTableNumber;
bool predictionMode;
int injectionControls;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ namespace Opm {
double ResVRate = 0.0;
double BHPLimit = 0.0;
double THPLimit = 0.0;
double BHPH = 0.0;
double THPH = 0.0;
int VFPTableNumber = 0;
double ALQValue = 0.0;
bool predictionMode = false;
Expand Down
37 changes: 37 additions & 0 deletions lib/eclipse/tests/ScheduleTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2178,3 +2178,40 @@ BOOST_AUTO_TEST_CASE(handleWEFAC) {
BOOST_CHECK_EQUAL(well_i->getEfficiencyFactor(3), 0.9);

}

BOOST_AUTO_TEST_CASE(historic_BHP_and_THP) {
Opm::Parser parser;
std::string input =
"START -- 0 \n"
"19 JUN 2007 / \n"
"SCHEDULE\n"
"DATES -- 1\n"
" 10 OKT 2008 / \n"
"/\n"
"WELSPECS\n"
" 'P' 'OP' 9 9 1* 'OIL' 1* / \n"
" 'I' 'OP' 9 9 1* 'WATER' 1* / \n"
"/\n"
"WCONHIST\n"
" P SHUT ORAT 6 500 0 0 0 1.2 1.1 / \n"
"/\n"
"WCONINJH\n"
" I WATER STOP 100 2.1 2.2 / \n"
"/\n"
;

ParseContext parseContext;
auto deck = parser.parseString(input, parseContext);
EclipseGrid grid(10,10,10);
TableManager table ( deck );
Eclipse3DProperties eclipseProperties ( deck , table, grid);
Schedule schedule( deck, grid, eclipseProperties, Phases( true, true, true ) ,parseContext);

const auto& prod = schedule.getWell("P")->getProductionProperties(1);
const auto& inje = schedule.getWell("I")->getInjectionProperties(1);

BOOST_CHECK_CLOSE( 1.1 * 1e5, prod.BHPH, 1e-5 );
BOOST_CHECK_CLOSE( 1.2 * 1e5, prod.THPH, 1e-5 );
BOOST_CHECK_CLOSE( 2.1 * 1e5, inje.BHPH, 1e-5 );
BOOST_CHECK_CLOSE( 2.2 * 1e5, inje.THPH, 1e-5 );
}

0 comments on commit c58cd09

Please sign in to comment.