diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGProcAgglomerations/GAMGProcAgglomeration/GAMGProcAgglomeration.C b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGProcAgglomerations/GAMGProcAgglomeration/GAMGProcAgglomeration.C index 48512f5842..247f72fb50 100644 --- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGProcAgglomerations/GAMGProcAgglomeration/GAMGProcAgglomeration.C +++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGProcAgglomerations/GAMGProcAgglomeration/GAMGProcAgglomeration.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2013-2017 OpenFOAM Foundation - Copyright (C) 2021-2022 OpenCFD Ltd. + Copyright (C) 2021-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -380,7 +380,21 @@ Foam::autoPtr Foam::GAMGProcAgglomeration::New // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // Foam::GAMGProcAgglomeration::~GAMGProcAgglomeration() -{} +{ + clearCommunicators(); +} + + +// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // + +void Foam::GAMGProcAgglomeration::clearCommunicators() +{ + forAllReverse(comms_, i) + { + UPstream::freeCommunicator(comms_[i]); + } + comms_.clear(); +} // ************************************************************************* // diff --git a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGProcAgglomerations/GAMGProcAgglomeration/GAMGProcAgglomeration.H b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGProcAgglomerations/GAMGProcAgglomeration/GAMGProcAgglomeration.H index 999a474fc2..07381d98a1 100644 --- a/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGProcAgglomerations/GAMGProcAgglomeration/GAMGProcAgglomeration.H +++ b/src/OpenFOAM/matrices/lduMatrix/solvers/GAMG/GAMGProcAgglomerations/GAMGProcAgglomeration/GAMGProcAgglomeration.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2013-2014 OpenFOAM Foundation + Copyright (C) 2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -34,19 +35,22 @@ SourceFiles \*---------------------------------------------------------------------------*/ -#ifndef GAMGProcAgglomeration_H -#define GAMGProcAgglomeration_H +#ifndef Foam_GAMGProcAgglomeration_H +#define Foam_GAMGProcAgglomeration_H #include "runTimeSelectionTables.H" #include "labelList.H" +#include "DynamicList.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { +// Forward Declarations class GAMGAgglomeration; class lduMesh; +class lduPrimitiveMesh; /*---------------------------------------------------------------------------*\ Class GAMGProcAgglomeration Declaration @@ -54,14 +58,17 @@ class lduMesh; class GAMGProcAgglomeration { - protected: - // Protected data + // Protected Data //- Reference to agglomeration GAMGAgglomeration& agglom_; + //- Allocated communicators + DynamicList