89 if (!isA<faceZoneSet>(set))
92 <<
"Operation only allowed on a faceZoneSet."
101 faceSet loadedSet(mesh_, setName_);
109 Info<<
" Adding all faces from faceSet " << setName_
120 allFaceData[iter.key()] =
minData(-1);
125 const label celli = mesh_.cellTree().findInside(point_);
129 <<
"Point " << point_ <<
" was not found in the mesh"
134 allCellData[celli] =
minData(0);
139 const label nSeedFaces = celli != -1 ? mesh_.cells()[celli].size() : 0;
144 forAll(mesh_.cells()[celli], cellFacei)
146 const label facei = mesh_.cells()[celli][cellFacei];
147 seedFaces[cellFacei] = facei;
160 mesh().globalData().nTotalCells()+1
172 const label facei = iter.key();
174 const label owni = mesh_.faceOwner()[facei];
175 const bool ownValid = allCellData[owni].valid(
wave.data());
177 if (mesh_.isInternalFace(facei))
179 const label nbri = mesh_.faceNeighbour()[facei];
180 const bool nbrValid = allCellData[nbri].valid(
wave.data());
182 if (ownValid && nbrValid)
185 <<
"Internal face #" << facei <<
" at "
186 << mesh_.faceCentres()[facei]
187 <<
" was visited from both sides by a wave from "
191 if (!ownValid && !nbrValid)
194 <<
"Internal face #" << facei <<
" at "
195 << mesh_.faceCentres()[facei]
196 <<
" was not visited by a wave from "
205 <<
"Boundary face #" << facei <<
" at "
206 << mesh_.faceCentres()[facei]
207 <<
" was not visited by a wave from "
212 newAddressing.
append(facei);
213 newFlipMap.
append(!ownValid);
218 Info<<
" Removing all faces from faceSet " << setName_
#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.
Wave propagation of information through grid. Every iteration information goes through one layer of c...
bool found(const Key &) const
Return true if hashedEntry is found in table.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
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 list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
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.
For use with FaceCellWave. Transports minimum passive data.
Mesh consisting of general polyhedral cells.
A topoSetSource to select faces based on usage in a faceSet, where an behind/inside point is used to ...
virtual void applyToSet(const topoSetSource::setAction action, topoSet &) const
virtual ~setAndPointToFaceZone()
Destructor.
setAndPointToFaceZone(const polyMesh &mesh, const word &setName, const vector &normal)
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.
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
#define WarningInFunction
Report a warning using Foam::Warning.
label wave(const fvMesh &mesh, const List< labelPair > &changedPatchAndFaces, const label nCorrections, GeometricField< scalar, GeoMesh > &distance, TrackingData &td, GeometricField< DataType, GeoMesh > &... data)
Wave distance (and maybe additional) data from faces. If nCorrections is.
errorManipArg< error, int > exit(error &err, const int errNo=1)
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.
const dimensionSet dimLength
T returnReduce(const T &Value, const BinaryOp &bop, const int tag=Pstream::msgType(), const label comm=UPstream::worldComm)
defineTypeNameAndDebug(combustionModel, 0)