Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
decompositionMethod Class Referenceabstract

Abstract base class for domain decomposition. More...

Inheritance diagram for decompositionMethod:
Inheritance graph
[legend]
Collaboration diagram for decompositionMethod:
Collaboration graph
[legend]

Public Member Functions

 TypeName ("decompositionMethod")
 
 declareRunTimeSelectionTable (autoPtr, decompositionMethod, dictionary,(const dictionary &decompDict, const word &regionName),(decompDict, regionName))
 
 decompositionMethod (const dictionary &decompDict, const word &regionName="")
 
virtual ~decompositionMethod ()=default
 
label nDomains () const noexcept
 
virtual bool parallelAware () const =0
 
virtual labelList decompose (const pointField &points, const scalarField &pointWeights) const
 
virtual labelList decompose (const pointField &points) const
 
virtual labelList decompose (const polyMesh &mesh, const pointField &points, const scalarField &pointWeights) const =0
 
virtual labelList decompose (const polyMesh &mesh, const pointField &points) const
 
virtual labelList decompose (const polyMesh &mesh, const labelList &cellToRegion, const pointField &regionPoints, const scalarField &regionWeights) const
 
virtual labelList decompose (const polyMesh &mesh, const labelList &cellToRegion, const pointField &regionPoints) const
 
virtual labelList decompose (const labelListList &globalCellCells, const pointField &cc, const scalarField &cWeights) const =0
 
virtual labelList decompose (const labelListList &globalCellCells, const pointField &cc) 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
 

Static Public Member Functions

static label nDomains (const dictionary &decompDict, const word &regionName="")
 
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)
 
static void calcCellCells (const polyMesh &mesh, const labelList &agglom, const label nLocalCoarse, const bool parallel, CompactListList< label > &cellCells, CompactListList< scalar > &cellCellWeights)
 

Protected Types

enum  selectionType { DEFAULT = 0, EXACT = 1, MANDATORY = 2, NULL_DICT = 4 }
 

Protected Member Functions

const dictionaryfindCoeffsDict (const word &coeffsName, int select=selectionType::DEFAULT) const
 

Static Protected Member Functions

static const dictionaryfindCoeffsDict (const dictionary &dict, const word &coeffsName, int select=selectionType::DEFAULT)
 

Protected Attributes

const dictionarydecompDict_
 
const dictionarydecompRegionDict_
 
label nDomains_
 
PtrList< decompositionConstraintconstraints_
 

Detailed Description

Abstract base class for domain decomposition.

Source files

Definition at line 47 of file decompositionMethod.H.

Member Enumeration Documentation

◆ selectionType

enum selectionType
protected
Enumerator
DEFAULT 

Default request.

EXACT 

No fallback to "coeffs" if main name not found.

MANDATORY 

Fatal if dictionary could not be found.

NULL_DICT 

On failure, return dictionary::null instead of the top-level enclosing dictionary.

Definition at line 72 of file decompositionMethod.H.

Constructor & Destructor Documentation

◆ decompositionMethod()

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

Definition at line 318 of file decompositionMethod.C.

◆ ~decompositionMethod()

virtual ~decompositionMethod ( )
virtualdefault

Member Function Documentation

◆ findCoeffsDict() [1/2]

const Foam::dictionary & findCoeffsDict ( const dictionary dict,
const word coeffsName,
int  select = selectionType::DEFAULT 
)
staticprotected

Definition at line 237 of file decompositionMethod.C.

References Foam::abort(), Foam::cfindCoeffsDict(), dict, Foam::endl(), Foam::FatalIOError, dictionary::name(), and dictionary::null.

Here is the call graph for this function:

◆ findCoeffsDict() [2/2]

const Foam::dictionary & findCoeffsDict ( const word coeffsName,
int  select = selectionType::DEFAULT 
) const
protected

Definition at line 272 of file decompositionMethod.C.

References Foam::abort(), Foam::cfindCoeffsDict(), Foam::endl(), Foam::FatalIOError, and dictionary::null.

Here is the call graph for this function:

◆ TypeName()

TypeName ( "decompositionMethod"  )

◆ declareRunTimeSelectionTable()

