Go to the documentation of this file.
31 #include "primitiveMesh.H"
80 <<
"Problem with layer pairing data"
92 Pout<<
"meshPoints: " << meshPoints <<
nl
99 label nPointErrors = 0;
100 label nFaceErrors = 0;
105 face curLocalFace = mlf[faceI];
115 cells[mc[faceI]].opposingFace(mf[faceI], faces);
117 if (!lidFace.
found())
126 Pout<<
"curMasterFace: " << faces[mf[faceI]] <<
nl
127 <<
"cell shape: " <<
mesh.cellShapes()[mc[faceI]] <<
nl
128 <<
"curLocalFace: " << curLocalFace <<
nl
129 <<
"lidFace: " << lidFace
138 forAll(curLocalFace, pointI)
140 const label clp = curLocalFace[pointI];
145 ptc[clp] = lidFace[pointI];
150 if (ptc[clp] != lidFace[pointI])
156 Pout<<
"Topological error in cell layer pairing. "
157 <<
"This mesh is either topologically incorrect "
158 <<
"or the master face layer is not defined "
159 <<
"consistently. Please check the "
160 <<
"face zone flip map." <<
nl
161 <<
"First index: " << ptc[clp]
162 <<
" new index: " << lidFace[pointI] <<
endl;
172 if (nPointErrors > 0 || nFaceErrors > 0)
188 if (!pointsPairingPtr_)
191 <<
"Problem with layer pairing data for object " <<
name()
195 return *pointsPairingPtr_;
200 if (!facesPairingPtr_)
203 <<
"Problem with layer pairing data for object " <<
name()
207 return *facesPairingPtr_;
220 Pout<<
"void layerAdditionRemoval::modifyMotionPoints("
221 <<
"pointField& motionPoints) const for object "
227 Pout<<
"No motion point adjustment" <<
endl;
List< label > labelList
A List of labels.
void clearAddressing() const
Clear addressing.
#define forAll(list, i)
Loop across all elements in list.
const polyTopoChanger & topoChanger() const
Return reference to morph engine.
bool found() const
Does the opposite face exist?
Ostream & endl(Ostream &os)
Add newline and flush stream.
Class containing opposite face for a prismatic cell with addressing and a possibility of failure.
Mesh consisting of general polyhedral cells.
const labelList & pointsPairing() const
Return points pairing in a layer (not automatic!)
void reduce(const List< UPstream::commsStruct > &comms, T &Value, const BinaryOp &bop, const int tag, const label comm)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const labelList & facesPairing() const
Return faces pairing in a layer (not automatic!)
Pre-declare SubField and related Field type.
faceZoneID faceZoneID_
Master face zone ID.
void flip()
Flip the face in-place.
labelList * facesPairingPtr_
Face pairing.
errorManip< error > abort(error &err)
virtual void modifyMotionPoints(pointField &motionPoints) const
Modify motion points to comply with the topological change.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
prefixOSstream Pout(cout, "Pout")
const polyMesh & mesh() const
Return the mesh reference.
label masterIndex() const
Master face index.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
labelList * pointsPairingPtr_
Point pairing.
label oppositeIndex() const
Slave face index.
A face is a list of labels corresponding to mesh vertices.
void size(const label)
Override size to be inconsistent with allocated storage.
word name(const complex &)
Return a string representation of a complex.
label index() const
Return index of first matching zone.
bool setLayerPairing() const
Set layer pairing. Return true if a valid layer exists.