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

Public Member Functions

 refineCornerHexCell (const label cellI, const refineBoundaryLayers &ref)
 construct from cell label and the refineBoundaryLayers More...
 
const DynList< DynList< DynList< label, 4 >, 6 >, 256 > & newCells () const
 

Private Member Functions

void determineFacesInDirections ()
 populate faceInDirection_nad wrongFaceOrientation_ More...
 
void populateExistingFaces ()
 
void generateNewPoints ()
 generate missing points inside the cell More...
 
void generateMissingFaces ()
 generate new internal faces and tore them to new cells More...
 

Private Attributes

const label cellI_
 label of cell More...
 
label nLayersI_
 number of cells in local direction i More...
 
label nLayersJ_
 number of cells in local direction j More...
 
label nLayersK_
 number of cells in local direction k More...
 
FixedList< label, 3 > splitEdgeInDirection_
 split edge in directions More...
 
DynList< DynList< DynList< label, 4 >, 6 >, 256 > cellsFromCell_
 container for new cells More...
 
const refineBoundaryLayersbndLayers_
 reference to the boundary layer class More...
 
FixedList< label, 6 > faceInDirection_
 faces sorted into directions of a hex shape More...
 
FixedList< bool, 6 > faceOrientation_
 
FixedList< DynList< DynList< label > >, 6 > facePoints_
 points on cross-split faces More...
 
DynList< DynList< DynList< label > > > cellPoints_
 points inside the cell More...
 

Detailed Description

Definition at line 252 of file refineBoundaryLayers.H.

Constructor & Destructor Documentation

◆ refineCornerHexCell()

refineCornerHexCell ( const label  cellI,
const refineBoundaryLayers ref 
)

construct from cell label and the refineBoundaryLayers

Definition at line 1297 of file refineBoundaryLayersCells.C.

Member Function Documentation

◆ determineFacesInDirections()

void determineFacesInDirections ( )
private

populate faceInDirection_nad wrongFaceOrientation_

find the number of layers for this cell

find a common point for all three boundary faces

find the position of the common point in each boundary face

find split edges starting at the commonPoints

this edge is in j direction

this edge is in i diretion

this point is in k direction

this situation is not allowed

find the direction od other boundary faces in the local coordinate system

find the number of layers and a split in each direction

determine the directions of cell faces store boundary faces first. Their normals point in the wrong direction face at k = 0

face at j = 0

face at i = 0

find directions of other faces and thrie orientation

face at k = nLayersK_

face at j = nLayersJ_

face at i = nLayersI_

Definition at line 656 of file refineBoundaryLayersCells.C.

References Foam::abort(), Foam::constant::universal::c, Foam::endl(), face::faceEdge(), Foam::FatalError, FatalErrorIn, forAll, forAllRow, mesh, Foam::help::positionOfEdgeInFace(), Foam::Pout, Foam::help::shareAnEdge(), Foam::help::sharedVertex(), List::size(), VRWGraph::sizeOfRow(), and face::which().

Here is the call graph for this function:

◆ populateExistingFaces()

void populateExistingFaces ( )
private

populate new cells with new faces generated from already existing faces

set the number of cells

add new faces from existing faces into new cells

Definition at line 848 of file refineBoundaryLayersCells.C.

References Foam::constant::universal::c, Foam::endl(), forAll, and Foam::Pout.

Here is the call graph for this function:

◆ generateNewPoints()

void generateNewPoints ( )
private

generate missing points inside the cell

allocate space for points generated inside the cell

collect information about points generated on faces of the cell

fill in cellPoints at the boundary

useful data for generating missing points

const references to vertices of the cell ordered in a local i, j, k coordinate system

calculate coordinates of the new vertex

add the point to the mesh

Definition at line 875 of file refineBoundaryLayersCells.C.

References Foam::constant::universal::c, edge::end(), Foam::endl(), forAll, k, edge::mag(), Foam::mag(), points, Foam::Pout, edge::start(), and w().

Here is the call graph for this function:

◆ generateMissingFaces()

void generateMissingFaces ( )
private

generate new internal faces and tore them to new cells

generate face in direction i

generate quad faces

skip generating last face because it might not be a quad

generate faces which might not be a quads

this face might not be a quad add points fom the last face in direction j

add points from the last face in direction k

generate faces in direction j

generate quad faces

skip generating late face because it might not be a quad

generate a face which might not be a quad

add points from the last face in direction k

add points from the last face in direction i

generate faces in direction k

generate quad faces

skip the last face because it might not be a quad

generate a face which might not be a quad

this face might not be a quad add points from the last face in direction i

add points from the last face in direction j

Definition at line 1024 of file refineBoundaryLayersCells.C.

References Foam::abort(), DynList< T, staticSize >::append(), DynList< T, staticSize >::containsAtPosition(), Foam::e, Foam::endl(), f(), f1, Foam::FatalError, forAll, k, Foam::pos(), Foam::Pout, Foam::help::reverseFace(), and DynList< T, staticSize >::size().

Here is the call graph for this function:

◆ newCells()

const DynList<DynList<DynList<label, 4>, 6>, 256>& newCells ( ) const
inline

Definition at line 316 of file refineBoundaryLayers.H.

References refineBoundaryLayers::refineCornerHexCell::cellsFromCell_.

Referenced by refineBoundaryLayers::generateNewCells().

Here is the caller graph for this function:

Field Documentation

◆ cellI_

const label cellI_
private

label of cell

Definition at line 256 of file refineBoundaryLayers.H.

◆ nLayersI_

label nLayersI_
private

number of cells in local direction i

Definition at line 259 of file refineBoundaryLayers.H.

◆ nLayersJ_

label nLayersJ_
private

number of cells in local direction j

Definition at line 262 of file refineBoundaryLayers.H.

◆ nLayersK_

label nLayersK_
private

number of cells in local direction k

Definition at line 265 of file refineBoundaryLayers.H.

◆ splitEdgeInDirection_

FixedList<label, 3> splitEdgeInDirection_
private

split edge in directions

Definition at line 268 of file refineBoundaryLayers.H.

◆ cellsFromCell_

DynList<DynList<DynList<label, 4>, 6>, 256> cellsFromCell_
private

container for new cells

Definition at line 271 of file refineBoundaryLayers.H.

Referenced by refineBoundaryLayers::refineCornerHexCell::newCells().

◆ bndLayers_

const refineBoundaryLayers& bndLayers_
private

reference to the boundary layer class

Definition at line 274 of file refineBoundaryLayers.H.

◆ faceInDirection_

FixedList<label, 6> faceInDirection_
private

faces sorted into directions of a hex shape

Definition at line 277 of file refineBoundaryLayers.H.

◆ faceOrientation_

FixedList<bool, 6> faceOrientation_
private

information about orientation of faces false means the orientation as expected true means wrong orientation

Definition at line 282 of file refineBoundaryLayers.H.

◆ facePoints_

FixedList<DynList<DynList<label> >, 6> facePoints_
private

points on cross-split faces

Definition at line 285 of file refineBoundaryLayers.H.

◆ cellPoints_

DynList<DynList<DynList<label> > > cellPoints_
private

points inside the cell

Definition at line 288 of file refineBoundaryLayers.H.


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