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

Public Member Functions

 triSurfacePartitioner (const triSurf &surface)
 Construct from triSurf. More...
 
 ~triSurfacePartitioner ()
 
const labelListcorners () 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 labelListedgeGroups () 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 triSurfsurface_
 reference to triSurf More...
 
labelList corners_
 corner nodes More...
 
List< DynList< label > > cornerPatches_
 
List< labelHashSetpatchPatches_
 information which partitions share an edge with a given partition More...
 
labelList edgeGroups_
 edge partitions More...
 
List< labelHashSetedgeGroupEdgeGroups_
 
std::map< std::pair< label, label >, labelHashSetpatchesEdgeGroups_
 edge groups between surface patches More...
 
std::map< std::pair< label, label >, labelHashSetedgeGroupsCorners_
 corners shared by edge groups More...
 

Detailed Description

Definition at line 53 of file triSurfacePartitioner.H.

Constructor & Destructor Documentation

◆ triSurfacePartitioner() [1/2]

Disallow default bitwise copy construct.

◆ triSurfacePartitioner() [2/2]

triSurfacePartitioner ( const triSurf surface)

Construct from triSurf.

Definition at line 43 of file triSurfacePartitioner.C.

◆ ~triSurfacePartitioner()

Definition at line 59 of file triSurfacePartitioner.C.

Member Function Documentation

◆ calculatePatchAddressing()

void calculatePatchAddressing ( )
private

◆ calculateCornersAndAddressing()

void calculateCornersAndAddressing ( )
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().

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

◆ calculatePatchPatches()

void calculatePatchPatches ( )
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().

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

◆ calculateEdgeGroups()

void calculateEdgeGroups ( )
private

◆ calculatePatchToEdgeGroups()

void calculatePatchToEdgeGroups ( )
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().

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

◆ calculateEdgeGroupsToCorners()

void calculateEdgeGroupsToCorners ( )
private

◆ operator=()

void operator= ( const triSurfacePartitioner )
private

Disallow default bitwise assignment.

◆ corners()

const labelList & corners ( ) const

◆ cornerPatches()

const List< DynList< label > > & cornerPatches ( ) const

return corner patches

Definition at line 69 of file triSurfacePartitioner.C.

References triSurfacePartitioner::cornerPatches_.

Referenced by meshSurfaceMapper::mapCorners().

Here is the caller graph for this function:

◆ patchPatches()

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().

Here is the caller graph for this function:

◆ edgeGroups()

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().

Here is the caller graph for this function:

◆ edgeGroupEdgeGroups()

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().

Here is the caller graph for this function:

◆ edgeGroupsSharedByPatches()

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().

Here is the call graph for this function:

◆ cornersSharedByEdgeGroups()

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().

Here is the call graph for this function:

Field Documentation

◆ surface_

const triSurf& surface_
private

◆ corners_

labelList corners_
private

◆ cornerPatches_

List<DynList<label> > cornerPatches_
private

◆ patchPatches_

List<labelHashSet> patchPatches_
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().

◆ edgeGroups_

labelList edgeGroups_
private

◆ edgeGroupEdgeGroups_

List<labelHashSet> edgeGroupEdgeGroups_
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().

◆ patchesEdgeGroups_

std::map<std::pair<label, label>, labelHashSet> patchesEdgeGroups_
private

edge groups between surface patches

Definition at line 74 of file triSurfacePartitioner.H.

Referenced by triSurfacePartitioner::calculatePatchToEdgeGroups().

◆ edgeGroupsCorners_

std::map<std::pair<label, label>, labelHashSet> edgeGroupsCorners_
private

corners shared by edge groups

Definition at line 77 of file triSurfacePartitioner.H.

Referenced by triSurfacePartitioner::calculateEdgeGroupsToCorners().


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