ENH: patchToFace: allow patch groups in patchToFace

This commit is contained in:
mattijs 2011-12-12 16:33:11 +00:00
parent 4fe5330de1
commit 2d7b3363ed
2 changed files with 22 additions and 20 deletions

View File

@ -211,7 +211,8 @@ FoamFile
// source patchToFace;
// sourceInfo
// {
// name ".*Wall"; // Name of patch, regular expressions allowed
// name ".*Wall"; // Name of patch or patch group,
// // (regular expressions allowed)
// }
//
// // All faces of faceZone

View File

@ -54,33 +54,34 @@ Foam::topoSetSource::addToUsageTable Foam::patchToFace::usage_
void Foam::patchToFace::combine(topoSet& set, const bool add) const
{
bool hasMatched = false;
labelHashSet patchIDs = mesh_.boundaryMesh().patchSet
(
List<wordRe>(1, patchName_),
true, // warn if not found
true // use patch groups if available
);
forAll(mesh_.boundaryMesh(), patchI)
forAllConstIter(labelHashSet, patchIDs, iter)
{
label patchI = iter.key();
const polyPatch& pp = mesh_.boundaryMesh()[patchI];
if (patchName_.match(pp.name()))
Info<< " Found matching patch " << pp.name()
<< " with " << pp.size() << " faces." << endl;
for
(
label faceI = pp.start();
faceI < pp.start() + pp.size();
faceI++
)
{
Info<< " Found matching patch " << pp.name()
<< " with " << pp.size() << " faces." << endl;
hasMatched = true;
for
(
label faceI = pp.start();
faceI < pp.start() + pp.size();
faceI++
)
{
addOrDelete(set, faceI, add);
}
addOrDelete(set, faceI, add);
}
}
if (!hasMatched)
if (patchIDs.empty())
{
WarningIn("patchToFace::combine(topoSet&, const bool)")
<< "Cannot find any patch named " << patchName_ << endl