From 5a7dcc5427a489d10bdaa527eb3f8f2b435abd97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A5l=20Gr=C3=B8n=C3=A5s=20Drange?= Date: Mon, 2 May 2016 17:50:45 +0200 Subject: [PATCH] Made FaultCollection reference in State thereby fixing compiler warn --- .../eclipse/EclipseState/EclipseState.cpp | 21 +++++----- .../eclipse/EclipseState/EclipseState.hpp | 28 ++++++++------ .../EclipseState/Grid/FaultCollection.cpp | 38 +++++++------------ .../EclipseState/Grid/FaultCollection.hpp | 17 +++++---- .../eclipse/EclipseState/Grid/TransMult.cpp | 14 +++---- .../eclipse/EclipseState/Grid/TransMult.hpp | 4 +- .../EclipseState/Grid/tests/FaultTests.cpp | 16 ++++---- .../EclipseState/tests/EclipseStateTests.cpp | 14 +++---- 8 files changed, 74 insertions(+), 78 deletions(-) diff --git a/opm/parser/eclipse/EclipseState/EclipseState.cpp b/opm/parser/eclipse/EclipseState/EclipseState.cpp index 64c3b9c2f..a6f676e70 100644 --- a/opm/parser/eclipse/EclipseState/EclipseState.cpp +++ b/opm/parser/eclipse/EclipseState/EclipseState.cpp @@ -145,7 +145,7 @@ namespace Opm { return m_simulationConfig; } - std::shared_ptr EclipseState::getFaults() const { + const FaultCollection& EclipseState::getFaults() const { return m_faults; } @@ -208,11 +208,11 @@ namespace Opm { m_transMult->applyMULT(p.getDoubleGridProperty("MULTZ-"), FaceDir::ZMinus); } - void EclipseState::initFaults(DeckConstPtr deck) { + void EclipseState::initFaults(const Deck& deck) { EclipseGridConstPtr grid = getInputGrid(); std::shared_ptr gridSection = std::make_shared( deck ); - m_faults = std::make_shared(gridSection , grid); + m_faults = FaultCollection(gridSection, grid); setMULTFLT(gridSection); if (Section::hasEDIT(deck)) { @@ -279,17 +279,20 @@ namespace Opm { } } + void EclipseState::applyModifierDeck(std::shared_ptr deckptr) { + applyModifierDeck(*deckptr); + } - void EclipseState::applyModifierDeck( std::shared_ptr deck) { + void EclipseState::applyModifierDeck(const Deck& deck) { using namespace ParserKeywords; - for (const auto& keyword : *deck) { + for (const auto& keyword : deck) { if (keyword.isKeyword()) { for (const auto& record : keyword) { const std::string& faultName = record.getItem().get< std::string >(0); - auto fault = m_faults->getFault( faultName ); + auto& fault = m_faults.getFault( faultName ); double tmpMultFlt = record.getItem().get< double >(0); - double oldMultFlt = fault->getTransMult( ); + double oldMultFlt = fault.getTransMult( ); double newMultFlt = oldMultFlt * tmpMultFlt; /* @@ -312,9 +315,9 @@ namespace Opm { MULTFLT value in the fault instance. */ - fault->setTransMult( tmpMultFlt ); + fault.setTransMult( tmpMultFlt ); m_transMult->applyMULTFLT( fault ); - fault->setTransMult( newMultFlt ); + fault.setTransMult( newMultFlt ); } } } diff --git a/opm/parser/eclipse/EclipseState/EclipseState.hpp b/opm/parser/eclipse/EclipseState/EclipseState.hpp index 027f440bb..f1126a9a4 100644 --- a/opm/parser/eclipse/EclipseState/EclipseState.hpp +++ b/opm/parser/eclipse/EclipseState/EclipseState.hpp @@ -26,6 +26,10 @@ #include #include +#include +#include +#include +#include #include #include #include @@ -43,8 +47,6 @@ namespace Opm { class DeckRecord; class EclipseGrid; class Eclipse3DProperties; - class Fault; - class FaultCollection; class InitConfig; class IOConfig; class NNC; @@ -83,9 +85,9 @@ namespace Opm { MessageContainer& getMessageContainer(); std::string getTitle() const; - std::shared_ptr getFaults() const; + const FaultCollection& getFaults() const; std::shared_ptr getTransMult() const; - std::shared_ptr getNNC() const; + const NNC& getNNC() const; bool hasNNC() const; const Eclipse3DProperties& get3DProperties() const; @@ -97,18 +99,20 @@ namespace Opm { // the unit system used by the deck. note that it is rarely needed to convert // units because internally to opm-parser everything is represented by SI // units... - const UnitSystem& getDeckUnitSystem() const; - void applyModifierDeck( const Deck& deck); + const UnitSystem& getDeckUnitSystem() const; + + /// [deprecated] + void applyModifierDeck(std::shared_ptr); + void applyModifierDeck(const Deck& deck); private: void initIOConfig(const Deck& deck); void initIOConfigPostSchedule(const Deck& deck); void initTransMult(); - void initFaults(std::shared_ptr< const Deck > deck); + void initFaults(const Deck& deck); - - void setMULTFLT(std::shared_ptr section) const; - void initMULTREGT(std::shared_ptr< const Deck > deck); + void setMULTFLT(std::shared_ptr section); + void initMULTREGT(const Deck& deck); void complainAboutAmbiguousKeyword(const Deck& deck, const std::string& keywordName); @@ -120,8 +124,8 @@ namespace Opm { std::string m_title; std::shared_ptr m_transMult; - std::shared_ptr m_faults; - std::shared_ptr m_nnc; + FaultCollection m_faults; + NNC m_nnc; const UnitSystem& m_deckUnitSystem; diff --git a/opm/parser/eclipse/EclipseState/Grid/FaultCollection.cpp b/opm/parser/eclipse/EclipseState/Grid/FaultCollection.cpp index 29da3680e..5d6ecb707 100644 --- a/opm/parser/eclipse/EclipseState/Grid/FaultCollection.cpp +++ b/opm/parser/eclipse/EclipseState/Grid/FaultCollection.cpp @@ -34,9 +34,7 @@ namespace Opm { FaultCollection::FaultCollection() - { - - } + {} FaultCollection::FaultCollection( std::shared_ptr deck, std::shared_ptr grid) { @@ -60,58 +58,48 @@ namespace Opm { static_cast(K1) , static_cast(K2) , faceDir); if (!hasFault(faultName)) { - std::shared_ptr fault = std::make_shared( faultName ); - addFault( fault ); + addFault( faultName ); } { - std::shared_ptr fault = getFault( faultName ); - fault->addFace( face ); + Fault& fault = getFault( faultName ); + fault.addFace( face ); } } } } - size_t FaultCollection::size() const { return m_faults.size(); } - bool FaultCollection::hasFault(const std::string& faultName) const { return m_faults.hasKey( faultName ); } - - std::shared_ptr FaultCollection::getFault(const std::string& faultName) const { + const Fault& FaultCollection::getFault(const std::string& faultName) const { return m_faults.get( faultName ); } - std::shared_ptr FaultCollection::getFault(const std::string& faultName) { + Fault& FaultCollection::getFault(const std::string& faultName) { return m_faults.get( faultName ); } - - std::shared_ptr FaultCollection::getFault(size_t faultIndex) { + Fault& FaultCollection::getFault(size_t faultIndex) { return m_faults.get( faultIndex ); } - std::shared_ptr FaultCollection::getFault(size_t faultIndex) const { + const Fault& FaultCollection::getFault(size_t faultIndex) const { return m_faults.get( faultIndex ); } - - void FaultCollection::addFault(std::shared_ptr fault) { - m_faults.insert(fault->getName() , fault); + void FaultCollection::addFault(const std::string& faultName) { + Fault fault(faultName); + m_faults.insert(fault.getName() , fault); } - - void FaultCollection::setTransMult(const std::string& faultName , double transMult) { - std::shared_ptr fault = getFault( faultName ); - fault->setTransMult( transMult ); + Fault& fault = getFault( faultName ); + fault.setTransMult( transMult ); } - - - } diff --git a/opm/parser/eclipse/EclipseState/Grid/FaultCollection.hpp b/opm/parser/eclipse/EclipseState/Grid/FaultCollection.hpp index 33f657b83..fd4201d78 100644 --- a/opm/parser/eclipse/EclipseState/Grid/FaultCollection.hpp +++ b/opm/parser/eclipse/EclipseState/Grid/FaultCollection.hpp @@ -24,13 +24,14 @@ #include #include +#include + namespace Opm { class Deck; class GRIDSection; class EclipseGrid; - class Fault; class GRIDSection; @@ -41,15 +42,17 @@ public: size_t size() const; bool hasFault(const std::string& faultName) const; - std::shared_ptr getFault(const std::string& faultName); - std::shared_ptr getFault(const std::string& faultName) const; - std::shared_ptr getFault(size_t faultIndex); - std::shared_ptr getFault(size_t faultIndex) const; - void addFault(std::shared_ptr fault); + Fault& getFault(const std::string& faultName); + const Fault& getFault(const std::string& faultName) const; + Fault& getFault(size_t faultIndex); + const Fault& getFault(size_t faultIndex) const; + + /// we construct the fault based on faultName. To get the fault: getFault + void addFault(const std::string& faultName); void setTransMult(const std::string& faultName , double transMult); private: - OrderedMap > m_faults; + OrderedMap m_faults; }; } diff --git a/opm/parser/eclipse/EclipseState/Grid/TransMult.cpp b/opm/parser/eclipse/EclipseState/Grid/TransMult.cpp index 5de89efd4..6de95074f 100644 --- a/opm/parser/eclipse/EclipseState/Grid/TransMult.cpp +++ b/opm/parser/eclipse/EclipseState/Grid/TransMult.cpp @@ -109,10 +109,10 @@ namespace Opm { } - void TransMult::applyMULTFLT( std::shared_ptr fault) { - double transMult = fault->getTransMult(); + void TransMult::applyMULTFLT(const Fault& fault) { + double transMult = fault.getTransMult(); - for (auto face_iter = fault->begin(); face_iter != fault->end(); ++face_iter) { + for (auto face_iter = fault.begin(); face_iter != fault.end(); ++face_iter) { std::shared_ptr face = *face_iter; FaceDir::DirEnum faceDir = face->getDir(); auto& multProperty = getDirectionProperty(faceDir); @@ -125,10 +125,10 @@ namespace Opm { } - void TransMult::applyMULTFLT( std::shared_ptr faults) { - for (size_t faultIndex = 0; faultIndex < faults->size(); faultIndex++) { - std::shared_ptr fault = faults->getFault( faultIndex ); - applyMULTFLT( fault ); + void TransMult::applyMULTFLT(const FaultCollection& faults) { + for (size_t faultIndex = 0; faultIndex < faults.size(); faultIndex++) { + auto& fault = faults.getFault(faultIndex); + applyMULTFLT(fault); } } diff --git a/opm/parser/eclipse/EclipseState/Grid/TransMult.hpp b/opm/parser/eclipse/EclipseState/Grid/TransMult.hpp index 2e7a1b707..fa304bf4a 100644 --- a/opm/parser/eclipse/EclipseState/Grid/TransMult.hpp +++ b/opm/parser/eclipse/EclipseState/Grid/TransMult.hpp @@ -51,8 +51,8 @@ namespace Opm { double getMultiplier(size_t i , size_t j , size_t k, FaceDir::DirEnum faceDir) const; double getRegionMultiplier( size_t globalCellIndex1, size_t globalCellIndex2, FaceDir::DirEnum faceDir) const; void applyMULT(const GridProperty& srcMultProp, FaceDir::DirEnum faceDir); - void applyMULTFLT( std::shared_ptr faults); - void applyMULTFLT( std::shared_ptr fault); + void applyMULTFLT(const FaultCollection& faults); + void applyMULTFLT(const Fault& fault); void setMultregtScanner(std::shared_ptr multregtScanner); private: diff --git a/opm/parser/eclipse/EclipseState/Grid/tests/FaultTests.cpp b/opm/parser/eclipse/EclipseState/Grid/tests/FaultTests.cpp index cd17a0119..f565825e7 100644 --- a/opm/parser/eclipse/EclipseState/Grid/tests/FaultTests.cpp +++ b/opm/parser/eclipse/EclipseState/Grid/tests/FaultTests.cpp @@ -117,20 +117,18 @@ BOOST_AUTO_TEST_CASE(CreateFaultCollection) { BOOST_AUTO_TEST_CASE(AddFaultsToCollection) { Opm::FaultCollection faults; - std::shared_ptr fault = std::make_shared("FAULT"); - faults.addFault(fault); + faults.addFault("FAULT"); BOOST_CHECK_EQUAL( faults.size() , 1 ); BOOST_CHECK(faults.hasFault("FAULT")); - std::shared_ptr fault2 = faults.getFault("FAULT"); - std::shared_ptr fault0 = faults.getFault(0); - BOOST_CHECK_EQUAL( fault , fault2 ); - BOOST_CHECK_EQUAL( fault , fault0 ); + const auto& fault1 = faults.getFault("FAULT"); + const auto& fault2 = faults.getFault(0); + BOOST_CHECK_EQUAL(fault1.getName(), fault2.getName()); - std::shared_ptr faultx = std::make_shared("FAULTX"); - faults.addFault(faultx); + faults.addFault("FAULTX"); + const auto& faultx = faults.getFault("FAULTX"); BOOST_CHECK_EQUAL( faults.size() , 2 ); BOOST_CHECK(faults.hasFault("FAULTX")); - BOOST_CHECK_EQUAL( faultx , faults.getFault(1)); + BOOST_CHECK_EQUAL( faultx.getName() , faults.getFault(1).getName()); } diff --git a/opm/parser/eclipse/EclipseState/tests/EclipseStateTests.cpp b/opm/parser/eclipse/EclipseState/tests/EclipseStateTests.cpp index ef56f1567..68ecf9b6c 100644 --- a/opm/parser/eclipse/EclipseState/tests/EclipseStateTests.cpp +++ b/opm/parser/eclipse/EclipseState/tests/EclipseStateTests.cpp @@ -284,16 +284,16 @@ BOOST_AUTO_TEST_CASE(GetTransMult) { BOOST_AUTO_TEST_CASE(GetFaults) { DeckPtr deck = createDeck(); EclipseState state( deck, ParseContext() ); - std::shared_ptr faults = state.getFaults(); + const auto& faults = state.getFaults(); - BOOST_CHECK( faults->hasFault( "F1" ) ); - BOOST_CHECK( faults->hasFault( "F2" ) ); + BOOST_CHECK( faults.hasFault( "F1" ) ); + BOOST_CHECK( faults.hasFault( "F2" ) ); - std::shared_ptr F1 = faults->getFault( "F1" ); - std::shared_ptr F2 = faults->getFault( "F2" ); + const auto& F1 = faults.getFault( "F1" ); + const auto& F2 = faults.getFault( "F2" ); - BOOST_CHECK_EQUAL( 0.50, F1->getTransMult() ); - BOOST_CHECK_EQUAL( 0.25, F2->getTransMult() ); + BOOST_CHECK_EQUAL( 0.50, F1.getTransMult() ); + BOOST_CHECK_EQUAL( 0.25, F2.getTransMult() ); std::shared_ptr transMult = state.getTransMult(); BOOST_CHECK_EQUAL( transMult->getMultiplier( 0, 0, 0, FaceDir::XPlus ), 0.50 );