55#ifndef Foam_slidingInterface_H
56#define Foam_slidingInterface_H
77 public polyMeshModifier
121 mutable Switch coupleDecouple_;
130 mutable bool trigger_;
135 scalar pointMergeTol_;
138 scalar edgeMergeTol_;
141 label nFacesPerSlaveEdge_;
144 label edgeFaceEscapeLimit_;
147 scalar integralAdjTol_;
150 scalar edgeMasterCatchFraction_;
153 scalar edgeCoPlanarTol_;
156 scalar edgeEndCutoffTol_;
164 mutable std::unique_ptr<labelList> cutFaceMasterPtr_;
169 mutable std::unique_ptr<labelList> cutFaceSlavePtr_;
172 mutable std::unique_ptr<labelList> masterFaceCellsPtr_;
175 mutable std::unique_ptr<labelList> slaveFaceCellsPtr_;
178 mutable std::unique_ptr<labelList> masterStickOutFacesPtr_;
181 mutable std::unique_ptr<labelList> slaveStickOutFacesPtr_;
186 mutable std::unique_ptr<Map<label>> retiredPointMapPtr_;
191 mutable std::unique_ptr<Map<Pair<edge>>> cutPointEdgePairMapPtr_;
195 mutable std::unique_ptr<labelList> slavePointPointHitsPtr_;
199 mutable std::unique_ptr<labelList> slavePointEdgeHitsPtr_;
203 mutable std::unique_ptr<List<objectHit>> slavePointFaceHitsPtr_;
207 mutable std::unique_ptr<labelList> masterPointEdgeHitsPtr_;
210 mutable std::unique_ptr<pointField> projectedSlavePointsPtr_;
216 slidingInterface(
const slidingInterface&) =
delete;
219 void operator=(
const slidingInterface&) =
delete;
222 void clearOut()
const;
226 void checkDefinition();
229 void calcAttachedAddressing()
const;
232 void renumberAttachedAddressing(
const mapPolyMesh&)
const;
235 void clearAttachedAddressing()
const;
241 const labelList& masterFaceCells()
const;
247 const labelList& masterStickOutFaces()
const;
250 const labelList& slaveStickOutFaces()
const;
259 void clearAddressing()
const;
264 bool projectPoints()
const;
270 void clearPointProjection()
const;
285 static const scalar pointMergeTolDefault_;
288 static const scalar edgeMergeTolDefault_;
291 static const label nFacesPerSlaveEdgeDefault_;
294 static const label edgeFaceEscapeLimitDefault_;
297 static const scalar integralAdjTolDefault_;
300 static const scalar edgeMasterCatchFractionDefault_;
303 static const scalar edgeCoPlanarTolDefault_;
306 static const scalar edgeEndCutoffTolDefault_;
323 const word& masterFaceZoneName,
324 const word& slaveFaceZoneName,
325 const word& cutPointZoneName,
326 const word& cutFaceZoneName,
327 const word& masterPatchName,
328 const word& slavePatchName,
330 const bool coupleDecouple =
false,
Enum is a wrapper around a list of names/values that represent particular enumeration (or int) values...
A HashTable to objects of type <T> with a label key.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A simple wrapper around bool so that it can be read as a word: true/false, on/off,...
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
label index() const
Return the index of this modifier.
const word & name() const
Return name of this modifier.
Direct mesh changes based on v1.3 polyTopoChange syntax.
List of mesh modifiers defining the mesh dynamics.
const faceZoneID & masterFaceZoneID() const
Return master face zone ID.
void setTolerances(const dictionary &, bool report=false)
Set the tolerances from the values in a dictionary.
const pointField & pointProjection() const
Return projected points for a slave patch.
static const Enum< typeOfMatch > typeOfMatchNames
Names for the types of matches.
virtual ~slidingInterface()=default
Destructor.
typeOfMatch
Type of match.
bool attached() const
Return true if attached.
virtual bool changeTopology() const
Check for topology change.
virtual void writeDict(Ostream &) const
Write dictionary.
const faceZoneID & slaveFaceZoneID() const
Return slave face zone ID.
virtual void setRefinement(polyTopoChange &) const
Insert the layer addition/removal instructions.
virtual void modifyMotionPoints(pointField &motionPoints) const
Modify motion points to comply with the topological change.
TypeName("slidingInterface")
Runtime type information.
virtual void updateMesh(const mapPolyMesh &)
Force recalculation of locally stored data on topological change.
A class for handling words, derived from Foam::string.
DynamicID< pointZoneMesh > pointZoneID
Foam::pointZoneID.
List< label > labelList
A List of labels.
DynamicID< polyBoundaryMesh > polyPatchID
Foam::polyPatchID.
vectorField pointField
pointField is a vectorField.
DynamicID< faceZoneMesh > faceZoneID
Foam::faceZoneID.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.