35 #ifndef snappyLayerDriver_H
36 #define snappyLayerDriver_H
49 class addPatchCellLayer;
52 class layerParameters;
102 meshRefinement& meshRefiner_;
117 static void dumpDisplacement
122 const List<extrudeMode>&
126 static tmp<scalarField> avgPointData
134 static void checkManifold
137 pointSet& nonManifoldPoints
141 void checkMeshManifold()
const;
147 static bool unmarkExtrusion
149 const label patchPointi,
152 List<extrudeMode>& extrudeStatus
156 static bool unmarkExtrusion
158 const face& localFace,
161 List<extrudeMode>& extrudeStatus
165 void handleNonManifolds
172 List<extrudeMode>& extrudeStatus
177 void handleFeatureAngle
184 List<extrudeMode>& extrudeStatus
188 void handleWarpedFaces
191 const scalar faceRatio,
192 const scalar edge0Len,
196 List<extrudeMode>& extrudeStatus
208 List<extrudeMode>& extrudeStatus,
209 label& nIdealAddedCells
219 static tmp<pointVectorField> makeLayerDisplacementField
221 const pointMesh& pMesh,
231 List<extrudeMode>& extrudeStatus
235 void determineSidePatches
237 const globalIndex& globalFaces,
249 void calculateLayerThickness
253 const layerParameters& layerParams,
256 const scalar edge0Len,
267 void syncPatchDisplacement
273 List<extrudeMode>& extrudeStatus
277 void getPatchDisplacement
284 List<extrudeMode>& extrudeStatus
288 bool sameEdgeNeighbour
291 const label myGlobalFacei,
292 const label nbrGlobFacei,
303 const label myGlobFacei,
304 const label nbrGlobFacei,
313 label truncateDisplacement
315 const globalIndex& globalFaces,
319 const faceSet& illegalPatchFaces,
322 List<extrudeMode>& extrudeStatus
331 void setupLayerInfoTruncation
335 const List<extrudeMode>& extrudeStatus,
336 const label nBufferCellsNoExtrude,
342 static bool cellsUseFace
344 const polyMesh& mesh,
352 static label checkAndUnmark
354 const addPatchCellLayer& addLayer,
355 const dictionary& motionDict,
356 const bool additionalReporting,
357 const List<labelPair>& baffles,
363 List<extrudeMode>& extrudeStatus
367 static label countExtrusion
370 const List<extrudeMode>& extrudeStatus
375 static void getLayerCellsFaces
378 const addPatchCellLayer&,
412 static void averageNeighbours
414 const polyMesh& mesh,
415 const PackedBoolList& isMasterEdge,
420 const Field<Type>& data,
427 const PackedBoolList& isMasterEdge,
437 const motionSmoother& meshMover,
438 const PackedBoolList& isMasterPoint,
439 const PackedBoolList& isMasterEdge,
442 const label nSmoothDisp,
447 void smoothPatchNormals
449 const motionSmoother& meshMover,
450 const PackedBoolList& isMasterPoint,
451 const PackedBoolList& isMasterEdge,
453 const label nSmoothDisp,
460 const label nSmoothDisp,
461 const PackedBoolList& isMasterPoint,
462 const PackedBoolList& isMasterEdge,
469 const List<pointData>&,
476 void handleFeatureAngleLayerTerminations
479 const PackedBoolList& isMasterPoint,
483 List<extrudeMode>& extrudeStatus,
492 void findIsolatedRegions
494 const scalar minCosLayerTermination,
495 const PackedBoolList& isMasterPoint,
496 const PackedBoolList& isMasterEdge,
501 List<extrudeMode>& extrudeStatus,
507 void medialAxisSmoothingInfo
509 const motionSmoother& meshMover,
510 const label nSmoothNormals,
511 const label nSmoothSurfaceNormals,
512 const scalar minMedialAxisAngleCos,
513 const scalar featureAngle,
522 void shrinkMeshMedialDistance
524 motionSmoother& meshMover,
525 const dictionary& meshQualityDict,
526 const List<labelPair>& baffles,
527 const label nSmoothPatchThickness,
528 const label nSmoothDisplacement,
529 const scalar maxThicknessToMedialRatio,
530 const label nAllowableErrors,
532 const scalar minCosLayerTermination,
542 List<extrudeMode>& extrudeStatus,
582 const label nAllowableErrors,
593 const bool preBalance,
Abstract base class for decomposition.
A list of keyword definitions, which are a keyword followed by any number of values (e....
Sends/receives parts of mesh+fvfields to neighbouring processors. Used in load balancing.
Simple container to keep together layer specific information.
Helper class which maintains intersections of (changing) mesh with (static) surfaces.
All to do with adding layers.
snappyLayerDriver(meshRefinement &meshRefiner, const labelList &globalToMasterPatch, const labelList &globalToSlavePatch)
Construct from components.
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.
void addLayers(const layerParameters &layerParams, const dictionary &motionDict, const labelList &patchIDs, const label nAllowableErrors, decompositionMethod &decomposer, fvMeshDistribute &distributor)
Add cell layers.
void operator=(const snappyLayerDriver &)=delete
Disallow default bitwise assignment.
void mergePatchFacesUndo(const layerParameters &layerParams, const dictionary &motionDict)
Merge patch faces on same cell.
ClassName("snappyLayerDriver")
Runtime type information.
extrudeMode
Extrusion controls.
@ NOEXTRUDE
Do not extrude. No layers added.
pointField vertices(const blockVertexList &bvl)
List< label > labelList
A List of labels.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
vectorField pointField
pointField is a vectorField.
dimensioned< Type > average(const DimensionedField< Type, GeoMesh > &df)
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
PointField< scalar > pointScalarField
List< labelList > labelListList
A List of labelList.
PointField< vector > pointVectorField
Field< vector > vectorField
Specialisation of Field<T> for vector.
HashSet< label, Hash< label > > labelHashSet
A HashSet with label keys.
PrimitivePatch< IndirectList< face >, const pointField & > indirectPrimitivePatch
Foam::indirectPrimitivePatch.