Properly update multipliers after cleaning, and ensure that the cleaning occurs before the multipliers are applied to the well.

This commit is contained in:
Vegard Kippe
2024-10-07 19:33:18 +02:00
parent 136bd93fd6
commit ca9cad3f07
2 changed files with 14 additions and 13 deletions

View File

@@ -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