mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-20 11:48:25 -06:00
Properly update multipliers after cleaning, and ensure that the cleaning occurs before the multipliers are applied to the well.
This commit is contained in:
parent
136bd93fd6
commit
ca9cad3f07
@ -1841,6 +1841,17 @@ updateFiltrationModelsPostStep(const double dt,
|
||||
}
|
||||
}
|
||||
|
||||
template<class Scalar>
|
||||
void BlackoilWellModelGeneric<Scalar>::
|
||||
updateInjMult(DeferredLogger& deferred_logger)
|
||||
{
|
||||
for (const auto& well : this->well_container_generic_) {
|
||||
if (well->isInjector() && well->wellEcl().getInjMultMode() != Well::InjMultMode::NONE) {
|
||||
well->updateInjMult(this->prev_inj_multipliers_[well->name()], deferred_logger);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
template<class Scalar>
|
||||
void BlackoilWellModelGeneric<Scalar>::
|
||||
updateFiltrationModelsPreStep(DeferredLogger& deferred_logger)
|
||||
@ -1849,26 +1860,14 @@ updateFiltrationModelsPreStep(DeferredLogger& deferred_logger)
|
||||
if (well->isInjector()) {
|
||||
const auto it = filter_cake_.find(well->name());
|
||||
if (it != filter_cake_.end()) {
|
||||
well->updateFilterCakeMultipliers(it->second.multipliers());
|
||||
it->second.updatePreStep(*well, deferred_logger);
|
||||
well->updateFilterCakeMultipliers(it->second.multipliers());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
template<class Scalar>
|
||||
void BlackoilWellModelGeneric<Scalar>::
|
||||
updateInjMult(DeferredLogger& deferred_logger)
|
||||
{
|
||||
for (const auto& well : this->well_container_generic_) {
|
||||
if (well->isInjector() && well->wellEcl().getInjMultMode() != Well::InjMultMode::NONE) {
|
||||
well->updateInjMult(this->prev_inj_multipliers_[well->name()], deferred_logger);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
template class BlackoilWellModelGeneric<double>;
|
||||
|
||||
#if FLOW_INSTANTIATE_FLOAT
|
||||
|
@ -92,6 +92,8 @@ applyCleaning(const WellInterfaceGeneric<Scalar>& well,
|
||||
|
||||
filter_cake.sf_multiplier = 1.0;
|
||||
skin_factor_[perf] *= factor;
|
||||
const auto denom = connection.ctfProperties().peaceman_denom;
|
||||
inj_fc_multiplier_[perf] = denom / (denom + skin_factor_[perf]);
|
||||
const Scalar rw = connection.getFilterCakeRadius();
|
||||
switch (filter_cake.geometry) {
|
||||
case FilterCake::FilterCakeGeometry::LINEAR: {
|
||||
|
Loading…
Reference in New Issue
Block a user