Public Member Functions | Static Public Member Functions | List of all members
fvMeshDistribute Class Reference

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

Public Member Functions

 ClassName ("fvMeshDistribute")
 
 fvMeshDistribute (fvMesh &mesh)
 Construct from mesh. More...
 
autoPtr< mapDistributePolyMeshdistribute (const labelList &dist)
 Send cells to neighbours according to distribution. More...
 

Static Public Member Functions

static labelList countCells (const labelList &)
 Helper function: count cells per processor in wanted distribution. More...
 
static void printCoupleInfo (const primitiveMesh &, const labelList &, const labelList &, const labelList &, const labelList &)
 Print some info on coupling data. More...
 
template<class GeoField >
static void printIntFieldInfo (const fvMesh &)
 Print some field info. More...
 
template<class GeoField >
static void printFieldInfo (const fvMesh &)
 Print some field info. More...
 
static void printMeshInfo (const fvMesh &)
 Print some info on mesh. More...
 
static tmp< surfaceScalarFieldgenerateTestField (const fvMesh &)
 Generate a test field on faces. More...
 
static void testField (const surfaceScalarField &)
 Check whether field consistent with face orientation. More...
 

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:

Source files

Definition at line 66 of file fvMeshDistribute.H.

Constructor & Destructor Documentation

◆ fvMeshDistribute()

fvMeshDistribute ( fvMesh mesh)
explicit

Construct from mesh.

Definition at line 1858 of file fvMeshDistribute.C.

Member Function Documentation

◆ ClassName()

ClassName ( "fvMeshDistribute"  )

◆ countCells()

Foam::labelList countCells ( const labelList distribution)
static

Helper function: count cells per processor in wanted distribution.

Definition at line 1867 of file fvMeshDistribute.C.

References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, UPstream::nProcs(), and Foam::Zero.

Referenced by meshRefinement::balance().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ distribute()

Foam::autoPtr< Foam::mapDistributePolyMesh > distribute ( const labelList dist)

◆ printCoupleInfo()

void printCoupleInfo ( const primitiveMesh mesh,
const labelList sourceFace,
const labelList sourceProc,
const labelList sourcePatch,
const labelList sourceNewNbrProc 
)
static

Print some info on coupling data.

Definition at line 280 of file fvMeshDistribute.C.

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

Here is the call graph for this function:

◆ printIntFieldInfo()

void printIntFieldInfo ( const fvMesh mesh)
static

Print some field info.

Definition at line 74 of file fvMeshDistributeTemplates.C.

References Foam::endl(), fld, forAllConstIters(), mesh, and Foam::Pout.

Here is the call graph for this function:

◆ printFieldInfo()

void printFieldInfo ( const fvMesh mesh)
static

Print some field info.

Definition at line 102 of file fvMeshDistributeTemplates.C.

References Foam::endl(), fld, forAllConstIters(), mesh, OSstream::name(), Foam::nl, Foam::Pout, and fileName::type().

Here is the call graph for this function:

◆ printMeshInfo()

void printMeshInfo ( const fvMesh mesh)
static

◆ generateTestField()

Foam::tmp< Foam::surfaceScalarField > generateTestField ( const fvMesh mesh)
static

Generate a test field on faces.

Definition at line 400 of file fvMeshDistribute.C.

References Foam::dimless, fld, forAll, fvMesh::magSf(), mesh, n, IOobjectOption::NO_READ, IOobjectOption::NO_WRITE, Foam::normalised(), tmp< T >::ref(), fvMesh::Sf(), UList< T >::size(), fvMesh::time(), Time::timeName(), and Foam::Zero.

Here is the call graph for this function:

◆ testField()

void testField ( const surfaceScalarField fld)
static

Check whether field consistent with face orientation.

Definition at line 450 of file fvMeshDistribute.C.

References Foam::cos(), Foam::constant::electromagnetic::e, Foam::endl(), primitiveMesh::faceCentres(), fld, forAll, Foam::mag(), fvMesh::magSf(), mesh, n, fvPatch::name(), Foam::normalised(), fvsPatchFieldBase::patch(), fvMesh::Sf(), fvPatch::start(), and WarningInFunction.

Here is the call graph for this function:

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