FreeFOAM The Cross-Platform CFD Toolkit
decompositionMethod Class Reference

Abstract base class for decomposition. More...

#include <decompositionMethods/decompositionMethod.H>


Detailed Description

+ Inheritance diagram for decompositionMethod:
+ Collaboration diagram for decompositionMethod:

List of all members.

Public Member Functions

 TypeName ("decompositionMethod")
 Runtime type information.
 declareRunTimeSelectionTable (autoPtr, decompositionMethod, dictionary,(const dictionary &decompositionDict),(decompositionDict))
 declareRunTimeSelectionTable (autoPtr, decompositionMethod, dictionaryMesh,(const dictionary &decompositionDict, const polyMesh &mesh),(decompositionDict, mesh))
 decompositionMethod (const dictionary &decompositionDict)
 Construct given the decomposition dictionary.
virtual ~decompositionMethod ()
virtual bool parallelAware () const =0
 Is method parallel aware (i.e. does it synchronize domains across.
virtual labelList decompose (const pointField &points, const scalarField &pointWeights)=0
 Return for every coordinate the wanted processor number. Use the.
virtual labelList decompose (const pointField &)
 Like decompose but with uniform weights on the points.
virtual labelList decompose (const labelList &cellToRegion, const pointField &regionPoints, const scalarField &regionWeights)
 Return for every coordinate the wanted processor number. Gets.
virtual labelList decompose (const labelList &cellToRegion, const pointField &regionPoints)
 Like decompose but with uniform weights on the regions.
virtual labelList decompose (const labelListList &globalCellCells, const pointField &cc, const scalarField &cWeights)=0
 Return for every coordinate the wanted processor number. Explicitly.
virtual labelList decompose (const labelListList &globalCellCells, const pointField &cc)
 Like decompose but with uniform weights on the cells.

Static Public Member Functions

static autoPtr
< decompositionMethod
New (const dictionary &decompositionDict)
 Return a reference to the selected decomposition method.
static autoPtr
< decompositionMethod
New (const dictionary &decompositionDict, const polyMesh &mesh)
 Return a reference to the selected decomposition method.

Static Protected Member Functions

static void calcCellCells (const polyMesh &mesh, const labelList &agglom, const label nCoarse, labelListList &cellCells)
 Helper: determine (non-parallel) cellCells from mesh agglomeration.

Protected Attributes

const dictionarydecompositionDict_
label nProcessors_

Constructor & Destructor Documentation

decompositionMethod ( const dictionary decompositionDict)
inline

Construct given the decomposition dictionary.

Definition at line 128 of file decompositionMethod.H.

virtual ~decompositionMethod ( )
inlinevirtual

Definition at line 140 of file decompositionMethod.H.


Member Function Documentation

void calcCellCells ( const polyMesh mesh,
const labelList agglom,
const label  nCoarse,
labelListList cellCells 
)
staticprotected
TypeName ( "decompositionMethod"  )

Runtime type information.

declareRunTimeSelectionTable ( autoPtr  ,
decompositionMethod  ,
dictionary  ,
(const dictionary &decompositionDict)  ,
(decompositionDict)   
)
declareRunTimeSelectionTable ( autoPtr  ,
decompositionMethod  ,
dictionaryMesh  ,
(const dictionary &decompositionDict, const polyMesh &mesh ,
(decompositionDict, mesh  
)
Foam::autoPtr< Foam::decompositionMethod > New ( const dictionary decompositionDict)
static

Return a reference to the selected decomposition method.

Definition at line 43 of file decompositionMethod.C.

References Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorIn, Foam::Info, and dictionary::lookup().

Referenced by autoHexMeshDriver::autoHexMeshDriver().

Foam::autoPtr< Foam::decompositionMethod > New ( const dictionary decompositionDict,
const polyMesh mesh 
)
static

Return a reference to the selected decomposition method.

Definition at line 73 of file decompositionMethod.C.

References Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorIn, Foam::Info, dictionary::lookup(), and mesh.

virtual bool parallelAware ( ) const
pure virtual

Is method parallel aware (i.e. does it synchronize domains across.

proc boundaries)

Implemented in hierarchGeomDecomp, scotchDecomp, simpleGeomDecomp, and manualDecomp.

Referenced by autoHexMeshDriver::autoHexMeshDriver().

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

Return for every coordinate the wanted processor number. Use the.

mesh connectivity (if needed)

Implemented in hierarchGeomDecomp, scotchDecomp, simpleGeomDecomp, and manualDecomp.

Referenced by meshRefinement::balance(), and meshRefinement::decomposeCombineRegions().

Foam::labelList decompose ( const pointField points)
virtual

Like decompose but with uniform weights on the points.

Reimplemented in hierarchGeomDecomp, and simpleGeomDecomp.

Definition at line 105 of file decompositionMethod.C.

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

Return for every coordinate the wanted processor number. Gets.

passed agglomeration map (from fine to coarse cells) and coarse cell location. Can be overridden by decomposers that provide this functionality natively. Coarse cells are local to the processor (if in parallel). If you want to have coarse cells spanning processors use the globalCellCells instead.

Reimplemented in scotchDecomp.

Definition at line 116 of file decompositionMethod.C.

References forAll, and List< T >::size().

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

Like decompose but with uniform weights on the regions.

Reimplemented in scotchDecomp.

Definition at line 138 of file decompositionMethod.C.

References forAll, and List< T >::size().

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

Return for every coordinate the wanted processor number. Explicitly.

provided connectivity - does not use mesh_. The connectivity is equal to mesh.cellCells() except for

  • in parallel the cell numbers are global cell numbers (starting from 0 at processor0 and then incrementing all through the processors)
  • the connections are across coupled patches

Implemented in hierarchGeomDecomp, scotchDecomp, manualDecomp, and simpleGeomDecomp.

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

Like decompose but with uniform weights on the cells.

Reimplemented in hierarchGeomDecomp.

Definition at line 204 of file decompositionMethod.C.


Member Data Documentation

const dictionary& decompositionDict_
protected

Definition at line 55 of file decompositionMethod.H.

label nProcessors_
protected

Definition at line 56 of file decompositionMethod.H.


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