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;
168 template<
class FaceList>
172 const FaceList& faces
177 static void calcNearestSurface
202 const scalar featureCos,
204 const bitSet& isFeatureEdge,
208 void smoothAndConstrain
210 const bitSet& isMasterEdge,
241 void calcNearestFacePointProperties
255 void correctAttraction
268 void stringFeatureEdges
271 const scalar featureCos,
286 void releasePointsNextToMultiPatch
289 const scalar featureCos,
344 bool isSplitAlignedWithFeature
346 const scalar featureCos,
358 const scalar concaveCos
362 const scalar featureCos,
363 const scalar concaveCos,
364 const scalar minAreaFraction,
380 const scalar featureCos,
381 const scalar concaveCos,
382 const scalar minAreaFraction,
396 void avoidDiagonalAttraction
399 const scalar featureCos,
409 const bitSet& isMasterPoint,
434 const scalar featureCos,
435 const vector& faceSurfaceNormal,
441 void featureAttractionUsingReconstruction
444 const scalar featureCos,
466 void featureAttractionUsingReconstruction
469 const scalar featureCos,
485 void determineFeatures
488 const scalar featureCos,
489 const bool multiRegionFeatureSnap,
511 void determineBaffleFeatures
514 const bool baffleFeaturePoints,
515 const scalar featureCos,
530 void reverseAttractMeshPoints
557 const bool isRegionEdge,
562 const point& estimatedPt,
578 const bool isRegionEdge,
583 const point& estimatedPt,
596 void featureAttractionUsingFeatureEdges
599 const bool multiRegionFeatureSnap,
601 const bool detectBaffles,
602 const bool baffleFeaturePoints,
603 const bool releasePoints,
604 const bool stringFeatures,
605 const bool avoidDiagonal,
607 const scalar featureCos,
623 void preventFaceSqueeze
626 const scalar featureCos,
642 const bool alignMeshEdges,
644 const scalar featureCos,
645 const scalar featureAttract,
679 const bool dryRun =
false
704 const label nInitErrors,
719 const scalar planarCos,
731 const bool strictRegionSnap,
764 const label nInitErrors,
785 const scalar featureCos,
786 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].
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
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 contraints.
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)))
An ordered pair of two objects of type <T> with first() and second() elements.
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.