#1481 Add subset of Eigen, and method to condense transmisibilities

Not yet fully tested.
This commit is contained in:
Jacob Støren
2017-05-12 14:41:38 +02:00
parent a5e3e864fb
commit df269931c9
159 changed files with 73051 additions and 0 deletions

View File

@@ -23,6 +23,8 @@ ${CEE_CURRENT_LIST_DIR}ScalarMapper-Test.cpp
${CEE_CURRENT_LIST_DIR}WellPathAsciiFileReader-Test.cpp
${CEE_CURRENT_LIST_DIR}opm-flowdiagnostics-Test.cpp
${CEE_CURRENT_LIST_DIR}RigCellGeometryTools-Test.cpp
${CEE_CURRENT_LIST_DIR}RigTransmisibilityCondenser-Test.cpp
)
list(APPEND CODE_HEADER_FILES

View File

@@ -0,0 +1,92 @@
#include "gtest/gtest.h"
#include "RigTransmisibilityCondenser.h"
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
TEST(RigTransmissibilityCondenser, BasicTest)
{
{
RigTransmissibilityCondenser condenser;
condenser.addNeighborTransmisibility({ true, RigTransmissibilityCondenser::CellAddress::ECLIPSE, 1 }, { true, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 1 }, 1.0);
double condT = condenser.condensedTransmisibility({ true, RigTransmissibilityCondenser::CellAddress::ECLIPSE, 1 }, { true, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 1 });
EXPECT_DOUBLE_EQ(1.0, condT);
}
{
RigTransmissibilityCondenser condenser;
condenser.addNeighborTransmisibility({ true, RigTransmissibilityCondenser::CellAddress::ECLIPSE, 1 }, { true, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 1 }, 0.5);
double condT = condenser.condensedTransmisibility({ true, RigTransmissibilityCondenser::CellAddress::ECLIPSE, 1 }, { true, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 1 });
EXPECT_DOUBLE_EQ(0.5, condT);
}
{
RigTransmissibilityCondenser condenser;
condenser.addNeighborTransmisibility({ true, RigTransmissibilityCondenser::CellAddress::ECLIPSE, 1 }, { false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 1 }, 0.5);
condenser.addNeighborTransmisibility({ false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 1 }, { true, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 2 }, 0.5);
double condT = condenser.condensedTransmisibility({ true, RigTransmissibilityCondenser::CellAddress::ECLIPSE, 1 }, { true, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 2 });
EXPECT_DOUBLE_EQ(0.25, condT);
}
{
RigTransmissibilityCondenser condenser;
condenser.addNeighborTransmisibility({ true, RigTransmissibilityCondenser::CellAddress::ECLIPSE, 1 }, { false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 1 }, 0.5);
condenser.addNeighborTransmisibility({ true, RigTransmissibilityCondenser::CellAddress::ECLIPSE, 1 }, { false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 2 }, 0.5);
condenser.addNeighborTransmisibility({ false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 1 }, { true, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 3 }, 0.5);
condenser.addNeighborTransmisibility({ false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 2 }, { true, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 3 }, 0.5);
double condT = condenser.condensedTransmisibility({ true, RigTransmissibilityCondenser::CellAddress::ECLIPSE, 1 }, { true, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 3 });
EXPECT_DOUBLE_EQ(0.5, condT);
}
{
RigTransmissibilityCondenser condenser;
condenser.addNeighborTransmisibility({ true, RigTransmissibilityCondenser::CellAddress::ECLIPSE, 1 }, { false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 1 }, 0.5);
condenser.addNeighborTransmisibility({ true, RigTransmissibilityCondenser::CellAddress::ECLIPSE, 1 }, { false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 2 }, 0.5);
condenser.addNeighborTransmisibility({ false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 1 }, { false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 3 }, 0.5);
condenser.addNeighborTransmisibility({ false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 2 }, { false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 3 }, 0.5);
condenser.addNeighborTransmisibility({ false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 3 }, { true, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 4 }, 0.5);
double condT = condenser.condensedTransmisibility({ true, RigTransmissibilityCondenser::CellAddress::ECLIPSE, 1 }, { true, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 4 });
EXPECT_DOUBLE_EQ(0.25, condT);
}
{
RigTransmissibilityCondenser condenser;
condenser.addNeighborTransmisibility({ true, RigTransmissibilityCondenser::CellAddress::ECLIPSE, 5 }, { false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 1 }, 0.5);
condenser.addNeighborTransmisibility({ true, RigTransmissibilityCondenser::CellAddress::ECLIPSE, 7 }, { false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 2 }, 0.5);
condenser.addNeighborTransmisibility({ true, RigTransmissibilityCondenser::CellAddress::ECLIPSE, 9 }, { false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 4 }, 0.5);
condenser.addNeighborTransmisibility({ true, RigTransmissibilityCondenser::CellAddress::ECLIPSE, 8 }, { false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 3 }, 0.5);
condenser.addNeighborTransmisibility({ false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 1 }, { false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 2 }, 0.5);
condenser.addNeighborTransmisibility({ false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 1 }, { false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 3 }, 0.5);
condenser.addNeighborTransmisibility({ false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 2 }, { false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 4 }, 0.5);
condenser.addNeighborTransmisibility({ false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 3 }, { false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 4 }, 0.5);
condenser.addNeighborTransmisibility({ true, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 6 }, { false, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 4 }, 0.5);
double condT = condenser.condensedTransmisibility({ true, RigTransmissibilityCondenser::CellAddress::ECLIPSE, 5 }, { true, RigTransmissibilityCondenser::CellAddress::STIMPLAN, 6 });
EXPECT_DOUBLE_EQ(0.083333333, condT);
}
}