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


Public Member Functions | |
| TypeName ("hierarchical") | |
| Runtime type information. More... | |
| hierarchical (const dictionary &decompositionDict, const dictionary &methodDict) | |
| Construct given the decomposition dictionary. More... | |
| hierarchical (const hierarchical &)=delete | |
| Disallow default bitwise copy construction. More... | |
| virtual | ~hierarchical () |
| Destructor. More... | |
| virtual labelList | decompose (const pointField &, const scalarField &weights) |
| Return for every coordinate the wanted processor number. More... | |
| virtual labelList | decompose (const pointField &) |
| Without weights. Code for weighted decomposition is a bit complex. More... | |
| virtual labelList | decompose (const polyMesh &mesh, const pointField &cellCentres, const scalarField &cellWeights) |
| Return for every coordinate the wanted processor number. Use the. More... | |
| virtual labelList | decompose (const polyMesh &mesh, const pointField &cellCentres) |
| Without weights. Code for weighted decomposition is a bit complex. More... | |
| virtual labelList | decompose (const labelListList &globalCellCells, const pointField &cellCentres, const scalarField &cellWeights) |
| Return for every coordinate the wanted processor number. Explicitly. More... | |
| virtual labelList | decompose (const labelListList &globalCellCells, const pointField &cc) |
| Like decompose but with uniform weights on the cells. More... | |
| void | operator= (const hierarchical &)=delete |
| Disallow default bitwise assignment. More... | |
Public Member Functions inherited from geometric | |
| geometric (const dictionary &decompositionDict, const dictionary &methodDict) | |
| Construct given the decomposition dictionary. More... | |
Public Member Functions inherited from decompositionMethod | |
| TypeName ("decompositionMethod") | |
| Runtime type information. More... | |
| declareRunTimeSelectionTable (autoPtr, decompositionMethod, decomposer,(const dictionary &decompositionDict, const dictionary &methodDict),(decompositionDict, methodDict)) | |
| declareRunTimeSelectionTable (autoPtr, decompositionMethod, distributor,(const dictionary &decompositionDict, const dictionary &methodDict),(decompositionDict, methodDict)) | |
| decompositionMethod (const dictionary &decompositionDict) | |
| Construct given the decomposition dictionary. More... | |
| decompositionMethod (const decompositionMethod &)=delete | |
| Disallow default bitwise copy construction. More... | |
| virtual | ~decompositionMethod () |
| Destructor. More... | |
| label | nDomains () const |
| virtual labelList | decompose (const polyMesh &mesh, const labelList &cellToRegion, const pointField ®ionPoints, const scalarField ®ionWeights) |
| Return for every coordinate the wanted processor number. Gets. More... | |
| virtual labelList | decompose (const polyMesh &mesh, const labelList &cellToRegion, const pointField ®ionPoints) |
| Like decompose but with uniform weights on the regions. More... | |
| void | setConstraints (const polyMesh &mesh, boolList &blockedFace, PtrList< labelList > &specifiedProcessorFaces, labelList &specifiedProcessor, List< labelPair > &explicitConnections) |
| Helper: extract constraints: More... | |
| void | applyConstraints (const polyMesh &mesh, const boolList &blockedFace, const PtrList< labelList > &specifiedProcessorFaces, const labelList &specifiedProcessor, const List< labelPair > &explicitConnections, labelList &finalDecomp) |
| Helper: apply constraints to a decomposition. This gives. More... | |
| virtual labelList | decompose (const polyMesh &mesh, const scalarField &cellWeights, const boolList &blockedFace, const PtrList< labelList > &specifiedProcessorFaces, const labelList &specifiedProcessor, const List< labelPair > &explicitConnections) |
| Decompose a mesh with constraints. More... | |
| labelList | decompose (const polyMesh &mesh, const scalarField &cellWeights) |
| Decompose a mesh. Apply all constraints from decomposeParDict. More... | |
| void | operator= (const decompositionMethod &)=delete |
| Disallow default bitwise assignment. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from decompositionMethod | |
| static autoPtr< decompositionMethod > | NewDecomposer (const dictionary &decompositionDict) |
| Return a reference to the selected decomposition method. More... | |
| static autoPtr< decompositionMethod > | NewDistributor (const dictionary &decompositionDict) |
| Return a reference to the selected decomposition method. More... | |
| static IOdictionary | decomposeParDict (const Time &time) |
| Read and return the decomposeParDict. More... | |
| static labelList | scaleWeights (const scalarField &weights, label &nWeights, const bool distributed=true) |
| Convert the given scalar weights to labels. More... | |
| static void | calcCellCells (const polyMesh &mesh, const labelList &agglom, const label nLocalCoarse, const bool global, CompactListList< label > &cellCells) |
| Helper: determine (local or global) cellCells from mesh. More... | |
| static void | calcCellCells (const polyMesh &mesh, const labelList &agglom, const label nLocalCoarse, const bool parallel, CompactListList< label > &cellCells, CompactListList< scalar > &cellCellWeights) |
| Helper: determine (local or global) cellCells and face weights. More... | |
Protected Member Functions inherited from decompositionMethod | |
| label | nWeights (const pointField &points, const scalarField &pointWeights) const |
| Return the number of weights per point. More... | |
| label | checkWeights (const pointField &points, const scalarField &pointWeights) const |
| Check the weights against the points. More... | |
Protected Attributes inherited from geometric | |
| Vector< label > | n_ |
| scalar | delta_ |
| tensor | rotDelta_ |
Protected Attributes inherited from decompositionMethod | |
| label | nProcessors_ |
| PtrList< decompositionConstraint > | constraints_ |
| Optional constraints. More... | |
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 hierarchical.H.
| hierarchical | ( | const dictionary & | decompositionDict, |
| const dictionary & | methodDict | ||
| ) |
Construct given the decomposition dictionary.
Definition at line 777 of file hierarchical.C.
|
delete |
Disallow default bitwise copy construction.
|
inlinevirtual |
Destructor.
Definition at line 178 of file hierarchical.H.
| TypeName | ( | "hierarchical" | ) |
Runtime type information.
|
virtual |
Return for every coordinate the wanted processor number.
Implements geometric.
Definition at line 731 of file hierarchical.C.
References Foam::e, forAll, Foam::max(), points, and Foam::reduce().
Referenced by hierarchical::decompose().


|
virtual |
Without weights. Code for weighted decomposition is a bit complex.
so kept separate for now.
Implements geometric.
Definition at line 691 of file hierarchical.C.
References Foam::e, forAll, Foam::max(), points, and Foam::reduce().

|
inlinevirtual |
Return for every coordinate the wanted processor number. Use the.
mesh connectivity (if needed)
Implements decompositionMethod.
Definition at line 198 of file hierarchical.H.
|
inlinevirtual |
Without weights. Code for weighted decomposition is a bit complex.
so kept separate for now.
Reimplemented from decompositionMethod.
Definition at line 210 of file hierarchical.H.
|
inlinevirtual |
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 226 of file hierarchical.H.
|
inlinevirtual |
Like decompose but with uniform weights on the cells.
Reimplemented from decompositionMethod.
Definition at line 236 of file hierarchical.H.
References hierarchical::decompose().

|
delete |
Disallow default bitwise assignment.