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

fvMeshDistribute Class Reference

Sends/receives parts of mesh+fvfields to neighbouring processors. Used in load balancing. More...

#include <dynamicMesh/fvMeshDistribute.H>


Detailed Description

Sends/receives parts of mesh+fvfields to neighbouring processors. Used in load balancing.

Input is per local cell the processor it should move to. Moves meshes and volFields/surfaceFields and returns map which can be used to distribute other.

Notes:

  • does not handle cyclics. Will probably handle separated proc patches.
  • if all cells move off processor also all its processor patches will get deleted so comms might be screwed up (since e.g. globalMeshData expects procPatches on all)
  • initial mesh has to have procPatches last and all normal patches common to all processors and in the same order. This is checked.
  • faces are matched topologically but points on the faces are not. So expect problems -on separated patches (cyclics?) -on zero sized processor edges.
Source files

Definition at line 72 of file fvMeshDistribute.H.

Collaboration diagram for fvMeshDistribute:

List of all members.

Public Member Functions

 ClassName ("fvMeshDistribute")
 fvMeshDistribute (fvMesh &mesh, const scalar mergeTol)
 Construct from mesh and absolute merge tolerance.
autoPtr< mapDistributePolyMesh >  distribute (const labelList &dist)
 Send cells to neighbours according to distribution.

Static Public Member Functions

static labelList  countCells (const labelList &)
 Helper function: count cells per processor in wanted distribution.
static void  printCoupleInfo (const primitiveMesh &, const labelList &, const labelList &, const labelList &)
 Print some info on coupling data.
template<class GeoField >
static void  printFieldInfo (const fvMesh &)
 Print some field info.
static void  printMeshInfo (const fvMesh &)
 Print some info on mesh.

Constructor & Destructor Documentation

fvMeshDistribute ( fvMesh &   mesh,
const scalar   mergeTol  
)

Construct from mesh and absolute merge tolerance.

Definition at line 1317 of file fvMeshDistribute.C.


Member Function Documentation

ClassName ( "fvMeshDistribute"    )
Foam::labelList countCells ( const labelList &   distribution  ) [static]

Helper function: count cells per processor in wanted distribution.

Definition at line 1327 of file fvMeshDistribute.C.

References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorIn, forAll, and Pstream::nProcs().

Referenced by meshRefinement::balance().

void printCoupleInfo ( const primitiveMesh &   mesh,
const labelList &   sourceFace,
const labelList &   sourceProc,
const labelList &   sourceNewProc  
) [static]

Print some info on coupling data.

Definition at line 186 of file fvMeshDistribute.C.

References Foam::endl(), primitiveMesh::faceCentres(), forAll, primitiveMesh::nInternalFaces(), Foam::nl, and Foam::Pout.

void printFieldInfo ( const fvMesh &   mesh  ) [static]

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