From ec907c22c12323b90088f8eb7eff69dd5ac1b8bd Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Thu, 12 Dec 2019 11:12:46 +0100 Subject: [PATCH] make UDQAssign constructible from variables also make it default constructible, add accessors and equality operator --- .../EclipseState/Schedule/UDQ/UDQAssign.hpp | 10 ++++++++ .../EclipseState/Schedule/UDQ/UDQAssign.cpp | 25 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/opm/parser/eclipse/EclipseState/Schedule/UDQ/UDQAssign.hpp b/opm/parser/eclipse/EclipseState/Schedule/UDQ/UDQAssign.hpp index f778a1c19..bdf975343 100644 --- a/opm/parser/eclipse/EclipseState/Schedule/UDQ/UDQAssign.hpp +++ b/opm/parser/eclipse/EclipseState/Schedule/UDQ/UDQAssign.hpp @@ -49,11 +49,21 @@ public: } }; + UDQAssign(); UDQAssign(const std::string& keyword, const std::vector& selector, double value); + UDQAssign(const std::string& keyword, + UDQVarType varType, + const std::vector& records); + const std::string& keyword() const; UDQVarType var_type() const; void add_record(const std::vector& selector, double value); UDQSet eval(const std::vector& wells) const; + + const std::vector& getRecords() const; + + bool operator==(const UDQAssign& data) const; + private: std::string m_keyword; UDQVarType m_var_type; diff --git a/src/opm/parser/eclipse/EclipseState/Schedule/UDQ/UDQAssign.cpp b/src/opm/parser/eclipse/EclipseState/Schedule/UDQ/UDQAssign.cpp index ede52301f..8a44d853d 100644 --- a/src/opm/parser/eclipse/EclipseState/Schedule/UDQ/UDQAssign.cpp +++ b/src/opm/parser/eclipse/EclipseState/Schedule/UDQ/UDQAssign.cpp @@ -22,6 +22,11 @@ namespace Opm { +UDQAssign::UDQAssign() : + m_var_type(UDQVarType::NONE) +{ +} + UDQAssign::UDQAssign(const std::string& keyword, const std::vector& selector, double value) : m_keyword(keyword), m_var_type(UDQ::varType(keyword)) @@ -29,6 +34,15 @@ UDQAssign::UDQAssign(const std::string& keyword, const std::vector& this->add_record(selector, value); } +UDQAssign::UDQAssign(const std::string& keyword, + UDQVarType varType, + const std::vector& record) : + m_keyword(keyword), + m_var_type(varType), + records(record) +{ +} + void UDQAssign::add_record(const std::vector& selector, double value) { this->records.push_back({selector, value}); } @@ -58,4 +72,15 @@ UDQSet UDQAssign::eval(const std::vector& wells) const { } throw std::invalid_argument("Not yet implemented"); } + +const std::vector& UDQAssign::getRecords() const { + return records; +} + +bool UDQAssign::operator==(const UDQAssign& data) const { + return this->keyword() == data.keyword() && + this->var_type() == data.var_type() && + this->getRecords() == data.getRecords(); +} + }