From bf2f87f7e36da68de4cef8f7e5a2eb94b5a232af Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Wed, 11 Jan 2023 17:55:31 +0100 Subject: [PATCH] ENH: use isolated request wait in PPCG solver --- .../matrices/lduMatrix/solvers/PPCG/PPCG.C | 19 ++++++------------- .../matrices/lduMatrix/solvers/PPCG/PPCG.H | 8 ++++---- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/PPCG/PPCG.C b/src/OpenFOAM/matrices/lduMatrix/solvers/PPCG/PPCG.C index ec7cb8bb25..53c0900de0 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-2022 OpenCFD Ltd. + Copyright (C) 2020-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -49,7 +49,7 @@ void Foam::PPCG::gSumMagProd const solveScalarField& b, const solveScalarField& c, const solveScalarField& sumMag, - label& outstandingRequest, + UPstream::Request& request, const label comm ) const { @@ -72,7 +72,7 @@ void Foam::PPCG::gSumMagProd sumOp(), Pstream::msgType(), comm, - outstandingRequest + request ); } } @@ -136,7 +136,7 @@ Foam::solverPerformance Foam::PPCG::scalarSolveCG solveScalarField m(nCells); FixedList globalSum; - label outstandingRequest = -1; + UPstream::Request outstandingRequest; if (cgMode) { // --- Start global reductions for inner products @@ -170,11 +170,7 @@ Foam::solverPerformance Foam::PPCG::scalarSolveCG ) { // Make sure gamma,delta are available - if (outstandingRequest != -1) - { - UPstream::waitRequest(outstandingRequest); - outstandingRequest = -1; - } + outstandingRequest.wait(); const solveScalar gammaOld = gamma; gamma = globalSum[0]; @@ -249,10 +245,7 @@ Foam::solverPerformance Foam::PPCG::scalarSolveCG } // Cleanup any outstanding requests - if (outstandingRequest != -1) - { - UPstream::waitRequest(outstandingRequest); - } + outstandingRequest.wait(); return solverPerf; } diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/PPCG/PPCG.H b/src/OpenFOAM/matrices/lduMatrix/solvers/PPCG/PPCG.H index 5a8926a7c4..a15bdf8ca2 100644 --- a/src/OpenFOAM/matrices/lduMatrix/solvers/PPCG/PPCG.H +++ b/src/OpenFOAM/matrices/lduMatrix/solvers/PPCG/PPCG.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2019-2020 Mattijs Janssens - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -48,8 +48,8 @@ SourceFiles \*---------------------------------------------------------------------------*/ -#ifndef PPCG_H -#define PPCG_H +#ifndef Foam_PPCG_H +#define Foam_PPCG_H #include "lduMatrix.H" @@ -76,7 +76,7 @@ class PPCG const solveScalarField& b, const solveScalarField& c, const solveScalarField& sumMag, - label& outstandingRequest, + UPstream::Request& request, const label comm ) const;