Added well->Injectortype

This commit is contained in:
Joakim Hove
2014-01-28 14:31:51 +01:00
parent eae4cbb889
commit 7ce91cf504
3 changed files with 23 additions and 0 deletions

View File

@@ -35,6 +35,7 @@ namespace Opm {
m_reservoirInjectionRate(new DynamicState<double>(timeMap, 0.0)),
m_BHPLimit(new DynamicState<double>(timeMap , 0.0)),
m_THPLimit(new DynamicState<double>(timeMap , 0.0)),
m_injectorType(new DynamicState<InjectorType::InjectorEnum>(timeMap, InjectorType::WATER)),
m_inPredictionMode(new DynamicState<bool>(timeMap, true)),
m_isProducer(new DynamicState<bool>(timeMap, true)) ,
m_completions( new DynamicState<CompletionSetConstPtr>( timeMap , CompletionSetConstPtr( new CompletionSet()) )),
@@ -76,6 +77,14 @@ namespace Opm {
m_THPLimit->add(timeStep, THPLimit);
}
InjectorType::InjectorEnum Well::getInjectorType(size_t timeStep) const {
return m_injectorType->get(timeStep);
}
void Well::setInjectorType(size_t timeStep, InjectorType::InjectorEnum injectorType) {
m_injectorType->add(timeStep , injectorType);
}
double Well::getOilRate(size_t timeStep) const {
return m_oilRate->get(timeStep);

View File

@@ -54,6 +54,8 @@ namespace Opm {
void setBHPLimit(size_t timeStep, double BHPLimit);
double getTHPLimit(size_t timeStep) const;
void setTHPLimit(size_t timeStep, double THPLimit);
InjectorType::InjectorEnum getInjectorType(size_t timeStep) const;
void setInjectorType(size_t timeStep, InjectorType::InjectorEnum injectorType);
int getHeadI() const;
@@ -81,6 +83,7 @@ namespace Opm {
std::shared_ptr<DynamicState<double> > m_reservoirInjectionRate;
std::shared_ptr<DynamicState<double> > m_BHPLimit;
std::shared_ptr<DynamicState<double> > m_THPLimit;
std::shared_ptr<DynamicState<InjectorType::InjectorEnum> > m_injectorType;
std::shared_ptr<DynamicState<bool> > m_inPredictionMode;
std::shared_ptr<DynamicState<bool> > m_isProducer;

View File

@@ -29,6 +29,7 @@
#include <opm/parser/eclipse/Deck/DeckRecord.hpp>
#include <opm/parser/eclipse/Deck/DeckStringItem.hpp>
#include <opm/parser/eclipse/EclipseState/Schedule/ScheduleEnums.hpp>
#include <opm/parser/eclipse/EclipseState/Schedule/Well.hpp>
#include <opm/parser/eclipse/EclipseState/Schedule/TimeMap.hpp>
@@ -253,3 +254,13 @@ BOOST_AUTO_TEST_CASE(XHPLimitDefault) {
BOOST_CHECK_EQUAL( 200 , well.getTHPLimit( 5 ));
}
BOOST_AUTO_TEST_CASE(InjectorType) {
Opm::TimeMapPtr timeMap = createXDaysTimeMap(10);
Opm::Well well("WELL1", 1, 2, 2334.32, timeMap, 0);
well.setInjectorType( 1 , Opm::InjectorType::WATER );
BOOST_CHECK_EQUAL( Opm::InjectorType::WATER , well.getInjectorType( 5 ));
}