From 040107d2155b65d5e84e8f458c3c709abae6bed9 Mon Sep 17 00:00:00 2001 From: Joakim Hove Date: Wed, 16 Jul 2014 09:21:05 +0200 Subject: [PATCH] Added method EclipseGrid::resetACTNUM() --- .../eclipse/EclipseState/Grid/EclipseGrid.cpp | 6 ++++ .../eclipse/EclipseState/Grid/EclipseGrid.hpp | 1 + .../Grid/tests/EclipseGridTests.cpp | 33 ++++++++++++++++++- 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/opm/parser/eclipse/EclipseState/Grid/EclipseGrid.cpp b/opm/parser/eclipse/EclipseState/Grid/EclipseGrid.cpp index c517149cd..936319161 100644 --- a/opm/parser/eclipse/EclipseState/Grid/EclipseGrid.cpp +++ b/opm/parser/eclipse/EclipseState/Grid/EclipseGrid.cpp @@ -372,6 +372,12 @@ namespace Opm { ecl_grid_init_zcorn_data_double( m_grid.get() , zcorn.data() ); } + + + void EclipseGrid::resetACTNUM( const int * actnum) { + ecl_grid_reset_actnum( m_grid.get() , actnum ); + } + } diff --git a/opm/parser/eclipse/EclipseState/Grid/EclipseGrid.hpp b/opm/parser/eclipse/EclipseState/Grid/EclipseGrid.hpp index 59b834e33..ef4c61e3c 100644 --- a/opm/parser/eclipse/EclipseState/Grid/EclipseGrid.hpp +++ b/opm/parser/eclipse/EclipseState/Grid/EclipseGrid.hpp @@ -54,6 +54,7 @@ namespace Opm { void exportCOORD( std::vector& coord) const; void exportZCORN( std::vector& zcorn) const; void exportACTNUM( std::vector& actnum) const; + void resetACTNUM( const int * actnum); bool equal(const EclipseGrid& other) const; private: std::shared_ptr m_grid; diff --git a/opm/parser/eclipse/EclipseState/Grid/tests/EclipseGridTests.cpp b/opm/parser/eclipse/EclipseState/Grid/tests/EclipseGridTests.cpp index dca409f81..bf419f6a0 100644 --- a/opm/parser/eclipse/EclipseState/Grid/tests/EclipseGridTests.cpp +++ b/opm/parser/eclipse/EclipseState/Grid/tests/EclipseGridTests.cpp @@ -500,6 +500,37 @@ BOOST_AUTO_TEST_CASE(CornerPointSizeMismatchACTNUM) { Opm::DeckConstPtr deck = parser->parseString(deckData) ; std::shared_ptr runspecSection(new Opm::RUNSPECSection(deck) ); std::shared_ptr gridSection(new Opm::GRIDSection(deck) ); - Opm::DeckKeywordConstPtr zcorn = gridSection->getKeyword("ZCORN"); BOOST_CHECK_THROW(Opm::EclipseGrid( runspecSection , gridSection ) , std::invalid_argument); } + + + +BOOST_AUTO_TEST_CASE(ResetACTNUM) { + const char *deckData = + "RUNSPEC\n" + "\n" + "DIMENS\n" + " 10 10 10 /\n" + "GRID\n" + "COORD\n" + " 726*1 / \n" + "ZCORN \n" + " 8000*1 / \n" + "EDIT\n" + "\n"; + + Opm::ParserPtr parser(new Opm::Parser()); + Opm::DeckConstPtr deck = parser->parseString(deckData) ; + std::shared_ptr runspecSection(new Opm::RUNSPECSection(deck) ); + std::shared_ptr gridSection(new Opm::GRIDSection(deck) ); + + Opm::EclipseGrid grid(runspecSection , gridSection ); + BOOST_CHECK_EQUAL( 1000U , grid.getNumActive()); + std::vector actnum(1000); + actnum[0] = 1; + grid.resetACTNUM( actnum.data() ); + BOOST_CHECK_EQUAL( 1U , grid.getNumActive() ); + + grid.resetACTNUM( NULL ); + BOOST_CHECK_EQUAL( 1000U , grid.getNumActive() ); +}