diff --git a/src/meshTools/sets/faceZoneSources/planeToFaceZone/planeToFaceZone.C b/src/meshTools/sets/faceZoneSources/planeToFaceZone/planeToFaceZone.C index e1b8a8727476646bef4f846d7a439969545cb3c7..05017c2c57710aba2f92fae3b540bbb1963eb9e7 100644 --- a/src/meshTools/sets/faceZoneSources/planeToFaceZone/planeToFaceZone.C +++ b/src/meshTools/sets/faceZoneSources/planeToFaceZone/planeToFaceZone.C @@ -73,12 +73,12 @@ Foam::topoSetSource::addToUsageTable Foam::planeToFaceZone::usage_ const Foam::Enum < - Foam::planeToFaceZone::faceZoneAction + Foam::planeToFaceZone::faceAction > -Foam::planeToFaceZone::faceZoneActionNames_ +Foam::planeToFaceZone::faceActionNames_ ({ - { faceZoneAction::ALL, "all" }, - { faceZoneAction::CLOSEST, "closest" }, + { faceAction::ALL, "all" }, + { faceAction::CLOSEST, "closest" }, }); @@ -112,14 +112,14 @@ void Foam::planeToFaceZone::combine(faceZoneSet& fzSet, const bool add) const patch.coupled() && cellIsAbovePlane[mesh_.faceOwner()[facei]]; } } - syncTools::syncFaceList(mesh_, faceIsOnPlane, notEqualOp<bool>()); + syncTools::syncFaceList(mesh_, faceIsOnPlane, xorEqOp<bool>()); // Convert marked faces to a list of indices labelList newSetFaces(findIndices(faceIsOnPlane, true)); // If constructing a single contiguous set, remove all faces except those // connected to the contiguous region closest to the specified point - if (option_ == faceZoneAction::CLOSEST) + if (option_ == faceAction::CLOSEST) { // Step 1: Get locally contiguous regions for the new face set and the // total number of regions across all processors. @@ -188,7 +188,7 @@ void Foam::planeToFaceZone::combine(faceZoneSet& fzSet, const bool add) const ( mesh_, meshEdgeRegions, - globalMeshData::ListPlusEqOp<labelList>(), + ListOps::appendEqOp<label>(), labelList() ); @@ -367,15 +367,30 @@ void Foam::planeToFaceZone::combine(faceZoneSet& fzSet, const bool add) const Foam::planeToFaceZone::planeToFaceZone ( const polyMesh& mesh, - const dictionary& dict + const point& basePoint, + const vector& normal, + const faceAction action ) : topoSetFaceZoneSource(mesh), - point_(dict.get<vector>("point")), - normal_(dict.get<vector>("normal")), - option_ + point_(basePoint), + normal_(normal), + option_(action) +{} + + +Foam::planeToFaceZone::planeToFaceZone +( + const polyMesh& mesh, + const dictionary& dict +) +: + planeToFaceZone ( - faceZoneActionNames_.getOrDefault("option", dict, faceZoneAction::ALL) + mesh, + dict.get<vector>("point"), + dict.get<vector>("normal"), + faceActionNames_.getOrDefault("option", dict, faceAction::ALL) ) {} @@ -389,7 +404,7 @@ Foam::planeToFaceZone::planeToFaceZone topoSetFaceZoneSource(mesh), point_(checkIs(is)), normal_(checkIs(is)), - option_(faceZoneActionNames_.read(checkIs(is))) + option_(faceActionNames_.read(checkIs(is))) {} diff --git a/src/meshTools/sets/faceZoneSources/planeToFaceZone/planeToFaceZone.H b/src/meshTools/sets/faceZoneSources/planeToFaceZone/planeToFaceZone.H index 0a7548f8f3afd2c5ef6ceac4f0270d5f896ff9dd..559a6db39889c1f39bec177612466969212fb88f 100644 --- a/src/meshTools/sets/faceZoneSources/planeToFaceZone/planeToFaceZone.H +++ b/src/meshTools/sets/faceZoneSources/planeToFaceZone/planeToFaceZone.H @@ -34,8 +34,8 @@ Description Operands: \table Operand | Type | Location - output 1 | faceSet | $FOAM_CASE/constant/polyMesh/sets/\<set\> - output 2 | faceZone | $FOAM_CASE/constant/polyMesh/faceZones + output 1 | faceSet | \<constant\>/polyMesh/sets/\<set\> + output 2 | faceZone | \<constant\>/polyMesh/faceZones \endtable Usage @@ -119,7 +119,7 @@ class planeToFaceZone public: //- Enumeration defining the valid options - enum faceZoneAction + enum faceAction { ALL, //<!- Select all faces that meet the criteria CLOSEST //<!- Select faces belong to the closest contiguous plane @@ -134,7 +134,7 @@ private: static addToUsageTable usage_; //- Plane selection methods - static const Enum<faceZoneAction> faceZoneActionNames_; + static const Enum<faceAction> faceActionNames_; //- Point on the input plane const vector point_; @@ -143,7 +143,7 @@ private: const vector normal_; //- Input plane selection method - const faceZoneAction option_; + const faceAction option_; // Private Member Functions @@ -162,6 +162,15 @@ public: //- No default construct planeToFaceZone() = delete; + //- Construct from components + planeToFaceZone + ( + const polyMesh& mesh, + const point& basePoint, + const vector& normal, + const faceAction action = faceAction::ALL + ); + //- Construct from dictionary planeToFaceZone(const polyMesh& mesh, const dictionary& dict);