diff --git a/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchTools.C b/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchTools.C index 9335ba0f8f..ec56eaa995 100644 --- a/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchTools.C +++ b/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchTools.C @@ -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 @@ -30,6 +30,7 @@ License #include "PatchToolsGatherAndMerge.C" #include "PatchToolsSearch.C" #include "PatchToolsSortEdges.C" +#include "PatchToolsSortPoints.C" #include "PatchToolsNormals.C" #include "PatchToolsMatch.C" diff --git a/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchTools.H b/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchTools.H index e0800452a1..ca03ce8d16 100644 --- a/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchTools.H +++ b/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchTools.H @@ -170,6 +170,18 @@ public: const PrimitivePatch& ); + //- Return point-edge addressing sorted by order around the point. + template + < + class Face, + template class FaceList, + class PointField, + class PointType + > + static labelListList sortedPointEdges + ( + const PrimitivePatch& + ); //- If 2 face neighbours: label of face where ordering of edge // is consistent with righthand walk. diff --git a/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchToolsSortPoints.C b/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchToolsSortPoints.C new file mode 100644 index 0000000000..5cc074ba96 --- /dev/null +++ b/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchToolsSortPoints.C @@ -0,0 +1,118 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2011-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 . + +\*---------------------------------------------------------------------------*/ + +#include "PatchTools.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +template +< + class Face, + template class FaceList, + class PointField, + class PointType +> + +Foam::labelListList +Foam::PatchTools::sortedPointEdges +( + const PrimitivePatch& p +) +{ + // Now order the edges of each point according to whether they share a + // face + const labelListList& pointEdges = p.pointEdges(); + const edgeList& edges = p.edges(); + const labelListList& edgeFaces = p.edgeFaces(); + const labelListList& faceEdges = p.faceEdges(); + + // create the lists for the various results. (resized on completion) + labelListList sortedPointEdges(pointEdges.size()); + + DynamicList