Data Structures | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
refineBoundaryLayers Class Reference
Collaboration diagram for refineBoundaryLayers:
Collaboration graph
[legend]

Data Structures

class  refineCornerHexCell
 
class  refineEdgeHexCell
 

Public Member Functions

 refineBoundaryLayers (polyMeshGen &mesh)
 Construct from mesh reference. More...
 
 ~refineBoundaryLayers ()
 
void avoidRefinement ()
 set no refinement flag More...
 
void activate2DMode ()
 activate 2D layer refinement More...
 
void setGlobalNumberOfLayers (const label nLayers)
 set the global number of boundary layers More...
 
void setGlobalThicknessRatio (const scalar thicknessRatio)
 set the global thickness ratio (default is 1) More...
 
void setGlobalMaxThicknessOfFirstLayer (const scalar maxThickness)
 set the maximum thickness of the first boundary layer More...
 
void setNumberOfLayersForPatch (const word &patchName, const label nLayers)
 
void setThicknessRatioForPatch (const word &patchName, const scalar thicknessRatio)
 
void setMaxThicknessOfFirstLayerForPatch (const word &patchName, const scalar maxThickness)
 set the maximum thickness of the first layer for a patch More...
 
void setInteruptForPatch (const word &patchName)
 
void setCellSubset (const word subsetName="layerCells")
 set the flag to store the boundary layer cells in a subset More...
 
void activateSpecialMode ()
 
void refineLayers ()
 performs refinement based on the given settings More...
 
void pointsInBndLayer (labelLongList &)
 provide the list of points in the boundary layer More...
 
void pointsInBndLayer (const word subsetName="pointsInBndLayer")
 create a subset containing points in the boundary layer More...
 

Static Public Member Functions

static void readSettings (const dictionary &, refineBoundaryLayers &)
 read the settings from dictionary More...
 

Private Member Functions

const meshSurfaceEnginesurfaceEngine () const
 Return reference to meshSurfaceEngine. More...
 
bool analyseLayers ()
 analyse layers to check their topology More...
 
void generateNewVertices ()
 generate new points on edges, faces and in cells More...
 
void refineFace (const face &f, const FixedList< label, 2 > &nLayersInDirection, DynList< DynList< label, 4 >, 128 > &newFaces)
 
void sortFacePoints (const label faceI, DynList< DynList< label > > &facePoints, const label transpose=false) const
 
void sortFaceFaces (const label faceI, DynList< DynList< label > > &faceFaces, const label transpose=false) const
 
void generateNewFaces ()
 map split edges onto a cell More...
 
void generateNewCellsPrism (const label cellI, DynList< DynList< DynList< label, 8 >, 10 >, 64 > &cellsFromCell) const
 generate new cells for a prism with one boundary face More...
 
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 More...
 
 refineBoundaryLayers (const refineBoundaryLayers &)
 Disallow bitwise copy construct. More...
 
void operator= (const refineBoundaryLayers &)
 Disallow bitwise assignment. More...
 

Private Attributes

polyMeshGenmesh_
 Reference to the mesh. More...
 
meshSurfaceEnginemsePtr_
 pointer to mesh surface engine More...
 
label globalNumLayers_
 global number of boundary layers More...
 
scalar globalThicknessRatio_
 global thickness ratio More...
 
scalar globalMaxThicknessFirstLayer_
 global maximum thickness of the first layer More...
 
std::map< word, labelnumLayersForPatch_
 number of boundary layers for user-selected patches More...
 
std::map< word, scalar > thicknessRatioForPatch_
 local thickness ratio for selected patches More...
 
std::map< word, scalar > maxThicknessForPatch_
 local maximum layer thickness for selected patches More...
 
std::set< worddiscontinuousLayersForPatch_
 allow discontinuous layers for patch More...
 
word cellSubsetName_
 
bool done_
 check whether the refinement is already executed More...
 
