Does hierarchical decomposition of points, selectable as hierarchical
.
More...
Public Member Functions | |
hierarchGeomDecomp (const hierarchGeomDecomp &)=delete | |
void | operator= (const hierarchGeomDecomp &)=delete |
TypeName ("hierarchical") | |
hierarchGeomDecomp (const dictionary &decompDict, const word ®ionName="") | |
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 |
![]() | |
geomDecomp (const word &derivedType, const dictionary &decompDict, int select=selectionType::DEFAULT) | |
geomDecomp (const word &derivedType, const dictionary &decompDict, const word ®ionName, int select=selectionType::DEFAULT) | |
![]() | |
TypeName ("decompositionMethod") | |
declareRunTimeSelectionTable (autoPtr, decompositionMethod, dictionary,(const dictionary &decompDict, const word ®ionName),(decompDict, regionName)) | |
decompositionMethod (const dictionary &decompDict, const word ®ionName="") | |
virtual | ~decompositionMethod ()=default |
label | nDomains () const noexcept |
virtual labelList | decompose (const polyMesh &mesh, const labelList &cellToRegion, const pointField ®ionPoints, const scalarField ®ionWeights) const |
virtual labelList | decompose (const polyMesh &mesh, const labelList &cellToRegion, const pointField ®ionPoints) 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 label | nDomains (const dictionary &decompDict, const word ®ionName="") |
static const dictionary & | optionalRegionDict (const dictionary &decompDict, const word ®ionName) |
static autoPtr< decompositionMethod > | New (const dictionary &decompDict, const word ®ionName="") |
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) |
![]() | |
enum | selectionType { DEFAULT = 0, EXACT = 1, MANDATORY = 2, NULL_DICT = 4 } |
![]() | |
tmp< pointField > | adjustPoints (const pointField &) const |
void | checkDecompositionDirections (const Vector< label > &) const |
![]() | |
const dictionary & | findCoeffsDict (const word &coeffsName, int select=selectionType::DEFAULT) const |
![]() | |
static const dictionary & | findCoeffsDict (const dictionary &dict, const word &coeffsName, int select=selectionType::DEFAULT) |
![]() | |
Vector< label > | n_ |
Vector< direction > | order_ |
const dictionary & | coeffsDict_ |
![]() | |
const dictionary & | decompDict_ |
const dictionary & | decompRegionDict_ |
label | nDomains_ |
PtrList< decompositionConstraint > | constraints_ |
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 |
Definition at line 97 of file hierarchGeomDecomp.H.
|
delete |
|
explicit |
Definition at line 671 of file hierarchGeomDecomp.C.
|
virtualdefault |
|
delete |
TypeName | ( | "hierarchical" | ) |
|
inlinevirtual |
Implements decompositionMethod.
Definition at line 213 of file hierarchGeomDecomp.H.
|
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().
|
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.
|
inlinevirtual |
Implements decompositionMethod.
Definition at line 234 of file hierarchGeomDecomp.H.
References geomDecomp::checkDecompositionDirections(), hierarchGeomDecomp::decompose(), and mesh.
|
inlinevirtual |
Reimplemented from decompositionMethod.
Definition at line 248 of file hierarchGeomDecomp.H.
References geomDecomp::checkDecompositionDirections(), hierarchGeomDecomp::decompose(), and mesh.
|
inlinevirtual |
Implements decompositionMethod.
Definition at line 265 of file hierarchGeomDecomp.H.
References hierarchGeomDecomp::decompose().
|
inlinevirtual |
Reimplemented from decompositionMethod.
Definition at line 275 of file hierarchGeomDecomp.H.
References hierarchGeomDecomp::decompose().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.