randomDecomp Class Reference

Decomposition according to pseudo-random number generator, which is useful for development and stress testing implementations but obviously sub-optimal for normal uses. Can optionally specify the number of consecutive cells to assign to the same processor (agglomeration). More...

Inheritance diagram for randomDecomp:
[legend]
Collaboration diagram for randomDecomp:
[legend]

Public Member Functions

 TypeNameNoDebug ("random")
 Runtime type information. More...
 
 randomDecomp (const dictionary &decompDict, const word &regionName="", int select=selectionType::DEFAULT)
 Construct for decomposition dictionary and optional region name. More...
 
virtual ~randomDecomp ()=default
 Destructor. More...
 
virtual bool parallelAware () const
 Does not care about proc boundaries. More...
 
virtual labelList decompose (const pointField &points, const scalarField &pointWeights) const
 Return for every coordinate the wanted processor number. More...
 
virtual labelList decompose (const pointField &points) const
 Decompose with uniform weights on the points. More...
 
virtual labelList decompose (const polyMesh &mesh, const pointField &cc, const scalarField &cWeights) const
 Return for every coordinate the wanted processor number. More...
 
virtual labelList decompose (const labelListList &globalCellCells, const pointField &cc, const scalarField &cWeights) const
 Return for every coordinate the wanted processor number. More...
 
- Public Member Functions inherited from decompositionMethod
 TypeName ("decompositionMethod")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, decompositionMethod, dictionary,(const dictionary &decompDict, const word &regionName),(decompDict, regionName))
 
 decompositionMethod (const dictionary &decompDict, const word &regionName="")
 
virtual ~decompositionMethod ()=default
 Destructor. More...
 
label nDomains () const noexcept
 Number of domains. More...
 
virtual bool parallelAware () const =0
 Is method parallel aware? More...
 
virtual labelList decompose (const pointField &points, const scalarField &pointWeights) const
 Return the wanted processor number for every coordinate. More...
 
virtual labelList decompose (const pointField &points) const
 Decompose with uniform weights on the points. More...
 
virtual labelList decompose (const polyMesh &mesh, const pointField &points, const scalarField &pointWeights) const =0
 Return for every coordinate the wanted processor number. More...
 
virtual labelList decompose (const polyMesh &mesh, const pointField &points) const
 Decompose with uniform weights on the points. More...
 
virtual labelList decompose (const polyMesh &mesh, const labelList &cellToRegion, const pointField &regionPoints, const scalarField &regionWeights) const
 Return for every coordinate the wanted processor number. Gets. More...
 
virtual labelList decompose (const polyMesh &mesh, const labelList &cellToRegion, const pointField &regionPoints) const
 Like decompose but with uniform weights on the regions. More...
 
virtual labelList decompose (const labelListList &globalCellCells, const pointField &cc, const scalarField &cWeights) const =0
 Return for every coordinate the wanted processor number. More...
 
virtual labelList decompose (const labelListList &globalCellCells, const pointField &cc) const
 Like decompose but with uniform weights on the cells. More...
 
void setConstraints (const polyMesh &mesh, boolList &blockedFace, PtrList< labelList > &specifiedProcessorFaces, labelList &specifiedProcessor, List< labelPair > &explicitConnections) const
 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) const
 Helper: apply constraints to a decomposition. More...
 
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
 Decompose a mesh. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from decompositionMethod
static label nDomains (const dictionary &decompDict, const word &regionName="")
 Return region-specific or top-level numberOfSubdomains entry. More...
 
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)
 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 Types inherited from decompositionMethod
enum  selectionType { DEFAULT = 0 , EXACT = 1 , MANDATORY = 2 , NULL_DICT = 4 }
 Selection type when handling the coefficients dictionary. More...
 
- Protected Member Functions inherited from decompositionMethod
const dictionaryfindCoeffsDict (const word &coeffsName, int select=selectionType::DEFAULT) const
 Locate coeffsName dictionary or the fallback "coeffs" dictionary. More...
 
- Static Protected Member Functions inherited from decompositionMethod
static const dictionaryfindCoeffsDict (const dictionary &dict, const word &coeffsName, int select=selectionType::DEFAULT)
 
- Protected Attributes inherited from decompositionMethod
const dictionarydecompDict_
 Top-level decomposition dictionary (eg, decomposeParDict) More...
 
const dictionarydecompRegionDict_
 Region-specific decomposition dictionary information. More...
 
label nDomains_
 Number of domains for the decomposition. More...
 
PtrList< decompositionConstraintconstraints_
 Optional constraints. More...
 

Detailed Description

Decomposition according to pseudo-random number generator, which is useful for development and stress testing implementations but obviously sub-optimal for normal uses. Can optionally specify the number of consecutive cells to assign to the same processor (agglomeration).

Coefficients:

Property Description Required Default
agglom Number of cells to agglomerate no 1
Source files

Definition at line 68 of file randomDecomp.H.

Constructor & Destructor Documentation

◆ randomDecomp()

randomDecomp ( const dictionary decompDict,
const word regionName = "",
int  select = selectionType::DEFAULT 
)
explicit

Construct for decomposition dictionary and optional region name.

Definition at line 85 of file randomDecomp.C.

References decompositionMethod::findCoeffsDict(), and dictionary::readIfPresent().

Here is the call graph for this function:

◆ ~randomDecomp()

virtual ~randomDecomp ( )
virtualdefault

Destructor.

Member Function Documentation

◆ TypeNameNoDebug()

TypeNameNoDebug ( "random"  )

Runtime type information.

◆ parallelAware()

virtual bool parallelAware ( ) const
inlinevirtual

Does not care about proc boundaries.

Implements decompositionMethod.

Definition at line 114 of file randomDecomp.H.

◆ decompose() [1/4]

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

Return for every coordinate the wanted processor number.

Reimplemented from decompositionMethod.

Definition at line 104 of file randomDecomp.C.

References points, and UList< T >::size().

Here is the call graph for this function:

◆ decompose() [2/4]

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

Decompose with uniform weights on the points.

Reimplemented from decompositionMethod.

Definition at line 114 of file randomDecomp.C.

References points, and UList< T >::size().

Here is the call graph for this function:

◆ decompose() [3/4]

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

Return for every coordinate the wanted processor number.

Implements decompositionMethod.

Definition at line 123 of file randomDecomp.C.

References mesh, and primitiveMesh::nCells().

Here is the call graph for this function:

◆ decompose() [4/4]

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

Return for every coordinate the wanted processor number.

Explicitly provided connectivity - does not use mesh_.

Implements decompositionMethod.

Definition at line 134 of file randomDecomp.C.

References UList< T >::size().

Here is the call graph for this function:

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