diff --git a/applications/test/PointEdgeWave/Test-PointEdgeWave.C b/applications/test/PointEdgeWave/Test-PointEdgeWave.C index 229268d518b0e81d44c7449dd5d0e1ed88513d23..c49c8662c16263dde97baeaad40a6c156c306cde 100644 --- a/applications/test/PointEdgeWave/Test-PointEdgeWave.C +++ b/applications/test/PointEdgeWave/Test-PointEdgeWave.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -41,50 +41,50 @@ using namespace Foam; int main(int argc, char *argv[]) { - argList::validArgs.append("patch"); + argList::validArgs.append("(patches)"); # include "setRootCase.H" # include "createTime.H" # include "createPolyMesh.H" - const polyBoundaryMesh& patches = mesh.boundaryMesh(); + const polyBoundaryMesh& pbm = mesh.boundaryMesh(); - // Get name of patch - const word patchName = args[1]; + labelList patchIDs + ( + pbm.patchSet(wordReList(IStringStream(args[1])())).sortedToc() + ); - // Find the label in patches by name. - label patchI = patches.findPatchID(patchName); + Info<< "Starting walk from patches " + << UIndirectList<word>(pbm.names(), patchIDs) + << nl + << endl; + label nPoints = 0; + forAll(patchIDs, i) { - // Test whether any processor has patch - label maxPatchI = patchI; - - reduce(maxPatchI, maxOp<label>()); - - if (maxPatchI == -1) - { - FatalErrorIn(args.executable()) - << "Cannot find patch named " << patchName << exit(FatalError); - } + nPoints += pbm[patchIDs[i]].nPoints(); } + Info<< "Seeding " << returnReduce(nPoints, sumOp<label>()) + << " patch points" << nl << endl; + // Set initial changed points to all the patch points(if patch present) - List<pointEdgePoint> wallInfo; - labelList wallPoints; + List<pointEdgePoint> wallInfo(nPoints); + labelList wallPoints(nPoints); + nPoints = 0; - if (patchI != -1) + forAll(patchIDs, i) { // Retrieve the patch now we have its index in patches. - const polyPatch& pp = mesh.boundaryMesh()[patchI]; - - wallPoints = pp.meshPoints(); - - wallInfo.setSize(pp.nPoints()); + const polyPatch& pp = pbm[patchIDs[i]]; - forAll(pp.localPoints(), ppI) + forAll(pp.meshPoints(), ppI) { - wallInfo[ppI] = pointEdgePoint(pp.localPoints()[ppI], 0.0); + label meshPointI = pp.meshPoints()[ppI]; + wallPoints[nPoints] = meshPointI; + wallInfo[nPoints] = pointEdgePoint(mesh.points()[meshPointI], 0.0); + nPoints++; } }