bool is2DMesh_
 a flag whether a 2D mesh generation is active or not More...
 
bool specialMode_
 
List< DynList< label > > layerAtPatch_
 
List< DynList< word > > patchesInLayer_
 which patches are part of a single layer More...
 
labelList nLayersAtBndFace_
 
LongList< edgesplitEdges_
 a list of edges which shall be refined More...
 
VRWGraph splitEdgesAtPoint_
 split edges at point More...
 
VRWGraph newVerticesForSplitEdge_
 new vertices for on edges which shall be refined More...
 
VRWGraph facesFromFace_
 
VRWGraph newFaces_
 a graph containing faces after layer refinement More...
 

Detailed Description

Definition at line 59 of file refineBoundaryLayers.H.

Constructor & Destructor Documentation

◆ refineBoundaryLayers() [1/2]

Disallow bitwise copy construct.

◆ refineBoundaryLayers() [2/2]

Construct from mesh reference.

Definition at line 49 of file refineBoundaryLayers.C.

◆ ~refineBoundaryLayers()

Definition at line 74 of file refineBoundaryLayers.C.

References Foam::deleteDemandDrivenData(), and refineBoundaryLayers::msePtr_.

Here is the call graph for this function:

Member Function Documentation

◆ surfaceEngine()

const meshSurfaceEngine & surfaceEngine ( ) const
private

◆ analyseLayers()

bool analyseLayers ( )
private

analyse layers to check their topology

get the hair edges

create point to split edges addressing

check if the layer is valid

create patch name to index addressing

check layer labels over a patch

set the information which patches have an extruded layer

set the information which patches are a single boundary layer face

set the number of boundary layers for each patch

find the maximum requested number of layers over the layer

check if the layer is interrupted at this patch

set the number of layers and lock this location

take the maximum number of layers

apply the global value if no local values exist

apply the maximum number of ayer of all unprotected patches

mark empty patches as already used

perform reduction over all processors

set the number of boundary layers which shall be generated above each boundary face

Definition at line 57 of file refineBoundaryLayersFunctions.C.

References polyMeshGenFaces::boundaries(), meshSurfaceEngine::boundaryFacePatches(), meshSurfaceEngine::boundaryFaces(), refineBoundaryLayers::discontinuousLayersForPatch_, Foam::endl(), detectBoundaryLayers::faceInLayer(), forAll, refineBoundaryLayers::globalNumLayers_, detectBoundaryLayers::hairEdges(), Foam::Info, refineBoundaryLayers::is2DMesh_, refineBoundaryLayers::layerAtPatch_, Foam::max(), meshSurfaceEngine::mesh(), refineBoundaryLayers::mesh_, detectBoundaryLayers::nDistinctLayers(), Foam::nl, refineBoundaryLayers::nLayersAtBndFace_, refineBoundaryLayers::numLayersForPatch_, p, refineBoundaryLayers::patchesInLayer_, polyMeshGenPoints::points(), Foam::Pout, Foam::reduce(), VRWGraph::reverseAddressing(), List::setSize(), List::size(), LongList< T, Offset >::size(), VRWGraph::sizeOfRow(), refineBoundaryLayers::specialMode_, refineBoundaryLayers::splitEdges_, refineBoundaryLayers::splitEdgesAtPoint_, refineBoundaryLayers::surfaceEngine(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), Vector< Cmpt >::z(), polyMeshGen2DEngine::zMaxPoints(), and polyMeshGen2DEngine::zMinPoints().

Referenced by refineBoundaryLayers::refineLayers().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ generateNewVertices()

void generateNewVertices ( )
private

generate new points on edges, faces and in cells

allocate the data from storing parameters applying to a split edge

count the number of vertices for each split edge

start counting vertices at each thread

get the requested number of boundary layers

overrride the global value with the maximum number of layers at this edge

override with the maximum ratio

override with the minimum thickness set for this edge

store the information