declareRunTimeSelectionTable ( autoPtr  ,
decompositionMethod  ,
dictionary  ,
(const dictionary &decompDict, const word &regionName ,
(decompDict, regionName  
)

◆ nDomains() [1/2]

Foam::label nDomains ( const dictionary decompDict,
const word regionName = "" 
)
static

Definition at line 76 of file decompositionMethod.C.

References Foam::endl(), dictionary::get(), Foam::nl, dictionary::readIfPresent(), regionName, and WarningInFunction.

Here is the call graph for this function:

◆ optionalRegionDict()

const Foam::dictionary & optionalRegionDict ( const dictionary decompDict,
const word regionName 
)
static

Definition at line 109 of file decompositionMethod.C.

References dictionary::findDict(), and regionName.

Here is the call graph for this function:

◆ New()

Foam::autoPtr< Foam::decompositionMethod > New ( const dictionary decompDict,
const word regionName = "" 
)
static

Definition at line 337 of file decompositionMethod.C.

References Foam::endl(), Foam::exit(), Foam::FatalIOError, FatalIOErrorInLookup, dictionary::get(), Foam::Info, dictionary::readIfPresent(), and regionName.

Referenced by decompositionModel::decomposer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ nDomains() [2/2]

label nDomains ( ) const
inlinenoexcept

Definition at line 205 of file decompositionMethod.H.

References decompositionMethod::nDomains_.

◆ parallelAware()

virtual bool parallelAware ( ) const
pure virtual

◆ decompose() [1/10]

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

Reimplemented in simpleGeomDecomp, geomDecomp, randomDecomp, and hierarchGeomDecomp.

Definition at line 1318 of file decompositionMethod.C.

References NotImplemented.

Referenced by meshRefinement::balance().

Here is the caller graph for this function:

◆ decompose() [2/10]

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

Reimplemented in geomDecomp, simpleGeomDecomp, randomDecomp, and hierarchGeomDecomp.

Definition at line 1329 of file decompositionMethod.C.

References NotImplemented.

◆ decompose() [3/10]

virtual labelList decompose ( const polyMesh mesh,
const pointField points,
const scalarField pointWeights 
) const
pure virtual

◆ decompose() [4/10]

Foam::labelList decompose ( const polyMesh mesh,
const pointField points 
) const
virtual

Reimplemented in simpleGeomDecomp, and hierarchGeomDecomp.

Definition at line 377 of file decompositionMethod.C.

References mesh, and points.

◆ decompose() [5/10]

Foam::labelList decompose ( const polyMesh mesh,
const labelList cellToRegion,
const pointField regionPoints,
const scalarField regionWeights 
) const
virtual

Reimplemented in scotchDecomp, metisLikeDecomp, and ptscotchDecomp.

Definition at line 389 of file decompositionMethod.C.

References forAll, and mesh.

◆ decompose() [6/10]

Foam::labelList decompose ( const polyMesh mesh,
const labelList cellToRegion,
const pointField regionPoints 
) const
virtual

Definition at line 430 of file decompositionMethod.C.

References mesh.

◆ decompose() [7/10]

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

◆ decompose() [8/10]

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

Reimplemented in hierarchGeomDecomp.

Definition at line 449 of file decompositionMethod.C.

◆ calcCellCells() [1/2]

void calcCellCells ( const polyMesh mesh,
const labelList agglom,
const label  nLocalCoarse,
const bool  global,
CompactListList< label > &  cellCells 
)
static

◆ calcCellCells() [2/2]

void calcCellCells ( const polyMesh mesh,
const labelList agglom,
const label  nLocalCoarse,
const bool  parallel,
CompactListList< label > &  cellCells,
CompactListList< scalar > &  cellCellWeights 
)
static

◆ setConstraints()

void setConstraints ( const polyMesh mesh,
boolList blockedFace,
PtrList< labelList > &  specifiedProcessorFaces,
labelList specifiedProcessor,
List< labelPair > &  explicitConnections 
) const

Definition at line 1210 of file decompositionMethod.C.

References PtrList::clear(), List::clear(), mesh, primitiveMesh::nFaces(), and List::setSize().

Referenced by meshRefinement::balance().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ applyConstraints()

void applyConstraints ( const polyMesh mesh,
const boolList blockedFace,
const PtrList< labelList > &  specifiedProcessorFaces,
const labelList specifiedProcessor,
const List< labelPair > &  explicitConnections,
labelList finalDecomp 
) const

Definition at line 1239 of file decompositionMethod.C.

References mesh.

◆ decompose() [9/10]

Foam::labelList decompose ( const polyMesh mesh,
const scalarField cellWeights,
const boolList blockedFace,
const PtrList< labelList > &  specifiedProcessorFaces,
const labelList specifiedProcessor,
const List< labelPair > &  explicitConnections 
) const
virtual

◆ decompose() [10/10]

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

Definition at line 1264 of file decompositionMethod.C.

References mesh.

Member Data Documentation

◆ decompDict_

const dictionary& decompDict_
protected

Definition at line 85 of file decompositionMethod.H.

◆ decompRegionDict_

const dictionary& decompRegionDict_
protected

Definition at line 88 of file decompositionMethod.H.

◆ nDomains_

label nDomains_
protected

Definition at line 91 of file decompositionMethod.H.

Referenced by decompositionMethod::nDomains().

◆ constraints_

PtrList<decompositionConstraint> constraints_
protected

Definition at line 94 of file decompositionMethod.H.


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