From 004b540522724bde1d11562a80053298c146f875 Mon Sep 17 00:00:00 2001 From: andy <andy> Date: Mon, 7 Jan 2013 11:28:56 +0000 Subject: [PATCH] ENH: Added findPatchIDs function to polyBoundaryMesh --- .../polyBoundaryMesh/polyBoundaryMesh.H | 13 +++++- .../polyBoundaryMeshTemplates.C | 46 +++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMeshTemplates.C diff --git a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H index ad937a86fd4..d84397815f8 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H +++ b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -176,6 +176,10 @@ public: //- Find patch index given a name label findPatchID(const word& patchName) const; + //- Find patch indices for a given polyPatch type + template<class Type> + labelHashSet findPatchIDs() const; + //- Return patch index for a given face label label whichPatch(const label faceIndex) const; @@ -235,6 +239,7 @@ public: IOstream::compressionType cmp ) const; + // Member Operators //- Return const and non-const reference to polyPatch by index. @@ -259,6 +264,12 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +#ifdef NoRepository + #include "polyBoundaryMeshTemplates.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + #endif // ************************************************************************* // diff --git a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMeshTemplates.C b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMeshTemplates.C new file mode 100644 index 00000000000..3afb9df7c07 --- /dev/null +++ b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMeshTemplates.C @@ -0,0 +1,46 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2013 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +template<class Type> +Foam::labelHashSet Foam::polyBoundaryMesh::findPatchIDs() const +{ + const polyBoundaryMesh& bm = *this; + + labelHashSet patchIDs(bm.size()); + + forAll(bm, patchI) + { + if (isA<Type>(bm[patchI])) + { + patchIDs.insert(patchI); + } + } + return patchIDs; +} + + +// ************************************************************************* // -- GitLab