55#ifndef Foam_slidingInterface_H
56#define Foam_slidingInterface_H
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 unique_ptr<labelList> cutFaceMasterPtr_;
169 mutable unique_ptr<labelList> cutFaceSlavePtr_;
172 mutable unique_ptr<labelList> masterFaceCellsPtr_;
175 mutable unique_ptr<labelList> slaveFaceCellsPtr_;
178 mutable unique_ptr<labelList> masterStickOutFacesPtr_;
181 mutable unique_ptr<labelList> slaveStickOutFacesPtr_;
186 mutable unique_ptr<Map<label>> retiredPointMapPtr_;
191 mutable unique_ptr<Map<Pair<edge>>> cutPointEdgePairMapPtr_;
195 mutable unique_ptr<labelList> slavePointPointHitsPtr_;
199 mutable unique_ptr<labelList> slavePointEdgeHitsPtr_;
203 mutable unique_ptr<List<objectHit>> slavePointFaceHitsPtr_;
207 mutable unique_ptr<labelList> masterPointEdgeHitsPtr_;
210 mutable unique_ptr<pointField> projectedSlavePointsPtr_;
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.
Virtual base class for mesh modifiers.
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.
Sliding interface mesh modifier. Given two face zones, couple the master and slave side using a cutti...
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.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.