handle UDQ value for WINJFCNC
restarting related is missing for now
This commit is contained in:
@@ -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<InjMult> well_inj_mult;
|
||||
double m_filter_concentration = 0.;
|
||||
UDAValue m_filter_concentration;
|
||||
};
|
||||
|
||||
std::ostream& operator<<( std::ostream&, const Well::WellInjectionProperties& );
|
||||
|
||||
@@ -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<ParserKeywords::WINJFCNC::VOL_CONCENTRATION>().get<double>(0);
|
||||
// the unit is ppm_vol
|
||||
well.setFilterConc(filter_conc/1.e6);
|
||||
const auto filter_conc = record.getItem<ParserKeywords::WINJFCNC::VOL_CONCENTRATION>().get<UDAValue>(0);
|
||||
well.setFilterConc(filter_conc );
|
||||
this->snapshots.back().wells.update(std::move(well));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
#include <opm/input/eclipse/Deck/DeckKeyword.hpp>
|
||||
|
||||
#include "../MSW/Compsegs.hpp"
|
||||
#include "../eval_uda.hpp"
|
||||
|
||||
#include <cassert>
|
||||
#include <cmath>
|
||||
@@ -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.);
|
||||
}
|
||||
@@ -10,7 +10,7 @@
|
||||
},
|
||||
{
|
||||
"name": "VOL_CONCENTRATION",
|
||||
"value_type": "DOUBLE",
|
||||
"value_type": "UDA",
|
||||
"dimension": "1",
|
||||
"default" : 0
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user