opm-simulators/opm/simulators/flow
Markus Blatt 7551229e77 Do a graceful exit instead of MPI_Abort for expected exceptions.
Instead of unconditionally issuing MPI_Abort if we encounter a fatal
exception, we try to test whether all processes have experienced this
exception and if this is the case just terminate nomally with a exit
code that signals an error. We still use MPI_Abort if not all
processes get an exception as this is the only way to make sure that
the program aborts.

This approach also works around issues in some MPI implementations
that might not correctly return the error.

Multiple messages like this are gone now:
```
--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 1 in communicator MPI_COMM_WORLD
with errorcode 1.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
[smaug.dr-blatt.de:129359] 1 more process has sent help message help-mpi-api.txt / mpi-abort
[smaug.dr-blatt.de:129359] Set MCA parameter "orte_base_help_aggregate" to 0 to see all help / error messages
```

Bu we still see something like this:
```
--------------------------------------------------------------------------
Primary job  terminated normally, but 1 process returned
a non-zero exit code. Per user-direction, the job has been aborted.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
mpirun detected that one or more processes exited with non-zero status, thus causing
the job to be terminated. The first process to do so was:

  Process name: [[35057,1],0]
  Exit code:    1
--------------------------------------------------------------------------
```
2023-07-19 13:44:12 +02:00
..
python comment out unused private variable (causes a warning) 2022-10-26 10:59:43 +02:00
Banners.cpp Add NLDD nonlinear solver option. 2023-06-23 16:24:18 +02:00
Banners.hpp Add NLDD nonlinear solver option. 2023-06-23 16:24:18 +02:00
BlackoilModelEbos.hpp BlackoilModelEbos: put Nldd solver in separate class 2023-07-05 13:40:13 +02:00
BlackoilModelEbosNldd.hpp BlackoilModelEbos: put Nldd solver in separate class 2023-07-05 13:40:13 +02:00
BlackoilModelParametersEbos.hpp BlackoilModelEbos: enumerate solver approach for NLDD 2023-07-03 15:51:07 +02:00
ConvergenceOutputConfiguration.cpp Don't Output INFOSTEP File by Default 2022-12-15 13:02:09 +01:00
ConvergenceOutputConfiguration.hpp Don't Output INFOSTEP File by Default 2022-12-15 13:02:09 +01:00
countGlobalCells.cpp changed: put ParallelIstlInformation in separate compile unit 2022-08-18 09:15:28 +02:00
countGlobalCells.hpp changed: put ParallelIstlInformation in separate compile unit 2022-08-18 09:15:28 +02:00
ExtraConvergenceOutputThread.cpp Output Non-Linear Convergence to Separate File if Requested 2022-12-20 10:14:13 +01:00
ExtraConvergenceOutputThread.hpp Output Non-Linear Convergence to Separate File if Requested 2022-12-20 10:14:13 +01:00
FlowMainEbos.cpp FlowMainEbos: move ExtraConvergenceOutput code to compile unit 2023-02-28 16:02:08 +01:00
FlowMainEbos.hpp Do a graceful exit instead of MPI_Abort for expected exceptions. 2023-07-19 13:44:12 +02:00
KeywordValidation.cpp Add helpful message about termination due to unsupported keywords. 2023-04-25 13:02:45 +02:00
KeywordValidation.hpp Make KeywordValidation::validateDeck() more flexible. 2023-04-25 10:44:59 +02:00
Main.cpp Setting CUDA device for MPI runs. 2023-05-31 21:47:46 +02:00
Main.hpp avoid dead stores 2023-06-27 13:40:54 +02:00
NonlinearSolverEbos.cpp avoid dead stores 2023-06-27 13:40:54 +02:00
NonlinearSolverEbos.hpp NonlinearSolverEbos: put stabilizeNonlinearUpdate in compile unit 2023-03-01 10:48:17 +01:00
partitionCells.cpp partitionCells: drop indent for namespace 2023-06-30 12:14:47 +02:00
partitionCells.hpp partitionCells: drop indent for namespace 2023-06-30 12:14:47 +02:00
SimulatorFullyImplicitBlackoilEbos.cpp added: check command line parameters when doing a .OPMRST restart 2023-04-27 12:32:00 +02:00
SimulatorFullyImplicitBlackoilEbos.hpp Updating variable name in SimulatorFullyImplicitBlackoilEbos.hpp and adding tests 2023-06-29 15:20:38 +02:00
SubDomain.hpp BlackoilModelEbos: enumerate solver approach for NLDD 2023-07-03 15:51:07 +02:00
ValidationFunctions.cpp Added missing include of config.h in cpp files. 2022-10-12 15:28:38 +02:00
ValidationFunctions.hpp remove unnecessary includes 2022-07-26 19:03:39 +02:00