Public Member Functions | List of all members
hierarchGeomDecomp Class Reference

Does hierarchical decomposition of points, selectable as hierarchical. More...

Inheritance diagram for hierarchGeomDecomp:
Inheritance graph
[legend]
Collaboration diagram for hierarchGeomDecomp:
Collaboration graph
[legend]

Public Member Functions

 hierarchGeomDecomp (const hierarchGeomDecomp &)=delete
 
void operator= (const hierarchGeomDecomp &)=delete
 
 TypeName ("hierarchical")
 
 hierarchGeomDecomp (const dictionary &decompDict, const word &regionName="")
 
virtual ~hierarchGeomDecomp ()=default
 
virtual bool parallelAware () const
 
virtual labelList decompose (const pointField &, const scalarField &weights) const
 
virtual labelList decompose (const pointField &) const
 
virtual labelList decompose (const polyMesh &mesh, const pointField &cc, const scalarField &cWeights) const
 
virtual labelList decompose (const polyMesh &mesh, const pointField &cc) const
 
virtual labelList decompose (const labelListList &globalCellCells, const pointField &cc, const scalarField &cWeights) const
 
virtual labelList decompose (const labelListList &globalCellCells, const pointField &cc) const
 
- Public Member Functions inherited from geomDecomp
 geomDecomp (const word &derivedType, const dictionary &decompDict, int select=selectionType::DEFAULT)
 
 geomDecomp (const word &derivedType, const dictionary &decompDict, const word &regionName, int select=selectionType::DEFAULT)
 
- Public Member Functions inherited from decompositionMethod
 TypeName ("decompositionMethod")
 
 declareRunTimeSelectionTable (autoPtr, decompositionMethod, dictionary,(const dictionary &decompDict, const word &regionName),(decompDict, regionName))
 
 decompositionMethod (const dictionary &decompDict, const word &regionName="")
 
virtual ~decompositionMethod ()=default
 
label nDomains () const noexcept
 
virtual labelList decompose (const polyMesh &mesh, const labelList &cellToRegion, const pointField &regionPoints, const scalarField &regionWeights) const
 
virtual labelList decompose (const polyMesh &mesh, const labelList &cellToRegion, const pointField &regionPoints) const
 
void setConstraints (const polyMesh &mesh, boolList &blockedFace, PtrList< labelList > &specifiedProcessorFaces, labelList &specifiedProcessor, List< labelPair > &explicitConnections) const
 
void applyConstraints (const polyMesh &mesh, const boolList &blockedFace, const PtrList< labelList > &specifiedProcessorFaces, const labelList &specifiedProcessor, const List< labelPair > &explicitConnections, labelList &finalDecomp) const
 
virtual labelList decompose (const polyMesh &mesh, const scalarField &cellWeights, const boolList &blockedFace, const PtrList< labelList > &specifiedProcessorFaces, const labelList &specifiedProcessor, const List< labelPair > &explicitConnections) const
 
labelList decompose (const polyMesh &mesh, const scalarField &cWeights) const
 

Additional Inherited Members

- Static Public Member Functions inherited from decompositionMethod
static label nDomains (const dictionary &decompDict, const word &regionName="")
 
static const dictionaryoptionalRegionDict (const dictionary &decompDict, const word &regionName)
 
static autoPtr< decompositionMethodNew (const dictionary &decompDict, const word &regionName="")
 
static void calcCellCells (const polyMesh &mesh, const labelList &agglom, const label nLocalCoarse, const bool global, CompactListList< label > &cellCells)
 
static void calcCellCells (const polyMesh &mesh, const labelList &agglom, const label nLocalCoarse, const bool parallel, CompactListList< label > &cellCells, CompactListList< scalar > &cellCellWeights)
 
- Protected Types inherited from decompositionMethod
enum  selectionType { DEFAULT = 0, EXACT = 1, MANDATORY = 2, NULL_DICT = 4 }
 
- Protected Member Functions inherited from geomDecomp
tmp< pointFieldadjustPoints (const pointField &) const
 
void checkDecompositionDirections (const Vector< label > &) const
 
- Protected Member Functions inherited from decompositionMethod
const dictionaryfindCoeffsDict (const word &coeffsName, int select=selectionType::DEFAULT) const
 
- Static Protected Member Functions inherited from decompositionMethod
static const dictionaryfindCoeffsDict (const dictionary &dict, const word &coeffsName, int select=selectionType::DEFAULT)
 
