Go to the documentation of this file.
38 #ifndef snappySnapDriver_H
39 #define snappySnapDriver_H
51 class refinementParameters;
53 class pointConstraint;
83 static label getCollocatedPoints
113 static pointField smoothLambdaMuPatchDisplacement
121 void checkCoupledFaceZones()
const;
139 static bool outwardsDisplacement
146 void detectWarpedFaces
148 const scalar featureCos,
157 labelList getInternalOrBaffleDuplicateFace()
const;
160 static void getZoneSurfacePoints
164 const word& zoneName,
170 template<
class FaceList>
174 const FaceList& faces
179 static void calcNearestSurface
204 const scalar featureCos,
206 const bitSet& isFeatureEdge,
210 void smoothAndConstrain
212 const bitSet& isMasterEdge,
243 void calcNearestFacePointProperties
257 void correctAttraction
270 void stringFeatureEdges
273 const scalar featureCos,
288 void releasePointsNextToMultiPatch
291 const scalar featureCos,
346 bool isSplitAlignedWithFeature
348 const scalar featureCos,
360 const scalar concaveCos
364 const scalar featureCos,
365 const scalar concaveCos,
366 const scalar minAreaFraction,
382 const scalar featureCos,
383 const scalar concaveCos,
384 const scalar minAreaFraction,
398 void avoidDiagonalAttraction
401 const scalar featureCos,
411 const bitSet& isMasterPoint,
436 const scalar featureCos,
437 const vector& faceSurfaceNormal,
443 void featureAttractionUsingReconstruction
446 const scalar featureCos,
468 void featureAttractionUsingReconstruction
471 const scalar featureCos,
487 void determineFeatures
490 const scalar featureCos,
491 const bool multiRegionFeatureSnap,
513 void determineBaffleFeatures
516 const bool baffleFeaturePoints,
517 const scalar featureCos,
532 void reverseAttractMeshPoints
559 const bool isRegionEdge,
564 const point& estimatedPt,
580 const bool isRegionEdge,
585 const point& estimatedPt,
598 void featureAttractionUsingFeatureEdges
601 const bool multiRegionFeatureSnap,
603 const bool detectBaffles,
604 const bool baffleFeaturePoints,
605 const bool releasePoints,
606 const bool stringFeatures,
607 const bool avoidDiagonal,
609 const scalar featureCos,
625 void preventFaceSqueeze
628 const scalar featureCos,
644 const bool alignMeshEdges,
646 const scalar featureCos,
647 const scalar featureAttract,
681 const bool dryRun =
false
706 const label nInitErrors,
721 const scalar planarCos,
733 const bool strictRegionSnap,
766 const label nInitErrors,
787 const scalar featureCos,
788 const scalar planarAngle,
void smoothDisplacement(const snapParameters &snapParams, motionSmoother &) const
Smooth the displacement field to the internal.
static scalarField calcSnapDistance(const fvMesh &mesh, const snapParameters &snapParams, const indirectPrimitivePatch &)
Calculate edge length per patch point.
A class for handling words, derived from Foam::string.
A class for handling file names.
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
A class for managing temporary objects.
ClassName("snappySnapDriver")
Runtime type information.
Accumulates point constraints through successive applications of the applyConstraint function.
All to do with snapping to surface.
FaceMergeType
Enumeration for what to do with co-planar patch faces on a single.
Simple container to keep together snap specific information.
This class describes the interaction of (usually) a face and a point. It carries the info of a succes...
const dimensionedScalar c1
First radiation constant: default SI units: [W/m2].
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.
Given a displacement moves the mesh by scaling the displacement back until there are no more mesh err...
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Mesh data needed to do the Finite Volume discretisation.
Mesh representing a set of points created from polyMesh.
autoPtr< mapPolyMesh > repatchToSurface(const snapParameters &snapParams, const labelList &adaptPatchIDs, const labelList &preserveFaces)
Repatch faces according to surface nearest the face centre.
Application of (multi-)patch point constraints.
bool scaleMesh(const snapParameters &snapParams, const label nInitErrors, const List< labelPair > &baffles, motionSmoother &)
Do the hard work: move the mesh according to displacement,.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
pointField points0(pointIOField(IOobject("points", mesh.time().constant(), polyMesh::meshSubDir, mesh, IOobject::MUST_READ, IOobject::NO_WRITE, false)))
void doSnap(const dictionary &snapDict, const dictionary &motionDict, const meshRefinement::FaceMergeType mergeType, const scalar featureCos, const scalar planarAngle, const snapParameters &snapParams)
Helper class which maintains intersections of (changing) mesh with (static) surfaces.
A face is a list of labels corresponding to mesh vertices.
A 2-tuple for storing two objects of dissimilar types. The container is similar in purpose to std::pa...
Container for data on surfaces used for surface-driven refinement. Contains all the data about the le...
autoPtr< mapPolyMesh > mergeZoneBaffles(const List< labelPair > &)
Merge baffles.
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.
static tmp< pointField > avgCellCentres(const fvMesh &mesh, const indirectPrimitivePatch &)
Helper: calculate average cell centre per point.
A list of faces which address into the list of points.