handle UDQ value for WINJFCNC

restarting related is missing for now
This commit is contained in:
Kai Bao
2023-07-31 16:33:09 +02:00
parent e8502c2d6d
commit 9a7147bead
4 changed files with 11 additions and 11 deletions

View File

@@ -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& );

View File

@@ -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));
}
}

View File

@@ -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.);
}

View File

@@ -10,7 +10,7 @@
},
{
"name": "VOL_CONCENTRATION",
"value_type": "DOUBLE",
"value_type": "UDA",
"dimension": "1",
"default" : 0
}