transfer the information over all processor for edges at inter-processor boundaries

exchange point number of layers

exchange the number of layers

exchange number of nodes at split edge

exchange number of layers

exchange thickness ratio

exchange maximum thickness of the first layer

calculate the number of additional vertices which will be generated on edges of the mesh

allocate the space in a graph storing ids of points on a split edge

calculate the number of points which will be generated on split edges

generate vertices on split edges

generate vertices for this edge

generate the new vertex

set the number of layers to 2

Definition at line 322 of file refineBoundaryLayersFunctions.C.

References polyMeshGenCells::addressingData(), polyMeshGenFaces::boundaries(), meshSurfaceEngine::boundaryFacePatches(), meshSurfaceEngine::boundaryFaces(), meshSurfaceEngine::bp(), LongList< T, Offset >::clear(), Foam::e, polyMeshGenAddressing::edgeAtProcs(), polyMeshGenAddressing::edgeNeiProcs(), polyMeshGenAddressing::edges(), Foam::endl(), Foam::help::exchangeMap(), Pair::first(), forAll, forAllRow, polyMeshGenAddressing::globalEdgeLabel(), refineBoundaryLayers::globalMaxThicknessFirstLayer_, refineBoundaryLayers::globalThicknessRatio_, polyMeshGenAddressing::globalToLocalEdgeAddressing(), Foam::Info, Foam::mag(), Foam::max(), refineBoundaryLayers::maxThicknessForPatch_, refineBoundaryLayers::mesh_, Foam::min(), UPstream::myProcNo(), refineBoundaryLayers::newVerticesForSplitEdge_, refineBoundaryLayers::nLayersAtBndFace_, nPoints, UPstream::nProcs(), UPstream::parRun(), polyMeshGenAddressing::pointEdges(), meshSurfaceEngine::pointFaces(), points, polyMeshGenPoints::points(), Foam::pos(), Foam::help::positionOfEdgeInFace(), Foam::Pout, Foam::pow(), Foam::returnReduce(), s(), labelledScalar::scalarLabel(), Pair::second(), DynList< T, staticSize >::setSize(), VRWGraph::setSizeAndRowSize(), LongList< T, Offset >::size(), VRWGraph::sizeOfRow(), refineBoundaryLayers::specialMode_, refineBoundaryLayers::splitEdges_, refineBoundaryLayers::splitEdgesAtPoint_, edge::start(), refineBoundaryLayers::surfaceEngine(), refineBoundaryLayers::thicknessRatioForPatch_, and labelledScalar::value().

Referenced by refineBoundaryLayers::refineLayers().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ refineFace()

void refineFace ( const face f,
const FixedList< label, 2 > &  nLayersInDirection,
DynList< DynList< label, 4 >, 128 > &  newFaces 
)
private

refine a given face and return the new faces generates new points at cross-split faces

this face must be a quad

direction 0 represents edges 0 and 2 direction 1 represents edges 1 and 3

this face may comprise of some split edges

add the current point label

check if a split edge matches this face edge

check the orientation and add new vertices created on this edge

check which face edge is a direction 0 and which one is a direction 1

in case of only one refinement direction, it must direction 0

alternate value to preserve correct face orientation

permutate the number of refinements in each direction

map the face onto a matrix for easier orientation

add points in the matrix

create missing vertices if there are any

calculate the coordinates of the missing point via transfinite interpolation

add the vertex to the mesh

Finally, create the faces

create quad face

add additional points on edge

add additional points on edge

Definition at line 48 of file refineBoundaryLayersFaces.C.

References Foam::abort(), Foam::add(), DynList< T, staticSize >::append(), List::append(), Foam::e, edge::end(), Foam::endl(), f(), Foam::FatalError, FatalErrorIn, Pair::first(), forAll, forAllRow, Foam::mag(), points, Foam::Pout, s(), Pair::second(), DynList< T, staticSize >::setSize(), List::size(), edge::start(), and WarningIn.

