1. Added well collection to Schedule object.

2. Adding wells from Welspecs and setting Oilrate from WCONHIST
This commit is contained in:
Joakim Hove
2013-11-05 15:25:47 +01:00
parent 6d30a6a7fa
commit ffc5dc3c53
8 changed files with 269 additions and 52 deletions

View File

@@ -32,24 +32,7 @@
using namespace Opm;
BOOST_AUTO_TEST_CASE(CreateScheduleDeckMissingSCHEDULE_Throws) {
DeckPtr deck(new Deck());
BOOST_CHECK_THROW(Schedule schedule(deck) , std::invalid_argument);
}
BOOST_AUTO_TEST_CASE(CreateScheduleDeckMissingReturnsDefaults) {
DeckPtr deck(new Deck());
DeckKeywordPtr keyword(new DeckKeyword("SCHEDULE"));
deck->addKeyword( keyword );
Schedule schedule(deck);
BOOST_CHECK_EQUAL( schedule.getStartDate() , boost::gregorian::date( 1983 , boost::gregorian::Jan , 1));
}
BOOST_AUTO_TEST_CASE(CreateScheduleDeckWithStart) {
DeckPtr createDeck() {
DeckPtr deck(new Deck());
DeckKeywordPtr scheduleKeyword(new DeckKeyword("SCHEDULE"));
DeckKeywordPtr startKeyword(new DeckKeyword("START"));
@@ -71,6 +54,29 @@ BOOST_AUTO_TEST_CASE(CreateScheduleDeckWithStart) {
deck->addKeyword( startKeyword );
deck->addKeyword( scheduleKeyword );
return deck;
}
BOOST_AUTO_TEST_CASE(CreateScheduleDeckMissingSCHEDULE_Throws) {
DeckPtr deck(new Deck());
BOOST_CHECK_THROW(Schedule schedule(deck) , std::invalid_argument);
}
BOOST_AUTO_TEST_CASE(CreateScheduleDeckMissingReturnsDefaults) {
DeckPtr deck(new Deck());
DeckKeywordPtr keyword(new DeckKeyword("SCHEDULE"));
deck->addKeyword( keyword );
Schedule schedule(deck);
BOOST_CHECK_EQUAL( schedule.getStartDate() , boost::gregorian::date( 1983 , boost::gregorian::Jan , 1));
}
BOOST_AUTO_TEST_CASE(CreateScheduleDeckWithStart) {
DeckPtr deck = createDeck();
Schedule schedule(deck);
BOOST_CHECK_EQUAL( schedule.getStartDate() , boost::gregorian::date( 1998 , boost::gregorian::Mar , 8));
}
@@ -87,3 +93,13 @@ BOOST_AUTO_TEST_CASE(CreateScheduleDeckWithSCHEDULENoThrow) {
}
BOOST_AUTO_TEST_CASE(EmptyScheduleHasNoWells) {
DeckPtr deck = createDeck();
Schedule schedule(deck);
BOOST_CHECK_EQUAL( 0U , schedule.numWells() );
BOOST_CHECK_EQUAL( false , schedule.hasWell("WELL1") );
BOOST_CHECK_THROW( schedule.getWell("WELL2") , std::invalid_argument );
}

View File

@@ -28,9 +28,18 @@
#include <opm/parser/eclipse/EclipseState/Schedule/Well.hpp>
#include <opm/parser/eclipse/EclipseState/Schedule/TimeMap.hpp>
BOOST_AUTO_TEST_CASE(CreateWellCorrentName) {
Opm::Well well("WELL1");
boost::gregorian::date startDate( 2010 , boost::gregorian::Jan , 1);
Opm::TimeMapPtr timeMap(new Opm::TimeMap(startDate));
for (size_t i = 0; i < 10; i++)
timeMap->addTStep( boost::posix_time::hours( (i+1) * 24 ));
Opm::Well well("WELL1" , timeMap);
BOOST_CHECK_EQUAL( "WELL1" , well.name() );
BOOST_CHECK_EQUAL(0.0 , well.getOilRate( 5 ));
well.setOilRate( 5 , 99 );
BOOST_CHECK_EQUAL(99 , well.getOilRate( 5 ));
BOOST_CHECK_EQUAL(99 , well.getOilRate( 8 ));
}