From f5a2f6de748936e1ba2537877ca52a2f33f64651 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atgeirr=20Fl=C3=B8=20Rasmussen?= Date: Tue, 14 Jun 2022 13:42:13 +0200 Subject: [PATCH] Add new EclipseGrid contructor with no geometry or actnum info. --- .../eclipse/EclipseState/Grid/EclipseGrid.hpp | 1 + .../eclipse/EclipseState/Grid/EclipseGrid.cpp | 29 +++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/opm/input/eclipse/EclipseState/Grid/EclipseGrid.hpp b/opm/input/eclipse/EclipseState/Grid/EclipseGrid.hpp index 67c38045b..33c2d8de2 100644 --- a/opm/input/eclipse/EclipseState/Grid/EclipseGrid.hpp +++ b/opm/input/eclipse/EclipseState/Grid/EclipseGrid.hpp @@ -66,6 +66,7 @@ namespace Opm { EclipseGrid(size_t nx, size_t ny, size_t nz, double dx = 1.0, double dy = 1.0, double dz = 1.0); + explicit EclipseGrid(const GridDims& gd); EclipseGrid(const std::array& dims , const std::vector& coord , diff --git a/src/opm/input/eclipse/EclipseState/Grid/EclipseGrid.cpp b/src/opm/input/eclipse/EclipseState/Grid/EclipseGrid.cpp index 11c55820e..0819c0e66 100644 --- a/src/opm/input/eclipse/EclipseState/Grid/EclipseGrid.cpp +++ b/src/opm/input/eclipse/EclipseState/Grid/EclipseGrid.cpp @@ -124,6 +124,25 @@ EclipseGrid::EclipseGrid(const std::string& fileName ) } +EclipseGrid::EclipseGrid(const GridDims& gd) + : GridDims(gd), + m_minpvMode(MinpvMode::ModeEnum::Inactive), + m_pinchoutMode(PinchMode::ModeEnum::TOPBOT), + m_multzMode(PinchMode::ModeEnum::TOP), + m_pinchGapMode(PinchMode::ModeEnum::GAP) +{ + this->m_nactive = this->getCartesianSize(); + this->active_volume = std::nullopt; + // Nothing else initialized. Leaving in particular as empty: + // m_actnum, + // m_global_to_active, + // m_active_to_global. + // + // EclipseGrid will only be usable for constructing Box objects with + // all cells active. +} + + EclipseGrid::EclipseGrid(size_t nx, size_t ny , size_t nz, double dx, double dy, double dz) : GridDims(nx, ny, nz), @@ -478,6 +497,9 @@ EclipseGrid::EclipseGrid(const Deck& deck, const int * actnum) } size_t EclipseGrid::activeIndex(size_t globalIndex) const { + if (m_global_to_active.empty()) { + return globalIndex; + } if (m_global_to_active[ globalIndex] == -1) { throw std::invalid_argument("Input argument does not correspond to an active cell"); @@ -1410,8 +1432,11 @@ std::vector EclipseGrid::createDVector(const std::array& dims, st bool EclipseGrid::cellActive( size_t globalIndex ) const { assertGlobalIndex( globalIndex ); - - return m_actnum[globalIndex]>0; + if (m_actnum.empty()) { + return true; + } else { + return m_actnum[globalIndex]>0; + } } bool EclipseGrid::cellActive( size_t i , size_t j , size_t k ) const {