Referenced by refineBoundaryLayers::generateNewFaces().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sortFacePoints()

void sortFacePoints ( const label  faceI,
DynList< DynList< label > > &  facePoints,
const label  transpose = false 
) const
private

generate a matrix of points generated by splitting a face and return them in the local i, j system of the face

orientation of new faces is the same as the face itself start the procedure by finding the number of splits in both i and j direction

start filling in the matrix

this situation exists on inter-processor boundaries on neighbour processor. i and j coordinates are reversed

start filling in the matrix

Definition at line 445 of file refineBoundaryLayersFaces.C.

References Foam::endl(), f(), forAll, forAllRow, UPstream::parRun(), Foam::pos(), Foam::Pout, and DynList< T, staticSize >::setSize().

Referenced by refineBoundaryLayers::generateNewFaces().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sortFaceFaces()

void sortFaceFaces ( const label  faceI,
DynList< DynList< label > > &  faceFaces,
const label  transpose = false 
) const
private

generate a matrix of faces generated by splitting a face and return them in the local i, j, system of the face

orientation of new faces is the same as the face itself start the procedure by finding the number of splits in both i and j direction

start filling in the matrix

this situation exists on inter-processor boundaries on neighbour processor. i and j coordinates are reversed

start filling in the matrix

Definition at line 668 of file refineBoundaryLayersFaces.C.

References Foam::endl(), f(), forAll, forAllRow, UPstream::parRun(), Foam::pos(), Foam::Pout, and DynList< T, staticSize >::setSize().

Here is the call graph for this function:

◆ generateNewFaces()

void generateNewFaces ( )
private

map split edges onto a cell

generate new boundary and inter-processor faces

mesh data

container for faces

split internal faces

only quad faces can be split

check if there exist an edge of the face at the boundary

this edge is attached to the boundary get the number of layers for neighbouring cells

set the number of layers for the given direction

refine the face

store decomposed faces

refine boundary faces where needed it is required in locations where two or three layers intersect

only quad faces can be split

check whether this face shall be refined and in which directions

get the neighbour face over the edge

faces cannot be in the same layer

set the refinement direction for this face

refine the face

store the refined faces

refine faces at interprocessor boundaries

exchange information about the number of splits to other processors

this edge is attached to the boundary get the number of layers for neighbouring cell

add the data to the list for sending

add face label, direction and the number of splits

receive data from other procesors

get the data sent from the neighbour processor

perform splitting

this face is not split

split the face and add the faces to the list

this processor owns this patch

add faces

reverse the face before splitting

Definition at line 815 of file refineBoundaryLayersFaces.C.

References LongList< T, Offset >::append(), VRWGraph::append(), VRWGraph::appendList(), UPstream::blocking, polyMeshGenFaces::boundaries(), meshSurfaceEngine::boundaryFacePatches(), meshSurfaceEngine::boundaryFaces(), meshSurfaceEngine::boundaryPointEdges(), meshSurfaceEngine::bp(), LongList< T, Offset >::byteSize(), VRWGraph::clear(), DynList< T, staticSize >::contains(), meshSurfaceEngine::edgeFaces(), meshSurfaceEngine::edges(), Foam::endl(), f(), meshSurfaceEngine::faceEdges(), polyMeshGenFaces::faces(), refineBoundaryLayers::facesFromFace_, forAll, forAllRow, Foam::Info, refineBoundaryLayers::layerAtPatch_, Foam::max(), refineBoundaryLayers::mesh_, UPstream::myProcNo(), refineBoundaryLayers::newFaces_, polyMeshGenFaces::nInternalFaces(), Foam::nl, refineBoundaryLayers::nLayersAtBndFace_, UPstream::nProcs(), polyMeshGenFaces::owner(), p, UPstream::parRun(), polyMeshGenPoints::points(), Foam::Pout, polyMeshGenFaces::procBoundaries(), refineBoundaryLayers::refineFace(), Foam::returnReduce(), Foam::help::reverseFace(), VRWGraph::setSize(), faceListPMG::size(), pointFieldPMG::size(), List::size(), DynList< T, staticSize >::size(), VRWGraph::size(), VRWGraph::sizeOfRow(), refineBoundaryLayers::sortFacePoints(), edge::start(), and refineBoundaryLayers::surfaceEngine().

