From 7a2269eccba8622760b957fd9e8fa1f572e11a63 Mon Sep 17 00:00:00 2001 From: mattijs Date: Thu, 17 Oct 2013 14:04:22 +0100 Subject: [PATCH] ENH: setsToFaceZone: allow flipping --- .../mesh/manipulation/topoSet/topoSetDict | 2 ++ .../setsToFaceZone/setsToFaceZone.C | 30 ++++++++++++------- .../setsToFaceZone/setsToFaceZone.H | 13 +++++--- 3 files changed, 31 insertions(+), 14 deletions(-) diff --git a/applications/utilities/mesh/manipulation/topoSet/topoSetDict b/applications/utilities/mesh/manipulation/topoSet/topoSetDict index 9dee4d1df9..5f0e5c0b39 100644 --- a/applications/utilities/mesh/manipulation/topoSet/topoSetDict +++ b/applications/utilities/mesh/manipulation/topoSet/topoSetDict @@ -368,6 +368,8 @@ FoamFile // { // faceSet f0; // name of faceSet // cellSet c0; // name of cellSet of slave side +// flip false; // optional: flip the faceZone (so now the cellSet +// // is the master side) // } // // // Select based on surface. Orientation from normals on surface diff --git a/src/meshTools/sets/faceZoneSources/setsToFaceZone/setsToFaceZone.C b/src/meshTools/sets/faceZoneSources/setsToFaceZone/setsToFaceZone.C index bb09ecb084..d4699870a4 100644 --- a/src/meshTools/sets/faceZoneSources/setsToFaceZone/setsToFaceZone.C +++ b/src/meshTools/sets/faceZoneSources/setsToFaceZone/setsToFaceZone.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 @@ -56,12 +56,14 @@ Foam::setsToFaceZone::setsToFaceZone ( const polyMesh& mesh, const word& faceSetName, - const word& cellSetName + const word& cellSetName, + const Switch& flip ) : topoSetSource(mesh), faceSetName_(faceSetName), - cellSetName_(cellSetName) + cellSetName_(cellSetName), + flip_(flip) {} @@ -74,7 +76,8 @@ Foam::setsToFaceZone::setsToFaceZone : topoSetSource(mesh), faceSetName_(dict.lookup("faceSet")), - cellSetName_(dict.lookup("cellSet")) + cellSetName_(dict.lookup("cellSet")), + flip_(dict.lookupOrDefault("flip", false)) {} @@ -87,7 +90,8 @@ Foam::setsToFaceZone::setsToFaceZone : topoSetSource(mesh), faceSetName_(checkIs(is)), - cellSetName_(checkIs(is)) + cellSetName_(checkIs(is)), + flip_(false) {} @@ -136,7 +140,7 @@ void Foam::setsToFaceZone::applyToSet if (!fzSet.found(faceI)) { - bool flip = false; + bool flipFace = false; label own = mesh_.faceOwner()[faceI]; bool ownFound = cSet.found(own); @@ -148,11 +152,11 @@ void Foam::setsToFaceZone::applyToSet if (ownFound && !neiFound) { - flip = false; + flipFace = false; } else if (!ownFound && neiFound) { - flip = true; + flipFace = true; } else { @@ -174,11 +178,17 @@ void Foam::setsToFaceZone::applyToSet } else { - flip = !ownFound; + flipFace = !ownFound; + } + + + if (flip_) + { + flipFace = !flipFace; } newAddressing.append(faceI); - newFlipMap.append(flip); + newFlipMap.append(flipFace); } } diff --git a/src/meshTools/sets/faceZoneSources/setsToFaceZone/setsToFaceZone.H b/src/meshTools/sets/faceZoneSources/setsToFaceZone/setsToFaceZone.H index 686849cc50..72d2f6501e 100644 --- a/src/meshTools/sets/faceZoneSources/setsToFaceZone/setsToFaceZone.H +++ b/src/meshTools/sets/faceZoneSources/setsToFaceZone/setsToFaceZone.H @@ -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 @@ -36,6 +36,7 @@ SourceFiles #define setsToFaceZone_H #include "topoSetSource.H" +#include "Switch.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -56,10 +57,13 @@ class setsToFaceZone static addToUsageTable usage_; //- Name of set to use - word faceSetName_; + const word faceSetName_; //- Name of set to use - word cellSetName_; + const word cellSetName_; + + //- Whether cellSet is slave cells or master cells + const Switch flip_; public: @@ -73,7 +77,8 @@ public: ( const polyMesh& mesh, const word& faceSetName, - const word& cellSetName + const word& cellSetName, + const Switch& flip ); //- Construct from dictionary