diff --git a/opm/input/eclipse/Schedule/Well/Well.hpp b/opm/input/eclipse/Schedule/Well/Well.hpp index 91c0d9287..86d683f61 100644 --- a/opm/input/eclipse/Schedule/Well/Well.hpp +++ b/opm/input/eclipse/Schedule/Well/Well.hpp @@ -484,8 +484,8 @@ public: bool handleWINJCLN(const DeckRecord& record, const KeywordLocation& location); bool handleWINJDAM(const DeckRecord& record, const KeywordLocation& location); bool handleWINJMULT(const DeckRecord& record, const KeywordLocation& location); - void setFilterConc(const double conc); - double getFilterConc() const; + void setFilterConc(const UDAValue& conc); + double evalFilterConc(const SummaryState& summary_sate) const; bool applyGlobalWPIMULT(double scale_factor); void filterConnections(const ActiveGridCells& grid); @@ -603,7 +603,7 @@ private: double well_temperature; InjMultMode inj_mult_mode = InjMultMode::NONE; std::optional well_inj_mult; - double m_filter_concentration = 0.; + UDAValue m_filter_concentration; }; std::ostream& operator<<( std::ostream&, const Well::WellInjectionProperties& ); diff --git a/src/opm/input/eclipse/Schedule/KeywordHandlers.cpp b/src/opm/input/eclipse/Schedule/KeywordHandlers.cpp index 05f3a5fb0..be7fa56e5 100644 --- a/src/opm/input/eclipse/Schedule/KeywordHandlers.cpp +++ b/src/opm/input/eclipse/Schedule/KeywordHandlers.cpp @@ -2002,9 +2002,8 @@ Well{0} entered with 'FIELD' parent group: const auto well_names = this->wellNames(wellNamePattern, handlerContext); for (const auto& well_name: well_names) { auto well = this->snapshots.back().wells(well_name); - const auto filter_conc = record.getItem().get(0); - // the unit is ppm_vol - well.setFilterConc(filter_conc/1.e6); + const auto filter_conc = record.getItem().get(0); + well.setFilterConc(filter_conc ); this->snapshots.back().wells.update(std::move(well)); } } diff --git a/src/opm/input/eclipse/Schedule/Well/Well.cpp b/src/opm/input/eclipse/Schedule/Well/Well.cpp index 508f709d4..eec217798 100644 --- a/src/opm/input/eclipse/Schedule/Well/Well.cpp +++ b/src/opm/input/eclipse/Schedule/Well/Well.cpp @@ -51,6 +51,7 @@ #include #include "../MSW/Compsegs.hpp" +#include "../eval_uda.hpp" #include #include @@ -536,7 +537,7 @@ Well Well::serializationTestObject() result.m_pavg = PAvg(); result.well_temperature = 10.0; result.well_inj_mult = InjMult::serializationTestObject(); - result.m_filter_concentration = 0.1; + result.m_filter_concentration = UDAValue::serializationTestObject(); return result; } @@ -1763,10 +1764,10 @@ bool Opm::Well::aciveWellInjMult() const { } -void Opm::Well::setFilterConc(const double conc) { +void Opm::Well::setFilterConc(const UDAValue& conc) { this->m_filter_concentration = conc; } -double Opm::Well::getFilterConc() const { - return this->m_filter_concentration; +double Opm::Well::evalFilterConc(const SummaryState& summary_sate) const { + return UDA::eval_well_uda(this->m_filter_concentration, this->name(), summary_sate, 0.); } \ No newline at end of file diff --git a/src/opm/input/eclipse/share/keywords/900_OPM/W/WINJFCNC b/src/opm/input/eclipse/share/keywords/900_OPM/W/WINJFCNC index 067233a41..98b8ef6fa 100644 --- a/src/opm/input/eclipse/share/keywords/900_OPM/W/WINJFCNC +++ b/src/opm/input/eclipse/share/keywords/900_OPM/W/WINJFCNC @@ -10,8 +10,8 @@ }, { "name": "VOL_CONCENTRATION", - "value_type": "DOUBLE", - "dimension": "1", + "value_type": "UDA", + "dimension": "PPM", "default" : 0 } ]