All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
snappySnapDriver Class Reference

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

Public Member Functions

 ClassName ("snappySnapDriver")
 Runtime type information. More...
 
 snappySnapDriver (meshRefinement &meshRefiner, const labelList &globalToMasterPatch, const labelList &globalToSlavePatch)
 Construct from components. More...
 
 snappySnapDriver (const snappySnapDriver &)=delete
 Disallow default bitwise copy construction. 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)
 
void operator= (const snappySnapDriver &)=delete
 Disallow default bitwise assignment. More...
 

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 snappySnapDriver.H.

Constructor & Destructor Documentation

◆ snappySnapDriver() [1/2]

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

Construct from components.

Definition at line 568 of file snappySnapDriver.C.

References snappySnapDriver::mergeZoneBaffles().

Here is the call graph for this function:

◆ snappySnapDriver() [2/2]

snappySnapDriver ( const snappySnapDriver )
delete

Disallow default bitwise copy construction.

Member Function Documentation

◆ ClassName()

ClassName ( "snappySnapDriver"  )

Runtime type information.

◆ mergeZoneBaffles()

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

Merge baffles.

Definition at line 583 of file snappySnapDriver.C.

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

Referenced by snappySnapDriver::snappySnapDriver().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calcSnapDistance()

◆ preSmoothPatch()

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

◆ getZoneSurfacePoints()

Foam::labelList getZoneSurfacePoints ( const fvMesh mesh,
const indirectPrimitivePatch pp,
const word zoneName 
)
static

◆ avgCellCentres()

◆ detectNearSurfaces()

◆ calcNearestSurface()

◆ smoothDisplacement()

◆ scaleMesh()

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 1770 of file snappySnapDriver.C.

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

Referenced by snappySnapDriver::smoothDisplacement().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ repatchToSurface()

Foam::autoPtr< Foam::mapPolyMesh > repatchToSurface ( const snapParameters snapParams,
const labelList adaptPatchIDs,
const labelList preserveFaces 
)

◆ doSnap()

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 2095 of file snappySnapDriver.C.

References meshRefinement::ATTRACTION, surfaceZonesInfo::BAFFLE, surfaceZonesInfo::BOUNDARY, motionSmootherAlgo::checkMesh(), motionSmootherAlgo::correct(), Foam::cos(), cpuTime::cpuTimeIncrement(), Foam::degToRad(), snapParameters::detectNearSurfacesSnap(), motionSmootherData::displacement(), Foam::endl(), Foam::faceMap(), polyMesh::faces(), polyMesh::faceZones(), ZoneMesh< ZoneType, MeshType >::findZoneID(), Pair< Type >::first(), forAll, Foam::Info, PrimitivePatch< FaceList, PointField >::localPoints(), Foam::mag(), meshRefinement::makeDisplacementField(), meshRefinement::makePatch(), VectorSpace< Vector< scalar >, scalar, 3 >::max, meshRefinement::MESH, Foam::name(), refinementSurfaces::names(), MeshObject< polyMesh, PatchMeshObject, pointMesh >::New(), primitiveMesh::nFaces(), snapParameters::nFeatureSnap(), Foam::nl, PrimitivePatch< FaceList, PointField >::nPoints(), primitiveMesh::nPoints(), Time::path(), Foam::Pout, Foam::returnReduce(), Pair< Type >::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(), WarningInFunction, Ostream::write(), regIOobject::write(), meshRefinement::writeLevel(), meshRefinement::WRITEMESH, and Foam::Zero.

Referenced by snappySnapDriver::repatchToSurface().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=()

void operator= ( const snappySnapDriver )
delete

Disallow default bitwise assignment.


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