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

parMetisDecomp Class Reference

#include <parMetisDecomp/parMetisDecomp.H>


Detailed Description

Source files

Definition at line 46 of file parMetisDecomp.H.

Inheritance diagram for parMetisDecomp:
Collaboration diagram for parMetisDecomp:

List of all members.

Public Member Functions

 TypeName ("parMetis")
 Runtime type information.
 parMetisDecomp (const dictionary &decompositionDict, const polyMesh &mesh)
 Construct given the decomposition dictionary and mesh.
 ~parMetisDecomp ()
virtual bool  parallelAware () const
 parMetis handles Foam processor boundaries
virtual labelList  decompose (const pointField &points, const scalarField &pointWeights)
 Return for every coordinate the wanted processor number. Use the.
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)
 Same but with uniform weights.
virtual labelList  decompose (const labelListList &globalCellCells, const pointField &cc, const scalarField &cWeights)
 Return for every coordinate the wanted processor number. Explicitly.

Static Public Member Functions

static void  calcMetisDistributedCSR (const polyMesh &, List< int > &adjncy, List< int > &xadj)
 Helper to convert mesh connectivity into distributed CSR.

Constructor & Destructor Documentation

parMetisDecomp ( const dictionary &   decompositionDict,
const polyMesh &   mesh  
)

Construct given the decomposition dictionary and mesh.

Definition at line 362 of file parMetisDecomp.C.

References Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorIn, Pstream::nProcs(), and dlLibraryTable::open().

~parMetisDecomp (  ) [inline]

Definition at line 100 of file parMetisDecomp.H.


Member Function Documentation

TypeName ( "parMetis"    )

Runtime type information.

virtual bool parallelAware (  ) const [inline, virtual]

parMetis handles Foam processor boundaries

Implements decompositionMethod.

Definition at line 107 of file parMetisDecomp.H.

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

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

mesh connectivity (if needed) Weights get normalised so the minimum value is 1 before truncation to an integer so the weights should be multiples of the minimum value. The overall sum of weights might otherwise overflow.

Implements decompositionMethod.

Definition at line 387 of file parMetisDecomp.C.

References IOobject::AUTO_WRITE, polyPatch::coupled(), Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorIn, forAll, Foam::gMin(), Foam::Info, IOobject::MUST_READ, Foam::nl, Pstream::nProcs(), IOobject::objectPath(), patches, dictionary::readIfPresent(), List< Type >::setSize(), List< Type >::size(), List< T >::size(), polyPatch::start(), dictionary::subDict(), List< Type >::transfer(), and WarningIn.

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. See note on weights above.

Reimplemented from decompositionMethod.

Definition at line 624 of file parMetisDecomp.C.

References List< T >::append(), polyPatch::coupled(), Foam::exit(), Foam::FatalError, FatalErrorIn, Foam::findIndex(), forAll, patches, List< T >::setSize(), List< T >::size(), polyPatch::start(), syncTools::swapBoundaryFaceList(), and List< T >::transfer().

virtual labelList decompose ( const labelList &   cellToRegion,
const pointField &   regionPoints  
) [inline, virtual]

Same but with uniform weights.

Reimplemented from decompositionMethod.

Definition at line 137 of file parMetisDecomp.H.

References List< T >::size().

Foam::labelList decompose ( const labelListList &   globalCellCells,
const pointField &   cc,
const scalarField &   cWeights  
) [virtual]

Return for every coordinate the wanted processor number. Explicitly.

provided mesh connectivity. 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 See note on weights above.

Implements decompositionMethod.

Definition at line 758 of file parMetisDecomp.C.

References scotchDecomp::calcCSR(), Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorIn, forAll, Foam::gMin(), Foam::Info, Foam::nl, Pstream::nProcs(), dictionary::readIfPresent(), List< Type >::setSize(), List< T >::size(), dictionary::subDict(), and WarningIn.

void calcMetisDistributedCSR ( const polyMesh &   mesh,
List< int > &   adjncy,
List< int > &   xadj  
) [static]

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