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:
@@ -1516,10 +1516,17 @@ namespace Opm {
|
||||
BlackoilWellModel<TypeTag>::
|
||||
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_) {
|
||||
well->assembleWellEqWithoutIteration(ebosSimulator_, dt, this->wellState(), this->groupState(),
|
||||
deferred_logger);
|
||||
}
|
||||
OPM_END_PARALLEL_TRY_CATCH_LOG(deferred_logger, "BlackoilWellModel::assembleWellEqWithoutIteration failed: ",
|
||||
terminal_output_, grid().comm());
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user