36 #ifndef snappySnapDriver_H 37 #define snappySnapDriver_H 49 class pointConstraint;
75 static label getCollocatedPoints
91 void checkCoupledFaceZones()
const;
109 static bool outwardsDisplacement
116 void detectWarpedFaces
118 const scalar featureCos,
130 const scalar featureCos,
136 void smoothAndConstrain
170 void calcNearestFacePointProperties
189 void correctAttraction
202 void stringFeatureEdges
205 const scalar featureCos,
220 void releasePointsNextToMultiPatch
223 const scalar featureCos,
250 void avoidDiagonalAttraction
253 const scalar featureCos,
286 const scalar featureCos,
287 const vector& faceSurfaceNormal,
293 void featureAttractionUsingReconstruction
296 const scalar featureCos,
318 void featureAttractionUsingReconstruction
321 const bool avoidSnapProblems,
322 const scalar featureCos,
338 void determineFeatures
341 const scalar featureCos,
342 const bool multiRegionFeatureSnap,
364 void determineBaffleFeatures
367 const scalar featureCos,
383 void reverseAttractMeshPoints
410 const bool isRegionEdge,
415 const point& estimatedPt,
431 const bool isRegionEdge,
436 const point& estimatedPt,
449 void featureAttractionUsingFeatureEdges
452 const bool avoidSnapProblems,
453 const scalar featureCos,
454 const bool multiRegionFeatureSnap,
468 void preventFaceSqueeze
471 const scalar featureCos,
486 const bool avoidSnapProblems,
488 const scalar featureCos,
489 const scalar featureAttract,
543 const label nInitErrors,
566 const scalar planarCos,
598 const label nInitErrors,
615 const scalar featureCos,
616 const scalar planarAngle,
Given a displacement moves the mesh by scaling the displacement back until there are no more mesh err...
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
A class for handling file names.
bool scaleMesh(const snapParameters &snapParams, const label nInitErrors, const List< labelPair > &baffles, motionSmoother &)
Do the hard work: move the mesh according to displacement,.
A list of keyword definitions, which are a keyword followed by any number of values (e...
A 2-tuple for storing two objects of different types.
autoPtr< mapPolyMesh > mergeZoneBaffles(const List< labelPair > &)
Merge baffles.
void doSnap(const dictionary &snapDict, const dictionary &motionDict, const scalar featureCos, const scalar planarAngle, const snapParameters &snapParams)
This class describes the interaction of (usually) a face and a point. It carries the info of a succes...
static labelList getZoneSurfacePoints(const fvMesh &mesh, const indirectPrimitivePatch &, const word &zoneName)
Get points both on patch and facezone.
Mesh representing a set of points created from polyMesh.
Application of (multi-)patch point contraints.
A list of faces which address into the list of points.
ClassName("snappySnapDriver")
Runtime type information.
An ordered pair of two objects of type <T> with first() and second() elements.
A class for handling words, derived from string.
Simple container to keep together snap specific information.
autoPtr< mapPolyMesh > repatchToSurface(const snapParameters &snapParams, const labelList &adaptPatchIDs, const labelList &preserveFaces)
Repatch faces according to surface nearest the face centre.
static void preSmoothPatch(const meshRefinement &meshRefiner, const snapParameters &snapParams, const label nInitErrors, const List< labelPair > &baffles, motionSmoother &)
Smooth the mesh (patch and internal) to increase visibility.
Accumulates point constraints through successive applications of the applyConstraint function...
static scalarField calcSnapDistance(const fvMesh &mesh, const snapParameters &snapParams, const indirectPrimitivePatch &)
Calculate edge length per patch point.
static tmp< pointField > avgCellCentres(const fvMesh &mesh, const indirectPrimitivePatch &)
Helper: calculate average cell centre per point.
void detectNearSurfaces(const scalar planarCos, const indirectPrimitivePatch &, const pointField &nearestPoint, const vectorField &nearestNormal, vectorField &disp) const
Per patch point override displacement if in gap situation.
Helper class which maintains intersections of (changing) mesh with (static) surfaces.
All to do with snapping to surface.
Mesh data needed to do the Finite Volume discretisation.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
A class for managing temporary objects.
void smoothDisplacement(const snapParameters &snapParams, motionSmoother &) const
Smooth the displacement field to the internal.
static vectorField calcNearestSurface(const meshRefinement &meshRefiner, const scalarField &snapDist, const indirectPrimitivePatch &, pointField &nearestPoint, vectorField &nearestNormal)
Per patch point calculate point on nearest surface. Set as.