Sends/receives parts of mesh+fvfields to neighbouring processors. Used in load balancing. More...
#include <dynamicMesh/fvMeshDistribute.H>
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:
Definition at line 72 of file fvMeshDistribute.H.
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.
|
fvMeshDistribute | ( | fvMesh & | mesh, |
const scalar | mergeTol | ||
) |
Construct from mesh and absolute merge tolerance.
Definition at line 1317 of file fvMeshDistribute.C.
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().
Foam::autoPtr< Foam::mapDistributePolyMesh > distribute | ( | const labelList & | dist ) |
Send cells to neighbours according to distribution.
(for every cell the new proc)
Definition at line 1351 of file fvMeshDistribute.C.
References Foam::abort(), fvMeshAdder::add(), IOstream::BINARY, polyMesh::boundaryMesh(), fvMeshSubset::cellMap(), polyBoundaryMesh::checkParallelSync(), Foam::endl(), fvMeshSubset::faceMap(), Foam::FatalError, FatalErrorIn, forAll, Pstream::gatherList(), Foam::identity(), Foam::inplaceRenumber(), Foam::inplaceReorder(), Pstream::myProcNo(), primitiveMesh::nCells(), primitiveMesh::nFaces(), primitiveMesh::nInternalFaces(), Foam::nl, primitiveMesh::nPoints(), Pstream::nProcs(), Pstream::parRun(), fvMeshSubset::patchMap(), fvMeshSubset::pointMap(), Foam::Pout, Foam::renumber(), Pstream::scatterList(), PtrList< T >::set(), fvMeshSubset::setLargeCellSubset(), PtrList< T >::size(), List< T >::size(), dictionary::subDict(), fvMeshSubset::subMesh(), List< T >::transfer(), Field< tensor >::typeName, Field< symmTensor >::typeName, Field< Type >::typeName, Field< vector >::typeName, Field< scalar >::typeName, and List< T >::xfer().
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]
|
Print some field info.
Definition at line 155 of file fvMeshDistributeTemplates.C.
References HashTable< T, Key, Hash >::begin(), HashTable< T, Key, Hash >::end(), Foam::endl(), forAll, OSstream::name(), Foam::Pout, and fileName::type().
void printMeshInfo | ( | const fvMesh & | mesh ) | [static]
|
Print some info on mesh.
Definition at line 127 of file fvMeshDistribute.C.
References fvMesh::boundary(), polyMesh::cellZones(), Foam::endl(), polyMesh::faceZones(), forAll, cellZone::name(), faceZone::name(), pointZone::name(), patchIdentifier::name(), primitiveMesh::nCells(), primitiveMesh::nFaces(), primitiveMesh::nInternalFaces(), Foam::nl, primitiveMesh::nPoints(), patches, polyMesh::pointZones(), Foam::Pout, List< T >::size(), PtrList< T >::size(), and polyPatch::start().