Referenced by refineBoundaryLayers::refineLayers().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ generateNewCellsPrism()

void generateNewCellsPrism ( const label  cellI,
DynList< DynList< DynList< label, 8 >, 10 >, 64 > &  cellsFromCell 
) const
private

generate new cells for a prism with one boundary face

find the number of lyers for this cell

set the number of layers

distribute existing faces into new cells

generate missing faces

create new face from points at the same height

add faces to cells

Definition at line 43 of file refineBoundaryLayersCells.C.

References Foam::abort(), DynList< T, staticSize >::append(), List::append(), Foam::constant::universal::c, DynList< T, staticSize >::containsAtPosition(), Foam::e, edge::end(), Foam::endl(), f(), Foam::FatalError, forAll, forAllRow, Foam::max(), Foam::pos(), Foam::Pout, Foam::help::reverseFace(), edge::start(), and face::which().

Referenced by refineBoundaryLayers::generateNewCells().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ storeFacesIntoCells()

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
private

a helper function which stores faces generated from an existing face into new cells

k is const

j is const

i is const

store the face into a new cell

Definition at line 226 of file refineBoundaryLayersCells.C.

References Foam::endl(), forAll, k, Foam::min(), and Foam::Pout.

Here is the call graph for this function:

◆ generateNewCells()

void generateNewCells ( )
private

generate new cells and add them to the mesh

calculate the number new cells generated from a cell

add cells which shall be refined in a subset

check the number of cells which will be generated

create mesh modifier

set the number of cells to the new value

start creating new cells store the information which new cells were generated from an existing cell

this cell is not refined update face labels

copy the new faces of this cell

update the cell

generate new cells from this prism refined in one direction

find face labels for this cell

generate new cell from a hex cell where two layers intersect generate mostly hex cells;

find face labels for this cell

generate new cells from a hex at a corner where three layers intersect generate mostly hex cells

new points have been generated

recognise face cells in the graph of new faces

find face labels for this cell

check the orientation of new faces, because owner and neighbour cells may require a face to be flipped

find the new owner and neighbour cells of the new face

update cell sets

point-faces addressing is not needed any more

copy newFaces to the mesh

store internal faces originating from existing faces

store newly-generated internal faces

store new boundary faces

update the new label

copy the face into the mesh

update patch

copy faces at inter-processor boundaries

update the new label

copy the face into the mesh

update patch

update face subsets

update cells to match the faces

delete all adressing which is no longer up-to-date

Definition at line 1325 of file refineBoundaryLayersCells.C.

