// Adds empty patch if not yet there. Returns patchID. label addPatch(polyMesh& mesh, const word& patchName) { label patchi = mesh.boundaryMesh().findPatchID(patchName); if (patchi == -1) { const polyBoundaryMesh& patches = mesh.boundaryMesh(); List<polyPatch*> newPatches(patches.size() + 1); patchi = 0; // Copy all old patches forAll(patches, i) { const polyPatch& pp = patches[i]; newPatches[patchi] = pp.clone ( patches, patchi, pp.size(), pp.start() ).ptr(); patchi++; } // Add zero-sized patch newPatches[patchi] = new polyPatch ( patchName, 0, mesh.nFaces(), patchi, patches, polyPatch::typeName ); mesh.removeBoundary(); mesh.addPatches(newPatches); Pout<< "Created patch " << patchName << " at " << patchi << endl; } else {
// Adds empty patch if not yet there. Returns patchID. label addPatch(polyMesh& mesh, const word& patchName) { label patchi = mesh.boundaryMesh().findPatchID(patchName); if (patchi == -1) { const polyBoundaryMesh& patches = mesh.boundaryMesh(); List<polyPatch*> newPatches(patches.size() + 1); // Add empty patch as 0th entry (Note: only since subsetMesh wants this) patchi = 0; newPatches[patchi] = new emptyPolyPatch ( Foam::word(patchName), 0, mesh.nInternalFaces(), patchi, patches, emptyPolyPatch::typeName ); forAll(patches, i) { const polyPatch& pp = patches[i]; newPatches[i+1] = pp.clone ( patches, i+1, pp.size(), pp.start() ).ptr(); } mesh.removeBoundary(); mesh.addPatches(newPatches); Info<< "Created patch oldInternalFaces at " << patchi << endl; } else {