kahipDecomp Class Reference

Domain decomposition using KaHIP http://algo2.iti.kit.edu/documents/kahip/. More...

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

Public Types

enum  configs {
  FAST = 0, ECO = 1, STRONG = 2, FASTSOCIAL = 3,
  ECOSOCIAL = 4, STRONGSOCIAL = 5
}
 The predefined KaHIP configuration types. More...
 

Public Member Functions

 TypeName ("kahip")
 Runtime type information. More...
 
 kahipDecomp (const dictionary &decompDict, const word &regionName="")
 Construct given decomposition dictionary and optional region name. More...
 
virtual ~kahipDecomp ()=default
 Destructor. More...
 
virtual bool parallelAware () const
 Is method parallel aware? More...
 
- Public Member Functions inherited from metisLikeDecomp
virtual ~metisLikeDecomp ()=default
 Destructor. More...
 
virtual labelList decompose (const polyMesh &mesh, const pointField &points, const scalarField &pointWeights) const
 Return for every coordinate the wanted processor number. More...
 
virtual labelList decompose (const polyMesh &mesh, const labelList &agglom, const pointField &regionPoints, const scalarField &regionWeights) const
 Return for every coordinate the wanted processor number. More...
 
virtual labelList decompose (const labelListList &globalCellCells, const pointField &cellCentres, const scalarField &cellWeights) const
 Return for every coordinate the wanted processor number. More...
 
virtual labelList decompose (const pointField &points, const scalarField &pointWeights) const
 Inherit decompose from decompositionMethod. More...
 
virtual labelList decompose (const pointField &points) const
 Inherit decompose from decompositionMethod. More...
 
virtual labelList decompose (const polyMesh &mesh, const pointField &points, const scalarField &pointWeights) const=0
 Inherit decompose from decompositionMethod. More...
 
virtual labelList decompose (const polyMesh &mesh, const pointField &points) const
 Inherit decompose from decompositionMethod. More...
 
virtual labelList decompose (const polyMesh &mesh, const labelList &cellToRegion, const pointField &regionPoints, const scalarField &regionWeights) const
 Inherit decompose from decompositionMethod. More...
 
virtual labelList decompose (const polyMesh &mesh, const labelList &cellToRegion, const pointField &regionPoints) const
 Inherit decompose from decompositionMethod. More...
 
virtual labelList decompose (const labelListList &globalCellCells, const pointField &cc, const scalarField &cWeights) const=0
 Inherit decompose from decompositionMethod. More...
 
virtual labelList decompose (const labelListList &globalCellCells, const pointField &cc) const
 Inherit decompose from decompositionMethod. 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
 Inherit decompose from decompositionMethod. More...
 
labelList decompose (const polyMesh &mesh, const scalarField &cWeights) const
 Inherit decompose from decompositionMethod. 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 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
 Decompose with uniform weights on the points. 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
 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...
 

Static Public Attributes

static const Enum< configsconfigNames
 The selection names for predefined KaHIP configurations. More...
 

Protected Member Functions

virtual label decomposeSerial (const labelList &adjncy, const labelList &xadj, const List< scalar > &cellWeights, labelList &decomp) const
 Call kahip with options from dictionary. More...
 
 kahipDecomp (const kahipDecomp &)=delete
 No copy construct. More...
 
void operator= (const kahipDecomp &)=delete
 No copy assignment. More...
 
- Protected Member Functions inherited from metisLikeDecomp
virtual label decomposeGeneral (const labelList &adjncy, const labelList &xadj, const List< scalar > &cellWeights, labelList &decomp) const
 Serial and/or collect/distribute for parallel operation. More...
 
 metisLikeDecomp (const metisLikeDecomp &)=delete
 No copy construct. More...
 
void operator= (const metisLikeDecomp &)=delete
 No copy assignment. More...
 
 metisLikeDecomp (const word &derivedType, const dictionary &decompDict, int select=selectionType::NULL_DICT)
 Construct for derived type name and decomposition dictionary. More...
 
 metisLikeDecomp (const word &derivedType, const dictionary &decompDict, const word &regionName, int select=selectionType::NULL_DICT)
 
- 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...
 

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...
 
- Static Protected Member Functions inherited from decompositionMethod
static const dictionaryfindCoeffsDict (const dictionary &dict, const word &coeffsName, int select=selectionType::DEFAULT)
 
- Protected Attributes inherited from metisLikeDecomp
const dictionarycoeffsDict_
 Coefficients for all derived methods. More...
 
- 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

Domain decomposition using KaHIP http://algo2.iti.kit.edu/documents/kahip/.

When run in parallel will collect the entire graph on to the master, decompose and send back.

Coefficients dictionary: kahipCoeffs, coeffs.

numberOfSubdomains   N;
method               kahip;

kahipCoeffs
{
    config          fast;
    imbalance       0.01;
}

Method coefficients:

Property Description Required Default
config fast / eco / strong no fast
imbalance imbalance on cells between domains no 0.01
seed initial value for random number generator no 0
Source files

Definition at line 94 of file kahipDecomp.H.

Member Enumeration Documentation

◆ configs

enum configs
strong

The predefined KaHIP configuration types.

Enumerator
FAST 

default

ECO 
STRONG 
FASTSOCIAL 
ECOSOCIAL 
STRONGSOCIAL 

Definition at line 122 of file kahipDecomp.H.

Constructor & Destructor Documentation

◆ kahipDecomp() [1/2]

kahipDecomp ( const kahipDecomp )
protecteddelete

No copy construct.

◆ kahipDecomp() [2/2]

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

Construct given decomposition dictionary and optional region name.

Definition at line 74 of file dummyKahipDecomp.C.

◆ ~kahipDecomp()

virtual ~kahipDecomp ( )
virtualdefault

Destructor.

Member Function Documentation

◆ decomposeSerial()

Foam::label decomposeSerial ( const labelList adjncy,
const labelList xadj,
const List< scalar > &  cellWeights,
labelList decomp 
) const
protectedvirtual

Call kahip with options from dictionary.

Implements metisLikeDecomp.

Definition at line 57 of file dummyKahipDecomp.C.

References Foam::exit(), Foam::FatalError, FatalErrorInFunction, and notImplementedMessage.

Here is the call graph for this function:

◆ operator=()

void operator= ( const kahipDecomp )
protecteddelete

No copy assignment.

◆ TypeName()

TypeName ( "kahip"  )

Runtime type information.

◆ parallelAware()

virtual bool parallelAware ( ) const
inlinevirtual

Is method parallel aware?

(i.e. does it synchronize domains across proc boundaries)

Implements decompositionMethod.

Definition at line 157 of file kahipDecomp.H.

Member Data Documentation

◆ configNames

const Foam::Enum< Foam::kahipDecomp::configs > configNames
static

The selection names for predefined KaHIP configurations.

Definition at line 134 of file kahipDecomp.H.


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