diff --git a/opm/input/eclipse/EclipseState/Grid/LgrCollection.hpp b/opm/input/eclipse/EclipseState/Grid/LgrCollection.hpp index f8a8fd0c0..4de5ab97e 100644 --- a/opm/input/eclipse/EclipseState/Grid/LgrCollection.hpp +++ b/opm/input/eclipse/EclipseState/Grid/LgrCollection.hpp @@ -43,6 +43,8 @@ public: Carfin& getLgr(const std::string& lgrName); const Carfin& getLgr(const std::string& lgrName) const; + void addLgr(const std::string& lgrName); + template void serializeOp(Serializer& serializer) { diff --git a/src/opm/input/eclipse/EclipseState/Grid/LgrCollection.cpp b/src/opm/input/eclipse/EclipseState/Grid/LgrCollection.cpp index 26aed247b..168ca6885 100644 --- a/src/opm/input/eclipse/EclipseState/Grid/LgrCollection.cpp +++ b/src/opm/input/eclipse/EclipseState/Grid/LgrCollection.cpp @@ -68,4 +68,10 @@ namespace Opm { return m_lgrs.get( lgrName ); } + void LgrCollection::addLgr(const std::string& lgrName) { + Carfin lgr(lgrName); + m_lgrs.insert(std::make_pair(lgr.NAME(), lgr)); + } + + } diff --git a/tests/parser/LgrTests.cpp b/tests/parser/LgrTests.cpp index b269fd071..8f1b7ee4b 100644 --- a/tests/parser/LgrTests.cpp +++ b/tests/parser/LgrTests.cpp @@ -25,3 +25,22 @@ BOOST_AUTO_TEST_CASE(CreateLgrCollection) { BOOST_CHECK(! lgrs.hasLgr("NO-NotThisOne")); BOOST_CHECK_THROW( lgrs.getLgr("NO") , std::invalid_argument ); } + +BOOST_AUTO_TEST_CASE(AddLgrsToCollection) { + Opm::LgrCollection lgrs; + + lgrs.addLgr("LGR1"); + BOOST_CHECK_EQUAL( lgrs.size() , 1U ); + BOOST_CHECK(lgrs.hasLGR("LGR1")); + + const auto& lgr1 = lgrs.getLgr("LGR1"); + const auto& lgr12 = lgrs.getLgr(0); + BOOST_CHECK_EQUAL(lgr1.getName(), lgr12.getName()); + BOOST_CHECK_EQUAL(lgr1.getName(), "LGR1"); + + lgrs.addLgr("LGR2"); + const auto& lgr2 = lgrs.getFault("LGR2"); + BOOST_CHECK_EQUAL( lgrs.size() , 2U ); + BOOST_CHECK(lgrs.hasLgr("LGR2")); + BOOST_CHECK_EQUAL( lgr2.getName() , lgrs.getLgr(1).getName()); +} \ No newline at end of file