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

hierarchGeomDecomp Class Reference

Does hierarchical decomposition of points. Works by first sorting the points in x direction into equal sized bins, then in y direction and finally in z direction. More...

#include <decompositionMethods/hierarchGeomDecomp.H>


Detailed Description

Does hierarchical decomposition of points. Works by first sorting the points in x direction into equal sized bins, then in y direction and finally in z direction.

Uses single array to hold decomposition which is indexed as if it is a 3 dimensional array:

finalDecomp[i,j,k] is indexed as

i*n[0]*n[1] + j*n[1] + k

E.g. if we're sorting 'xyz': the first sort (over the x-component) determines in which x-domain the point goes. Then for each of the x-domains the points are sorted in y direction and each individual x-domain gets split into three y-domains. And similar for the z-direction.

Since the domains are of equal size the maximum difference in size is n[0]*n[1] (or n[1]*n[2]?) (small anyway)

Source files

Definition at line 67 of file hierarchGeomDecomp.H.

Inheritance diagram for hierarchGeomDecomp:
Collaboration diagram for hierarchGeomDecomp:

List of all members.

Public Member Functions

 TypeName ("hierarchical")
 Runtime type information.
 hierarchGeomDecomp (const dictionary &decompositionDict)
 Construct given the decomposition dictionary.
 hierarchGeomDecomp (const dictionary &decompositionDict, const polyMesh &mesh)
 Construct given the decomposition dictionary and mesh.
virtual  ~hierarchGeomDecomp ()
virtual bool  parallelAware () const
 hierarchgeom is aware of processor boundaries
virtual labelList  decompose (const pointField &, const scalarField &weights)
 Return for every coordinate the wanted processor number. Use the.
virtual labelList  decompose (const pointField &)
 Without weights. Code for weighted decomposition is a bit complex.
virtual labelList  decompose (const labelListList &globalCellCells, const pointField &cc, const scalarField &cWeights)
 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.

Constructor & Destructor Documentation

hierarchGeomDecomp ( const dictionary &   decompositionDict  )

Construct given the decomposition dictionary.

Definition at line 691 of file hierarchGeomDecomp.C.

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

Construct given the decomposition dictionary and mesh.

Definition at line 703 of file hierarchGeomDecomp.C.

virtual ~hierarchGeomDecomp (  ) [inline, virtual]

Definition at line 184 of file hierarchGeomDecomp.H.


Member Function Documentation

TypeName ( "hierarchical"    )

Runtime type information.

virtual bool parallelAware (  ) const [inline, virtual]

hierarchgeom is aware of processor boundaries

Implements decompositionMethod.

Definition at line 191 of file hierarchGeomDecomp.H.

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

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

mesh connectivity (if needed)

Implements decompositionMethod.

Definition at line 759 of file hierarchGeomDecomp.C.

References E(), forAll, Foam::max(), points, Foam::reduce(), and List< T >::size().

Referenced by hierarchGeomDecomp::decompose().

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

Without weights. Code for weighted decomposition is a bit complex.

so kept separate for now.

Reimplemented from decompositionMethod.

Definition at line 718 of file hierarchGeomDecomp.C.

References E(), forAll, Foam::max(), points, Foam::reduce(), and List< T >::size().

virtual labelList decompose ( const labelListList &   globalCellCells,
const pointField &   cc,
const scalarField &   cWeights  
) [inline, 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

Implements decompositionMethod.

Definition at line 216 of file hierarchGeomDecomp.H.

References hierarchGeomDecomp::decompose().

virtual labelList decompose ( const labelListList &   globalCellCells,
const pointField &   cc  
) [inline, virtual]

Like decompose but with uniform weights on the cells.

Reimplemented from decompositionMethod.

Definition at line 226 of file hierarchGeomDecomp.H.

References hierarchGeomDecomp::decompose().


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