References Foam::abort(), polyMeshGenCells::addCellSubset(), polyMeshGenCells::addCellToSubset(), DynList< T, staticSize >::append(), VRWGraph::append(), VRWGraph::appendList(), Foam::help::areFacesEqual(), polyMeshGenModifier::boundariesAccess(), Foam::constant::universal::c, cells, polyMeshGenCells::cells(), polyMeshGenModifier::cellsAccess(), polyMeshGenCells::cellSubsetIndex(), refineBoundaryLayers::cellSubsetName_, polyMeshGenModifier::clearAll(), DynList< T, staticSize >::containsAtPosition(), Foam::deleteDemandDrivenData(), Foam::e, Foam::endl(), Foam::exit(), f(), meshSurfaceEngine::faceOwners(), polyMeshGenModifier::facesAccess(), refineBoundaryLayers::facesFromFace_, Foam::FatalError, FatalErrorIn, forAll, forAllRow, refineBoundaryLayers::generateNewCellsPrism(), Foam::Info, refineBoundaryLayers::mesh_, refineBoundaryLayers::msePtr_, UPstream::myProcNo(), polyMeshGenFaces::neighbour(), refineBoundaryLayers::refineEdgeHexCell::newCells(), refineBoundaryLayers::refineCornerHexCell::newCells(), refineBoundaryLayers::newFaces_, polyMeshGenFaces::nInternalFaces(), refineBoundaryLayers::nLayersAtBndFace_, UPstream::nProcs(), polyMeshGenFaces::owner(), UPstream::parRun(), polyMeshGenPoints::points(), Foam::pos(), Foam::help::positionInList(), Foam::Pout, polyMeshGenModifier::procBoundariesAccess(), Foam::returnReduce(), VRWGraph::reverseAddressing(), Foam::help::reverseFace(), VRWGraph::setRow(), faceListPMG::setSize(), DynList< T, staticSize >::setSize(), VRWGraph::setSize(), cellListPMG::size(), faceListPMG::size(), pointFieldPMG::size(), List::size(), DynList< T, staticSize >::size(), VRWGraph::size(), VRWGraph::sizeOfRow(), refineBoundaryLayers::surfaceEngine(), polyMeshGenCells::updateCellSubsets(), polyMeshGenFaces::updateFaceSubsets(), and Foam::Warning.

Referenced by refineBoundaryLayers::refineLayers().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=()

void operator= ( const refineBoundaryLayers )
private

Disallow bitwise assignment.

◆ avoidRefinement()

void avoidRefinement ( )

set no refinement flag

Definition at line 81 of file refineBoundaryLayers.C.

References refineBoundaryLayers::done_, Foam::exit(), Foam::FatalError, FatalErrorIn, refineBoundaryLayers::globalNumLayers_, and refineBoundaryLayers::numLayersForPatch_.

Referenced by refineBoundaryLayers::readSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ activate2DMode()

void activate2DMode ( )

activate 2D layer refinement

Definition at line 95 of file refineBoundaryLayers.C.

References refineBoundaryLayers::done_, Foam::exit(), Foam::FatalError, FatalErrorIn, and refineBoundaryLayers::is2DMesh_.

Referenced by cartesian2DMeshGenerator::refBoundaryLayers().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setGlobalNumberOfLayers()

void setGlobalNumberOfLayers ( const label  nLayers)

set the global number of boundary layers

Definition at line 108 of file refineBoundaryLayers.C.

References refineBoundaryLayers::done_, Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorIn, refineBoundaryLayers::globalNumLayers_, and WarningIn.

Referenced by refineBoundaryLayers::readSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setGlobalThicknessRatio()

void setGlobalThicknessRatio ( const scalar  thicknessRatio)

set the global thickness ratio (default is 1)

Definition at line 132 of file refineBoundaryLayers.C.

References refineBoundaryLayers::done_, Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorIn, refineBoundaryLayers::globalThicknessRatio_, and WarningIn.

Referenced by refineBoundaryLayers::readSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setGlobalMaxThicknessOfFirstLayer()

void setGlobalMaxThicknessOfFirstLayer ( const scalar  maxThickness)

set the maximum thickness of the first boundary layer

Definition at line 156 of file refineBoundaryLayers.C.

References Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorIn, and WarningIn.

Referenced by refineBoundaryLayers::readSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setNumberOfLayersForPatch()

void setNumberOfLayersForPatch ( const word patchName,
const label  nLayers 
)

set the number of layers for a patch the settings override the global settings

Definition at line 185 of file refineBoundaryLayers.C.

References Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorIn, forAll, and WarningIn.

Referenced by refineBoundaryLayers::readSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setThicknessRatioForPatch()

void setThicknessRatioForPatch ( const word patchName,
const scalar  thicknessRatio 
)

set the thickness ratio for a patch it overrides the global settings

