Public Member Functions | |
meshOctreeAutomaticRefinement (meshOctree &mo, const IOdictionary &dict, bool useDATABoxes=false) | |
Construct from meshOctree, dictionary and boolean. More... | |
~meshOctreeAutomaticRefinement () | |
void | activateHexRefinement () |
activate hex refinement More... | |
void | automaticRefinement () |
Private Attributes | |
meshOctree & | octree_ |
reference to meshOctree More... | |
const IOdictionary & | meshDict_ |
const reference to mesh dictionary More... | |
bool | useDATABoxes_ |
use DATA boxes More... | |
bool | hexRefinement_ |
a flag for activating paired refinement More... | |
meshOctreeAddressing * | octreeAddressingPtr_ |
meshOctreeAddressing pointer More... | |
triSurfacePartitioner * | partitionerPtr_ |
surface partitioner pointer More... | |
triSurfaceCurvatureEstimator * | curvaturePtr_ |
curvature estimator pointer More... | |
direction | maxRefLevel_ |
maximum allowed refinement level More... | |
Definition at line 56 of file meshOctreeAutomaticRefinement.H.
|
private |
Disallow default bitwise copy construct.
meshOctreeAutomaticRefinement | ( | meshOctree & | mo, |
const IOdictionary & | dict, | ||
bool | useDATABoxes = false |
||
) |
Construct from meshOctree, dictionary and boolean.
calculate maximum allowed refinement level from the minimum cell size
Definition at line 161 of file meshOctreeAutomaticRefinement.C.
References dict, dictionary::found(), dictionary::lookup(), and Foam::readBool().
Definition at line 187 of file meshOctreeAutomaticRefinement.C.
References meshOctreeAutomaticRefinement::curvaturePtr_, Foam::deleteDemandDrivenData(), meshOctreeAutomaticRefinement::octreeAddressingPtr_, and meshOctreeAutomaticRefinement::partitionerPtr_.
|
private |
calculate octree addresing
Definition at line 43 of file meshOctreeAutomaticRefinement.C.
References meshOctreeAutomaticRefinement::meshDict_, meshOctreeAutomaticRefinement::octree_, meshOctreeAutomaticRefinement::octreeAddressingPtr_, and meshOctreeAutomaticRefinement::useDATABoxes_.
Referenced by meshOctreeAutomaticRefinement::octreeAddressing().
|
private |
Definition at line 49 of file meshOctreeAutomaticRefinement.C.
References Foam::abort(), meshOctreeAutomaticRefinement::createOctreeAddressing(), Foam::FatalError, FatalErrorIn, and meshOctreeAutomaticRefinement::octreeAddressingPtr_.
|
private |
calculate partitionerPtr_
Definition at line 69 of file meshOctreeAutomaticRefinement.C.
References meshOctreeAutomaticRefinement::octree_, meshOctreeAutomaticRefinement::partitionerPtr_, and meshOctree::surface().
Referenced by meshOctreeAutomaticRefinement::partitioner().
|
private |
Definition at line 74 of file meshOctreeAutomaticRefinement.C.
References Foam::abort(), meshOctreeAutomaticRefinement::createSurfacePartitioner(), Foam::FatalError, FatalErrorIn, and meshOctreeAutomaticRefinement::partitionerPtr_.
|
private |
calculate curvaturePtr_
Definition at line 93 of file meshOctreeAutomaticRefinement.C.
References meshOctreeAutomaticRefinement::curvaturePtr_, meshOctreeAutomaticRefinement::octree_, and meshOctree::surface().
Referenced by meshOctreeAutomaticRefinement::curvature().
|
private |
Definition at line 98 of file meshOctreeAutomaticRefinement.C.
References Foam::abort(), meshOctreeAutomaticRefinement::createCurvatureEstimator(), meshOctreeAutomaticRefinement::curvaturePtr_, Foam::FatalError, and FatalErrorIn.
|
private |
set maxRefLevel_
Definition at line 118 of file meshOctreeAutomaticRefinement.C.
References Foam::endl(), dictionary::found(), Foam::Info, dictionary::lookup(), boundBox::max(), meshOctreeAutomaticRefinement::maxRefLevel_, meshOctreeAutomaticRefinement::meshDict_, boundBox::min(), meshOctreeAutomaticRefinement::octree_, Foam::pow(), Foam::readScalar(), meshOctree::rootBox(), meshOctreeAutomaticRefinement::useDATABoxes_, and Vector< Cmpt >::x().
|
private |
refine selected boxes
find the cubes which have been marked for refinement
perform load distribution in case od parallel runs
communicate the cubes selected for refinement with other processors
find the cubes which shall checked in the next iteration
Definition at line 464 of file meshOctreeAutomaticRefinementRef.C.
References LongList< T, Offset >::append(), LongList< T, Offset >::clear(), coordinates(), meshOctreeCube::cubeLabel(), Foam::deleteDemandDrivenData(), meshOctreeModifier::findCubeForPosition(), forAll, meshOctreeCube::isLeaf(), meshOctreeModifier::leavesAccess(), meshOctreeModifier::loadDistribution(), meshOctreeModifier::markAdditionalLayers(), UPstream::parRun(), meshOctreeCubeCoordinates::refineForPosition(), meshOctreeModifier::refineSelectedBoxes(), LongList< T, Offset >::setSize(), and List::setSize().
Referenced by meshOctreeAutomaticRefinement::curvatureRefinement(), and meshOctreeAutomaticRefinement::proximityRefinement().
|
private |
refine DATA boxes based on curvature
Definition at line 79 of file meshOctreeAutomaticRefinementRef.C.
References LongList< T, Offset >::append(), forAll, meshOctree::numberOfLeaves(), meshOctreeAutomaticRefinement::octree_, meshOctreeAutomaticRefinement::refineBasedOnCurvature(), and meshOctreeAutomaticRefinement::refineSelectedBoxes().
Referenced by meshOctreeAutomaticRefinement::automaticRefinement().
|
private |
search for the minimum curvature radius at surface triangles
check the edge curvature
Definition at line 328 of file meshOctreeAutomaticRefinementRef.C.
References triSurfaceCurvatureEstimator::curvatureAtEdge(), Foam::endl(), forAll, Foam::Info, meshOctreeCubeCoordinates::level(), Foam::mag(), Foam::max(), triSurfaceCurvatureEstimator::meanCurvatureAtTriangle(), Foam::reduce(), and meshOctreeCubeCoordinates::size().
Referenced by meshOctreeAutomaticRefinement::curvatureRefinement().
|
private |
refine DATA boxes which contain two or more independent parts of the surface in their vicinity
Definition at line 93 of file meshOctreeAutomaticRefinementRef.C.
References LongList< T, Offset >::append(), LongList< T, Offset >::clear(), forAll, meshOctree::numberOfLeaves(), meshOctreeAutomaticRefinement::octree_, meshOctreeAutomaticRefinement::refineBasedOnContainedCorners(), meshOctreeAutomaticRefinement::refineBasedOnContainedPartitions(), meshOctreeAutomaticRefinement::refineBasedOnProximityTests(), and meshOctreeAutomaticRefinement::refineSelectedBoxes().
Referenced by meshOctreeAutomaticRefinement::automaticRefinement().
|
private |
find triangles in range
find edges contained in the neighbourhood
refine boxes with more than two face groups
Definition at line 400 of file meshOctreeAutomaticRefinementRef.C.
References Foam::constant::universal::c, meshOctreeCubeCoordinates::centre(), DynList< T, staticSize >::clear(), Foam::endl(), forAll, Foam::Info, HashSet< Key, Hash >::insert(), meshOctreeCubeCoordinates::level(), Foam::help::numberOfEdgeGroups(), Foam::help::numberOfFaceGroups(), Foam::reduce(), s(), and meshOctreeCubeCoordinates::size().
Referenced by meshOctreeAutomaticRefinement::proximityRefinement().
|
private |
refine DATA boxes containing 2 or more corners, 2 or more distinct edges, etc.
find leaves which contains corner nodes
find triangle patches contained in this box
find edge partitions contained in this box
Definition at line 222 of file meshOctreeAutomaticRefinementRef.C.
References DynList< T, staticSize >::appendIfNotIn(), Foam::constant::universal::c, meshOctreeCubeCoordinates::centre(), DynList< T, staticSize >::clear(), triSurfacePartitioner::edgeGroupEdgeGroups(), triSurfacePartitioner::edgeGroups(), Foam::endl(), forAll, found, Foam::Info, meshOctreeModifier::leavesAccess(), patches, triSurfacePartitioner::patchPatches(), Foam::reduce(), s(), DynList< T, staticSize >::size(), and meshOctreeCubeCoordinates::size().
Referenced by meshOctreeAutomaticRefinement::proximityRefinement().
|
private |
refine boxes based on the number of contained surface corners
find leaves which contains corner nodes
Definition at line 128 of file meshOctreeAutomaticRefinementRef.C.
References Foam::constant::universal::c, DynList< T, staticSize >::clear(), triSurfacePartitioner::corners(), Foam::endl(), forAll, Foam::Info, meshOctreeModifier::leavesAccess(), Foam::mag(), points, Foam::reduce(), List::size(), LongList< T, Offset >::size(), and surface::surface().
Referenced by meshOctreeAutomaticRefinement::proximityRefinement().
|
private |
Disallow default bitwise assignment.
void activateHexRefinement | ( | ) |
activate hex refinement
Definition at line 60 of file meshOctreeAutomaticRefinementRef.C.
References meshOctreeAutomaticRefinement::hexRefinement_.
Referenced by meshOctreeCreator::createOctreeBoxes().
void automaticRefinement | ( | ) |
refine octree boxes which are too coarse and cannot capture surface features
Definition at line 65 of file meshOctreeAutomaticRefinementRef.C.
References meshOctreeAutomaticRefinement::curvatureRefinement(), Foam::endl(), Foam::Info, meshOctreeAutomaticRefinement::maxRefLevel_, and meshOctreeAutomaticRefinement::proximityRefinement().
Referenced by meshOctreeCreator::createOctreeBoxes().
|
private |
reference to meshOctree
Definition at line 60 of file meshOctreeAutomaticRefinement.H.
Referenced by meshOctreeAutomaticRefinement::createCurvatureEstimator(), meshOctreeAutomaticRefinement::createOctreeAddressing(), meshOctreeAutomaticRefinement::createSurfacePartitioner(), meshOctreeAutomaticRefinement::curvatureRefinement(), meshOctreeAutomaticRefinement::proximityRefinement(), and meshOctreeAutomaticRefinement::setMaxRefLevel().
|
private |
const reference to mesh dictionary
Definition at line 63 of file meshOctreeAutomaticRefinement.H.
Referenced by meshOctreeAutomaticRefinement::createOctreeAddressing(), and meshOctreeAutomaticRefinement::setMaxRefLevel().
|
private |
use DATA boxes
Definition at line 66 of file meshOctreeAutomaticRefinement.H.
Referenced by meshOctreeAutomaticRefinement::createOctreeAddressing(), and meshOctreeAutomaticRefinement::setMaxRefLevel().
|
private |
a flag for activating paired refinement
Definition at line 69 of file meshOctreeAutomaticRefinement.H.
Referenced by meshOctreeAutomaticRefinement::activateHexRefinement().
|
mutableprivate |
meshOctreeAddressing pointer
Definition at line 73 of file meshOctreeAutomaticRefinement.H.
Referenced by meshOctreeAutomaticRefinement::createOctreeAddressing(), meshOctreeAutomaticRefinement::octreeAddressing(), and meshOctreeAutomaticRefinement::~meshOctreeAutomaticRefinement().
|
mutableprivate |
surface partitioner pointer
Definition at line 80 of file meshOctreeAutomaticRefinement.H.
Referenced by meshOctreeAutomaticRefinement::createSurfacePartitioner(), meshOctreeAutomaticRefinement::partitioner(), and meshOctreeAutomaticRefinement::~meshOctreeAutomaticRefinement().
|
mutableprivate |
curvature estimator pointer
Definition at line 87 of file meshOctreeAutomaticRefinement.H.
Referenced by meshOctreeAutomaticRefinement::createCurvatureEstimator(), meshOctreeAutomaticRefinement::curvature(), and meshOctreeAutomaticRefinement::~meshOctreeAutomaticRefinement().
|
private |
maximum allowed refinement level
Definition at line 95 of file meshOctreeAutomaticRefinement.H.
Referenced by meshOctreeAutomaticRefinement::automaticRefinement(), and meshOctreeAutomaticRefinement::setMaxRefLevel().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.