Go to the documentation of this file.
35 #ifndef meshSurfaceOptimizer_H
36 #define meshSurfaceOptimizer_H
107 const label nAdditionalLayers = 2
150 const scalar tol = 0.001
178 const scalar tol = 1.0
279 template<
class labelListType>
283 template<
class labelListType>
302 const label nAdditionalLayers = 0
const bool deletePartitioner_
void nodeDisplacementLaplacianFC(const label bpI, const bool transformIntoPlane=true) const
void smoothLaplacianFC(const labelLongList &selectedPoints, const labelLongList &selectedProcPoints, const bool transform=true)
smooth selected points using laplaceFC
void smoothSurfaceOptimizer(const labelLongList &selectedPoints, const labelLongList &selectedProcPoints)
smooth selected points using surface optimizer
A class for handling words, derived from string.
meshSurfaceOptimizer(const meshSurfaceOptimizer &)
Disallow default bitwise copy construct.
point newPositionLaplacian(const label bpI, const bool transformIntoPlane=true) const
labelLongList lockedSurfaceFaces_
locked faces which shall not be changed
void classifySurfaceVertices()
classify surface vertices as PARTITION, EDGE, CORNER
partTriMesh * triMeshPtr_
mesh of surface triangles needed for some smoothers
void nodeDisplacementLaplacian(const label bpI, const bool transformIntoPlane=true) const
void lockBoundaryPoints(const labelListType &)
lock boundary points. They are not be moved.
void exchangeData(const labelLongList &nodesToSmooth, std::map< label, DynList< parTriFace > > &m) const
transfer data between processors
point newEdgePositionLaplacian(const label bpI) const
const partTriMesh & triMesh() const
void nodeDisplacementSurfaceOptimizer(const label bpI, const scalar tol=1.0)
smooth the node using surface optimizer
bool transformIntoPlane(const label bpI, const plane &pl, vector &vecX, vector &vecY, DynList< point > &pts, DynList< triFace > &trias) const
transform into a 2D space in plane
word badPointsSubsetName_
name of the subset contaning tangled points
dimensionSet transform(const dimensionSet &)
Geometric class that creates a 2D plane and can return the intersection point between a line and the ...
bool untangleSurface(const labelLongList &activeBoundaryPoints, const label nAdditionalLayers=0)
runs a surface smoother on the selected boundary points
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
label findInvertedVertices(boolList &smoothVertex, const label nAdditionalLayers=2) const
void optimizeSurface2D(const label nIterations=5)
optimize the surface of a 2D mesh
List< direction > vertexType_
type of surface vertex
void untangleSurface2D()
untangle the surface of a 2D mesh
void nodeDisplacementLaplacianFCParallel(const labelLongList &nodesToSmooth, const bool transformIntoPlane=true)
laplacian smoothing of points at processor boundaries
void edgeNodeDisplacementParallel(const labelLongList &nodesToSmooth)
smooth edge nodes at processor boundaries
point newPositionSurfaceOptimizer(const label bpI, const scalar tol=0.001) const
new position of a node after using surfaceOptimizer
const meshSurfaceEngine & surfaceEngine_
const reference to the mesh surface
void calculateTrianglesAndAddressing() const
calculate surface triangulation
const meshOctree * octreePtr_
pointer to mesh octree
void optimizeSurface(const label nIterations=5)
optimize boundary nodes after boundary regions are created
point newPositionLaplacianFC(const label bpI, const bool transformIntoPlane=true) const
void enforceConstraints(const word subsetName="badPoints")
void smoothEdgePoints(const labelLongList &edgePoints, const labelLongList &procEdgePoints)
smooth selected edge points
void operator=(const meshSurfaceOptimizer &)
Disallow default bitwise assignment.
bool enforceConstraints_
enforce constraints
void lockBoundaryFaces(const labelListType &)
lock the boundary faces which shall not be modified
void removeUserConstraints()
reset to default constraints
Octree for mesh generation.
void edgeNodeDisplacement(const label bpI) const
smooth edge node
void lockFeatureEdges()
lock edge points
point newPositionLaplacianWFC(const label bpI, const bool transformIntoPlane=true) const
void nodeDisplacementLaplacianParallel(const labelLongList &nodesToSmooth, const bool transformIntoPlane=true)
Maps vertices to the nearest point on the geometry surface.
const meshSurfacePartitioner * partitionerPtr_
surface partitioner