Definition at line 218 of file refineBoundaryLayers.C.

References Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorIn, forAll, and WarningIn.

Referenced by refineBoundaryLayers::readSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setMaxThicknessOfFirstLayerForPatch()

void setMaxThicknessOfFirstLayerForPatch ( const word patchName,
const scalar  maxThickness 
)

set the maximum thickness of the first layer for a patch

Definition at line 254 of file refineBoundaryLayers.C.

References Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorIn, forAll, and WarningIn.

Referenced by refineBoundaryLayers::readSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setInteruptForPatch()

void setInteruptForPatch ( const word patchName)

set whether the settings for a given patch are valid for the patch only, or whether they extend over th whole sheet the selected patch belongs to the default behaviour is to apply the patch settings to the whole sheet

Definition at line 289 of file refineBoundaryLayers.C.

References refineBoundaryLayers::discontinuousLayersForPatch_, refineBoundaryLayers::done_, Foam::exit(), Foam::FatalError, FatalErrorIn, polyMeshGenFaces::findPatches(), forAll, polyMeshGenFaces::getPatchName(), and refineBoundaryLayers::mesh_.

Referenced by refineBoundaryLayers::readSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setCellSubset()

void setCellSubset ( const word  subsetName = "layerCells")

set the flag to store the boundary layer cells in a subset

Definition at line 308 of file refineBoundaryLayers.C.

References refineBoundaryLayers::cellSubsetName_, refineBoundaryLayers::done_, Foam::exit(), Foam::FatalError, and FatalErrorIn.

Here is the call graph for this function:

◆ activateSpecialMode()

void activateSpecialMode ( )

this flag refinement of a layer into a single one matching the thickness of the n layers. This functionality is intended to create additional layer that shall be improved by the boundary layer smoother in order to leave the inside points intact

Definition at line 321 of file refineBoundaryLayers.C.

References refineBoundaryLayers::specialMode_.

Referenced by meshOptimizer::optimizeBoundaryLayer().

Here is the caller graph for this function:

◆ refineLayers()

void refineLayers ( )

◆ pointsInBndLayer() [1/2]

void pointsInBndLayer ( labelLongList layerPoints)

◆ pointsInBndLayer() [2/2]

void pointsInBndLayer ( const word  subsetName = "pointsInBndLayer")

create a subset containing points in the boundary layer

Definition at line 392 of file refineBoundaryLayers.C.

References polyMeshGenPoints::addPointSubset(), polyMeshGenPoints::addPointToSubset(), forAll, forAllRow, refineBoundaryLayers::mesh_, refineBoundaryLayers::newVerticesForSplitEdge_, and polyMeshGenPoints::pointSubsetIndex().

Here is the call graph for this function:

◆ readSettings()

void readSettings ( const dictionary meshDict,
refineBoundaryLayers refLayers 
)
static

Field Documentation

◆ mesh_

polyMeshGen& mesh_
private

◆ msePtr_

meshSurfaceEngine* msePtr_
mutableprivate

◆ globalNumLayers_

label globalNumLayers_
private

◆ globalThicknessRatio_

scalar globalThicknessRatio_
private

global thickness ratio

Definition at line 71 of file refineBoundaryLayers.H.

Referenced by refineBoundaryLayers::generateNewVertices(), and refineBoundaryLayers::setGlobalThicknessRatio().

◆ globalMaxThicknessFirstLayer_

scalar globalMaxThicknessFirstLayer_
private

global maximum thickness of the first layer

Definition at line 74 of file refineBoundaryLayers.H.

Referenced by refineBoundaryLayers::generateNewVertices().

◆ numLayersForPatch_

std::map<word, label> numLayersForPatch_
private

number of boundary layers for user-selected patches

Definition at line 77 of file refineBoundaryLayers.H.

Referenced by refineBoundaryLayers::analyseLayers(), refineBoundaryLayers::avoidRefinement(), and refineBoundaryLayers::refineLayers().

