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 meshSurfaceEngine & | surfaceEngine () 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 | |
polyMeshGen & | mesh_ |
Reference to the mesh. More... | |
meshSurfaceEngine * | msePtr_ |
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, label > | numLayersForPatch_ |
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< word > | discontinuousLayersForPatch_ |
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< edge > | splitEdges_ |
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... | |
Definition at line 59 of file refineBoundaryLayers.H.
|
private |
Disallow bitwise copy construct.
refineBoundaryLayers | ( | polyMeshGen & | mesh | ) |
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_.
|
private |
Return reference to meshSurfaceEngine.
Definition at line 39 of file refineBoundaryLayers.C.
References refineBoundaryLayers::mesh_, and refineBoundaryLayers::msePtr_.
Referenced by refineBoundaryLayers::analyseLayers(), refineBoundaryLayers::generateNewCells(), refineBoundaryLayers::generateNewFaces(), and refineBoundaryLayers::generateNewVertices().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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.
|
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().
|
private |
Disallow bitwise assignment.
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().
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().
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().
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().
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().
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().
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().
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().
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().
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.
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().
void refineLayers | ( | ) |
performs refinement based on the given settings
Definition at line 326 of file refineBoundaryLayers.C.
References refineBoundaryLayers::analyseLayers(), refineBoundaryLayers::done_, Foam::endl(), refineBoundaryLayers::generateNewCells(), refineBoundaryLayers::generateNewFaces(), refineBoundaryLayers::generateNewVertices(), refineBoundaryLayers::globalNumLayers_, Foam::Info, refineBoundaryLayers::numLayersForPatch_, and WarningIn.
Referenced by layerRefinement(), meshOptimizer::optimizeBoundaryLayer(), cartesian2DMeshGenerator::refBoundaryLayers(), cartesianMeshGenerator::refBoundaryLayers(), tetMeshGenerator::refBoundaryLayers(), and voronoiMeshGenerator::refBoundaryLayers().
void pointsInBndLayer | ( | labelLongList & | layerPoints | ) |
provide the list of points in the boundary layer
Definition at line 375 of file refineBoundaryLayers.C.
References LongList< T, Offset >::append(), LongList< T, Offset >::clear(), forAll, forAllRow, refineBoundaryLayers::mesh_, refineBoundaryLayers::newVerticesForSplitEdge_, polyMeshGenPoints::points(), and pointFieldPMG::size().
Referenced by cartesianMeshGenerator::refBoundaryLayers(), tetMeshGenerator::refBoundaryLayers(), and voronoiMeshGenerator::refBoundaryLayers().
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().
|
static |
read the settings from dictionary
read global properties
consider specified patches for exclusion from boundary layer creation implemented by setting the number of layers to 1
patch-based properties
the layer will not be refined
Definition at line 406 of file refineBoundaryLayers.C.
References refineBoundaryLayers::avoidRefinement(), Foam::endl(), forAll, dictionary::found(), dictionary::isDict(), dictionary::lookup(), patchNames(), Foam::readBool(), Foam::readLabel(), Foam::readScalar(), refineBoundaryLayers::setGlobalMaxThicknessOfFirstLayer(), refineBoundaryLayers::setGlobalNumberOfLayers(), refineBoundaryLayers::setGlobalThicknessRatio(), refineBoundaryLayers::setInteruptForPatch(), refineBoundaryLayers::setMaxThicknessOfFirstLayerForPatch(), refineBoundaryLayers::setNumberOfLayersForPatch(), refineBoundaryLayers::setThicknessRatioForPatch(), dictionary::subDict(), dictionary::toc(), and Foam::Warning.
Referenced by layerRefinement(), meshOptimizer::optimizeBoundaryLayer(), cartesian2DMeshGenerator::refBoundaryLayers(), cartesianMeshGenerator::refBoundaryLayers(), tetMeshGenerator::refBoundaryLayers(), and voronoiMeshGenerator::refBoundaryLayers().
|
private |
Reference to the mesh.
Definition at line 62 of file refineBoundaryLayers.H.
Referenced by refineBoundaryLayers::analyseLayers(), refineBoundaryLayers::refineEdgeHexCell::determineFacesInDirections(), refineBoundaryLayers::generateNewCells(), refineBoundaryLayers::generateNewFaces(), refineBoundaryLayers::generateNewVertices(), refineBoundaryLayers::pointsInBndLayer(), refineBoundaryLayers::setInteruptForPatch(), and refineBoundaryLayers::surfaceEngine().
|
mutableprivate |
pointer to mesh surface engine
Definition at line 65 of file refineBoundaryLayers.H.
Referenced by refineBoundaryLayers::generateNewCells(), refineBoundaryLayers::surfaceEngine(), and refineBoundaryLayers::~refineBoundaryLayers().
|
private |
global number of boundary layers
Definition at line 68 of file refineBoundaryLayers.H.
Referenced by refineBoundaryLayers::analyseLayers(), refineBoundaryLayers::avoidRefinement(), refineBoundaryLayers::refineLayers(), and refineBoundaryLayers::setGlobalNumberOfLayers().
|
private |
global thickness ratio
Definition at line 71 of file refineBoundaryLayers.H.
Referenced by refineBoundaryLayers::generateNewVertices(), and refineBoundaryLayers::setGlobalThicknessRatio().
|
private |
global maximum thickness of the first layer
Definition at line 74 of file refineBoundaryLayers.H.
Referenced by refineBoundaryLayers::generateNewVertices().
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().
|
private |
local thickness ratio for selected patches
Definition at line 80 of file refineBoundaryLayers.H.
Referenced by refineBoundaryLayers::generateNewVertices().
|
private |
local maximum layer thickness for selected patches
Definition at line 83 of file refineBoundaryLayers.H.
Referenced by refineBoundaryLayers::generateNewVertices().
|
private |
allow discontinuous layers for patch
Definition at line 86 of file refineBoundaryLayers.H.
Referenced by refineBoundaryLayers::analyseLayers(), and refineBoundaryLayers::setInteruptForPatch().
|
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().
|
private |
check whether the refinement is already executed
Definition at line 93 of file refineBoundaryLayers.H.
Referenced by refineBoundaryLayers::activate2DMode(), refineBoundaryLayers::avoidRefinement(), refineBoundaryLayers::refineLayers(), refineBoundaryLayers::setCellSubset(), refineBoundaryLayers::setGlobalNumberOfLayers(), refineBoundaryLayers::setGlobalThicknessRatio(), and refineBoundaryLayers::setInteruptForPatch().
|
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().
|
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().
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().
which patches are part of a single layer
Definition at line 107 of file refineBoundaryLayers.H.
Referenced by refineBoundaryLayers::analyseLayers().
|
private |
a containing the number of layers which shall be generated above a boundary face
Definition at line 111 of file refineBoundaryLayers.H.
Referenced by refineBoundaryLayers::analyseLayers(), refineBoundaryLayers::refineEdgeHexCell::determineFacesInDirections(), refineBoundaryLayers::generateNewCells(), refineBoundaryLayers::generateNewFaces(), and refineBoundaryLayers::generateNewVertices().
a list of edges which shall be refined
Definition at line 114 of file refineBoundaryLayers.H.
Referenced by refineBoundaryLayers::analyseLayers(), and refineBoundaryLayers::generateNewVertices().
|
private |
split edges at point
Definition at line 117 of file refineBoundaryLayers.H.
Referenced by refineBoundaryLayers::analyseLayers(), and refineBoundaryLayers::generateNewVertices().
|
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().
|
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().
|
private |
a graph containing faces after layer refinement
Definition at line 127 of file refineBoundaryLayers.H.
Referenced by refineBoundaryLayers::generateNewCells(), and refineBoundaryLayers::generateNewFaces().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.