Public Member Functions | |
triSurfacePartitioner (const triSurf &surface) | |
Construct from triSurf. More... | |
~triSurfacePartitioner () | |
const labelList & | corners () const |
return corner nodes More... | |
const List< DynList< label > > & | cornerPatches () const |
return corner patches More... | |
const List< labelHashSet > & | patchPatches () const |
return patch-patches addressing More... | |
const labelList & | edgeGroups () const |
const List< labelHashSet > & | edgeGroupEdgeGroups () const |
Edge group - edge groups addressing. More... | |
void | edgeGroupsSharedByPatches (const label partition1, const label partition2, DynList< label > &edgePartitions) const |
Return groups of feature edges shared by the given patches. More... | |
void | cornersSharedByEdgeGroups (const label edgePartition1, const label edgePartition2, DynList< label > &corners) const |
return corners shared shared by the given edge groups More... | |
Private Member Functions | |
void | calculatePatchAddressing () |
calculate patch addressing More... | |
void | calculateCornersAndAddressing () |
find surface corners More... | |
void | calculatePatchPatches () |
calculate patch-patches addressing More... | |
void | calculateEdgeGroups () |
calculate edge groups More... | |
void | calculatePatchToEdgeGroups () |
calculate surface patch to edge groups addressing More... | |
void | calculateEdgeGroupsToCorners () |
calculate edge groups to corner addressing More... | |
triSurfacePartitioner (const triSurfacePartitioner &) | |
Disallow default bitwise copy construct. More... | |
void | operator= (const triSurfacePartitioner &) |
Disallow default bitwise assignment. More... | |
Private Attributes | |
const triSurf & | surface_ |
reference to triSurf More... | |
labelList | corners_ |
corner nodes More... | |
List< DynList< label > > | cornerPatches_ |
List< labelHashSet > | patchPatches_ |
information which partitions share an edge with a given partition More... | |
labelList | edgeGroups_ |
edge partitions More... | |
List< labelHashSet > | edgeGroupEdgeGroups_ |
std::map< std::pair< label, label >, labelHashSet > | patchesEdgeGroups_ |
edge groups between surface patches More... | |
std::map< std::pair< label, label >, labelHashSet > | edgeGroupsCorners_ |
corners shared by edge groups More... | |
Definition at line 53 of file triSurfacePartitioner.H.
|
private |
Disallow default bitwise copy construct.
triSurfacePartitioner | ( | const triSurf & | surface | ) |
Construct from triSurf.
Definition at line 43 of file triSurfacePartitioner.C.
Definition at line 59 of file triSurfacePartitioner.C.
|
private |
calculate patch addressing
Definition at line 44 of file triSurfacePartitionerCreateAddressing.C.
References triSurfacePartitioner::calculateCornersAndAddressing(), triSurfacePartitioner::calculateEdgeGroups(), triSurfacePartitioner::calculateEdgeGroupsToCorners(), triSurfacePartitioner::calculatePatchPatches(), and triSurfacePartitioner::calculatePatchToEdgeGroups().
|
private |
find surface corners
find the number of feature edges connected to each surface node
count the number of feature edges connected to each surface point corners must have 3 or more edges attached to them
store corner data
Definition at line 57 of file triSurfacePartitionerCreateAddressing.C.
References triSurfacePartitioner::cornerPatches_, triSurfacePartitioner::corners_, Foam::e, triSurfAddressing::edgeFacets(), triSurfAddressing::edges(), forAll, forAllRow, patches, triSurfAddressing::pointFacets(), triSurfPoints::points(), List::setSize(), VRWGraph::sizeOfRow(), and triSurfacePartitioner::surface_.
Referenced by triSurfacePartitioner::calculatePatchAddressing().
|
private |
calculate patch-patches addressing
Definition at line 113 of file triSurfacePartitionerCreateAddressing.C.
References triSurfAddressing::edgeFacets(), forAll, triSurfacePartitioner::patchPatches_, VRWGraph::sizeOfRow(), and triSurfacePartitioner::surface_.
Referenced by triSurfacePartitioner::calculatePatchAddressing().
|
private |
calculate edge groups
make all feature edges
create a set containing corners for fast searching
Definition at line 133 of file triSurfacePartitionerCreateAddressing.C.
References LongList< T, Offset >::append(), triSurfacePartitioner::corners(), triSurfacePartitioner::corners_, Foam::e, triSurfAddressing::edgeFacets(), triSurfacePartitioner::edgeGroupEdgeGroups_, triSurfacePartitioner::edgeGroups_, triSurfAddressing::edges(), Foam::endl(), forAll, forAllRow, Foam::Info, patches, triSurfAddressing::pointEdges(), LongList< T, Offset >::removeLastElement(), List::setSize(), LongList< T, Offset >::size(), VRWGraph::size(), and triSurfacePartitioner::surface_.
Referenced by triSurfacePartitioner::calculatePatchAddressing().
|
private |
calculate surface patch to edge groups addressing
Definition at line 212 of file triSurfacePartitionerCreateAddressing.C.
References triSurfAddressing::edgeFacets(), triSurfacePartitioner::edgeGroups_, forAll, forAllRow, Foam::max(), Foam::min(), patches, triSurfacePartitioner::patchesEdgeGroups_, and triSurfacePartitioner::surface_.
Referenced by triSurfacePartitioner::calculatePatchAddressing().
|
private |
calculate edge groups to corner addressing
create edgepartition - edge partitions addressing
Definition at line 245 of file triSurfacePartitionerCreateAddressing.C.
References DynList< T, staticSize >::appendIfNotIn(), triSurfacePartitioner::corners_, triSurfacePartitioner::edgeGroupEdgeGroups_, triSurfacePartitioner::edgeGroups_, triSurfacePartitioner::edgeGroupsCorners_, forAll, forAllRow, Foam::max(), Foam::min(), triSurfAddressing::pointEdges(), DynList< T, staticSize >::size(), and triSurfacePartitioner::surface_.
Referenced by triSurfacePartitioner::calculatePatchAddressing().
|
private |
Disallow default bitwise assignment.
const labelList & corners | ( | ) | const |
return corner nodes
Definition at line 64 of file triSurfacePartitioner.C.
References triSurfacePartitioner::corners_.
Referenced by triSurfacePartitioner::calculateEdgeGroups(), edgeExtractor::findCornerCandidates(), meshSurfaceMapper::mapCorners(), and meshOctreeAutomaticRefinement::refineBasedOnContainedCorners().
return corner patches
Definition at line 69 of file triSurfacePartitioner.C.
References triSurfacePartitioner::cornerPatches_.
Referenced by meshSurfaceMapper::mapCorners().
const List< labelHashSet > & patchPatches | ( | ) | const |
return patch-patches addressing
Definition at line 74 of file triSurfacePartitioner.C.
References triSurfacePartitioner::patchPatches_.
Referenced by edgeExtractor::checkCorners(), and meshOctreeAutomaticRefinement::refineBasedOnContainedPartitions().
const labelList & edgeGroups | ( | ) | const |
return edge groups. Edges which are not feature edges are set to -1
Definition at line 79 of file triSurfacePartitioner.C.
References triSurfacePartitioner::edgeGroups_.
Referenced by edgeExtractor::findEdgeCandidates(), and meshOctreeAutomaticRefinement::refineBasedOnContainedPartitions().
const List< labelHashSet > & edgeGroupEdgeGroups | ( | ) | const |
Edge group - edge groups addressing.
Definition at line 84 of file triSurfacePartitioner.C.
References triSurfacePartitioner::edgeGroupEdgeGroups_.
Referenced by meshOctreeAutomaticRefinement::refineBasedOnContainedPartitions().
void edgeGroupsSharedByPatches | ( | const label | partition1, |
const label | partition2, | ||
DynList< label > & | edgePartitions | ||
) | const |
Return groups of feature edges shared by the given patches.
Definition at line 90 of file triSurfacePartitioner.C.
References DynList< T, staticSize >::append(), DynList< T, staticSize >::clear(), HashTable::find(), forAllConstIter(), Foam::max(), and Foam::min().
void cornersSharedByEdgeGroups | ( | const label | edgePartition1, |
const label | edgePartition2, | ||
DynList< label > & | corners | ||
) | const |
return corners shared shared by the given edge groups
Definition at line 117 of file triSurfacePartitioner.C.
References DynList< T, staticSize >::append(), DynList< T, staticSize >::clear(), HashTable::find(), forAllConstIter(), Foam::max(), and Foam::min().
|
private |
reference to triSurf
Definition at line 57 of file triSurfacePartitioner.H.
Referenced by triSurfacePartitioner::calculateCornersAndAddressing(), triSurfacePartitioner::calculateEdgeGroups(), triSurfacePartitioner::calculateEdgeGroupsToCorners(), triSurfacePartitioner::calculatePatchPatches(), and triSurfacePartitioner::calculatePatchToEdgeGroups().
|
private |
corner nodes
Definition at line 60 of file triSurfacePartitioner.H.
Referenced by triSurfacePartitioner::calculateCornersAndAddressing(), triSurfacePartitioner::calculateEdgeGroups(), triSurfacePartitioner::calculateEdgeGroupsToCorners(), and triSurfacePartitioner::corners().
Definition at line 61 of file triSurfacePartitioner.H.
Referenced by triSurfacePartitioner::calculateCornersAndAddressing(), and triSurfacePartitioner::cornerPatches().
|
private |
information which partitions share an edge with a given partition
Definition at line 64 of file triSurfacePartitioner.H.
Referenced by triSurfacePartitioner::calculatePatchPatches(), and triSurfacePartitioner::patchPatches().
|
private |
edge partitions
Definition at line 67 of file triSurfacePartitioner.H.
Referenced by triSurfacePartitioner::calculateEdgeGroups(), triSurfacePartitioner::calculateEdgeGroupsToCorners(), triSurfacePartitioner::calculatePatchToEdgeGroups(), and triSurfacePartitioner::edgeGroups().
|
private |
information which edge groups share a corner with a given group
Definition at line 71 of file triSurfacePartitioner.H.
Referenced by triSurfacePartitioner::calculateEdgeGroups(), triSurfacePartitioner::calculateEdgeGroupsToCorners(), and triSurfacePartitioner::edgeGroupEdgeGroups().
|
private |
edge groups between surface patches
Definition at line 74 of file triSurfacePartitioner.H.
Referenced by triSurfacePartitioner::calculatePatchToEdgeGroups().
|
private |
corners shared by edge groups
Definition at line 77 of file triSurfacePartitioner.H.
Referenced by triSurfacePartitioner::calculateEdgeGroupsToCorners().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.