Go to the documentation of this file.
36 #ifndef refineBoundaryLayers_H
37 #define refineBoundaryLayers_H
155 const label transpose =
false
164 const label transpose =
false
182 const bool reverseOrientation,
183 const label normalDirection,
184 const bool maxCoordinate,
185 const label nLayersI,
186 const label nLayersJ,
187 const label nLayersK,
363 const word& patchName,
371 const word& patchName,
372 const scalar thicknessRatio
378 const word& patchName,
379 const scalar maxThickness
void determineFacesInDirections()
populate faceInDirection_nad wrongFaceOrientation_
void determineFacesInDirections()
populate faceInDirection_nad wrongFaceOrientation_
scalar globalThicknessRatio_
global thickness ratio
VRWGraph newFaces_
a graph containing faces after layer refinement
void generateMissingFaces()
generate new internal faces and tore them to new cells
VRWGraph splitEdgesAtPoint_
split edges at point
void refineLayers()
performs refinement based on the given settings
void generateNewFaces()
map split edges onto a cell
const label cellI_
label of cell
void setGlobalThicknessRatio(const scalar thicknessRatio)
set the global thickness ratio (default is 1)
void pointsInBndLayer(labelLongList &)
provide the list of points in the boundary layer
FixedList< label, 3 > splitEdgeInDirection_
split edge in directions
A class for handling words, derived from string.
void refineFace(const face &f, const FixedList< label, 2 > &nLayersInDirection, DynList< DynList< label, 4 >, 128 > &newFaces)
const meshSurfaceEngine & surfaceEngine() const
Return reference to meshSurfaceEngine.
label nLayersK_
number of cells in local direction k
bool is2DMesh_
a flag whether a 2D mesh generation is active or not
const DynList< DynList< DynList< label, 4 >, 6 >, 256 > & newCells() const
meshSurfaceEngine * msePtr_
pointer to mesh surface engine
Calculates surface of the mesh.
refineEdgeHexCell(const label cellI, const refineBoundaryLayers &ref)
construct from cell label and the refineBoundaryLayers
void sortFaceFaces(const label faceI, DynList< DynList< label > > &faceFaces, const label transpose=false) const
void sortFacePoints(const label faceI, DynList< DynList< label > > &facePoints, const label transpose=false) const
void operator=(const refineBoundaryLayers &)
Disallow bitwise assignment.
LongList< edge > splitEdges_
a list of edges which shall be refined
std::map< word, scalar > maxThicknessForPatch_
local maximum layer thickness for selected patches
std::map< word, label > numLayersForPatch_
number of boundary layers for user-selected patches
refineBoundaryLayers(const refineBoundaryLayers &)
Disallow bitwise copy construct.
std::map< word, scalar > thicknessRatioForPatch_
local thickness ratio for selected patches
void generateNewVertices()
generate new points on edges, faces and in cells
void setMaxThicknessOfFirstLayerForPatch(const word &patchName, const scalar maxThickness)
set the maximum thickness of the first layer for a patch
void setGlobalNumberOfLayers(const label nLayers)
set the global number of boundary layers
DynList< DynList< DynList< label, 4 >, 6 >, 256 > cellsFromCell_
container for new cells
void activateSpecialMode()
std::set< word > discontinuousLayersForPatch_
allow discontinuous layers for patch
label nLayersI_
number of cells in local direction i
labelList nLayersAtBndFace_
FixedList< DynList< DynList< label > >, 6 > facePoints_
points on cross-split faces
label nLayersI_
number of cells in local direction i
DynList< DynList< DynList< label > > > cellPoints_
points inside the cell
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
void populateExistingFaces()
FixedList< bool, 6 > faceOrientation_
bool done_
check whether the refinement is already executed
void generateNewPoints()
generate missing points inside the cell
DynList< DynList< DynList< label, 4 >, 6 >, 256 > cellsFromCell_
container for new cells
FixedList< label, 6 > faceInDirection_
faces sorted into directions of a hex shape
FixedList< label, 6 > faceInDirection_
faces sorted into directions of a hex shape
List< DynList< label > > layerAtPatch_
label nLayersJ_
number of cells in local direction j
const DynList< DynList< DynList< label, 4 >, 6 >, 256 > & newCells() const
void setNumberOfLayersForPatch(const word &patchName, const label nLayers)
const label cellI_
label of cell
A list of keyword definitions, which are a keyword followed by any number of values (e....
label globalNumLayers_
global number of boundary layers
void setThicknessRatioForPatch(const word &patchName, const scalar thicknessRatio)
const refineBoundaryLayers & bndLayers_
reference to the boundary layer class
void setCellSubset(const word subsetName="layerCells")
set the flag to store the boundary layer cells in a subset
scalar globalMaxThicknessFirstLayer_
global maximum thickness of the first layer
FixedList< bool, 6 > faceOrientation_
bool analyseLayers()
analyse layers to check their topology
void setGlobalMaxThicknessOfFirstLayer(const scalar maxThickness)
set the maximum thickness of the first boundary layer
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
refineCornerHexCell(const label cellI, const refineBoundaryLayers &ref)
construct from cell label and the refineBoundaryLayers
List< DynList< word > > patchesInLayer_
which patches are part of a single layer
void storeFacesIntoCells(const label faceI, const bool reverseOrientation, const label normalDirection, const bool maxCoordinate, const label nLayersI, const label nLayersJ, const label nLayersK, DynList< DynList< DynList< label, 4 >, 6 >, 256 > &cellsFromCell) const
void generateNewCells()
generate new cells and add them to the mesh
void setInteruptForPatch(const word &patchName)
label nLayersJ_
number of cells in locatiol direction j
A face is a list of labels corresponding to mesh vertices.
void generateNewCellsPrism(const label cellI, DynList< DynList< DynList< label, 8 >, 10 >, 64 > &cellsFromCell) const
generate new cells for a prism with one boundary face
void activate2DMode()
activate 2D layer refinement
FixedList< DynList< DynList< label > >, 2 > cellPoints_
points on cross-split faces
static void readSettings(const dictionary &, refineBoundaryLayers &)
read the settings from dictionary
const refineBoundaryLayers & bndLayers_
const reference to the boundary layer class
void avoidRefinement()
set no refinement flag
polyMeshGen & mesh_
Reference to the mesh.
void generateMissingFaces()
generate new internal faces and tore them to new cells
VRWGraph newVerticesForSplitEdge_
new vertices for on edges which shall be refined
void populateExistingFaces()