Allow external MPI initialisation and finalisation
Issue/feature addressed
MPI can only be initialised once per program, hence for testing frameworks that combine multiple tests into a single program MPI has to be initialised once before any tests and finalised afterwards. Currently Nektar++ errors if MPI is initialised before Nektar++ is used.
Proposed solution
Check to see if MPI is already initialised, if so Nektar++ assumes it is not responsible for initialising/finalising MPI and continues as before. If MPI is not already initialised then Nektar++ initialises/finalises as before.
Implementation
Changed the initialisation check to set a bool to indicate if nektar++ is controlling MPI and initialise/finalise as before.
Tests
No new tests added.
Checklist
-
Functions and classes, or changes to them, are documented. -
User guide/documentation is updated. -
Changelog is updated. -
Suitable tests added for new functionality. -
Contributed code is correctly formatted. (See the contributing guidelines). -
License added to any new files. -
No extraneous files have been added (e.g. compiler output or test data files).
Warning
On the 19.07 the code formatting (code style) was standardised using clang-format, over the whole Nektar++ code. This means changes in your branch will conflict with formatting changes on the master
branch. To resolve these conflicts , see
#295 (closed)