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

Public Member Functions

 cartesianMeshExtractor (meshOctree &octree, const IOdictionary &meshDict, polyMeshGen &mesh)
 Construct from octree and mesh data. More...
 
 ~cartesianMeshExtractor ()
 
void decomposeSplitHexes ()
 decompose split hexes into standard cells More...
 
void createMesh ()
 create the mesh with the above options More...
 

Private Member Functions

void clearOut ()
 delete all freestore data More...
 
void createPointsAndAddressing ()
 create vertices and pointLeaves addressing More...
 
void createPolyMesh ()
 create mesh data More...
 
void decomposeSplitHexesIntoTetsAndPyramids ()
 decompose split hexes into pyramids and tets More...
 
 cartesianMeshExtractor (const cartesianMeshExtractor &)
 Disallow default bitwise copy construct. More...
 
void operator= (const cartesianMeshExtractor &)
 Disallow default bitwise assignment. More...
 

Private Attributes

meshOctreeAddressing octreeCheck_
 reference to the octree addressing More...
 
polyMeshGenmesh_
 reference to the mesh More...
 
bool decomposeSplitHexes_
 decompose split hex cells More...
 
labelListleafCellLabelPtr_
 cell label for a given leaf More...
 

Detailed Description

Definition at line 51 of file cartesianMeshExtractor.H.

Constructor & Destructor Documentation

◆ cartesianMeshExtractor() [1/2]

Disallow default bitwise copy construct.

◆ cartesianMeshExtractor() [2/2]

cartesianMeshExtractor ( meshOctree octree,
const IOdictionary meshDict,
polyMeshGen mesh 
)

Construct from octree and mesh data.

Definition at line 49 of file cartesianMeshExtractor.C.

◆ ~cartesianMeshExtractor()

Definition at line 64 of file cartesianMeshExtractor.C.

References cartesianMeshExtractor::clearOut().

Here is the call graph for this function:

Member Function Documentation

◆ clearOut()

void clearOut ( )
private

delete all freestore data

Definition at line 40 of file cartesianMeshExtractor.C.

References Foam::deleteDemandDrivenData(), and cartesianMeshExtractor::leafCellLabelPtr_.

Referenced by cartesianMeshExtractor::~cartesianMeshExtractor().

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

◆ createPointsAndAddressing()

void createPointsAndAddressing ( )
private

create vertices and pointLeaves addressing

set the size of the point field

store vertices into the pointField

Definition at line 39 of file cartesianMeshExtractorPointsAndAddressing.C.

References Foam::endl(), forAll, Foam::Info, cartesianMeshExtractor::mesh_, meshOctreeAddressing::numberOfNodes(), cartesianMeshExtractor::octreeCheck_, meshOctreeAddressing::octreePoints(), points, and polyMeshGenPoints::points().

Referenced by cartesianMeshExtractor::createMesh().

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

◆ createPolyMesh()

void createPolyMesh ( )
private

create mesh data

give labels to cubes which will be used as mesh cells

access to mesh data

start creating octree mesh

map storing box label and a direction for each processor face The map stores data in the same order on both sides of processor boundaries. This is a consequence of Morton ordering of leaf boxes in the octree.

case is a serial run

calculate faces in processor patches

set the number of procBoundaries

allocate memory for processor patches

create processor faces they need to be created here because of the correct ordering

create a processor face

add a face

add a reversed face

internal face

face at a parallel boundary

boundary face

face at a parallel boundary

boundary face

generate empty patches search for faces with a dominant z coordinate and store them into an empty patch

store the face and its owner

replace the boundary with faces in correct patches

Definition at line 51 of file cartesianMeshExtractorPolyMesh.C.

