mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
[MPI] Handle exception during assembleWellEqWithoutIteration correctly
For this particular model WetGasPVT::saturationPressure did throw because convergence in the newton solver is not reached in 20 iterations. Unfortunately, the exception was only seen on one MPI rank and the others continued. With this commit we communicate the problem and throw on all MPI processes. Time step will be cut as a result.
This commit is contained in:
parent
faad3a6ee5
commit
260dac77a5
@ -1516,10 +1516,17 @@ namespace Opm {
|
|||||||
BlackoilWellModel<TypeTag>::
|
BlackoilWellModel<TypeTag>::
|
||||||
assembleWellEqWithoutIteration(const double dt, DeferredLogger& deferred_logger)
|
assembleWellEqWithoutIteration(const double dt, DeferredLogger& deferred_logger)
|
||||||
{
|
{
|
||||||
|
// We make sure that all processes throw in case there is an exception
|
||||||
|
// on one of them (WetGasPvt::saturationPressure might throw if not converged)
|
||||||
|
OPM_BEGIN_PARALLEL_TRY_CATCH()
|
||||||
|
|
||||||
for (auto& well: well_container_) {
|
for (auto& well: well_container_) {
|
||||||
well->assembleWellEqWithoutIteration(ebosSimulator_, dt, this->wellState(), this->groupState(),
|
well->assembleWellEqWithoutIteration(ebosSimulator_, dt, this->wellState(), this->groupState(),
|
||||||
deferred_logger);
|
deferred_logger);
|
||||||
}
|
}
|
||||||
|
OPM_END_PARALLEL_TRY_CATCH_LOG(deferred_logger, "BlackoilWellModel::assembleWellEqWithoutIteration failed: ",
|
||||||
|
terminal_output_, grid().comm());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user