◆ thicknessRatioForPatch_

std::map<word, scalar> thicknessRatioForPatch_
private

local thickness ratio for selected patches

Definition at line 80 of file refineBoundaryLayers.H.

Referenced by refineBoundaryLayers::generateNewVertices().

◆ maxThicknessForPatch_

std::map<word, scalar> maxThicknessForPatch_
private

local maximum layer thickness for selected patches

Definition at line 83 of file refineBoundaryLayers.H.

Referenced by refineBoundaryLayers::generateNewVertices().

◆ discontinuousLayersForPatch_

std::set<word> discontinuousLayersForPatch_
private

allow discontinuous layers for patch

Definition at line 86 of file refineBoundaryLayers.H.

Referenced by refineBoundaryLayers::analyseLayers(), and refineBoundaryLayers::setInteruptForPatch().

◆ cellSubsetName_

word cellSubsetName_
private

the name of a subset which shall contain the indices of the cells in the boundary layer

Definition at line 90 of file refineBoundaryLayers.H.

Referenced by refineBoundaryLayers::generateNewCells(), and refineBoundaryLayers::setCellSubset().

◆ done_

bool done_
private

◆ is2DMesh_

bool is2DMesh_
private

a flag whether a 2D mesh generation is active or not

Definition at line 96 of file refineBoundaryLayers.H.

Referenced by refineBoundaryLayers::activate2DMode(), and refineBoundaryLayers::analyseLayers().

◆ specialMode_

bool specialMode_
private

shall the layer be refined into two layers with the first one matching the thickness of the n-1 ones

Definition at line 100 of file refineBoundaryLayers.H.

Referenced by refineBoundaryLayers::activateSpecialMode(), refineBoundaryLayers::analyseLayers(), and refineBoundaryLayers::generateNewVertices().

◆ layerAtPatch_

List<DynList<label> > layerAtPatch_
private

information about existing boundary layers at patches only available layers

Definition at line 104 of file refineBoundaryLayers.H.

Referenced by refineBoundaryLayers::analyseLayers(), and refineBoundaryLayers::generateNewFaces().

◆ patchesInLayer_

List<DynList<word> > patchesInLayer_
private

which patches are part of a single layer

Definition at line 107 of file refineBoundaryLayers.H.

Referenced by refineBoundaryLayers::analyseLayers().

◆ nLayersAtBndFace_

labelList nLayersAtBndFace_
private

◆ splitEdges_

LongList<edge> splitEdges_
private

a list of edges which shall be refined

Definition at line 114 of file refineBoundaryLayers.H.

Referenced by refineBoundaryLayers::analyseLayers(), and refineBoundaryLayers::generateNewVertices().

◆ splitEdgesAtPoint_

VRWGraph splitEdgesAtPoint_
private

split edges at point

Definition at line 117 of file refineBoundaryLayers.H.

Referenced by refineBoundaryLayers::analyseLayers(), and refineBoundaryLayers::generateNewVertices().

◆ newVerticesForSplitEdge_

VRWGraph newVerticesForSplitEdge_
private

new vertices for on edges which shall be refined

Definition at line 120 of file refineBoundaryLayers.H.

Referenced by refineBoundaryLayers::generateNewVertices(), and refineBoundaryLayers::pointsInBndLayer().

◆ facesFromFace_

VRWGraph facesFromFace_
private

a graph containing information which new faces were generated from an existing face

Definition at line 124 of file refineBoundaryLayers.H.

Referenced by refineBoundaryLayers::generateNewCells(), and refineBoundaryLayers::generateNewFaces().

◆ newFaces_

VRWGraph newFaces_
private

a graph containing faces after layer refinement

Definition at line 127 of file refineBoundaryLayers.H.

Referenced by refineBoundaryLayers::generateNewCells(), and refineBoundaryLayers::generateNewFaces().


The documentation for this class was generated from the following files: