47 const word& faceSetName,
48 const word& cellSetName,
53 faceSetName_(faceSetName),
54 cellSetName_(cellSetName),
66 faceSetName_(
dict.lookup(
"faceSet")),
67 cellSetName_(
dict.lookup(
"cellSet")),
68 flip_(
dict.lookupOrDefault(
"flip", false))
86 if (!isA<faceZoneSet>(set))
89 <<
"Operation only allowed on a faceZoneSet." <<
endl;
97 Info<<
" Adding all faces from faceSet " << faceSetName_
101 faceSet fSet(mesh_, faceSetName_);
102 cellSet cSet(mesh_, cellSetName_);
110 label facei = iter.key();
112 if (!fzSet.
found(facei))
114 bool flipFace =
false;
116 label own = mesh_.faceOwner()[facei];
117 bool ownFound = cSet.
found(own);
119 if (mesh_.isInternalFace(facei))
121 label nei = mesh_.faceNeighbour()[facei];
122 bool neiFound = cSet.
found(nei);
124 if (ownFound && !neiFound)
128 else if (!ownFound && neiFound)
135 <<
"One of owner or neighbour of internal face "
136 << facei <<
" should be in cellSet "
138 <<
" to be able to determine orientation."
140 <<
"Face:" << facei <<
" own:" << own
141 <<
" OwnInCellSet:" << ownFound
143 <<
" NeiInCellSet:" << neiFound
149 flipFace = !ownFound;
155 flipFace = !flipFace;
158 newAddressing.
append(facei);
159 newFlipMap.
append(flipFace);
169 Info<<
" Removing all faces from faceSet " << faceSetName_
#define forAll(list, i)
Loop across all elements in list.
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of type.
Macros for easy insertion into run-time selection tables.
DynamicList< T, SizeInc, SizeMult, SizeDiv > & append(const T &)
Append an element at the end of the list.
bool found(const Key &) const
Return true if hashedEntry is found in table.
const word & name() const
Return name.
void transfer(List< T > &)
Transfer the contents of the argument List into this list.
void size(const label)
Override size to be inconsistent with allocated storage.
A simple wrapper around bool so that it can be read as a word: true/false, on/off,...
A collection of cell labels.
A list of keyword definitions, which are a keyword followed by any number of values (e....
Like faceSet but -reads data from faceZone -updates faceZone when writing.
const boolList & flipMap() const
const labelList & addressing() const
void updateSet()
Sort addressing and make faceSet part consistent with addressing.
Mesh consisting of general polyhedral cells.
A topoSetSource to select faces based on usage in a faceSet and cellSet.
virtual ~setsToFaceZone()
Destructor.
virtual void applyToSet(const topoSetSource::setAction action, topoSet &) const
setsToFaceZone(const polyMesh &mesh, const word &faceSetName, const word &cellSetName, const Switch &flip)
Construct from components.
Base class of a source for a topoSet.
setAction
Enumeration defining the valid actions.
General set of labels of mesh quantity (points, cells, faces).
A class for handling words, derived from string.
#define WarningInFunction
Report a warning using Foam::Warning.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
addToRunTimeSelectionTable(polyPatch, mergedCyclicPolyPatch, word)
Ostream & endl(Ostream &os)
Add newline and flush stream.
defineTypeNameAndDebug(combustionModel, 0)