BUG: UPstream::shutdown misbehaves with external initialisation (fixes #2808)

- freeCommmunicatorComponents needs an additional bounds check.
  When MPI is initialized outside of OpenFOAM, there are no
  UPstream communicator equivalents
This commit is contained in:
Mark Olesen 2023-06-20 08:40:07 +02:00
parent fd1661ae15
commit 20c7f0970d

View File

@ -641,7 +641,16 @@ void Foam::UPstream::freePstreamCommunicator(const label communicator)
}
// Not touching the first two communicators (SELF, WORLD)
if (communicator > 1)
// or anything out-of bounds.
//
// No UPstream communicator indices when MPI is initialized outside
// of OpenFOAM - thus needs a bounds check too!
if
(
communicator > 1
&& (communicator < PstreamGlobals::MPICommunicators_.size())
)
{
if (MPI_COMM_NULL != PstreamGlobals::MPICommunicators_[communicator])
{