FreeFOAM The Cross-Platform CFD Toolkit
Hosted by SourceForge:
Get FreeFOAM at SourceForge.net.
            Fast, secure and Free Open Source software downloads

Abstract base class for decomposition. More...

#include <decompositionMethods/decompositionMethod.H>


Detailed Description

Abstract base class for decomposition.

Source files

Definition at line 48 of file decompositionMethod.H.

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 dictionary &  decompositionDict_
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 (  ) [inline, virtual]

Definition at line 140 of file decompositionMethod.H.


Member Function Documentation

void calcCellCells ( const polyMesh &   mesh,
const labelList &   agglom,
const label   nCoarse,
labelListList &   cellCells  
) [static, protected]
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, manualDecomp, simpleGeomDecomp, metisDecomp, parMetisDecomp, and scotchDecomp.

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, manualDecomp, simpleGeomDecomp, metisDecomp, parMetisDecomp, and scotchDecomp.

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 metisDecomp, parMetisDecomp, and 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 metisDecomp, parMetisDecomp, and 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, manualDecomp, simpleGeomDecomp, metisDecomp, parMetisDecomp, and scotchDecomp.

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: