88 if (!isA<faceZoneSet>(set))
91 <<
"Operation only allowed on a faceZoneSet."
102 faceSet loadedSet(mesh_, setName_);
110 Info<<
" Adding all faces from faceSet " << setName_
121 allFaceData[iter.key()] =
minData(-1);
130 <<
"Point " << point_ <<
" was not found in the mesh"
135 allCellData[celli] =
minData(0);
140 const label nSeedFaces = celli != -1 ? mesh_.cells()[celli].size() : 0;
145 forAll(mesh_.cells()[celli], cellFacei)
147 const label facei = mesh_.cells()[celli][cellFacei];
148 seedFaces[cellFacei] = facei;
161 mesh().globalData().nTotalCells()+1
173 const label facei = iter.key();
175 const label owni = mesh_.faceOwner()[facei];
176 const bool ownValid = allCellData[owni].valid(
wave.data());
178 if (mesh_.isInternalFace(facei))
180 const label nbri = mesh_.faceNeighbour()[facei];
181 const bool nbrValid = allCellData[nbri].valid(
wave.data());
183 if (ownValid && nbrValid)
186 <<
"Internal face #" << facei <<
" at "
187 << mesh_.faceCentres()[facei]
188 <<
" was visited from both sides by a wave from "
192 if (!ownValid && !nbrValid)
195 <<
"Internal face #" << facei <<
" at "
196 << mesh_.faceCentres()[facei]
197 <<
" was not visited by a wave from "
206 <<
"Boundary face #" << facei <<
" at "
207 << mesh_.faceCentres()[facei]
208 <<
" was not visited by a wave from "
213 newAddressing.
append(facei);
214 newFlipMap.
append(!ownValid);
219 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.
Mesh object that implements searches within the local cells and faces.
label findCell(const point &p, const pointInCellShapes=pointInCellShapes::tets) const
Find the cell containing the given point.
static const meshSearch & New(const polyMesh &mesh, const pointInCellShapes=pointInCellShapes::tets)
Lookup or construct from mesh and cell decomposition option.
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)