Go to the documentation of this file.
44 #ifndef meshRefinement_H
45 #define meshRefinement_H
51 #include "indirectPrimitivePatch.H"
67 class mapDistributePolyMesh;
68 class decompositionMethod;
69 class refinementSurfaces;
70 class refinementFeatures;
73 class fvMeshDistribute;
75 class localPointRegion;
219 template<
class GeoField>
223 template<
class GeoField>
267 const label exposedPatchI
278 const label markValue,
279 const label nAllowRefine,
297 const label nAllowRefine,
306 const label nAllowRefine,
314 const label nAllowRefine,
337 const label nAllowRefine,
348 const scalar planarCos,
349 const label nAllowRefine,
360 const point& nearPoint,
375 const bool useSurfaceNormal,
377 const point& nearPoint,
421 const scalar planarCos,
422 const bool spreadGapSize,
423 const label nAllowRefine,
433 const scalar planarCos,
434 const label nAllowRefine,
447 const scalar tol = 1
e-6
455 const scalar curvature,
456 const label nAllowRefine,
466 const scalar planarCos,
467 const label nAllowRefine,
469 const label surfaceLevel,
471 const vector& surfaceNormal,
486 const scalar curvature,
487 const label nAllowRefine,
500 const bool allowBoundary,
548 const label ownPatch,
549 const label neiPatch,
584 const scalar minFaceArea,
585 const scalar maxNonOrtho,
592 const scalar volFraction,
602 const bool removeEdgeConnectedCells,
630 const scalar freeStandingAngle
672 const label surfZoneI,
673 const label ownRegion,
674 const label neiRegion,
702 const bool allowFreeStandingZoneFaces,
735 const bool useTopologicalSnapDetection,
736 const bool removeEdgeConnectedCells,
912 const bool keepZoneFaces,
913 const bool keepBaffles,
999 const scalar curvature,
1000 const scalar planarAngle,
1002 const bool featureRefinement,
1003 const bool featureDistanceRefinement,
1004 const bool internalRefinement,
1005 const bool surfaceRefinement,
1006 const bool curvatureRefinement,
1007 const bool smallFeatureRefinement,
1008 const bool gapRefinement,
1009 const bool bigGapRefinement,
1010 const bool spreadGapSize,
1011 const label maxGlobalCells,
1012 const label maxLocalCells
1025 const scalar maxLoadUnbalance
1035 const scalar maxLoadUnbalance
1048 const bool useTopologicalSnapDetection,
1049 const bool removeEdgeConnectedCells,
1064 const bool useTopologicalSnapDetection,
1065 const bool removeEdgeConnectedCells,
1067 const scalar planarAngle,
1080 const label nBufferLayers,
1150 const bool doInternalZones,
1151 const bool doBaffleZones
1161 const bool allowFreeStandingZoneFaces,
1174 const label insertPatchI,
1194 const word& masterPatch,
1195 const word& slavePatch,
1204 label& masterPatchID,
1205 label& slavePatchID,
1220 const vector& perturbVec,
1227 const vector& perturbVec,
1230 const label nRegions,
1313 const scalar minCos,
1314 const scalar concaveCos,
1315 const label mergeSize,
1323 const scalar minCos,
1324 const scalar concaveCos,
1358 const scalar minCos,
1462 template<
class Enum>
static writeType writeLevel_
Control of writing level.
bool isNormalGap(const scalar, const vector &, const vector &, const vector &, const vector &) const
Is local topology a small gap normal to the test vector.
const shellSurfaces & shells() const
Reference to refinement shells (regions)
autoPtr< mapPolyMesh > mergePoints(const labelList &pointToDuplicate)
Merge duplicate points.
void findCellZoneInsideWalk(const pointField &locationsInMesh, const labelList &zonesInMesh, const labelList &blockedFace, labelList &cellToZone) const
Finds zone per cell for cells inside region for which name.
const List< Tuple2< mapType, labelList > > & userFaceData() const
Additional face data that is maintained across.
void baffleAndSplitMesh(const bool handleSnapProblems, const snapParameters &snapParams, const bool useTopologicalSnapDetection, const bool removeEdgeConnectedCells, const scalarField &perpendicularAngle, const dictionary &motionDict, Time &runTime, const labelList &globalToMasterPatch, const labelList &globalToSlavePatch, const pointField &locationsInMesh, const wordList ®ionsInMesh, const pointField &locationsOutsideMesh)
Split off unreachable areas of mesh.
bool calcRegionToZone(const label surfZoneI, const label ownRegion, const label neiRegion, labelList ®ionToCellZone) const
Determines cell zone from cell region information.
label markPatchZones(const indirectPrimitivePatch &patch, const labelList &nMasterFaces, labelList &faceToZone) const
Determine per patch face the (singly-) connected zone it.
List< Tuple2< mapType, labelList > > & userFaceData()
Takes mesh with 'baffles' (= boundary faces sharing points). Determines for selected points on bounda...
autoPtr< mapPolyMesh > splitMesh(const label nBufferLayers, const labelList &globalToMasterPatch, const labelList &globalToSlavePatch, const pointField &locationsInMesh, const wordList ®ionsInMesh, const pointField &locationsOutsideMesh)
Split off (with optional buffer layers) unreachable areas.
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
faceZoneType
What to do with faceZone faces.
void dumpIntersections(const fileName &prefix) const
Debug: Write intersection information to OBJ format.
bool isCollapsedCell(const pointField &, const scalar volFraction, const label cellI) const
static void findRegions(const polyMesh &, const vector &perturbVec, const pointField &locationsInMesh, const pointField &locationsOutsideMesh, const label nRegions, labelList &cellRegion)
bool isCollapsedFace(const pointField &, const pointField &neiCc, const scalar minFaceArea, const scalar maxNonOrtho, const label faceI) const
autoPtr< mapPolyMesh > createBaffles(const labelList &ownPatch, const labelList &neiPatch)
Create baffle for every internal face where ownPatch != -1.
A class for handling words, derived from string.
A class for handling file names.
void getIntersections(const labelList &surfacesToTest, const pointField &neiCc, const labelList &testFaces, labelList &globalRegion1, labelList &globalRegion2) const
Calculate intersections. Return per face -1 or the global.
void calcCellCellRays(const pointField &neiCc, const labelList &neiLevel, const labelList &testFaces, pointField &start, pointField &end, labelList &minLevel) const
Calculate rays from cell-centre to cell-centre and corresponding.
void calcPatchNumMasterFaces(const PackedBoolList &isMasterFace, const indirectPrimitivePatch &patch, labelList &nMasterFaces) const
Determine per patch edge the number of master faces. Used.
static label findRegion(const polyMesh &, const labelList &cellRegion, const vector &perturbVec, const point &p)
Find region point is in. Uses optional perturbation to re-test.
Removes selected points from mesh and updates faces using these points.
A class for managing temporary objects.
labelList intersectedPoints() const
Get points on surfaces with intersection and boundary faces.
IOoutputType
Enumeration for what to output.
Given list of cells to remove insert all the topology changes.
label markFeatureRefinement(const pointField &keepPoints, const label nAllowRefine, labelList &refineCell, label &nRefine) const
Calculate list of cells to refine based on intersection of.
const scalar mergeDistance_
Tolerance used for sorting coordinates (used in 'less' routine)
labelList collectFaces(const labelList &candidateFaces, const labelHashSet &set) const
void handleSnapProblems(const snapParameters &snapParams, const bool useTopologicalSnapDetection, const bool removeEdgeConnectedCells, const scalarField &perpendicularAngle, const dictionary &motionDict, Time &runTime, const labelList &globalToMasterPatch, const labelList &globalToSlavePatch)
Remove any loose standing cells.
static writeType writeLevel()
Get/set write level.
void markBoundaryFace(const label faceI, boolList &isBoundaryFace, boolList &isBoundaryEdge, boolList &isBoundaryPoint) const
Helper function to mark face as being on 'boundary'. Used by.
labelList intersectedFaces() const
Get faces with intersection.
void markFeatureCellLevel(const pointField &keepPoints, labelList &maxFeatureLevel) const
Mark every cell with level of feature passing through it.
void printMeshInfo(const bool, const string &) const
Print some mesh stats.
label addFaceZone(const word &fzName, const word &masterPatch, const word &slavePatch, const surfaceZonesInfo::faceZoneType &fzType)
Add/lookup faceZone and update information. Return index of.
labelList getZones(const List< surfaceZonesInfo::faceZoneType > &fzTypes) const
Get zones of given type.
label markInternalGapRefinement(const scalar planarCos, const bool spreadGapSize, const label nAllowRefine, labelList &refineCell, label &nRefine, labelList &numGapCells, scalarField &gapSize) const
Mark cells for non-surface intersection based gap refinement.
Contains information about location on a triSurface:
Direct mesh changes based on v1.3 polyTopoChange syntax.
label countHits() const
Count number of intersections (local)
const labelList & surfaceIndex() const
Per start-end edge the index of the surface hit.
label markProximityRefinement(const scalar curvature, const label nAllowRefine, const labelList &neiLevel, const pointField &neiCc, labelList &refineCell, label &nRefine) const
Mark cells for surface proximity based refinement.
HashTable< surfaceZonesInfo::faceZoneType, word > faceZoneToType_
FaceZone to method to handle faces.
IOdebugType
Enumeration for what to debug.
bool checkProximity(const scalar planarCos, const label nAllowRefine, const label surfaceLevel, const vector &surfaceLocation, const vector &surfaceNormal, const label cellI, label &cellMaxLevel, vector &cellMaxLocation, vector &cellMaxNormal, labelList &refineCell, label &nRefine) const
Mark cell if local a gap topology or.
static const NamedEnum< IOoutputType, 1 > IOoutputTypeNames
static label appendPatch(fvMesh &, const label insertPatchI, const word &, const dictionary &)
Helper:append patch to end of mesh.
label markSmallFeatureRefinement(const scalar planarCos, const label nAllowRefine, const labelList &neiLevel, const pointField &neiCc, labelList &refineCell, label &nRefine) const
Refine cells containing small gaps.
label splitFacesUndo(const labelList &splitFaces, const labelPairList &splits, const dictionary &motionDict, labelList &duplicateFace, List< labelPair > &baffles)
Split faces along diagonal. Maintain mesh quality. Return.
const word oldInstance_
Instance of mesh upon construction. Used when in overwrite_ mode.
static const NamedEnum< IOwriteType, 4 > IOwriteTypeNames
labelList markFacesOnProblemCellsGeometric(const snapParameters &snapParams, const dictionary &motionDict, const labelList &globalToMasterPatch, const labelList &globalToSlavePatch) const
Returns list with for every internal face -1 or the patch.
autoPtr< mapDistributePolyMesh > balanceAndRefine(const string &msg, decompositionMethod &decomposer, fvMeshDistribute &distributor, const labelList &cellsToRefine, const scalar maxLoadUnbalance)
Balance before refining some cells.
static void calculateEdgeWeights(const polyMesh &mesh, const PackedBoolList &isMasterEdge, const labelList &meshPoints, const edgeList &edges, scalarField &edgeWeights, scalarField &invSumWeight)
Helper: calculate edge weights (1/length)
IOwriteType
Enumeration for what to write.
autoPtr< mapDistributePolyMesh > refineAndBalance(const string &msg, decompositionMethod &decomposer, fvMeshDistribute &distributor, const labelList &cellsToRefine, const scalar maxLoadUnbalance)
Refine some cells and rebalance.
const word & oldInstance() const
(points)instance of mesh upon construction
const bool overwrite_
Overwrite the mesh?
const fvMesh & mesh() const
Reference to mesh.
label unmarkInternalRefinement(labelList &refineCell, label &nRefine) const
Unmark cells for refinement based on limit-shells. Return number.
static label addPatch(fvMesh &, const word &name, const dictionary &)
Helper:add patch to mesh. Update all registered fields.
void doSplitFaces(const labelList &splitFaces, const labelPairList &splits, polyTopoChange &meshMod) const
Split faces into two.
static labelList getChangedFaces(const mapPolyMesh &, const labelList &oldCellsToRefine)
Find out which faces have changed given cells (old mesh labels)
mode_t mode(const fileName &)
Return the file mode.
Mesh consisting of general polyhedral cells.
static void updateList(const labelList &newToOld, const T &nullValue, List< T > &elems)
Helper: reorder list according to map.
static const NamedEnum< IOdebugType, 5 > IOdebugTypeNames
static List< labelPair > subsetBaffles(const polyMesh &mesh, const labelList &zoneIDs, const List< labelPair > &baffles)
Subset baffles according to zones.
label markInternalRefinement(const label nAllowRefine, labelList &refineCell, label &nRefine) const
Mark cells for refinement-shells based refinement.
labelList refineCandidates(const pointField &keepPoints, const scalar curvature, const scalar planarAngle, const bool featureRefinement, const bool featureDistanceRefinement, const bool internalRefinement, const bool surfaceRefinement, const bool curvatureRefinement, const bool smallFeatureRefinement, const bool gapRefinement, const bool bigGapRefinement, const bool spreadGapSize, const label maxGlobalCells, const label maxLocalCells) const
Calculate list of cells to refine.
const refinementSurfaces & surfaces_
All surface-intersection interaction.
labelList nearestPatch(const labelList &adaptPatchIDs) const
Returns list with for every face the label of the nearest.
autoPtr< mapPolyMesh > doRemoveCells(const labelList &cellsToRemove, const labelList &exposedFaces, const labelList &exposedPatchIDs, removeCells &cellRemover)
Remove cells. Put exposedFaces into exposedPatchIDs.
void makeConsistentFaceIndex(const labelList &zoneToNamedSurface, const labelList &cellToZone, labelList &namedSurfaceIndex) const
Make namedSurfaceIndex consistent with cellToZone.
void findCellZoneGeometric(const pointField &neiCc, const labelList &closedNamedSurfaces, labelList &namedSurfaceIndex, const labelList &surfaceToCellZone, labelList &cellToZone) const
Finds zone per cell for cells inside closed named surfaces.
label markSurfaceGapRefinement(const scalar planarCos, const label nAllowRefine, const labelList &neiLevel, const pointField &neiCc, labelList &refineCell, label &nRefine) const
Mark cells intersected by the surface if they are inside.
const shellSurfaces & limitShells_
All limit-refinement interaction.
Simple container to keep together snap specific information.
autoPtr< mapPolyMesh > splitMeshRegions(const labelList &globalToMasterPatch, const labelList &globalToSlavePatch, const pointField &locationsInMesh, const pointField &locationsOutsideMesh)
Split mesh. Keep part containing point. Return empty map if.
Encapsulates queries for volume refinement ('refine all cells within shell').
void findCellZoneTopo(const pointField &locationsInMesh, const labelList &allSurfaceIndex, const labelList &namedSurfaceIndex, const labelList &surfaceToCellZone, labelList &cellToZone) const
Finds zone per cell. Uses topological walk with all faces.
labelIOList surfaceIndex_
Per cc-cc vector the index of the surface hit.
word timeName() const
Replacement for Time::timeName() : return oldInstance (if.
wordList meshedPatches_
Meshed patches - are treated differently. Stored as wordList since.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Pre-declare SubField and related Field type.
label markSurfaceRefinement(const label nAllowRefine, const labelList &neiLevel, const pointField &neiCc, labelList &refineCell, label &nRefine) const
Mark cells for surface intersection based refinement.
static void checkCoupledFaceZones(const polyMesh &)
Helper function: check that face zones are synced.
mapType
Enumeration for how the userdata is to be mapped upon refinement.
static void reorderPatchFields(fvMesh &, const labelList &oldToNew)
Reorder patchfields of all fields on mesh.
const Map< label > & faceToCoupledPatch() const
For faces originating from processor faces store the original.
label markInternalDistanceToFeatureRefinement(const label nAllowRefine, labelList &refineCell, label &nRefine) const
Mark cells for distance-to-feature based refinement.
labelList meshedPatches() const
Get patchIDs for patches added in addMeshedPatch.
void mergeFreeStandingBaffles(const snapParameters &snapParams, const bool useTopologicalSnapDetection, const bool removeEdgeConnectedCells, const scalarField &perpendicularAngle, const scalar planarAngle, const dictionary &motionDict, Time &runTime, const labelList &globalToMasterPatch, const labelList &globalToSlavePatch, const pointField &locationsInMesh, const pointField &locationsOutsideMesh)
Merge free-standing baffles.
static bool markForRefine(const label markValue, const label nAllowRefine, label &cellValue, label &nRefine)
Mark cell for refinement (if not already marked). Return false.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
autoPtr< mapPolyMesh > doRemovePoints(removePoints &pointRemover, const boolList &pointCanBeDeleted)
Map< label > findEdgeConnectedProblemCells(const scalarField &perpendicularAngle, const labelList &) const
ClassName("meshRefinement")
Runtime type information.
labelList freeStandingBaffleFaces(const labelList &faceToZone, const labelList &cellToZone, const labelList &neiCellZone) const
Get all faces in faceToZone that have no cellZone on.
List< labelPair > freeStandingBaffles(const List< labelPair > &, const scalar freeStandingAngle) const
Extract those baffles (duplicate) faces that are on the edge.
hexRef8 meshCutter_
Refinement engine.
label mergeEdgesUndo(const scalar minCos, const dictionary &motionDict)
Merge edges, maintain mesh quality. Return global number.
void distribute(const mapDistributePolyMesh &)
Update local numbering for mesh redistribution.
static void collectAndPrint(const UList< point > &points, const UList< T > &data)
Print list according to (collected and) sorted coordinate.
void allocateInterRegionFaceZone(const label ownZone, const label neiZone, wordPairHashTable &zonesToFaceZone, HashTable< word, labelPair, labelPair::Hash<> > &) const
Allocate faceZoneName.
labelList getRefineCandidateFaces(const labelList &refineCell) const
Collect faces that are intersected and whose neighbours aren't.
autoPtr< mapPolyMesh > mergeZoneBaffles(const bool doInternalZones, const bool doBaffleZones)
Merge all baffles on faceZones.
A list of keyword definitions, which are a keyword followed by any number of values (e....
static autoPtr< indirectPrimitivePatch > makePatch(const polyMesh &, const labelList &)
Create patch from set of patches.
static int readFlags(const Enum &namedEnum, const wordList &)
Helper: convert wordList into bit pattern using provided.
gmvFile<< "tracers "<< particles.size()<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().x()<< ' ';}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().y()<< ' ';}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().z()<< ' ';}gmvFile<< nl;forAll(lagrangianScalarNames, i){ const word &name=lagrangianScalarNames[i];IOField< scalar > fld(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
Abstract base class for decomposition.
static void addPatchFields(fvMesh &, const word &patchFieldType)
Add patchfield of given type to all fields on mesh.
void testSyncBoundaryFaceList(const scalar mergeDistance, const string &, const UList< T > &, const UList< T > &) const
Compare two lists over all boundary faces.
void calcNeighbourData(labelList &neiLevel, pointField &neiCc) const
Calculate coupled boundary end vector and refinement level.
static void weightedSum(const polyMesh &mesh, const PackedBoolList &isMasterEdge, const labelList &meshPoints, const edgeList &edges, const scalarField &edgeWeights, const Field< Type > &data, Field< Type > &sum)
Helper: weighted sum (over all subset of mesh points) by.
Mesh data needed to do the Finite Volume discretisation.
label countMatches(const List< point > &normals1, const List< point > &normals2, const scalar tol=1e-6) const
Helper: count number of normals1 that are in normals2.
scalar mergeDistance() const
Mesh representing a set of points created from polyMesh.
fvMesh & mesh_
Reference to mesh.
label markSurfaceCurvatureRefinement(const scalar curvature, const label nAllowRefine, const labelList &neiLevel, const pointField &neiCc, labelList &refineCell, label &nRefine) const
Mark cells for surface curvature based refinement. Marks if.
const double e
Elementary charge.
void updateMesh(const mapPolyMesh &, const labelList &changedFaces)
Update for external change to mesh. changedFaces are in new mesh.
List< Tuple2< mapType, labelList > > userFaceData_
User supplied face based data.
const refinementFeatures & features_
All feature-edge interaction.
static PackedBoolList getMasterEdges(const polyMesh &mesh, const labelList &meshEdges)
Determine master edge for subset of edges. If coupled.
autoPtr< mapDistributePolyMesh > balance(const bool keepZoneFaces, const bool keepBaffles, const scalarField &cellWeights, decompositionMethod &decomposer, fvMeshDistribute &distributor)
Redecompose according to cell count.
void zonify(const bool allowFreeStandingZoneFaces, const pointField &locationsInMesh, const wordList &zonesInMesh, labelList &cellToZone, labelList &namedSurfaceIndex, PackedBoolList &posOrientation) const
Calculate cellZone allocation.
HashTable< word, word > faceZoneToMasterPatch_
FaceZone to master patch name.
void mergeGapInfo(const FixedList< label, 3 > &shellGapInfo, const volumeType shellGapMode, const FixedList< label, 3 > &surfGapInfo, const volumeType surfGapMode, FixedList< label, 3 > &gapInfo, volumeType &gapMode) const
Merge gap information coming from shell and from surface.
meshRefinement(const meshRefinement &)
Disallow default bitwise copy construct.
void setInstance(const fileName &)
Set instance of all local IOobjects.
label mergePatchFaces(const scalar minCos, const scalar concaveCos, const label mergeSize, const labelList &patchIDs)
Merge coplanar faces if sets are of size mergeSize.
void selectGapCandidates(const labelList &refineCell, const label nRefine, labelList &cellMap, List< FixedList< label, 3 > > &shellGapInfo, List< volumeType > &shellGapMode) const
Select candidate cells (cells inside a shell with gapLevel.
An STL-conforming hash table.
void selectSeparatedCoupledFaces(boolList &) const
Select coupled faces that are not collocated.
const refinementFeatures & features() const
Reference to feature edge mesh.
static T gAverage(const PackedBoolList &isMasterElem, const UList< T > &values)
Helper: calculate average.
const hexRef8 & meshCutter() const
Reference to meshcutting engine.
bool isGap(const scalar, const vector &, const vector &, const vector &, const vector &) const
Is local topology a small gap?
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
autoPtr< mapPolyMesh > dupNonManifoldBoundaryPoints()
Find boundary points that are on faceZones of type boundary.
Container with cells to refine. Refinement given as single direction.
static PackedBoolList getMasterPoints(const polyMesh &mesh, const labelList &meshPoints)
Determine master point for subset of points. If coupled.
labelList getInsideCells(const word &) const
Get cells which are inside any closed surface. Note that.
An ordered pair of two objects of type <T> with first() and second() elements.
Map< labelPair > getZoneBafflePatches(const bool allowBoundary, const labelList &globalToMasterPatch, const labelList &globalToSlavePatch) const
Get faces to repatch. Returns map from face to patch.
Refinement of (split) hexes using polyTopoChange.
autoPtr< mapPolyMesh > mergeBaffles(const List< labelPair > &, const Map< label > &faceToPatch)
Merge baffles. Gets pairs of faces and boundary faces to move.
label mergePatchFacesUndo(const scalar minCos, const scalar concaveCos, const labelList &patchIDs, const dictionary &motionDict, const labelList &preserveFaces)
Merge coplanar faces. preserveFaces is != -1 for faces.
Encapsulates queries for features.
label createBaffle(const label faceI, const label ownPatch, const label neiPatch, polyTopoChange &meshMod) const
Repatches external face or creates baffle for internal face.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
void findNearest(const labelList &meshFaces, List< pointIndexHit > &nearestInfo, labelList &nearestSurface, labelList &nearestRegion, vectorField &nearestNormal) const
void checkData()
Debugging: check that all faces still obey start()>end()
Helper class which maintains intersections of (changing) mesh with (static) surfaces.
autoPtr< mapPolyMesh > createZoneBaffles(const labelList &zoneIDs, List< labelPair > &baffles, labelList &originatingFaceZone)
Create baffles for faces on faceZones. Return created baffles.
bool write() const
Write mesh and all data.
dimensioned< Type > sum(const DimensionedField< Type, GeoMesh > &df)
label addMeshedPatch(const word &name, const dictionary &)
Add patch originating from meshing. Update meshedPatches_.
void storeData(const labelList &pointsToStore, const labelList &facesToStore, const labelList &cellsToStore)
Signal points/face/cells for which to store data.
static void testSyncPointList(const string &msg, const polyMesh &mesh, const List< scalar > &fld)
static outputType outputLevel()
Get/set output level.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
autoPtr< mapPolyMesh > doRestorePoints(removePoints &pointRemover, const labelList &facesToRestore)
void getBafflePatches(const labelList &globalToMasterPatch, const pointField &locationsInMesh, const wordList ®ionsInMesh, const labelList &neiLevel, const pointField &neiCc, labelList &ownPatch, labelList &neiPatch) const
Determine patches for baffles.
autoPtr< mapPolyMesh > refine(const labelList &cellsToRefine)
Refine some cells.
void updateIntersections(const labelList &changedFaces)
Find any intersection of surface. Store in surfaceIndex_.
void operator=(const meshRefinement &)
Disallow default bitwise assignment.
Class containing mesh-to-mesh mapping information after a mesh distribution where we send parts of me...
void consistentOrientation(const PackedBoolList &isMasterFace, const indirectPrimitivePatch &patch, const labelList &nMasterFaces, const labelList &faceToZone, const Map< label > &zoneToOrientation, PackedBoolList &meshFlipMap) const
Make faces consistent.
const shellSurfaces & shells_
All shell-refinement interaction.
autoPtr< mapPolyMesh > dupNonManifoldPoints()
Find boundary points that connect to more than one cell.
Container for data on surfaces used for surface-driven refinement. Contains all the data about the le...
autoPtr< mapPolyMesh > removeInsideCells(const string &msg, const label exposedPatchI)
Do all to remove inside cells.
static outputType outputLevel_
Control of output/log level.
static tmp< pointVectorField > makeDisplacementField(const pointMesh &pMesh, const labelList &adaptPatchIDs)
Helper function to make a pointVectorField with correct.
Sends/receives parts of mesh+fvfields to neighbouring processors. Used in load balancing.
HashTable< word, word > faceZoneToSlavePatch_
FaceZone to slave patch name.
Database for solution data, solver performance and other reduced data.
labelList growFaceCellFace(const labelHashSet &set) const
Map< label > faceToCoupledPatch_
Original patch for baffle faces that used to be on.
label generateRays(const point &nearPoint, const vector &nearNormal, const FixedList< label, 3 > &gapInfo, const volumeType &mode, const label cLevel, DynamicField< point > &start, DynamicField< point > &end) const
Generate single ray from nearPoint in direction of nearNormal.
word name(const complex &)
Return a string representation of a complex.
bool getFaceZoneInfo(const word &fzName, label &masterPatchID, label &slavePatchID, surfaceZonesInfo::faceZoneType &fzType) const
Lookup faceZone information. Return false if no information.
labelList markFacesOnProblemCells(const dictionary &motionDict, const bool removeEdgeConnectedCells, const scalarField &perpendicularAngle, const labelList &globalToMasterPatch) const
Returns list with for every internal face -1 or the patch.
bool overwrite() const
Overwrite the mesh?
A list of faces which address into the list of points.
labelList & surfaceIndex()
void dumpRefinementLevel() const
Write refinement level as volScalarFields for postprocessing.
const refinementSurfaces & surfaces() const
Reference to surface search engines.