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... | |
polyMeshGen & | mesh_ |
reference to the mesh More... | |
bool | decomposeSplitHexes_ |
decompose split hex cells More... | |
labelList * | leafCellLabelPtr_ |
cell label for a given leaf More... | |
Definition at line 51 of file cartesianMeshExtractor.H.
|
private |
Disallow default bitwise copy construct.
cartesianMeshExtractor | ( | meshOctree & | octree, |
const IOdictionary & | meshDict, | ||
polyMeshGen & | mesh | ||
) |
Construct from octree and mesh data.
Definition at line 49 of file cartesianMeshExtractor.C.
Definition at line 64 of file cartesianMeshExtractor.C.
References cartesianMeshExtractor::clearOut().
|
private |
delete all freestore data
Definition at line 40 of file cartesianMeshExtractor.C.
References Foam::deleteDemandDrivenData(), and cartesianMeshExtractor::leafCellLabelPtr_.
Referenced by cartesianMeshExtractor::~cartesianMeshExtractor().
|
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().
|
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().
|
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().
|
private |
Disallow default bitwise assignment.
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().
void createMesh | ( | ) |
create the mesh with the above options
create points and pointLeaves addressing
create the mesh
decompose split-hex cells into tetrahedra and pyramids
remove unused vertices
Definition at line 76 of file cartesianMeshExtractor.C.
References polyMeshGenCells::cells(), cartesianMeshExtractor::createPointsAndAddressing(), cartesianMeshExtractor::createPolyMesh(), cartesianMeshExtractor::decomposeSplitHexesIntoTetsAndPyramids(), Foam::endl(), Foam::exit(), polyMeshGenFaces::faces(), Foam::FatalError, FatalErrorIn, Foam::Info, cartesianMeshExtractor::mesh_, Foam::nl, UPstream::parRun(), polyMeshGenPoints::points(), Foam::reduce(), polyMeshGenModifier::removeUnusedVertices(), cellListPMG::size(), faceListPMG::size(), and pointFieldPMG::size().
Referenced by cartesian2DMeshGenerator::createCartesianMesh(), and cartesianMeshGenerator::createCartesianMesh().
|
private |
reference to the octree addressing
Definition at line 55 of file cartesianMeshExtractor.H.
Referenced by cartesianMeshExtractor::createPointsAndAddressing(), and cartesianMeshExtractor::createPolyMesh().
|
private |
reference to the mesh
Definition at line 58 of file cartesianMeshExtractor.H.
Referenced by cartesianMeshExtractor::createMesh(), cartesianMeshExtractor::createPointsAndAddressing(), cartesianMeshExtractor::createPolyMesh(), and cartesianMeshExtractor::decomposeSplitHexesIntoTetsAndPyramids().
|
private |
decompose split hex cells
Definition at line 61 of file cartesianMeshExtractor.H.
Referenced by cartesianMeshExtractor::decomposeSplitHexes(), and cartesianMeshExtractor::decomposeSplitHexesIntoTetsAndPyramids().
|
private |
cell label for a given leaf
Definition at line 64 of file cartesianMeshExtractor.H.
Referenced by cartesianMeshExtractor::clearOut(), and cartesianMeshExtractor::createPolyMesh().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.