36 #ifndef snappySnapDriver_H
37 #define snappySnapDriver_H
49 class pointConstraint;
76 static label getCollocatedPoints
92 void checkCoupledFaceZones()
const;
110 static bool outwardsDisplacement
117 void detectWarpedFaces
119 const scalar featureCos,
131 const scalar featureCos,
137 void smoothAndConstrain
171 void calcNearestFacePointProperties
190 void correctAttraction
203 void stringFeatureEdges
206 const scalar featureCos,
221 void releasePointsNextToMultiPatch
224 const scalar featureCos,
251 void avoidDiagonalAttraction
254 const scalar featureCos,
287 const scalar featureCos,
288 const vector& faceSurfaceNormal,
294 void featureAttractionUsingReconstruction
297 const scalar featureCos,
319 void featureAttractionUsingReconstruction
322 const bool avoidSnapProblems,
323 const scalar featureCos,
339 void determineFeatures
342 const scalar featureCos,
343 const bool multiRegionFeatureSnap,
365 void determineBaffleFeatures
368 const scalar featureCos,
384 void reverseAttractMeshPoints
411 const bool isRegionEdge,
416 const point& estimatedPt,
432 const bool isRegionEdge,
437 const point& estimatedPt,
450 void featureAttractionUsingFeatureEdges
453 const bool avoidSnapProblems,
454 const scalar featureCos,
455 const bool multiRegionFeatureSnap,
469 void preventFaceSqueeze
472 const scalar featureCos,
487 const bool avoidSnapProblems,
489 const scalar featureCos,
490 const scalar featureAttract,
540 const label nInitErrors,
563 const scalar planarCos,
595 const label nInitErrors,
615 const scalar featureCos,
616 const scalar planarAngle,
This class describes the interaction of (usually) a face and a point. It carries the info of a succes...
A 2-tuple for storing two objects of different types.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
A list of keyword definitions, which are a keyword followed by any number of values (e....
A class for handling file names.
Mesh data needed to do the Finite Volume discretisation.
Helper class which maintains intersections of (changing) mesh with (static) surfaces.
Given a displacement moves the mesh by scaling the displacement back until there are no more mesh err...
Accumulates point constraints through successive applications of the applyConstraint function.
Application of (multi-)patch point constraints.
Mesh representing a set of points created from polyMesh.
Simple container to keep together snap specific information.
All to do with snapping to surface.
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.
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.
autoPtr< polyTopoChangeMap > repatchToSurface(const snapParameters &snapParams, const labelList &adaptPatchIDs, const labelList &preserveFaces)
Repatch faces according to surface nearest the face centre.
bool scaleMesh(const snapParameters &snapParams, const label nInitErrors, const List< labelPair > &baffles, motionSmoother &)
Do the hard work: move the mesh according to displacement,.
ClassName("snappySnapDriver")
Runtime type information.
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.
snappySnapDriver(meshRefinement &meshRefiner, const labelList &globalToMasterPatch, const labelList &globalToSlavePatch)
Construct from components.
static tmp< pointField > avgCellCentres(const fvMesh &mesh, const indirectPrimitivePatch &)
Helper: calculate average cell centre per point.
static labelList getZoneSurfacePoints(const fvMesh &mesh, const indirectPrimitivePatch &, const word &zoneName)
Get points both on patch and facezone.
void smoothDisplacement(const snapParameters &snapParams, motionSmoother &) const
Smooth the displacement field to the internal.
autoPtr< polyTopoChangeMap > mergeZoneBaffles(const List< labelPair > &)
Merge baffles.
void doSnap(const dictionary &snapDict, const dictionary &motionDict, const scalar featureCos, const scalar planarAngle, const snapParameters &snapParams)
void operator=(const snappySnapDriver &)=delete
Disallow default bitwise assignment.
static scalarField calcSnapDistance(const fvMesh &mesh, const snapParameters &snapParams, const indirectPrimitivePatch &)
Calculate edge length per patch point.
A class for managing temporary objects.
A class for handling words, derived from string.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.