Allow Python bindings to control MPI setup in the OPM::Main constructor #5325
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Allows the Python bindings to control whether
MPI_Init()
andMPI_Finalize()
will be called when creating anOpm::Main
object. This allows the Python unit test files to run more than a single unit test. Currently, only a single unit test could be run per test file since each test would create a new simulator object (calling theOpm::Main
constructor) which would callMPI_Init()
a second time (afterMPI_Finalize()
had been called for the first test case) which would give an error like:(This is because it is not possible to unload the Python module
opm.simulators.BlackOilSimulator
(which btw links dynamically withlibmpi.so
) within a single Python script)An idea for a future PR could be to allow the Python bindings to switch off MPI completely.