Merge pull request #100 from flikka/add-to-completion
Added skinFactor and diameter to Completion
This commit is contained in:
@@ -22,13 +22,15 @@
|
||||
|
||||
namespace Opm {
|
||||
|
||||
Completion::Completion(int i, int j , int k , CompletionStateEnum state , double CF) {
|
||||
Completion::Completion(int i, int j , int k , CompletionStateEnum state , double CF, double diameter, double skinFactor) {
|
||||
m_i = i;
|
||||
m_j = j;
|
||||
m_k = k;
|
||||
|
||||
m_state = state;
|
||||
m_CF = CF;
|
||||
m_diameter = diameter;
|
||||
m_skinFactor = skinFactor;
|
||||
}
|
||||
|
||||
|
||||
@@ -56,6 +58,7 @@ namespace Opm {
|
||||
int K1 = compdatRecord->getItem("K1")->getInt(0);
|
||||
int K2 = compdatRecord->getItem("K2")->getInt(0);
|
||||
CompletionStateEnum state = CompletionStateEnumFromString( compdatRecord->getItem("STATE")->getString(0) );
|
||||
|
||||
{
|
||||
DeckItemConstPtr CFItem = compdatRecord->getItem("CF");
|
||||
if (CFItem->defaultApplied())
|
||||
@@ -63,8 +66,11 @@ namespace Opm {
|
||||
}
|
||||
double CF = compdatRecord->getItem("CF")->getRawDouble(0);
|
||||
|
||||
double diameter = compdatRecord->getItem("DIAMETER")->getSIDouble(0);
|
||||
double skinFactor = compdatRecord->getItem("SKIN")->getRawDouble(0);
|
||||
|
||||
for (int k = K1; k <= K2; k++) {
|
||||
CompletionConstPtr completion(new Completion(I , J , k , state , CF ));
|
||||
CompletionConstPtr completion(new Completion(I , J , k , state , CF, diameter, skinFactor ));
|
||||
completions.push_back( completion );
|
||||
}
|
||||
|
||||
@@ -117,12 +123,19 @@ namespace Opm {
|
||||
|
||||
CompletionStateEnum Completion::getState() const {
|
||||
return m_state;
|
||||
};
|
||||
}
|
||||
|
||||
double Completion::getCF() const {
|
||||
return m_CF;
|
||||
}
|
||||
|
||||
double Completion::getDiameter() const {
|
||||
return m_diameter;
|
||||
}
|
||||
|
||||
double Completion::getSkinFactor() const {
|
||||
return m_skinFactor;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -33,20 +33,22 @@ namespace Opm {
|
||||
|
||||
class Completion {
|
||||
public:
|
||||
Completion(int i, int j , int k , CompletionStateEnum state , double CF);
|
||||
Completion(int i, int j , int k , CompletionStateEnum state , double CF, double diameter, double skinFactor);
|
||||
bool sameCoordinate(const Completion& other) const;
|
||||
int getI() const;
|
||||
int getJ() const;
|
||||
int getK() const;
|
||||
CompletionStateEnum getState() const;
|
||||
double getCF() const;
|
||||
double getDiameter() const;
|
||||
double getSkinFactor() const;
|
||||
|
||||
static std::map<std::string , std::vector<std::shared_ptr<const Completion> > > completionsFromCOMPDATKeyword( DeckKeywordConstPtr compdatKeyword );
|
||||
static std::pair<std::string , std::vector<std::shared_ptr<const Completion> > > completionsFromCOMPDATRecord( DeckRecordConstPtr compdatRecord );
|
||||
|
||||
private:
|
||||
int m_i, m_j, m_k;
|
||||
double m_CF;
|
||||
double m_CF, m_diameter, m_skinFactor;
|
||||
CompletionStateEnum m_state;
|
||||
};
|
||||
|
||||
|
||||
@@ -48,8 +48,8 @@ BOOST_AUTO_TEST_CASE(CreateCompletionSetOK) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(AddCompletionSizeCorrect) {
|
||||
Opm::CompletionSet completionSet;
|
||||
Opm::CompletionConstPtr completion1(new Opm::Completion(10,10,10,Opm::OPEN , 99.88));
|
||||
Opm::CompletionConstPtr completion2(new Opm::Completion(11,10,10,Opm::OPEN , 99.88));
|
||||
Opm::CompletionConstPtr completion1(new Opm::Completion(10,10,10,Opm::OPEN , 99.88, 22.33, 33.22));
|
||||
Opm::CompletionConstPtr completion2(new Opm::Completion(11,10,10,Opm::OPEN , 99.88, 22.33, 33.22));
|
||||
completionSet.add( completion1 );
|
||||
BOOST_CHECK_EQUAL( 1U , completionSet.size() );
|
||||
|
||||
@@ -62,8 +62,8 @@ BOOST_AUTO_TEST_CASE(AddCompletionSizeCorrect) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(CompletionSetGetOutOfRangeThrows) {
|
||||
Opm::CompletionSet completionSet;
|
||||
Opm::CompletionConstPtr completion1(new Opm::Completion(10,10,10,Opm::OPEN , 99.88));
|
||||
Opm::CompletionConstPtr completion2(new Opm::Completion(11,10,10,Opm::OPEN , 99.88));
|
||||
Opm::CompletionConstPtr completion1(new Opm::Completion(10,10,10,Opm::OPEN , 99.88, 22.33, 33.22));
|
||||
Opm::CompletionConstPtr completion2(new Opm::Completion(11,10,10,Opm::OPEN , 99.88, 22.33, 33.22));
|
||||
completionSet.add( completion1 );
|
||||
BOOST_CHECK_EQUAL( 1U , completionSet.size() );
|
||||
|
||||
@@ -78,8 +78,8 @@ BOOST_AUTO_TEST_CASE(CompletionSetGetOutOfRangeThrows) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(AddCompletionSameCellUpdates) {
|
||||
Opm::CompletionSet completionSet;
|
||||
Opm::CompletionConstPtr completion1(new Opm::Completion(10,10,10,Opm::OPEN , 99.88));
|
||||
Opm::CompletionConstPtr completion2(new Opm::Completion(10,10,10,Opm::SHUT , 99.88));
|
||||
Opm::CompletionConstPtr completion1(new Opm::Completion(10,10,10,Opm::OPEN , 99.88, 22.33, 33.22));
|
||||
Opm::CompletionConstPtr completion2(new Opm::Completion(10,10,10,Opm::SHUT , 99.88, 22.33, 33.22));
|
||||
|
||||
|
||||
completionSet.add( completion1 );
|
||||
@@ -94,9 +94,9 @@ BOOST_AUTO_TEST_CASE(AddCompletionSameCellUpdates) {
|
||||
BOOST_AUTO_TEST_CASE(AddCompletionShallowCopy) {
|
||||
Opm::CompletionSet completionSet;
|
||||
|
||||
Opm::CompletionConstPtr completion1(new Opm::Completion(10,10,10,Opm::OPEN , 99.88));
|
||||
Opm::CompletionConstPtr completion2(new Opm::Completion(10,10,11,Opm::SHUT , 99.88));
|
||||
Opm::CompletionConstPtr completion3(new Opm::Completion(10,10,12,Opm::SHUT , 99.88));
|
||||
Opm::CompletionConstPtr completion1(new Opm::Completion(10,10,10,Opm::OPEN , 99.88, 22.33, 33.22));
|
||||
Opm::CompletionConstPtr completion2(new Opm::Completion(10,10,11,Opm::SHUT , 99.88, 22.33, 33.22));
|
||||
Opm::CompletionConstPtr completion3(new Opm::Completion(10,10,12,Opm::SHUT , 99.88, 22.33, 33.22));
|
||||
|
||||
completionSet.add( completion1 );
|
||||
completionSet.add( completion2 );
|
||||
|
||||
@@ -39,28 +39,29 @@
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(CreateCompletionOK) {
|
||||
Opm::Completion completion(10,10,10,Opm::OPEN,100);
|
||||
Opm::Completion completion(10,10,10,Opm::OPEN,100, 3.33, 3.3);
|
||||
}
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(testGetFunctions) {
|
||||
Opm::Completion completion(10,11,12,Opm::OPEN,100);
|
||||
Opm::Completion completion(10,11,12,Opm::OPEN,100, 44, 33);
|
||||
BOOST_CHECK_EQUAL( 10 , completion.getI() );
|
||||
BOOST_CHECK_EQUAL( 11 , completion.getJ() );
|
||||
BOOST_CHECK_EQUAL( 12 , completion.getK() );
|
||||
|
||||
BOOST_CHECK_EQUAL( Opm::OPEN , completion.getState());
|
||||
BOOST_CHECK_EQUAL( 100 , completion.getCF());
|
||||
BOOST_CHECK_EQUAL( 44 , completion.getDiameter());
|
||||
BOOST_CHECK_EQUAL( 33 , completion.getSkinFactor());
|
||||
}
|
||||
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(CompletionTestssameCoordinate) {
|
||||
Opm::Completion completion1(10,10,10,Opm::OPEN, 100.0);
|
||||
Opm::Completion completion2(10,10,10,Opm::OPEN, 100.0);
|
||||
Opm::Completion completion3(11,10,10,Opm::OPEN, 100.0);
|
||||
Opm::Completion completion4(10,11,10,Opm::OPEN, 100.0);
|
||||
Opm::Completion completion5(10,10,11,Opm::OPEN, 100.0);
|
||||
Opm::Completion completion1(10,10,10,Opm::OPEN, 100.0, 30, 40);
|
||||
Opm::Completion completion2(10,10,10,Opm::OPEN, 100.0, 30, 40);
|
||||
Opm::Completion completion3(11,10,10,Opm::OPEN, 100.0, 30, 40);
|
||||
Opm::Completion completion4(10,11,10,Opm::OPEN, 100.0, 30, 40);
|
||||
Opm::Completion completion5(10,10,11,Opm::OPEN, 100.0, 30, 40);
|
||||
|
||||
BOOST_CHECK( completion1.sameCoordinate( completion2 ));
|
||||
BOOST_CHECK_EQUAL( false , completion1.sameCoordinate( completion3 ));
|
||||
|
||||
@@ -96,11 +96,11 @@ BOOST_AUTO_TEST_CASE(UpdateCompletions) {
|
||||
|
||||
std::vector<Opm::CompletionConstPtr> newCompletions;
|
||||
std::vector<Opm::CompletionConstPtr> newCompletions2;
|
||||
Opm::CompletionConstPtr comp1(new Opm::Completion( 10 , 10 , 10 , Opm::AUTO , 99.0));
|
||||
Opm::CompletionConstPtr comp2(new Opm::Completion( 10 , 11 , 10 , Opm::SHUT , 99.0));
|
||||
Opm::CompletionConstPtr comp3(new Opm::Completion( 10 , 10 , 12 , Opm::OPEN , 99.0));
|
||||
Opm::CompletionConstPtr comp4(new Opm::Completion( 10 , 10 , 12 , Opm::SHUT , 99.0));
|
||||
Opm::CompletionConstPtr comp5(new Opm::Completion( 10 , 10 , 13 , Opm::OPEN , 99.0));
|
||||
Opm::CompletionConstPtr comp1(new Opm::Completion( 10 , 10 , 10 , Opm::AUTO , 99.0, 22.3, 33.2));
|
||||
Opm::CompletionConstPtr comp2(new Opm::Completion( 10 , 11 , 10 , Opm::SHUT , 99.0, 22.3, 33.2));
|
||||
Opm::CompletionConstPtr comp3(new Opm::Completion( 10 , 10 , 12 , Opm::OPEN , 99.0, 22.3, 33.2));
|
||||
Opm::CompletionConstPtr comp4(new Opm::Completion( 10 , 10 , 12 , Opm::SHUT , 99.0, 22.3, 33.2));
|
||||
Opm::CompletionConstPtr comp5(new Opm::Completion( 10 , 10 , 13 , Opm::OPEN , 99.0, 22.3, 33.2));
|
||||
|
||||
//std::vector<Opm::CompletionConstPtr> newCompletions2{ comp4 , comp5}; Newer c++
|
||||
|
||||
|
||||
@@ -129,10 +129,13 @@ BOOST_AUTO_TEST_CASE(WellTestCOMPDAT) {
|
||||
CompletionSetConstPtr completions = well1->getCompletions(0);
|
||||
BOOST_CHECK_EQUAL(0U, completions->size());
|
||||
|
||||
|
||||
completions = well1->getCompletions(3);
|
||||
BOOST_CHECK_EQUAL(4U, completions->size());
|
||||
|
||||
BOOST_CHECK_EQUAL(OPEN, completions->get(3)->getState());
|
||||
BOOST_CHECK_EQUAL(19.731, completions->get(3)->getCF());
|
||||
BOOST_CHECK_EQUAL(0.311/Metric::Length, completions->get(3)->getDiameter());
|
||||
BOOST_CHECK_EQUAL(3.3, completions->get(3)->getSkinFactor());
|
||||
|
||||
completions = well1->getCompletions(7);
|
||||
BOOST_CHECK_EQUAL(4U, completions->size());
|
||||
|
||||
Reference in New Issue
Block a user