Does hierarchical decomposition of points. Works by first sorting the points in x direction into equal sized bins, then in y direction and finally in z direction. More...
#include <decompositionMethods/hierarchGeomDecomp.H>
Does hierarchical decomposition of points. 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)
Definition at line 67 of file hierarchGeomDecomp.H.
 Inheritance diagram for hierarchGeomDecomp:
 Inheritance diagram for hierarchGeomDecomp: Collaboration diagram for hierarchGeomDecomp:
 Collaboration diagram for hierarchGeomDecomp:| Public Member Functions | |
| TypeName ("hierarchical") | |
| Runtime type information. | |
| hierarchGeomDecomp (const dictionary &decompositionDict) | |
| Construct given the decomposition dictionary. | |
| hierarchGeomDecomp (const dictionary &decompositionDict, const polyMesh &mesh) | |
| Construct given the decomposition dictionary and mesh. | |
| virtual | ~hierarchGeomDecomp () | 
| virtual bool | parallelAware () const | 
| hierarchgeom is aware of processor boundaries | |
| virtual labelList | decompose (const pointField &, const scalarField &weights) | 
| Return for every coordinate the wanted processor number. Use the. | |
| virtual labelList | decompose (const pointField &) | 
| Without weights. Code for weighted decomposition is a bit complex. | |
| virtual labelList | decompose (const labelListList &globalCellCells, const pointField &cc, const scalarField &cWeights) | 
| Return for every coordinate the wanted processor number. Explicitly. | |
| virtual labelList | decompose (const labelListList &globalCellCells, const pointField &cc) | 
| Like decompose but with uniform weights on the cells. | |
| hierarchGeomDecomp | ( | const dictionary & | decompositionDict ) | 
Construct given the decomposition dictionary.
Definition at line 691 of file hierarchGeomDecomp.C.
| hierarchGeomDecomp | ( | const dictionary & | decompositionDict, | 
| const polyMesh & | mesh | ||
| ) | 
Construct given the decomposition dictionary and mesh.
Definition at line 703 of file hierarchGeomDecomp.C.
| virtual ~hierarchGeomDecomp | ( | ) |  [inline, virtual] | 
Definition at line 184 of file hierarchGeomDecomp.H.
| TypeName | ( | "hierarchical" | ) | 
Runtime type information.
| virtual bool parallelAware | ( | ) | const  [inline, virtual] | 
hierarchgeom is aware of processor boundaries
Implements decompositionMethod.
Definition at line 191 of file hierarchGeomDecomp.H.
| Foam::labelList decompose | ( | const pointField & | points, | 
| const scalarField & | weights | ||
| ) |  [virtual] | 
Return for every coordinate the wanted processor number. Use the.
mesh connectivity (if needed)
Implements decompositionMethod.
Definition at line 759 of file hierarchGeomDecomp.C.
References E(), forAll, Foam::max(), points, Foam::reduce(), and List< T >::size().
Referenced by hierarchGeomDecomp::decompose().
| Foam::labelList decompose | ( | const pointField & | points ) |  [virtual] | 
Without weights. Code for weighted decomposition is a bit complex.
so kept separate for now.
Reimplemented from decompositionMethod.
Definition at line 718 of file hierarchGeomDecomp.C.
References E(), forAll, Foam::max(), points, Foam::reduce(), and List< T >::size().
| virtual labelList decompose | ( | const labelListList & | globalCellCells, | 
| const pointField & | cc, | ||
| const scalarField & | cWeights | ||
| ) |  [inline, virtual] | 
Return for every coordinate the wanted processor number. Explicitly.
provided connectivity - does not use mesh_. The connectivity is equal to mesh.cellCells() except for
Implements decompositionMethod.
Definition at line 216 of file hierarchGeomDecomp.H.
References hierarchGeomDecomp::decompose().
| virtual labelList decompose | ( | const labelListList & | globalCellCells, | 
| const pointField & | cc | ||
| ) |  [inline, virtual] | 
Like decompose but with uniform weights on the cells.
Reimplemented from decompositionMethod.
Definition at line 226 of file hierarchGeomDecomp.H.
References hierarchGeomDecomp::decompose().