From d0522f7300860ba38afa5e11e8ed6f46f9dfbd93 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Wed, 18 Mar 2020 11:28:10 +0100 Subject: [PATCH] STYLE: relocate duplicate versions of unionEqOp to ListOps --- .../containers/Lists/ListOps/ListOps.C | 25 ++++++++++++++++++- .../containers/Lists/ListOps/ListOps.H | 6 +++++ .../CECCellToCellStencil.C | 9 ++++++- .../CPCCellToCellStencil.C | 2 +- .../globalIndexStencils/cellToCellStencil.C | 22 ---------------- .../globalIndexStencils/cellToCellStencil.H | 7 ------ .../FECCellToFaceStencil.C | 10 ++++++-- .../globalIndexStencils/cellToFaceStencil.C | 22 ---------------- .../globalIndexStencils/cellToFaceStencil.H | 7 ------ 9 files changed, 47 insertions(+), 63 deletions(-) diff --git a/src/OpenFOAM/containers/Lists/ListOps/ListOps.C b/src/OpenFOAM/containers/Lists/ListOps/ListOps.C index 525ab031e6..5e68bf286a 100644 --- a/src/OpenFOAM/containers/Lists/ListOps/ListOps.C +++ b/src/OpenFOAM/containers/Lists/ListOps/ListOps.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2015 OpenFOAM Foundation - Copyright (C) 2018-2019 OpenCFD Ltd. + Copyright (C) 2018-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -27,6 +27,7 @@ License \*---------------------------------------------------------------------------*/ #include "ListOps.H" +#include "HashSet.H" #include // * * * * * * * * * * * * * * * Global Functions * * * * * * * * * * * * * // @@ -205,4 +206,26 @@ void Foam::ListOps::identity(labelUList& map, label start) } +void Foam::ListOps::unionEqOp::operator() +( + labelList& x, + const labelList& y +) const +{ + if (y.size()) + { + if (x.size()) + { + labelHashSet set(x); + set.insert(y); + x = set.toc(); + } + else + { + x = y; + } + } +} + + // ************************************************************************* // diff --git a/src/OpenFOAM/containers/Lists/ListOps/ListOps.H b/src/OpenFOAM/containers/Lists/ListOps/ListOps.H index 192c5c6213..7fed02a1c1 100644 --- a/src/OpenFOAM/containers/Lists/ListOps/ListOps.H +++ b/src/OpenFOAM/containers/Lists/ListOps/ListOps.H @@ -579,6 +579,12 @@ struct uniqueEqOp void operator()(List& x, const List& y) const; }; +//- List helper to add y unique elements to x +struct unionEqOp +{ + void operator()(labelList& x, const labelList& y) const; +}; + // Public classes diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToCell/globalIndexStencils/CECCellToCellStencil.C b/src/finiteVolume/fvMesh/extendedStencil/cellToCell/globalIndexStencils/CECCellToCellStencil.C index 05b812b30c..496abb1ddb 100644 --- a/src/finiteVolume/fvMesh/extendedStencil/cellToCell/globalIndexStencils/CECCellToCellStencil.C +++ b/src/finiteVolume/fvMesh/extendedStencil/cellToCell/globalIndexStencils/CECCellToCellStencil.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation + Copyright (C) 2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -58,7 +59,13 @@ void Foam::CECCellToCellStencil::calcEdgeBoundaryData ); } - syncTools::syncEdgeMap(mesh(), neiGlobal, unionEqOp(), dummyTransform()); + syncTools::syncEdgeMap + ( + mesh(), + neiGlobal, + ListOps::unionEqOp(), + dummyTransform() + ); } diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToCell/globalIndexStencils/CPCCellToCellStencil.C b/src/finiteVolume/fvMesh/extendedStencil/cellToCell/globalIndexStencils/CPCCellToCellStencil.C index f58fc7ab38..d62d13c4fd 100644 --- a/src/finiteVolume/fvMesh/extendedStencil/cellToCell/globalIndexStencils/CPCCellToCellStencil.C +++ b/src/finiteVolume/fvMesh/extendedStencil/cellToCell/globalIndexStencils/CPCCellToCellStencil.C @@ -62,7 +62,7 @@ void Foam::CPCCellToCellStencil::calcPointBoundaryData ( mesh(), neiGlobal, - unionEqOp(), + ListOps::unionEqOp(), Foam::dummyTransform() // dummy transformation ); } diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToCell/globalIndexStencils/cellToCellStencil.C b/src/finiteVolume/fvMesh/extendedStencil/cellToCell/globalIndexStencils/cellToCellStencil.C index 8359e2d263..1876127686 100644 --- a/src/finiteVolume/fvMesh/extendedStencil/cellToCell/globalIndexStencils/cellToCellStencil.C +++ b/src/finiteVolume/fvMesh/extendedStencil/cellToCell/globalIndexStencils/cellToCellStencil.C @@ -230,28 +230,6 @@ Foam::cellToCellStencil::allCoupledFacesPatch() const } -void Foam::cellToCellStencil::unionEqOp::operator() -( - labelList& x, - const labelList& y -) const -{ - if (y.size()) - { - if (x.empty()) - { - x = y; - } - else - { - labelHashSet set(x); - set.insert(y); - x = set.toc(); - } - } -} - - void Foam::cellToCellStencil::insertFaceCells ( const label exclude0, diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToCell/globalIndexStencils/cellToCellStencil.H b/src/finiteVolume/fvMesh/extendedStencil/cellToCell/globalIndexStencils/cellToCellStencil.H index b4f1fe19e4..404f3042db 100644 --- a/src/finiteVolume/fvMesh/extendedStencil/cellToCell/globalIndexStencils/cellToCellStencil.H +++ b/src/finiteVolume/fvMesh/extendedStencil/cellToCell/globalIndexStencils/cellToCellStencil.H @@ -92,13 +92,6 @@ protected: //- Return patch of all coupled faces. autoPtr allCoupledFacesPatch() const; - //- Combine operator for labelLists - class unionEqOp - { - public: - void operator()(labelList& x, const labelList& y) const; - }; - //- Collect cell neighbours of faces in global numbering void insertFaceCells ( diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/globalIndexStencils/FECCellToFaceStencil.C b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/globalIndexStencils/FECCellToFaceStencil.C index 9d3840c623..afc9845ac3 100644 --- a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/globalIndexStencils/FECCellToFaceStencil.C +++ b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/globalIndexStencils/FECCellToFaceStencil.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation - Copyright (C) 2018 OpenCFD Ltd. + Copyright (C) 2018-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -58,7 +58,13 @@ void Foam::FECCellToFaceStencil::calcEdgeBoundaryData ); } - syncTools::syncEdgeMap(mesh(), neiGlobal, unionEqOp(), dummyTransform()); + syncTools::syncEdgeMap + ( + mesh(), + neiGlobal, + ListOps::unionEqOp(), + dummyTransform() + ); } diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/globalIndexStencils/cellToFaceStencil.C b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/globalIndexStencils/cellToFaceStencil.C index df723c0904..6f9cd11cb9 100644 --- a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/globalIndexStencils/cellToFaceStencil.C +++ b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/globalIndexStencils/cellToFaceStencil.C @@ -231,28 +231,6 @@ Foam::cellToFaceStencil::allCoupledFacesPatch() const } -void Foam::cellToFaceStencil::unionEqOp::operator() -( - labelList& x, - const labelList& y -) const -{ - if (y.size()) - { - if (x.empty()) - { - x = y; - } - else - { - labelHashSet set(x); - set.insert(y); - x = set.toc(); - } - } -} - - void Foam::cellToFaceStencil::insertFaceCells ( const label exclude0, diff --git a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/globalIndexStencils/cellToFaceStencil.H b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/globalIndexStencils/cellToFaceStencil.H index e778b9e2db..eed384f2f4 100644 --- a/src/finiteVolume/fvMesh/extendedStencil/cellToFace/globalIndexStencils/cellToFaceStencil.H +++ b/src/finiteVolume/fvMesh/extendedStencil/cellToFace/globalIndexStencils/cellToFaceStencil.H @@ -92,13 +92,6 @@ protected: //- Return patch of all coupled faces. autoPtr allCoupledFacesPatch() const; - //- Combine operator for labelLists - class unionEqOp - { - public: - void operator()( labelList& x, const labelList& y ) const; - }; - //- Collect cell neighbours of faces in global numbering void insertFaceCells (