All to do with snapping to surface. More...

Public Member Functions

 ClassName ("autoSnapDriver")
 Runtime type information. More...
 
 autoSnapDriver (meshRefinement &meshRefiner, const labelList &globalToMasterPatch, const labelList &globalToSlavePatch)
 Construct from components. More...
 
autoPtr< mapPolyMeshmergeZoneBaffles (const List< labelPair > &)
 Merge baffles. More...
 
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. More...
 
void smoothDisplacement (const snapParameters &snapParams, motionSmoother &) const
 Smooth the displacement field to the internal. More...
 
bool scaleMesh (const snapParameters &snapParams, const label nInitErrors, const List< labelPair > &baffles, motionSmoother &)
 Do the hard work: move the mesh according to displacement,. More...
 
autoPtr< mapPolyMeshrepatchToSurface (const snapParameters &snapParams, const labelList &adaptPatchIDs, const labelList &preserveFaces)
 Repatch faces according to surface nearest the face centre. More...
 
void doSnap (const dictionary &snapDict, const dictionary &motionDict, const scalar featureCos, const scalar planarAngle, const snapParameters &snapParams)
 

Static Public Member Functions

static scalarField calcSnapDistance (const fvMesh &mesh, const snapParameters &snapParams, const indirectPrimitivePatch &)
 Calculate edge length per patch point. More...
 
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. More...
 
static labelList getZoneSurfacePoints (const fvMesh &mesh, const indirectPrimitivePatch &, const word &zoneName)
 Get points both on patch and facezone. More...
 
static tmp< pointFieldavgCellCentres (const fvMesh &mesh, const indirectPrimitivePatch &)
 Helper: calculate average cell centre per point. More...
 
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. More...
 

Detailed Description

All to do with snapping to surface.

Source files

Definition at line 54 of file autoSnapDriver.H.

Constructor & Destructor Documentation

autoSnapDriver ( meshRefinement meshRefiner,
const labelList globalToMasterPatch,
const labelList globalToSlavePatch 
)

Construct from components.

Definition at line 637 of file autoSnapDriver.C.

Member Function Documentation

ClassName ( "autoSnapDriver"  )

Runtime type information.

Foam::autoPtr< Foam::mapPolyMesh > mergeZoneBaffles ( const List< labelPair > &  baffles)

Merge baffles.

Definition at line 652 of file autoSnapDriver.C.

References Foam::endl(), surfaceZonesInfo::getNamedSurfaces(), Foam::Info, Foam::nl, Foam::returnReduce(), and List< T >::size().

Here is the call graph for this function:

void preSmoothPatch ( const meshRefinement meshRefiner,
const snapParameters snapParams,
const label  nInitErrors,
const List< labelPair > &  baffles,
motionSmoother meshMover 
)
static
bool scaleMesh ( const snapParameters snapParams,
const label  nInitErrors,
const List< labelPair > &  baffles,
motionSmoother meshMover 
)

Do the hard work: move the mesh according to displacement,.

locally relax the displacement. Return true if ended up with correct mesh, false if not.

Definition at line 2139 of file autoSnapDriver.C.

References cpuTime::cpuTimeIncrement(), motionSmootherData::displacement(), Foam::endl(), Foam::identity(), Foam::Info, Foam::mag(), meshRefinement::MESH, primitiveMesh::nFaces(), Foam::nl, snapParameters::nSnap(), motionSmootherAlgo::scaleMesh(), motionSmootherAlgo::setErrorReduction(), fvMesh::time(), regIOobject::write(), and fvMesh::write().

Here is the call graph for this function:

void doSnap ( const dictionary snapDict,
const dictionary motionDict,
const scalar  featureCos,
const scalar  planarAngle,
const snapParameters snapParams 
)

Only if in feature attraction mode:

Nearest feature

Definition at line 2469 of file autoSnapDriver.C.

References meshRefinement::ATTRACTION, surfaceZonesInfo::BAFFLE, surfaceZonesInfo::BOUNDARY, motionSmootherAlgo::checkMesh(), motionSmootherAlgo::correct(), Foam::cos(), cpuTime::cpuTimeIncrement(), Foam::degToRad(), snapParameters::detectNearSurfacesSnap(), motionSmootherData::displacement(), Foam::endl(), polyMesh::faces(), polyMesh::faceZones(), ZoneMesh< Zone, MeshType >::findZoneID(), Pair< T >::first(), forAll, Foam::Info, PrimitivePatch< Face, FaceList, PointField, PointType >::localPoints(), Foam::mag(), meshRefinement::makeDisplacementField(), meshRefinement::makePatch(), Vector< scalar >::max, meshRefinement::MESH, Foam::name(), refinementSurfaces::names(), MeshObject< polyMesh, UpdateableMeshObject, pointMesh >::New(), primitiveMesh::nFaces(), snapParameters::nFeatureSnap(), Foam::nl, PrimitivePatch< Face, FaceList, PointField, PointType >::nPoints(), primitiveMesh::nPoints(), Time::path(), Foam::Pout, Foam::returnReduce(), Pair< T >::second(), motionSmootherAlgo::setDisplacement(), List< T >::setSize(), refinementSurfaces::surfaces(), refinementSurfaces::surfZones(), syncTools::syncFaceList(), syncTools::syncPointList(), fvMesh::time(), FixedList< T, Size >::transfer(), meshRefinement::updateList(), autoPtr< T >::valid(), WarningIn, Ostream::write(), regIOobject::write(), meshRefinement::writeLevel(), meshRefinement::WRITEMESH, and Vector< scalar >::zero.

Here is the call graph for this function:


The documentation for this class was generated from the following files: