Extend pulse wave solver to work in parallel.
Implement parallelisation over multiple ExpLists
The development requires two key developments:
cleaning up the communicators. Currently the implementation passes the global communicator (typically held in session reader) to the ExpList. This works fine for a solver using a single domain containing ExpLists that span the whole domain. However in the Pulse Wave Solver we have a number of number of different 1D domains each of which have an ExpList that are connected by a specialised Riemann solver. It is therefore necessary to provide the ExpList with the correct communicators.
The explicit implementation first solvers a specialised Riemann problem at the bifurcations which are then used as boundary conditions for each vessel. Care needs to be taken in the pattern parallel communication for the bifurcation communication otherwise it is possible to have a communication lock.
Parallel tests have been added based on the existing serial tests.
Please add any other information that could be useful for reviewers.
Functions and classes, or changes to them, are documented.
User guide/documentation is updated.
Changelog is updated.
Suitable tests added for new functionality.
Newly added files are correctly formatted.
License added to any new files.
No extraneous files have been added (e.g. compiler output or test data files).