- Protected Attributes inherited from geomDecomp
Vector< label > n_
 
Vector< directionorder_
 
const dictionarycoeffsDict_
 
- Protected Attributes inherited from decompositionMethod
const dictionarydecompDict_
 
const dictionarydecompRegionDict_
 
label nDomains_
 
PtrList< decompositionConstraintconstraints_
 

Detailed Description

Does hierarchical decomposition of points, selectable as hierarchical.

Works by first sorting the points in x direction into equal sized bins, then in y direction and finally in z direction.

Uses single array to hold decomposition which is indexed as if it is a 3 dimensional array:

finalDecomp[i,j,k] is indexed as

i*n[0]*n[1] + j*n[1] + k

E.g. if we're sorting 'xyz': the first sort (over the x-component) determines in which x-domain the point goes. Then for each of the x-domains the points are sorted in y direction and each individual x-domain gets split into three y-domains. And similar for the z-direction.

Since the domains are of equal size the maximum difference in size is n[0]*n[1] (or n[1]*n[2]?) (small anyway)

Method coefficients:

Property Description Required Default
n (nx ny nz) yes
order order of operation no xyz
delta delta (jitter) for rotation matrix no 0.001
transform cartesian coordinate transformation no
Source files

Definition at line 97 of file hierarchGeomDecomp.H.

Constructor & Destructor Documentation

◆ hierarchGeomDecomp() [1/2]

hierarchGeomDecomp ( const hierarchGeomDecomp )
delete

◆ hierarchGeomDecomp() [2/2]

hierarchGeomDecomp ( const dictionary decompDict,
const word regionName = "" 
)
explicit

Definition at line 671 of file hierarchGeomDecomp.C.

◆ ~hierarchGeomDecomp()

virtual ~hierarchGeomDecomp ( )
virtualdefault

Member Function Documentation

◆ operator=()

void operator= ( const hierarchGeomDecomp )
delete

◆ TypeName()

TypeName ( "hierarchical"  )

◆ parallelAware()

virtual bool parallelAware ( ) const
inlinevirtual

Implements decompositionMethod.

Definition at line 213 of file hierarchGeomDecomp.H.

◆ decompose() [1/6]

Foam::labelList decompose ( const pointField points,
const scalarField weights 
) const
virtual

Implements geomDecomp.

Definition at line 724 of file hierarchGeomDecomp.C.

References Foam::constant::electromagnetic::e, Foam::endl(), Foam::identity(), Foam::max(), points, Foam::returnReduce(), WarningInFunction, and Foam::Zero.

Referenced by hierarchGeomDecomp::decompose().

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

◆ decompose() [2/6]

Foam::labelList decompose ( const pointField points) const
virtual

Implements geomDecomp.

Definition at line 683 of file hierarchGeomDecomp.C.

References Foam::constant::electromagnetic::e, Foam::endl(), Foam::identity(), Foam::max(), points, Foam::returnReduce(), WarningInFunction, and Foam::Zero.

Here is the call graph for this function:

◆ decompose() [3/6]

virtual labelList decompose ( const polyMesh mesh,
const pointField cc,
const scalarField cWeights 
) const
inlinevirtual

Implements decompositionMethod.

Definition at line 234 of file hierarchGeomDecomp.H.

References geomDecomp::checkDecompositionDirections(), hierarchGeomDecomp::decompose(), and mesh.

Here is the call graph for this function:

◆ decompose() [4/6]

virtual labelList decompose ( const polyMesh mesh,
const pointField cc 
) const
inlinevirtual

Reimplemented from decompositionMethod.

Definition at line 248 of file hierarchGeomDecomp.H.

References geomDecomp::checkDecompositionDirections(), hierarchGeomDecomp::decompose(), and mesh.

Here is the call graph for this function:

◆ decompose() [5/6]

virtual labelList decompose ( const labelListList globalCellCells,
const pointField cc,
const scalarField cWeights 
) const
inlinevirtual

Implements decompositionMethod.

Definition at line 265 of file hierarchGeomDecomp.H.

References hierarchGeomDecomp::decompose().

Here is the call graph for this function:

◆ decompose() [6/6]

virtual labelList decompose ( const labelListList globalCellCells,
const pointField cc 
) const
inlinevirtual

Reimplemented from decompositionMethod.

Definition at line 275 of file hierarchGeomDecomp.H.

References hierarchGeomDecomp::decompose().

Here is the call graph for this function:

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