Shifting WELSPECS and COMPDAT i,j,k indices down one, to go from 0
This commit is contained in:
@@ -53,10 +53,11 @@ namespace Opm {
|
||||
std::pair<std::string , std::vector<CompletionConstPtr> > Completion::completionsFromCOMPDATRecord( DeckRecordConstPtr compdatRecord ) {
|
||||
std::vector<CompletionConstPtr> completions;
|
||||
std::string well = compdatRecord->getItem("WELL")->getString(0);
|
||||
int I = compdatRecord->getItem("I")->getInt(0);
|
||||
int J = compdatRecord->getItem("J")->getInt(0);
|
||||
int K1 = compdatRecord->getItem("K1")->getInt(0);
|
||||
int K2 = compdatRecord->getItem("K2")->getInt(0);
|
||||
// We change from eclipse's 1 - n, to a 0 - n-1 solution
|
||||
int I = compdatRecord->getItem("I")->getInt(0) - 1;
|
||||
int J = compdatRecord->getItem("J")->getInt(0) - 1;
|
||||
int K1 = compdatRecord->getItem("K1")->getInt(0) - 1;
|
||||
int K2 = compdatRecord->getItem("K2")->getInt(0) - 1;
|
||||
CompletionStateEnum state = CompletionStateEnumFromString( compdatRecord->getItem("STATE")->getString(0) );
|
||||
|
||||
{
|
||||
|
||||
@@ -148,10 +148,10 @@ namespace Opm {
|
||||
}
|
||||
|
||||
void Schedule::checkWELSPECSConsistency(WellConstPtr well, DeckRecordConstPtr record) const {
|
||||
if (well->getHeadI() != record->getItem("HEAD_I")->getInt(0)) {
|
||||
if (well->getHeadI() != record->getItem("HEAD_I")->getInt(0) - 1) {
|
||||
throw std::invalid_argument("Unable process WELSPECS for well " + well->name() + ", HEAD_I deviates from existing value");
|
||||
}
|
||||
if (well->getHeadJ() != record->getItem("HEAD_J")->getInt(0)) {
|
||||
if (well->getHeadJ() != record->getItem("HEAD_J")->getInt(0) - 1) {
|
||||
throw std::invalid_argument("Unable process WELSPECS for well " + well->name() + ", HEAD_J deviates from existing value");
|
||||
}
|
||||
if (well->getRefDepth() != record->getItem("REF_DEPTH")->getSIDouble(0)) {
|
||||
@@ -293,8 +293,10 @@ namespace Opm {
|
||||
}
|
||||
|
||||
void Schedule::addWell(const std::string& wellName, DeckRecordConstPtr record, size_t timeStep) {
|
||||
int headI = record->getItem("HEAD_I")->getInt(0);
|
||||
int headJ = record->getItem("HEAD_J")->getInt(0);
|
||||
|
||||
// We change from eclipse's 1 - n, to a 0 - n-1 solution
|
||||
int headI = record->getItem("HEAD_I")->getInt(0) - 1;
|
||||
int headJ = record->getItem("HEAD_J")->getInt(0) - 1;
|
||||
double refDepth = record->getItem("REF_DEPTH")->getSIDouble(0);
|
||||
WellPtr well(new Well(wellName, headI, headJ, refDepth, m_timeMap , timeStep));
|
||||
m_wells[ wellName ] = well;
|
||||
|
||||
@@ -51,15 +51,15 @@ BOOST_AUTO_TEST_CASE( CreateCompletionsFromRecord ) {
|
||||
CompletionConstPtr completion0 = completionsList.second[0];
|
||||
CompletionConstPtr completion2 = completionsList.second[2];
|
||||
|
||||
BOOST_CHECK_EQUAL( 30 , completion0->getI() );
|
||||
BOOST_CHECK_EQUAL( 37 , completion0->getJ() );
|
||||
BOOST_CHECK_EQUAL( 1 , completion0->getK() );
|
||||
BOOST_CHECK_EQUAL( 29 , completion0->getI() );
|
||||
BOOST_CHECK_EQUAL( 36 , completion0->getJ() );
|
||||
BOOST_CHECK_EQUAL( 0 , completion0->getK() );
|
||||
BOOST_CHECK_EQUAL( OPEN , completion0->getState() );
|
||||
BOOST_CHECK_EQUAL( 3.8134259259259256e-12 , completion0->getCF() );
|
||||
|
||||
BOOST_CHECK_EQUAL( 30 , completion2->getI() );
|
||||
BOOST_CHECK_EQUAL( 37 , completion2->getJ() );
|
||||
BOOST_CHECK_EQUAL( 3 , completion2->getK() );
|
||||
BOOST_CHECK_EQUAL( 29 , completion2->getI() );
|
||||
BOOST_CHECK_EQUAL( 36 , completion2->getJ() );
|
||||
BOOST_CHECK_EQUAL( 2 , completion2->getK() );
|
||||
BOOST_CHECK_EQUAL( OPEN , completion2->getState() );
|
||||
BOOST_CHECK_EQUAL( 3.8134259259259256e-12 , completion2->getCF() );
|
||||
}
|
||||
@@ -94,15 +94,15 @@ BOOST_AUTO_TEST_CASE( CreateCompletionsFromKeyword ) {
|
||||
CompletionConstPtr completion0 = W_3Completions[0];
|
||||
CompletionConstPtr completion4 = W_3Completions[4];
|
||||
|
||||
BOOST_CHECK_EQUAL( 31 , completion0->getI() );
|
||||
BOOST_CHECK_EQUAL( 18 , completion0->getJ() );
|
||||
BOOST_CHECK_EQUAL( 1 , completion0->getK() );
|
||||
BOOST_CHECK_EQUAL( 30 , completion0->getI() );
|
||||
BOOST_CHECK_EQUAL( 17 , completion0->getJ() );
|
||||
BOOST_CHECK_EQUAL( 0 , completion0->getK() );
|
||||
BOOST_CHECK_EQUAL( OPEN , completion0->getState() );
|
||||
BOOST_CHECK_EQUAL( 3.1726851851851847e-12 , completion0->getCF() );
|
||||
|
||||
BOOST_CHECK_EQUAL( 31 , completion4->getI() );
|
||||
BOOST_CHECK_EQUAL( 17 , completion4->getJ() );
|
||||
BOOST_CHECK_EQUAL( 4 , completion4->getK() );
|
||||
BOOST_CHECK_EQUAL( 30 , completion4->getI() );
|
||||
BOOST_CHECK_EQUAL( 16 , completion4->getJ() );
|
||||
BOOST_CHECK_EQUAL( 3 , completion4->getK() );
|
||||
BOOST_CHECK_EQUAL( OPEN , completion4->getState() );
|
||||
BOOST_CHECK_EQUAL( 5.4722222222222212e-13 , completion4->getCF() );
|
||||
|
||||
|
||||
@@ -337,22 +337,22 @@ BOOST_AUTO_TEST_CASE(WellTestWELSPECSDataLoaded) {
|
||||
WellConstPtr well1 = sched->getWell("W_1");
|
||||
BOOST_CHECK(!well1->hasBeenDefined(2));
|
||||
BOOST_CHECK(well1->hasBeenDefined(3));
|
||||
BOOST_CHECK_EQUAL(30, well1->getHeadI());
|
||||
BOOST_CHECK_EQUAL(37, well1->getHeadJ());
|
||||
BOOST_CHECK_EQUAL(29, well1->getHeadI());
|
||||
BOOST_CHECK_EQUAL(36, well1->getHeadJ());
|
||||
BOOST_CHECK_EQUAL(3.33, well1->getRefDepth());
|
||||
|
||||
WellConstPtr well2 = sched->getWell("W_2");
|
||||
BOOST_CHECK(!well2->hasBeenDefined(2));
|
||||
BOOST_CHECK(well2->hasBeenDefined(3));
|
||||
BOOST_CHECK_EQUAL(20, well2->getHeadI());
|
||||
BOOST_CHECK_EQUAL(51, well2->getHeadJ());
|
||||
BOOST_CHECK_EQUAL(19, well2->getHeadI());
|
||||
BOOST_CHECK_EQUAL(50, well2->getHeadJ());
|
||||
BOOST_CHECK_EQUAL(3.92, well2->getRefDepth());
|
||||
|
||||
WellConstPtr well3 = sched->getWell("W_3");
|
||||
BOOST_CHECK(!well3->hasBeenDefined(2));
|
||||
BOOST_CHECK(well3->hasBeenDefined(3));
|
||||
BOOST_CHECK_EQUAL(31, well3->getHeadI());
|
||||
BOOST_CHECK_EQUAL(18, well3->getHeadJ());
|
||||
BOOST_CHECK_EQUAL(30, well3->getHeadI());
|
||||
BOOST_CHECK_EQUAL(17, well3->getHeadJ());
|
||||
BOOST_CHECK_EQUAL(2.33, well3->getRefDepth());
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user