35 #ifndef snappyLayerDriver_H 36 #define snappyLayerDriver_H 49 class addPatchCellLayer;
52 class layerParameters;
117 static void dumpDisplacement
134 static void checkManifold
141 void checkMeshManifold()
const;
147 static bool unmarkExtrusion
149 const label patchPointi,
156 static bool unmarkExtrusion
158 const face& localFace,
165 void handleNonManifolds
177 void handleFeatureAngle
188 void handleWarpedFaces
191 const scalar faceRatio,
192 const scalar edge0Len,
209 label& nIdealAddedCells
235 void determineSidePatches
249 void calculateLayerThickness
256 const scalar edge0Len,
267 void syncPatchDisplacement
277 void getPatchDisplacement
288 bool sameEdgeNeighbour
291 const label myGlobalFacei,
292 const label nbrGlobFacei,
303 const label myGlobFacei,
304 const label nbrGlobFacei,
313 label truncateDisplacement
319 const faceSet& illegalPatchFaces,
331 void setupLayerInfoTruncation
336 const label nBufferCellsNoExtrude,
342 static bool cellsUseFace
352 static label checkAndUnmark
356 const bool additionalReporting,
367 static label countExtrusion
375 static void getLayerCellsFaces
412 static void averageNeighbours
442 const label nSmoothDisp,
447 void smoothPatchNormals
453 const label nSmoothDisp,
460 const label nSmoothDisp,
476 void handleFeatureAngleLayerTerminations
492 void findIsolatedRegions
494 const scalar minCosLayerTermination,
507 void medialAxisSmoothingInfo
510 const label nSmoothNormals,
511 const label nSmoothSurfaceNormals,
512 const scalar minMedialAxisAngleCos,
513 const scalar featureAngle,
522 void shrinkMeshMedialDistance
527 const label nSmoothPatchThickness,
528 const label nSmoothDisplacement,
529 const scalar maxThicknessToMedialRatio,
530 const label nAllowableErrors,
532 const scalar minCosLayerTermination,
582 const label nAllowableErrors,
593 const bool preBalance,
Given a displacement moves the mesh by scaling the displacement back until there are no more mesh err...
Simple container to keep together layer specific information.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
A class for handling file names.
static const Vector< scalar > max
A face is a list of labels corresponding to mesh vertices.
A list of keyword definitions, which are a keyword followed by any number of values (e...
void operator=(const snappyLayerDriver &)=delete
Disallow default bitwise assignment.
void addLayers(const layerParameters &layerParams, const dictionary &motionDict, const labelList &patchIDs, const label nAllowableErrors, decompositionMethod &decomposer, fvMeshDistribute &distributor)
Add cell layers.
ClassName("snappyLayerDriver")
Runtime type information.
Mesh representing a set of points created from polyMesh.
pointField vertices(const blockVertexList &bvl)
A list of faces which address into the list of points.
Calculates a unique integer (label so might not have enough room - 2G max) for processor + local inde...
snappyLayerDriver(meshRefinement &meshRefiner, const labelList &globalToMasterPatch, const labelList &globalToSlavePatch)
Construct from components.
Sends/receives parts of mesh+fvfields to neighbouring processors. Used in load balancing.
Adds layers of cells to outside of polyPatch. Can optionally create stand-alone extruded mesh (addToM...
void doLayers(const dictionary &shrinkDict, const dictionary &motionDict, const layerParameters &layerParams, const bool preBalance, decompositionMethod &decomposer, fvMeshDistribute &distributor)
Add layers according to the dictionary settings.
Do not extrude. No layers added.
Abstract base class for decomposition.
dimensioned< Type > average(const DimensionedField< Type, GeoMesh > &df)
Database for solution and other reduced data.
All to do with adding layers.
Helper class which maintains intersections of (changing) mesh with (static) surfaces.
Mesh data needed to do the Finite Volume discretisation.
extrudeMode
Extrusion controls.
void mergePatchFacesUndo(const layerParameters &layerParams, const dictionary &motionDict)
Merge patch faces on same cell.
Mesh consisting of general polyhedral cells.
A class for managing temporary objects.