initialize all injectors with a rate to avoid singularities

This commit is contained in:
Tor Harald Sandve 2023-08-22 08:52:49 +02:00
parent 392573289f
commit 79e0b7256a

View File

@ -256,14 +256,12 @@ void SingleWellState::update_injector_targets(const Well& ecl_well, const Summar
return; return;
} }
// we initialize all open wells with a rate to avoid singularities
if (inj_controls.cmode == Well::InjectorCMode::GRUP) { double inj_surf_rate = 10.0 * Opm::unit::cubic(Opm::unit::meter) / Opm::unit::day;
this->bhp = this->perf_data.pressure_first_connection * bhp_safety_factor; if (inj_controls.cmode == Well::InjectorCMode::RATE) {
return; inj_surf_rate = inj_controls.surface_rate;
} }
if (inj_controls.cmode == Well::InjectorCMode::RATE) {
auto inj_surf_rate = inj_controls.surface_rate;
switch (inj_controls.injector_type) { switch (inj_controls.injector_type) {
case InjectorType::WATER: case InjectorType::WATER:
assert(pu.phase_used[BlackoilPhases::Aqua]); assert(pu.phase_used[BlackoilPhases::Aqua]);
@ -281,7 +279,6 @@ void SingleWellState::update_injector_targets(const Well& ecl_well, const Summar
// Not currently handled, keep zero init. // Not currently handled, keep zero init.
break; break;
} }
}
if (cmode_is_bhp) if (cmode_is_bhp)
this->bhp = bhp_limit; this->bhp = bhp_limit;