136#ifndef Foam_faceCoupleInfo_H
137#define Foam_faceCoupleInfo_H
165 static const scalar angleTol_;
168 unique_ptr<indirectPrimitivePatch> masterPatchPtr_;
171 unique_ptr<indirectPrimitivePatch> slavePatchPtr_;
189 unique_ptr<primitiveFacePatch> cutFacesPtr_;
215 template<
template<
class>
class FaceList>
218 const FaceList<face>&,
225 template<
template<
class>
class FaceList>
228 const FaceList<face>&,
240 const bool compact =
true
253 void writePointsFaces()
const;
272 bool regionEdge(
const polyMesh&,
const label slaveEdgeI)
const;
275 label mostAlignedCutEdge
279 const bool patchDivision,
283 const label edgeStart,
290 void setCutEdgeToPoints(
const labelList& cutToMasterEdges);
297 static label matchFaces
304 const bool sameOrientation
308 static bool matchPointsThroughFaces
315 const bool sameOrientation,
323 static scalar maxDistance
333 static void findPerfectMatchingFaces
345 static void findSlavesCoveringMaster
358 void checkMatch(
const labelList& cutToMasterEdges)
const;
373 void perfectSlavePointMatch(
const scalar absTol);
376 void perfectPointMatch(
const scalar absTol,
const bool);
380 void subDivisionMatch
383 const bool patchDivision,
408 const bool perfectMatch
429 const bool perfectMatch,
430 const bool orderedFaces,
431 const bool patchDivision
457 return *masterPatchPtr_;
463 return *slavePatchPtr_;
469 return *cutFacesPtr_;
486 return cutToMasterFaces_;
490 return masterToCutPoints_;
495 return cutToSlaveFaces_;
499 return slaveToCutPoints_;
506 return cutEdgeToPoints_;
A HashTable similar to std::unordered_map.
A HashTable to objects of type <T> with a label key.
A list of faces which address into the list of points.
Container for information needed to couple to meshes. When constructed from two meshes and a geometri...
const labelList & masterToCutPoints() const
const indirectPrimitivePatch & masterPatch() const
Addressing engine for coupled faces on mesh0.
const pointField & cutPoints() const
Points for combined set of faces.
static labelList faceLabels(const polyPatch &)
Utility functions.
const edgeLookup & cutEdgeToPoints() const
From two cut points (original edge) to list of inserted.
const labelList & slaveToCutPoints() const
const indirectPrimitivePatch & slavePatch() const
Addressing engine for coupled faces on mesh1.
static Map< label > makeMap(const labelList &)
Create Map from List.
~faceCoupleInfo()=default
Destructor.
ClassName("faceCoupleInfo")
Runtime type information.
const primitiveFacePatch & cutFaces() const
Addressing engine for combined set of faces.
const labelList & cutToMasterFaces() const
Master face for every face on cut. Will always be at least.
const labelList & cutToSlaveFaces() const
A face is a list of labels corresponding to mesh vertices.
A class for handling file names.
Mesh consisting of general polyhedral cells.
A patch is a list of labels that address the faces in the global face list.
Cell-face mesh analysis engine.
#define ClassName(TypeNameString)
Add typeName information from argument TypeNameString to a class.
HashTable< labelList, edge, Hash< edge > > edgeLookup
pointField points0(pointIOField(IOobject("points", mesh.time().constant(), polyMesh::meshSubDir, mesh, IOobject::MUST_READ, IOobject::NO_WRITE, false)))