Automatic domain decomposition class for finite-volume meshes. More...
Public Member Functions | |
TypeName ("domainDecomposition") | |
Runtime type information. More... | |
domainDecomposition (const processorRunTimes &procRunTimes, const word ®ionName) | |
Construct from processor run times and region name. More... | |
virtual | ~domainDecomposition () |
Destructor. More... | |
const fvMesh & | completeMesh () const |
Access the global mesh. More... | |
const PtrList< fvMesh > & | procMeshes () const |
Access the processor meshes. More... | |
label | nProcs () const |
Return the number of processors in the decomposition. More... | |
void | readComplete () |
... More... | |
void | readProcs () |
... More... | |
void | readAddressing () |
... More... | |
fvMesh::readUpdateState | readUpdate () |
... More... | |
void | decompose () |
Decompose the complete mesh to create the processor meshes and. More... | |
void | reconstruct () |
Reconstruct the processor meshes to create the complete mesh and. More... | |
labelList | cellToProc () const |
Return the distribution as an FV field for writing. More... | |
const labelListList & | procPointAddressing () const |
Access the labels of points for each processor. More... | |
const labelListList & | procFaceAddressing () const |
Access the labels of faces for each processor (see notes above) More... | |
const labelListList & | procCellAddressing () const |
Access the labels of cells for each processor. More... | |
const PtrList< surfaceLabelField::Boundary > & | procFaceAddressingBf () const |
Access the labels of faces for each processor (see notes above) More... | |
void | writeAddressing () const |
Write the decomposition addressing. More... | |
void | writeComplete (const bool doSets) const |
Write the decomposed meshes and associated data. More... | |
void | writeProcs (const bool doSets) const |
Write the decomposed meshes and associated data. More... | |
Automatic domain decomposition class for finite-volume meshes.
Definition at line 52 of file domainDecomposition.H.
domainDecomposition | ( | const processorRunTimes & | procRunTimes, |
const word & | regionName | ||
) |
Construct from processor run times and region name.
Definition at line 564 of file domainDecomposition.C.
|
virtual |
Destructor.
Definition at line 582 of file domainDecomposition.C.
TypeName | ( | "domainDecomposition" | ) |
Runtime type information.
|
inline |
Access the global mesh.
Definition at line 191 of file domainDecomposition.H.
Referenced by domainDecomposition::decompose().
Access the processor meshes.
Definition at line 198 of file domainDecomposition.H.
|
inline |
Return the number of processors in the decomposition.
Definition at line 205 of file domainDecomposition.H.
References domainDecomposition::cellToProc(), domainDecomposition::decompose(), processorRunTimes::nProcs(), domainDecomposition::readAddressing(), domainDecomposition::readComplete(), domainDecomposition::readProcs(), domainDecomposition::readUpdate(), and domainDecomposition::reconstruct().
Referenced by domainDecomposition::decompose().
void readComplete | ( | ) |
...
Definition at line 588 of file domainDecomposition.C.
References IOobject::NO_READ, and IOobject::NO_WRITE.
Referenced by domainDecomposition::nProcs().
void readProcs | ( | ) |
...
Definition at line 609 of file domainDecomposition.C.
References IOobject::NO_READ, and IOobject::NO_WRITE.
Referenced by domainDecomposition::nProcs().
void readAddressing | ( | ) |
...
Definition at line 634 of file domainDecomposition.C.
References polyMesh::facesInstance(), polyMesh::meshSubDir, IOobject::MUST_READ, and IOobject::NO_WRITE.
Referenced by domainDecomposition::nProcs().
Foam::fvMesh::readUpdateState readUpdate | ( | ) |
...
Definition at line 688 of file domainDecomposition.C.
References forAll, fvMesh::nonGeometric, Foam::fvc::reconstruct(), polyMesh::TOPO_CHANGE, and polyMesh::UNCHANGED.
Referenced by domainDecomposition::nProcs().
void decompose | ( | ) |
Decompose the complete mesh to create the processor meshes and.
populate the addressing
Definition at line 274 of file domainDecompositionDecompose.C.
References fvMesh::addFvPatches(), PtrList< T >::append(), List< T >::append(), IOobject::AUTO_WRITE, polyMesh::boundaryMesh(), primitiveMesh::cells(), polyMesh::cellZones(), MeshZones< ZoneType, MeshType >::clearAddressing(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::clearStorage(), Foam::clone(), polyPatch::clone(), domainDecomposition::completeMesh(), Foam::endl(), Foam::exit(), polyPatch::faceCells(), polyMesh::faceNeighbour(), polyMesh::faceOwner(), polyMesh::faces(), polyMesh::faceZones(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::Info, Foam::invertOneToMany(), Foam::mag(), Foam::max(), patchIdentifier::name(), cyclicPolyPatch::nbrPatch(), primitiveMesh::nCells(), processorPolyPatch::neighbProcNo(), Foam::nl, nPatches, nPoints, domainDecomposition::nProcs(), nonConformalPolyPatch::origPatch(), patchi, pointLabels(), points, polyMesh::points(), polyMesh::pointZones(), processorRunTimes::procTimes(), PtrList< T >::set(), polyMesh::setPointsInstance(), PtrList< T >::setSize(), List< T >::setSize(), UPtrList< T >::size(), List< T >::size(), Foam::sortedOrder(), polyPatch::start(), HashTable< T, Key, Hash >::toc(), List< T >::transfer(), and IOobject::writeOpt().
Referenced by domainDecomposition::nProcs().
void reconstruct | ( | ) |
Reconstruct the processor meshes to create the complete mesh and.
populate the addressing
Definition at line 36 of file domainDecompositionReconstruct.C.
References NotImplemented.
Referenced by domainDecomposition::nProcs().
Foam::labelList cellToProc | ( | ) | const |
Return the distribution as an FV field for writing.
Definition at line 786 of file domainDecomposition.C.
References forAll.
Referenced by domainDecomposition::nProcs().
|
inline |
Access the labels of points for each processor.
Definition at line 234 of file domainDecomposition.H.
|
inline |
Access the labels of faces for each processor (see notes above)
Definition at line 241 of file domainDecomposition.H.
|
inline |
Access the labels of cells for each processor.
Definition at line 248 of file domainDecomposition.H.
References domainDecomposition::procFaceAddressingBf(), domainDecomposition::writeAddressing(), domainDecomposition::writeComplete(), and domainDecomposition::writeProcs().
const Foam::PtrList< Foam::surfaceLabelField::Boundary > & procFaceAddressingBf | ( | ) | const |
Access the labels of faces for each processor (see notes above)
Definition at line 803 of file domainDecomposition.C.
References List< T >::append(), fvMesh::boundary(), boundary(), Foam::count(), Pair< Type >::first(), forAll, forAllConstIter, Foam::labelMax, Foam::mag(), cyclicFvPatch::nbrPatchID(), processorFvPatch::neighbProcNo(), GeometricField< Type, PatchField, GeoMesh >::null(), cyclicFvPatch::owner(), fvPatch::patchSlice(), processorCyclicFvPatch::referPatchID(), List< T >::resize(), Pair< Type >::second(), and HashTable< T, Key, Hash >::set().
Referenced by domainDecomposition::procCellAddressing().
void writeAddressing | ( | ) | const |
Write the decomposition addressing.
Definition at line 1140 of file domainDecomposition.C.
References polyMesh::facesInstance(), polyMesh::meshSubDir, IOobject::NO_READ, IOobject::NO_WRITE, and regIOobject::write().
Referenced by domainDecomposition::procCellAddressing().
void writeComplete | ( | const bool | doSets | ) | const |
Write the decomposed meshes and associated data.
Definition at line 1194 of file domainDecomposition.C.
References IOstream::defaultPrecision(), Foam::endl(), Foam::faceMap(), forAll, forAllConstIter, Foam::Info, HashSet< Key, Hash >::insert(), HashTable< T, Key, Hash >::insert(), IOobject::instance(), Foam::mag(), Foam::max(), polyMesh::meshSubDir, IOobject::NO_READ, IOobject::NO_WRITE, objects, IOobject::READ_IF_PRESENT, UPtrList< T >::set(), PtrList< T >::set(), HashTable< T, Key, Hash >::size(), HashTable< T, Key, Hash >::sortedToc(), and hexRef8Data::write().
Referenced by domainDecomposition::procCellAddressing().
void writeProcs | ( | const bool | doSets | ) | const |
Write the decomposed meshes and associated data.
Definition at line 1446 of file domainDecomposition.C.
References PtrList< T >::append(), IOstream::defaultPrecision(), forAll, forAllConstIter, HashTable< T, Key, Hash >::found(), IOobjectList::lookupClass(), Foam::mag(), Foam::max(), polyMesh::meshSubDir, IOobject::name(), IOobject::NO_READ, IOobject::NO_WRITE, objects, IOobject::READ_IF_PRESENT, HashTable< T, Key, Hash >::size(), hexRef8Data::write(), and fvMesh::write().
Referenced by domainDecomposition::procCellAddressing().