Added BHPLimit as well property.

This commit is contained in:
Joakim Hove
2014-01-27 18:30:05 +01:00
parent a145a329f3
commit 99ef84b438
3 changed files with 25 additions and 1 deletions
@@ -33,6 +33,7 @@ namespace Opm {
m_waterRate(new DynamicState<double>(timeMap, 0.0)),
m_surfaceInjectionRate(new DynamicState<double>(timeMap, 0.0)),
m_reservoirInjectionRate(new DynamicState<double>(timeMap, 0.0)),
m_BHPLimit(new DynamicState<double>(timeMap , 0.0)),
m_inPredictionMode(new DynamicState<bool>(timeMap, true)),
m_isProducer(new DynamicState<bool>(timeMap, true)) ,
m_completions( new DynamicState<CompletionSetConstPtr>( timeMap , CompletionSetConstPtr( new CompletionSet()) )),
@@ -58,6 +59,15 @@ namespace Opm {
}
double Well::getBHPLimit(size_t timeStep) const {
return m_BHPLimit->get(timeStep);
}
void Well::setBHPLimit(size_t timeStep, double BHPLimit) {
m_BHPLimit->add(timeStep, BHPLimit);
}
double Well::getOilRate(size_t timeStep) const {
return m_oilRate->get(timeStep);
}
@@ -50,6 +50,9 @@ namespace Opm {
void setSurfaceInjectionRate(size_t timeStep, double injectionRate);
double getReservoirInjectionRate(size_t timeStep) const;
void setReservoirInjectionRate(size_t timeStep, double injectionRate);
double getBHPLimit(size_t timeStep) const;
void setBHPLimit(size_t timeStep, double BHPLimit);
int getHeadI() const;
int getHeadJ() const;
@@ -74,6 +77,7 @@ namespace Opm {
std::shared_ptr<DynamicState<double> > m_waterRate;
std::shared_ptr<DynamicState<double> > m_surfaceInjectionRate;
std::shared_ptr<DynamicState<double> > m_reservoirInjectionRate;
std::shared_ptr<DynamicState<double> > m_BHPLimit;
std::shared_ptr<DynamicState<bool> > m_inPredictionMode;
std::shared_ptr<DynamicState<bool> > m_isProducer;
@@ -25,7 +25,7 @@
#include <boost/test/unit_test.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <opm/parser/eclipse/Units/ConversionFactors.hpp>
#include <opm/parser/eclipse/Deck/DeckRecord.hpp>
#include <opm/parser/eclipse/Deck/DeckStringItem.hpp>
@@ -240,3 +240,13 @@ BOOST_AUTO_TEST_CASE(addWELSPECS_setData_dataSet) {
BOOST_CHECK_EQUAL(42, well.getHeadJ());
BOOST_CHECK_EQUAL(2334.32, well.getRefDepth());
}
BOOST_AUTO_TEST_CASE(XHPLimitDefault) {
Opm::TimeMapPtr timeMap = createXDaysTimeMap(10);
Opm::Well well("WELL1", 1, 2, 2334.32, timeMap, 0);
well.setBHPLimit( 1 , 100 );
BOOST_CHECK_EQUAL( 100 , well.getBHPLimit( 5 ));
}