Remove DynamicState's reliance on TimeMap.
DynamicState assumes the time map is fully populated and stores only its size (which is the only property it cares about).
This commit is contained in:
@@ -475,8 +475,8 @@ void RestartConfig::handleScheduleSection(const SCHEDULESection& schedule) {
|
||||
std::shared_ptr< const TimeMap > timemap) :
|
||||
m_timemap( timemap ),
|
||||
m_first_restart_step( -1 ),
|
||||
restart_schedule( timemap, { 0, 0, 1 } ),
|
||||
restart_keywords( timemap, {} )
|
||||
restart_schedule( *timemap, { 0, 0, 1 } ),
|
||||
restart_keywords( *timemap, {} )
|
||||
{
|
||||
handleSolutionSection( solution );
|
||||
handleScheduleSection( schedule );
|
||||
|
||||
@@ -58,13 +58,18 @@ namespace Opm {
|
||||
public:
|
||||
|
||||
|
||||
DynamicState(const std::shared_ptr< const TimeMap > timeMap, T initialValue) {
|
||||
m_timeMap = timeMap;
|
||||
init( initialValue );
|
||||
}
|
||||
DynamicState(const TimeMap& timeMap, T initialValue) :
|
||||
m_currentValue( initialValue ),
|
||||
m_initialValue( std::move( initialValue ) ),
|
||||
max_size( timeMap.size() ),
|
||||
m_initialRange( 0 )
|
||||
{}
|
||||
|
||||
void globalReset( T newValue ) {
|
||||
init( newValue );
|
||||
this->m_data.clear();
|
||||
this->m_currentValue = newValue;
|
||||
this->m_initialValue = std::move( newValue );
|
||||
this->m_initialRange = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -76,7 +81,7 @@ namespace Opm {
|
||||
}
|
||||
|
||||
const T& at(size_t index) const {
|
||||
if (index >= m_timeMap->size())
|
||||
if (index >= this->max_size)
|
||||
throw std::range_error("Index value is out range.");
|
||||
|
||||
if (index >= m_data.size())
|
||||
@@ -121,7 +126,7 @@ namespace Opm {
|
||||
*/
|
||||
bool update(size_t index , T value) {
|
||||
bool change = (value != m_currentValue);
|
||||
if (index >= (m_timeMap->size()))
|
||||
if (index >= (this->max_size))
|
||||
throw std::range_error("Index value is out range.");
|
||||
|
||||
if (m_data.size() > 0) {
|
||||
@@ -165,19 +170,10 @@ namespace Opm {
|
||||
|
||||
|
||||
private:
|
||||
|
||||
void init(T initialValue) {
|
||||
m_data.clear();
|
||||
m_currentValue = initialValue;
|
||||
m_initialValue = initialValue;
|
||||
m_initialRange = 0;
|
||||
}
|
||||
|
||||
|
||||
std::vector<T> m_data;
|
||||
std::shared_ptr< const TimeMap > m_timeMap;
|
||||
T m_currentValue;
|
||||
T m_initialValue;
|
||||
size_t max_size;
|
||||
size_t m_initialRange;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
namespace Opm {
|
||||
namespace GroupProduction {
|
||||
struct ProductionData {
|
||||
ProductionData(TimeMapConstPtr timeMap);
|
||||
ProductionData( const TimeMap& timeMap);
|
||||
|
||||
std::shared_ptr<DynamicState<GroupProduction::ControlEnum> > controlMode;
|
||||
std::shared_ptr<DynamicState<GroupProductionExceedLimit::ActionEnum> > exceedAction;
|
||||
@@ -44,7 +44,7 @@ namespace Opm {
|
||||
|
||||
};
|
||||
|
||||
ProductionData::ProductionData(TimeMapConstPtr timeMap) :
|
||||
ProductionData::ProductionData(const TimeMap& timeMap) :
|
||||
controlMode( new DynamicState<GroupProduction::ControlEnum>(timeMap , GroupProduction::NONE)),
|
||||
exceedAction( new DynamicState<GroupProductionExceedLimit::ActionEnum>(timeMap , GroupProductionExceedLimit::NONE)),
|
||||
oilTarget( new DynamicState<double>(timeMap , INVALID_GROUP_RATE)),
|
||||
@@ -64,7 +64,7 @@ namespace Opm {
|
||||
|
||||
namespace GroupInjection {
|
||||
struct InjectionData {
|
||||
InjectionData(TimeMapConstPtr timeMap);
|
||||
InjectionData( const TimeMap& timeMap);
|
||||
|
||||
std::shared_ptr<DynamicState<Phase::PhaseEnum> > phase;
|
||||
std::shared_ptr<DynamicState<GroupInjection::ControlEnum> > controlMode;
|
||||
@@ -75,7 +75,7 @@ namespace Opm {
|
||||
std::shared_ptr<DynamicState<double> > targetVoidReplacementFraction;
|
||||
};
|
||||
|
||||
InjectionData::InjectionData(TimeMapConstPtr timeMap) :
|
||||
InjectionData::InjectionData(const TimeMap& timeMap) :
|
||||
phase( new DynamicState<Phase::PhaseEnum>( timeMap , Phase::WATER )),
|
||||
controlMode( new DynamicState<GroupInjection::ControlEnum>( timeMap , NONE )),
|
||||
rate( new DynamicState<double>( timeMap , 0 )),
|
||||
@@ -93,7 +93,7 @@ namespace Opm {
|
||||
|
||||
/*****************************************************************/
|
||||
|
||||
Group::Group(const std::string& name_, TimeMapConstPtr timeMap , size_t creationTimeStep) :
|
||||
Group::Group(const std::string& name_, const TimeMap& timeMap , size_t creationTimeStep) :
|
||||
m_injection( new GroupInjection::InjectionData(timeMap) ),
|
||||
m_production( new GroupProduction::ProductionData( timeMap )),
|
||||
m_wells( new DynamicState< std::shared_ptr< const WellSet > >( timeMap , std::make_shared< const WellSet >() ) ),
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace Opm {
|
||||
|
||||
class Group {
|
||||
public:
|
||||
Group(const std::string& name, std::shared_ptr< const TimeMap > timeMap , size_t creationTimeStep);
|
||||
Group(const std::string& name, const TimeMap& timeMap , size_t creationTimeStep);
|
||||
bool hasBeenDefined(size_t timeStep) const;
|
||||
const std::string& name() const;
|
||||
bool isProductionGroup(size_t timeStep) const;
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
namespace Opm {
|
||||
|
||||
|
||||
MessageLimits::MessageLimits(const std::shared_ptr< const TimeMap > timemap):
|
||||
MessageLimits::MessageLimits( const TimeMap& timemap ) :
|
||||
m_message_print_limit(timemap, ParserKeywords::MESSAGES::MESSAGE_PRINT_LIMIT::defaultValue),
|
||||
m_comment_print_limit(timemap, ParserKeywords::MESSAGES::COMMENT_PRINT_LIMIT::defaultValue),
|
||||
m_warning_print_limit(timemap, ParserKeywords::MESSAGES::WARNING_PRINT_LIMIT::defaultValue),
|
||||
|
||||
@@ -35,7 +35,7 @@ namespace Opm {
|
||||
set in the record are modified.
|
||||
*/
|
||||
|
||||
MessageLimits(const std::shared_ptr< const TimeMap > timemap);
|
||||
MessageLimits( const TimeMap& );
|
||||
|
||||
///Get all the value from MESSAGES keyword.
|
||||
int getMessagePrintLimit(size_t timestep) const;
|
||||
|
||||
@@ -77,12 +77,12 @@ namespace Opm {
|
||||
const EclipseGrid& grid,
|
||||
const Deck& deck ) :
|
||||
m_timeMap( std::make_shared< TimeMap>( deck )),
|
||||
m_rootGroupTree( m_timeMap, GroupTree{} ),
|
||||
m_oilvaporizationproperties( m_timeMap, OilVaporizationProperties{} ),
|
||||
m_rootGroupTree( *m_timeMap, GroupTree{} ),
|
||||
m_oilvaporizationproperties( *m_timeMap, OilVaporizationProperties{} ),
|
||||
m_events( *m_timeMap ),
|
||||
m_modifierDeck( *m_timeMap, nullptr ),
|
||||
m_tuning( m_timeMap ),
|
||||
m_messageLimits( m_timeMap )
|
||||
m_tuning( *m_timeMap ),
|
||||
m_messageLimits( *m_timeMap )
|
||||
|
||||
{
|
||||
m_controlModeWHISTCTL = WellProducer::CMODE_UNDEFINED;
|
||||
@@ -1479,7 +1479,7 @@ namespace Opm {
|
||||
if (!m_timeMap) {
|
||||
throw std::invalid_argument("TimeMap is null, can't add group named: " + groupName);
|
||||
}
|
||||
m_groups.emplace( groupName, Group { groupName, m_timeMap, timeStep } );
|
||||
m_groups.emplace( groupName, Group { groupName, *m_timeMap, timeStep } );
|
||||
m_events.addEvent( ScheduleEvents::NEW_GROUP , timeStep );
|
||||
}
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
namespace Opm {
|
||||
|
||||
Tuning::Tuning(TimeMapConstPtr timemap):
|
||||
Tuning::Tuning( const TimeMap& timemap ) :
|
||||
/* Hardcoding default values to support getting defaults before any TUNING keyword has occured */
|
||||
m_TSINIT( new DynamicState<double>(timemap, 1.0 * Metric::Time)),
|
||||
m_TSMAXZ( new DynamicState<double>(timemap, 365.0 * Metric::Time)),
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace Opm {
|
||||
*/
|
||||
|
||||
public:
|
||||
Tuning(std::shared_ptr< const TimeMap > timemap);
|
||||
Tuning(const TimeMap& timemap);
|
||||
|
||||
void setTuningInitialValue(const std::string tuningItem, double value,bool resetVector);
|
||||
void setTuningInitialValue(const std::string tuningItem, int value, bool resetVector);
|
||||
|
||||
@@ -37,21 +37,21 @@ namespace Opm {
|
||||
TimeMapConstPtr timeMap, size_t creationTimeStep,
|
||||
WellCompletion::CompletionOrderEnum completionOrdering,
|
||||
bool allowCrossFlow, bool automaticShutIn)
|
||||
: m_status(new DynamicState<WellCommon::StatusEnum>(timeMap, WellCommon::SHUT)),
|
||||
m_isAvailableForGroupControl(new DynamicState<int>(timeMap, true)),
|
||||
m_guideRate(new DynamicState<double>(timeMap, -1.0)),
|
||||
m_guideRatePhase(new DynamicState<GuideRate::GuideRatePhaseEnum>(timeMap, GuideRate::UNDEFINED)),
|
||||
m_guideRateScalingFactor(new DynamicState<double>(timeMap, 1.0)),
|
||||
m_isProducer(new DynamicState<int>(timeMap, true)) ,
|
||||
m_completions( new DynamicState<CompletionSetConstPtr>( timeMap , CompletionSetConstPtr( new CompletionSet()) )),
|
||||
m_productionProperties( new DynamicState<WellProductionProperties>(timeMap, WellProductionProperties() )),
|
||||
m_injectionProperties( new DynamicState<WellInjectionProperties>(timeMap, WellInjectionProperties() )),
|
||||
m_polymerProperties( new DynamicState<WellPolymerProperties>(timeMap, WellPolymerProperties() )),
|
||||
m_econproductionlimits( new DynamicState<WellEconProductionLimits>(timeMap, WellEconProductionLimits()) ),
|
||||
m_solventFraction( new DynamicState<double>(timeMap, 0.0 )),
|
||||
m_groupName( new DynamicState<std::string>( timeMap , "" )),
|
||||
m_rft( new DynamicState<int>(timeMap,false)),
|
||||
m_plt( new DynamicState<int>(timeMap,false)),
|
||||
: m_status(new DynamicState<WellCommon::StatusEnum>(*timeMap, WellCommon::SHUT)),
|
||||
m_isAvailableForGroupControl(new DynamicState<int>(*timeMap, true)),
|
||||
m_guideRate(new DynamicState<double>(*timeMap, -1.0)),
|
||||
m_guideRatePhase(new DynamicState<GuideRate::GuideRatePhaseEnum>(*timeMap, GuideRate::UNDEFINED)),
|
||||
m_guideRateScalingFactor(new DynamicState<double>(*timeMap, 1.0)),
|
||||
m_isProducer(new DynamicState<int>(*timeMap, true)) ,
|
||||
m_completions( new DynamicState<CompletionSetConstPtr>( *timeMap , CompletionSetConstPtr( new CompletionSet()) )),
|
||||
m_productionProperties( new DynamicState<WellProductionProperties>(*timeMap, WellProductionProperties() )),
|
||||
m_injectionProperties( new DynamicState<WellInjectionProperties>(*timeMap, WellInjectionProperties() )),
|
||||
m_polymerProperties( new DynamicState<WellPolymerProperties>(*timeMap, WellPolymerProperties() )),
|
||||
m_econproductionlimits( new DynamicState<WellEconProductionLimits>(*timeMap, WellEconProductionLimits()) ),
|
||||
m_solventFraction( new DynamicState<double>(*timeMap, 0.0 )),
|
||||
m_groupName( new DynamicState<std::string>( *timeMap , "" )),
|
||||
m_rft( new DynamicState<int>(*timeMap,false)),
|
||||
m_plt( new DynamicState<int>(*timeMap,false)),
|
||||
m_timeMap( timeMap ),
|
||||
m_headI(headI),
|
||||
m_headJ(headJ),
|
||||
@@ -60,7 +60,7 @@ namespace Opm {
|
||||
m_comporder(completionOrdering),
|
||||
m_allowCrossFlow(allowCrossFlow),
|
||||
m_automaticShutIn(automaticShutIn),
|
||||
m_segmentset(new DynamicState<SegmentSetConstPtr>(timeMap, SegmentSetPtr(new SegmentSet())))
|
||||
m_segmentset(new DynamicState<SegmentSetConstPtr>(*timeMap, SegmentSetPtr(new SegmentSet())))
|
||||
{
|
||||
m_name = name_;
|
||||
m_creationTimeStep = creationTimeStep;
|
||||
|
||||
@@ -35,14 +35,14 @@
|
||||
|
||||
BOOST_AUTO_TEST_CASE(CreateDynamicTest) {
|
||||
boost::gregorian::date startDate( 2010 , boost::gregorian::Jan , 1);
|
||||
Opm::TimeMapPtr timeMap(new Opm::TimeMap(boost::posix_time::ptime(startDate)));
|
||||
Opm::TimeMap timeMap{ boost::posix_time::ptime(startDate) };
|
||||
Opm::DynamicState<double> state(timeMap , 9.99);
|
||||
}
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(DynamicStateGetOutOfRangeThrows) {
|
||||
boost::gregorian::date startDate( 2010 , boost::gregorian::Jan , 1);
|
||||
Opm::TimeMapPtr timeMap(new Opm::TimeMap(boost::posix_time::ptime(startDate)));
|
||||
Opm::TimeMap timeMap{ boost::posix_time::ptime(startDate) };
|
||||
Opm::DynamicState<double> state(timeMap , 9.99);
|
||||
BOOST_CHECK_THROW( state.get(1) , std::range_error);
|
||||
}
|
||||
@@ -50,7 +50,7 @@ BOOST_AUTO_TEST_CASE(DynamicStateGetOutOfRangeThrows) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(DynamicStateGetDefault) {
|
||||
boost::gregorian::date startDate( 2010 , boost::gregorian::Jan , 1);
|
||||
Opm::TimeMapPtr timeMap(new Opm::TimeMap(boost::posix_time::ptime(startDate)));
|
||||
Opm::TimeMap timeMap{ boost::posix_time::ptime(startDate) };
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
BOOST_CHECK_EQUAL( 137 , state.get(0));
|
||||
BOOST_CHECK_EQUAL( 137 , state.back() );
|
||||
@@ -59,10 +59,11 @@ BOOST_AUTO_TEST_CASE(DynamicStateGetDefault) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(DynamicStateSetOutOfRangeThrows) {
|
||||
boost::gregorian::date startDate( 2010 , boost::gregorian::Jan , 1);
|
||||
Opm::TimeMapPtr timeMap(new Opm::TimeMap(boost::posix_time::ptime(startDate)));
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
Opm::TimeMap timeMap{ boost::posix_time::ptime(startDate) };
|
||||
for (size_t i = 0; i < 2; i++)
|
||||
timeMap->addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
timeMap.addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
|
||||
BOOST_CHECK_THROW( state.update(3 , 100) , std::range_error);
|
||||
}
|
||||
@@ -70,10 +71,11 @@ BOOST_AUTO_TEST_CASE(DynamicStateSetOutOfRangeThrows) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(DynamicStateSetOK) {
|
||||
boost::gregorian::date startDate( 2010 , boost::gregorian::Jan , 1);
|
||||
Opm::TimeMapPtr timeMap(new Opm::TimeMap(boost::posix_time::ptime(startDate)));
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
Opm::TimeMap timeMap{ boost::posix_time::ptime(startDate) };
|
||||
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
timeMap->addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
timeMap.addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
|
||||
state.update(2 , 23 );
|
||||
BOOST_CHECK_EQUAL( 137 , state.get(0));
|
||||
@@ -100,10 +102,11 @@ BOOST_AUTO_TEST_CASE(DynamicStateSetOK) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(DynamicStateAddIndexAlreadySetThrows) {
|
||||
boost::gregorian::date startDate( 2010 , boost::gregorian::Jan , 1);
|
||||
Opm::TimeMapPtr timeMap(new Opm::TimeMap(boost::posix_time::ptime(startDate)));
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
Opm::TimeMap timeMap{ boost::posix_time::ptime(startDate) };
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
timeMap->addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
timeMap.addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
|
||||
state.update( 5 , 60);
|
||||
BOOST_CHECK_THROW( state.update(3 , 78) , std::invalid_argument);
|
||||
@@ -112,10 +115,11 @@ BOOST_AUTO_TEST_CASE(DynamicStateAddIndexAlreadySetThrows) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(DynamicStateAddAt) {
|
||||
boost::gregorian::date startDate( 2010 , boost::gregorian::Jan , 1);
|
||||
Opm::TimeMapPtr timeMap(new Opm::TimeMap(boost::posix_time::ptime(startDate)));
|
||||
Opm::DynamicState<int> state(timeMap , 0);
|
||||
Opm::TimeMap timeMap{ boost::posix_time::ptime(startDate) };
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
timeMap->addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
timeMap.addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
|
||||
Opm::DynamicState<int> state(timeMap , 0);
|
||||
|
||||
state.update( 10 , 77 );
|
||||
{
|
||||
@@ -130,10 +134,10 @@ BOOST_AUTO_TEST_CASE(DynamicStateAddAt) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(DynamicStateCheckSize) {
|
||||
boost::gregorian::date startDate( 2010 , boost::gregorian::Jan , 1);
|
||||
Opm::TimeMapPtr timeMap(new Opm::TimeMap(boost::posix_time::ptime(startDate)));
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
Opm::TimeMap timeMap{ boost::posix_time::ptime(startDate) };
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
timeMap->addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
timeMap.addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
|
||||
BOOST_CHECK_EQUAL( 0U , state.size() );
|
||||
|
||||
@@ -152,10 +156,10 @@ BOOST_AUTO_TEST_CASE(DynamicStateCheckSize) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(DynamicStateOperatorSubscript) {
|
||||
boost::gregorian::date startDate( 2010 , boost::gregorian::Jan , 1);
|
||||
Opm::TimeMapPtr timeMap(new Opm::TimeMap(boost::posix_time::ptime(startDate)));
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
Opm::TimeMap timeMap{ boost::posix_time::ptime(startDate) };
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
timeMap->addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
timeMap.addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
|
||||
state.update( 10 , 200 );
|
||||
BOOST_CHECK_EQUAL( state[9] , 137 );
|
||||
@@ -166,11 +170,12 @@ BOOST_AUTO_TEST_CASE(DynamicStateOperatorSubscript) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(DynamicStateInitial) {
|
||||
boost::gregorian::date startDate( 2010 , boost::gregorian::Jan , 1);
|
||||
Opm::TimeMapPtr timeMap(new Opm::TimeMap(boost::posix_time::ptime(startDate)));
|
||||
Opm::TimeMap timeMap{ boost::posix_time::ptime(startDate) };
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
timeMap.addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
Opm::DynamicState<int> state2(timeMap , 137);
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
timeMap->addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
|
||||
|
||||
state.update( 10 , 200 );
|
||||
@@ -201,10 +206,11 @@ BOOST_AUTO_TEST_CASE(DynamicStateInitial) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE( ResetGlobal ) {
|
||||
boost::gregorian::date startDate( 2010 , boost::gregorian::Jan , 1);
|
||||
Opm::TimeMapPtr timeMap(new Opm::TimeMap(boost::posix_time::ptime(startDate)));
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
Opm::TimeMap timeMap{ boost::posix_time::ptime(startDate) };
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
timeMap->addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
timeMap.addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
|
||||
state.update(5 , 100);
|
||||
BOOST_CHECK_EQUAL( state[0] , 137 );
|
||||
@@ -228,10 +234,11 @@ BOOST_AUTO_TEST_CASE( ResetGlobal ) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE( CheckReturn ) {
|
||||
boost::gregorian::date startDate( 2010 , boost::gregorian::Jan , 1);
|
||||
Opm::TimeMapPtr timeMap(new Opm::TimeMap(boost::posix_time::ptime(startDate)));
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
Opm::TimeMap timeMap{ boost::posix_time::ptime(startDate) };
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
timeMap->addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
timeMap.addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
|
||||
BOOST_CHECK_EQUAL( false , state.update( 0 , 137 ));
|
||||
BOOST_CHECK_EQUAL( false , state.update( 3 , 137 ));
|
||||
@@ -241,10 +248,11 @@ BOOST_AUTO_TEST_CASE( CheckReturn ) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE( UpdateEmptyInitial ) {
|
||||
boost::gregorian::date startDate( 2010 , boost::gregorian::Jan , 1);
|
||||
Opm::TimeMapPtr timeMap(new Opm::TimeMap(boost::posix_time::ptime(startDate)));
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
Opm::TimeMap timeMap{ boost::posix_time::ptime(startDate) };
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
timeMap->addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
timeMap.addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
|
||||
BOOST_CHECK_EQUAL( state[5] , 137 );
|
||||
state.updateInitial( 99 );
|
||||
@@ -254,10 +262,11 @@ BOOST_AUTO_TEST_CASE( UpdateEmptyInitial ) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE( find ) {
|
||||
boost::gregorian::date startDate( 2010 , boost::gregorian::Jan , 1);
|
||||
Opm::TimeMapPtr timeMap(new Opm::TimeMap(boost::posix_time::ptime(startDate)));
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
Opm::TimeMap timeMap{ boost::posix_time::ptime(startDate) };
|
||||
for (size_t i = 0; i < 5; i++)
|
||||
timeMap->addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
timeMap.addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
|
||||
BOOST_CHECK_EQUAL( state.find( 137 ) , 0 );
|
||||
BOOST_CHECK_EQUAL( state.find( 200 ) , -1 );
|
||||
|
||||
@@ -38,25 +38,25 @@
|
||||
|
||||
using namespace Opm;
|
||||
|
||||
static Opm::TimeMapPtr createXDaysTimeMap(size_t numDays) {
|
||||
static TimeMap createXDaysTimeMap(size_t numDays) {
|
||||
boost::gregorian::date startDate( 2010 , boost::gregorian::Jan , 1);
|
||||
Opm::TimeMapPtr timeMap(new Opm::TimeMap(boost::posix_time::ptime(startDate)));
|
||||
Opm::TimeMap timeMap{ boost::posix_time::ptime(startDate) };
|
||||
for (size_t i = 0; i < numDays; i++)
|
||||
timeMap->addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
timeMap.addTStep( boost::posix_time::hours( (i+1) * 24 ));
|
||||
return timeMap;
|
||||
}
|
||||
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(CreateGroup_CorrectNameAndDefaultValues) {
|
||||
Opm::TimeMapPtr timeMap = createXDaysTimeMap(10);
|
||||
auto timeMap = createXDaysTimeMap(10);
|
||||
Opm::Group group("G1" , timeMap , 0);
|
||||
BOOST_CHECK_EQUAL( "G1" , group.name() );
|
||||
}
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(CreateGroupCreateTimeOK) {
|
||||
Opm::TimeMapPtr timeMap = createXDaysTimeMap(10);
|
||||
auto timeMap = createXDaysTimeMap(10);
|
||||
Opm::Group group("G1" , timeMap , 5);
|
||||
BOOST_CHECK_EQUAL( false, group.hasBeenDefined( 4 ));
|
||||
BOOST_CHECK_EQUAL( true, group.hasBeenDefined( 5 ));
|
||||
@@ -66,7 +66,7 @@ BOOST_AUTO_TEST_CASE(CreateGroupCreateTimeOK) {
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(CreateGroup_SetInjectorProducer_CorrectStatusSet) {
|
||||
Opm::TimeMapPtr timeMap = createXDaysTimeMap(10);
|
||||
auto timeMap = createXDaysTimeMap(10);
|
||||
Opm::Group group1("IGROUP" , timeMap , 0);
|
||||
Opm::Group group2("PGROUP" , timeMap , 0);
|
||||
|
||||
@@ -91,7 +91,7 @@ BOOST_AUTO_TEST_CASE(CreateGroup_SetInjectorProducer_CorrectStatusSet) {
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(InjectRateOK) {
|
||||
Opm::TimeMapPtr timeMap = createXDaysTimeMap(10);
|
||||
auto timeMap = createXDaysTimeMap(10);
|
||||
Opm::Group group("G1" , timeMap , 0);
|
||||
BOOST_CHECK_EQUAL( 0 , group.getInjectionRate( 0 ));
|
||||
group.setInjectionRate( 2 , 100 );
|
||||
@@ -101,7 +101,7 @@ BOOST_AUTO_TEST_CASE(InjectRateOK) {
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(ControlModeOK) {
|
||||
Opm::TimeMapPtr timeMap = createXDaysTimeMap(10);
|
||||
auto timeMap = createXDaysTimeMap(10);
|
||||
Opm::Group group("G1" , timeMap , 0);
|
||||
BOOST_CHECK_EQUAL( Opm::GroupInjection::NONE , group.getInjectionControlMode( 0 ));
|
||||
group.setInjectionControlMode( 2 , Opm::GroupInjection::RESV );
|
||||
@@ -112,7 +112,7 @@ BOOST_AUTO_TEST_CASE(ControlModeOK) {
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(GroupChangePhaseSameTimeThrows) {
|
||||
Opm::TimeMapPtr timeMap = createXDaysTimeMap(10);
|
||||
auto timeMap = createXDaysTimeMap(10);
|
||||
Opm::Group group("G1" , timeMap , 0);
|
||||
BOOST_CHECK_EQUAL( Opm::Phase::WATER , group.getInjectionPhase( 0 )); // Default phase - assumed WATER
|
||||
group.setInjectionPhase(5 , Opm::Phase::WATER );
|
||||
@@ -127,7 +127,7 @@ BOOST_AUTO_TEST_CASE(GroupChangePhaseSameTimeThrows) {
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(GroupMiscInjection) {
|
||||
Opm::TimeMapPtr timeMap = createXDaysTimeMap(10);
|
||||
auto timeMap = createXDaysTimeMap(10);
|
||||
Opm::Group group("G1" , timeMap , 0);
|
||||
|
||||
group.setSurfaceMaxRate( 3 , 100 );
|
||||
@@ -146,7 +146,7 @@ BOOST_AUTO_TEST_CASE(GroupMiscInjection) {
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(GroupDoesNotHaveWell) {
|
||||
Opm::TimeMapPtr timeMap = createXDaysTimeMap(10);
|
||||
auto timeMap = createXDaysTimeMap(10);
|
||||
Opm::Group group("G1" , timeMap , 0);
|
||||
|
||||
BOOST_CHECK_EQUAL(false , group.hasWell("NO", 2));
|
||||
@@ -157,8 +157,8 @@ BOOST_AUTO_TEST_CASE(GroupDoesNotHaveWell) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(GroupAddWell) {
|
||||
|
||||
Opm::TimeMapPtr timeMap = createXDaysTimeMap(10);
|
||||
Opm::Group group("G1" , timeMap , 0);
|
||||
auto timeMap = std::make_shared< Opm::TimeMap >( createXDaysTimeMap( 10 ) );
|
||||
Opm::Group group("G1" , *timeMap , 0);
|
||||
auto well1 = std::make_shared< Well >("WELL1", 0, 0, Opm::Value<double>("REF_DEPTH"), Opm::Phase::OIL, timeMap, 0);
|
||||
auto well2 = std::make_shared< Well >("WELL2", 0, 0, Opm::Value<double>("REF_DEPTH"), Opm::Phase::OIL, timeMap, 0);
|
||||
|
||||
@@ -194,8 +194,8 @@ BOOST_AUTO_TEST_CASE(GroupAddWell) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(GroupAddAndDelWell) {
|
||||
|
||||
Opm::TimeMapPtr timeMap = createXDaysTimeMap(10);
|
||||
Opm::Group group("G1" , timeMap , 0);
|
||||
auto timeMap = std::make_shared< Opm::TimeMap >( createXDaysTimeMap( 10 ) );
|
||||
Opm::Group group("G1" , *timeMap , 0);
|
||||
auto well1 = std::make_shared< Well >("WELL1", 0, 0, Opm::Value<double>("REF_DEPTH"), Opm::Phase::OIL, timeMap, 0);
|
||||
auto well2 = std::make_shared< Well >("WELL2", 0, 0, Opm::Value<double>("REF_DEPTH"), Opm::Phase::OIL, timeMap, 0);
|
||||
|
||||
@@ -230,8 +230,8 @@ BOOST_AUTO_TEST_CASE(GroupAddAndDelWell) {
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(getWells) {
|
||||
Opm::TimeMapPtr timeMap = createXDaysTimeMap(10);
|
||||
Opm::Group group("G1" , timeMap , 0);
|
||||
auto timeMap = std::make_shared< Opm::TimeMap >( createXDaysTimeMap( 10 ) );
|
||||
Opm::Group group("G1" , *timeMap , 0);
|
||||
auto well1 = std::make_shared< Well >("WELL1", 0, 0, Opm::Value<double>("REF_DEPTH"), Opm::Phase::OIL, timeMap, 0);
|
||||
auto well2 = std::make_shared< Well >("WELL2", 0, 0, Opm::Value<double>("REF_DEPTH"), Opm::Phase::OIL, timeMap, 0);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user