geomDecomp Class Referenceabstract

Base for geometrical domain decomposition methods. More...

Inheritance diagram for geomDecomp:
Collaboration diagram for geomDecomp:

Public Member Functions

 geomDecomp (const Vector< label > &divisions)
 Construct with number of x/y/z division (no coefficients or constraints) More...
 
 geomDecomp (const word &derivedType, const dictionary &decompDict, int select=selectionType::DEFAULT)
 Construct for derived type name and decomposition dictionary. More...
 
 geomDecomp (const word &derivedType, const dictionary &decompDict, const word &regionName, int select=selectionType::DEFAULT)
 Construct for derived type name, decomposition dictionary and region name. More...
 
virtual bool geometric () const
 Purely geometric methods. More...
 
virtual labelList decompose (const pointField &points, const scalarField &pointWeights=scalarField::null()) const =0
 Return for every coordinate the wanted processor number. More...
 
- Public Member Functions inherited from decompositionMethod
 decompositionMethod (const decompositionMethod &)=delete
 No copy construct. More...
 
void operator= (const decompositionMethod &)=delete
 No copy assignment. More...
 
 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="")
 Construct given the decomposition dictionary, optionally region-specific. More...
 
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 polyMesh &mesh, const pointField &points, const scalarField &pointWeights=scalarField::null()) const =0
 Return for every coordinate the wanted processor number, using uniform or specified point weights. More...
 
virtual labelList decompose (const polyMesh &mesh, const labelList &cellToRegion, const pointField &regionPoints, const scalarField &regionWeights=scalarField::null()) const
 Return for every coordinate the wanted processor number. More...
 
virtual labelList decompose (const CompactListList< label > &globalCellCells, const pointField &cc, const scalarField &cWeights=scalarField::null()) const =0
 Return for every coordinate the wanted processor number. More...
 
virtual labelList decompose (const labelListList &globalCellCells, const pointField &cc, const scalarField &cWeights=scalarField::null()) const =0
 Return for every coordinate the wanted processor number. 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...
 

Protected Member Functions

tmp< pointFieldadjustPoints (const pointField &) const
 Apply delta (jitter) or rotation to coordinates. More...
 
void checkDecompositionDirections (const Vector< label > &) const
 Check that mesh directions are compatible with decomposition. 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...
 
 decompositionMethod (const label numDomains)
 Construct with specified number of domains, no coefficients or constraints. More...
 

Protected Attributes

Vector< label > n_
 The divisions. More...
 
Vector< directionorder_
 Decomposition order in terms of components (optional) More...
 
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...
 

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)
 Return an optional region-specific dictionary from "regions" sub-dictionary, or dictionary::null on failure. More...
 
static autoPtr< decompositionMethodNew (const dictionary &decompDict, const word &regionName="")
 Return a reference to the selected decomposition method, optionally region-specific. More...
 
static void calcCellCells (const polyMesh &mesh, const labelList &agglom, const label nLocalCoarse, const bool parallel, CompactListList< label > &cellCells)
 Determine (local or global) cellCells from mesh agglomeration. More...
 
static void calcCellCells (const polyMesh &mesh, const labelList &agglom, const label nLocalCoarse, const bool parallel, CompactListList< label > &cellCells, CompactListList< scalar > &cellCellWeights)
 Determine (local or global) cellCells and face weights from mesh agglomeration. 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)
 Locate coeffsName dictionary or the fallback "coeffs" dictionary within an enclosing dictionary. More...
 

Detailed Description

Base for geometrical domain decomposition methods.

Base 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
rotation coordinate rotation no
Source files

Definition at line 82 of file geomDecomp.H.

Constructor & Destructor Documentation

◆ geomDecomp() [1/3]

geomDecomp ( const Vector< label > &  divisions)
explicit

Construct with number of x/y/z division (no coefficients or constraints)

Definition at line 145 of file geomDecomp.C.

◆ geomDecomp() [2/3]

geomDecomp ( const word derivedType,
const dictionary decompDict,
int  select = selectionType::DEFAULT 
)

Construct for derived type name and decomposition dictionary.

Definition at line 157 of file geomDecomp.C.

◆ geomDecomp() [3/3]

geomDecomp ( const word derivedType,
const dictionary decompDict,
const word regionName,
int  select = selectionType::DEFAULT 
)

Construct for derived type name, decomposition dictionary and region name.

Definition at line 175 of file geomDecomp.C.

Member Function Documentation

◆ adjustPoints()

Foam::tmp< Foam::pointField > adjustPoints ( const pointField points) const
protected

Apply delta (jitter) or rotation to coordinates.

Definition at line 115 of file geomDecomp.C.

References points.

◆ checkDecompositionDirections()

void checkDecompositionDirections ( const Vector< label > &  meshDirs) const
protected

Check that mesh directions are compatible with decomposition.

Definition at line 124 of file geomDecomp.C.

References Foam::endl(), Foam::expressions::Detail::nComponents(), and WarningInFunction.

Referenced by simpleGeomDecomp::decompose(), and hierarchGeomDecomp::decompose().

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

◆ geometric()

virtual bool geometric ( ) const
inlinevirtual

Purely geometric methods.

Reimplemented from decompositionMethod.

Definition at line 185 of file geomDecomp.H.

◆ decompose()

virtual labelList decompose ( const pointField points,
const scalarField pointWeights = scalarField::null() 
) const
pure virtual

Return for every coordinate the wanted processor number.

Reimplemented from decompositionMethod.

Implemented in hierarchGeomDecomp, and simpleGeomDecomp.

Member Data Documentation

◆ n_

Vector<label> n_
protected

The divisions.

Definition at line 122 of file geomDecomp.H.

◆ order_

Vector<direction> order_
protected

Decomposition order in terms of components (optional)

Definition at line 127 of file geomDecomp.H.

◆ coeffsDict_

const dictionary& coeffsDict_
protected

Coefficients for all derived methods.

Definition at line 132 of file geomDecomp.H.


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