diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/PPCG/PPCG.C b/src/OpenFOAM/matrices/lduMatrix/solvers/PPCG/PPCG.C index 6ad660f76f1406b498f62f0afea668c1e7cd3bce..dc637b97ce019271a02c0d0fe36b849cec410bf1 100644 --- a/src/OpenFOAM/matrices/lduMatrix/solvers/PPCG/PPCG.C +++ b/src/OpenFOAM/matrices/lduMatrix/solvers/PPCG/PPCG.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2019-2020 Mattijs Janssens - Copyright (C) 2020-2021 OpenCFD Ltd. + Copyright (C) 2020-2022 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -170,7 +170,7 @@ Foam::solverPerformance Foam::PPCG::scalarSolveCG ) { // Make sure gamma,delta are available - if (Pstream::parRun()) + if (Pstream::parRun() && outstandingRequest != -1) { Pstream::waitRequest(outstandingRequest); outstandingRequest = -1; @@ -248,6 +248,12 @@ Foam::solverPerformance Foam::PPCG::scalarSolveCG matrix_.Amul(n, m, interfaceBouCoeffs_, interfaces_, cmpt); } + // Cleanup any outstanding requests + if (Pstream::parRun() && outstandingRequest != -1) + { + Pstream::waitRequest(outstandingRequest); + } + return solverPerf; }