References Foam::abort(), LongList< T, Offset >::append(), VRWGraph::appendList(), polyMeshGenModifier::boundariesAccess(), meshSurfaceEngine::boundaryFaces(), meshOctreeAddressing::boxType(), cells, polyMeshGenModifier::cellsAccess(), Foam::e, Foam::endl(), Foam::exit(), meshSurfaceEngine::faceCentres(), meshSurfaceEngine::faceNormals(), meshSurfaceEngine::faceOwners(), polyMeshGenModifier::facesAccess(), Foam::FatalError, FatalErrorIn, forAll, forAllRow, Foam::Info, meshOctree::isQuadtree(), cartesianMeshExtractor::leafCellLabelPtr_, Foam::mag(), boundBox::max(), cartesianMeshExtractor::mesh_, meshOctreeAddressing::MESHCELL, boundBox::min(), UPstream::myProcNo(), Foam::name(), polyMeshGenFaces::neighbour(), meshOctreeAddressing::octree(), cartesianMeshExtractor::octreeCheck_, meshOctreeAddressing::octreeFaceNeighbour(), meshOctreeAddressing::octreeFaceOwner(), meshOctreeAddressing::octreeFaces(), polyMeshGenFaces::owner(), UPstream::parRun(), patchFaces(), patchNames(), polyMeshGenPoints::points(), polyMeshGenModifier::procBoundariesAccess(), meshOctreeCubeBasic::procNo(), polyMeshGenModifier::reorderBoundaryFaces(), polyMeshGenModifier::replaceBoundary(), meshOctree::returnLeaf(), meshOctree::rootBox(), Foam::Serr, PtrList::set(), faceListPMG::setSize(), PtrList::setSize(), faceListPMG::size(), VRWGraph::sizeOfRow(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), Vector< Cmpt >::z(), and Vector< scalar >::zero.

Referenced by cartesianMeshExtractor::createMesh().

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

◆ decomposeSplitHexesIntoTetsAndPyramids()

void decomposeSplitHexesIntoTetsAndPyramids ( )
private

decompose split hexes into pyramids and tets

decompose faces which have more than 4 vertices

decompose marked faces into triangles

decompose cells with 24 faces

decompose marked cells into tets and pyramids

Definition at line 43 of file cartesianMeshExtractorDecomposeSplitHexes.C.

References cells, polyMeshGenCells::cells(), decomposeCells::decomposeMesh(), decomposeFaces::decomposeMeshFaces(), cartesianMeshExtractor::decomposeSplitHexes_, Foam::endl(), polyMeshGenFaces::faces(), forAll, Foam::hex(), Foam::Info, cartesianMeshExtractor::mesh_, polyMeshGenFaces::owner(), Foam::reduce(), List::setSize(), and faceListPMG::size().

Referenced by cartesianMeshExtractor::createMesh().

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

◆ operator=()

void operator= ( const cartesianMeshExtractor )
private

Disallow default bitwise assignment.

◆ decomposeSplitHexes()

void decomposeSplitHexes ( )

decompose split hexes into standard cells

Definition at line 71 of file cartesianMeshExtractor.C.

References cartesianMeshExtractor::decomposeSplitHexes_.

Referenced by cartesian2DMeshGenerator::createCartesianMesh(), and cartesianMeshGenerator::createCartesianMesh().

Here is the caller graph for this function:

◆ createMesh()

void createMesh ( )

Field Documentation

◆ octreeCheck_

meshOctreeAddressing octreeCheck_
private

reference to the octree addressing

Definition at line 55 of file cartesianMeshExtractor.H.

Referenced by cartesianMeshExtractor::createPointsAndAddressing(), and cartesianMeshExtractor::createPolyMesh().

◆ mesh_

polyMeshGen& mesh_
private

◆ decomposeSplitHexes_

bool decomposeSplitHexes_
private

◆ leafCellLabelPtr_

labelList* leafCellLabelPtr_
private

cell label for a given leaf

Definition at line 64 of file cartesianMeshExtractor.H.

Referenced by cartesianMeshExtractor::clearOut(), and cartesianMeshExtractor::createPolyMesh().


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