Add operator[] to GridDims

This commit is contained in:
Joakim Hove
2018-09-07 10:20:50 +02:00
parent 085bbc263b
commit e1948ccf99
3 changed files with 23 additions and 0 deletions

View File

@@ -42,6 +42,7 @@ namespace Opm {
size_t getNY() const;
size_t getNZ() const;
size_t operator[](int dim) const;
const std::array<int, 3> getNXYZ() const;

View File

@@ -62,6 +62,22 @@ namespace Opm {
return m_nz;
}
size_t GridDims::operator[](int dim) const {
switch (dim) {
case 0:
return this->m_nx;
break;
case 1:
return this->m_ny;
break;
case 2:
return this->m_nz;
break;
default:
throw std::invalid_argument("Invalid argument dim:" + std::to_string(dim));
}
}
const std::array<int, 3> GridDims::getNXYZ() const {
return std::array<int, 3> {{int( m_nx ), int( m_ny ), int( m_nz )}};
}
@@ -116,4 +132,5 @@ namespace Opm {
m_ny = dims[1];
m_nz = dims[2];
}
}

View File

@@ -127,6 +127,11 @@ BOOST_AUTO_TEST_CASE(CreateGridNoCells) {
BOOST_CHECK_EQUAL( 10 , grid.getNX());
BOOST_CHECK_EQUAL( 10 , grid.getNY());
BOOST_CHECK_EQUAL( 10 , grid.getNZ());
BOOST_CHECK_EQUAL(10, grid[0]);
BOOST_CHECK_EQUAL(10, grid[2]);
BOOST_CHECK_THROW( grid[10], std::invalid_argument);
BOOST_CHECK_EQUAL( 1000 , grid.getCartesianSize());
}