136 #ifndef Foam_faceCoupleInfo_H 137 #define Foam_faceCoupleInfo_H 162 static const scalar angleTol_;
165 std::unique_ptr<indirectPrimitivePatch> masterPatchPtr_;
168 std::unique_ptr<indirectPrimitivePatch> slavePatchPtr_;
186 std::unique_ptr<primitiveFacePatch> cutFacesPtr_;
212 template<
template<
class>
class FaceList>
215 const FaceList<face>&,
222 template<
template<
class>
class FaceList>
225 const FaceList<face>&,
237 const bool compact =
true 250 void writePointsFaces()
const;
269 bool regionEdge(
const polyMesh&,
const label slaveEdgeI)
const;
272 label mostAlignedCutEdge
276 const bool patchDivision,
280 const label edgeStart,
287 void setCutEdgeToPoints(
const labelList& cutToMasterEdges);
294 static label matchFaces
301 const bool sameOrientation
305 static bool matchPointsThroughFaces
312 const bool sameOrientation,
320 static scalar maxDistance
330 static void findPerfectMatchingFaces
342 static void findSlavesCoveringMaster
355 void checkMatch(
const labelList& cutToMasterEdges)
const;
370 void perfectSlavePointMatch(
const scalar absTol);
373 void perfectPointMatch(
const scalar absTol,
const bool);
377 void subDivisionMatch
380 const bool patchDivision,
405 const bool perfectMatch
426 const bool perfectMatch,
427 const bool orderedFaces,
428 const bool patchDivision
454 return *masterPatchPtr_;
460 return *slavePatchPtr_;
466 return *cutFacesPtr_;
483 return cutToMasterFaces_;
487 return masterToCutPoints_;
492 return cutToSlaveFaces_;
496 return slaveToCutPoints_;
502 return cutEdgeToPoints_;
const indirectPrimitivePatch & slavePatch() const
Addressing engine for coupled faces on mesh1.
static labelList faceLabels(const polyPatch &)
Utility functions.
A class for handling file names.
faceCoupleInfo(const polyMesh &mesh0, const polyMesh &mesh1, const scalar absTol, const bool perfectMatch)
Construct from two meshes and absolute tolerance.
A face is a list of labels corresponding to mesh vertices.
Cell-face mesh analysis engine.
const indirectPrimitivePatch & masterPatch() const
Addressing engine for coupled faces on mesh0.
const pointField & cutPoints() const
Points for combined set of faces.
const primitiveFacePatch & cutFaces() const
Addressing engine for combined set of faces.
Container for information needed to couple to meshes. When constructed from two meshes and a geometri...
A list of faces which address into the list of points.
const labelList & cutToSlaveFaces() const
~faceCoupleInfo()=default
Destructor.
const EdgeMap< labelList > & cutEdgeToPoints() const noexcept
From two cut points (original edge) to list of inserted points.
Map from edge (expressed as its endpoints) to value. Hashing (and ==) on an edge is symmetric...
static Map< label > makeMap(const labelList &)
Create Map from List.
const labelList & slaveToCutPoints() const
pointField points0(pointIOField(IOobject("points", mesh.time().constant(), polyMesh::meshSubDir, mesh, IOobject::MUST_READ, IOobject::NO_WRITE, IOobject::NO_REGISTER)))
const labelList & masterToCutPoints() const
Mesh consisting of general polyhedral cells.
ClassName("faceCoupleInfo")
Runtime type information.
A patch is a list of labels that address the faces in the global face list.
const labelList & cutToMasterFaces() const
Master face for every face on cut. Will always be at least.
A HashTable to objects of type <T> with a label key.