Various mesh related information for a parallel run. Upon construction, constructs all info using parallel communication. More...
Classes | |
struct | ListPlusEqOp |
Public Member Functions | |
ClassName ("globalMeshData") | |
globalMeshData (const polyMesh &mesh) | |
~globalMeshData () | |
void | clearOut () |
const polyMesh & | mesh () const noexcept |
bool | parallel () const |
label | nTotalPoints () const noexcept |
label | nTotalFaces () const noexcept |
label | nTotalCells () const noexcept |
const labelList & | processorPatches () const noexcept |
const labelList & | processorPatchIndices () const noexcept |
const labelList & | processorPatchNeighbours () const noexcept |
label | nGlobalPoints () const |
const labelList & | sharedPointLabels () const |
const labelList & | sharedPointAddr () const |
const labelList & | sharedPointGlobalLabels () const |
pointField | sharedPoints () const |
pointField | geometricSharedPoints () const |
label | nGlobalEdges () const |
const labelList & | sharedEdgeLabels () const |
const labelList & | sharedEdgeAddr () const |
const indirectPrimitivePatch & | coupledPatch () const |
const labelList & | coupledPatchMeshEdges () const |
const Map< label > & | coupledPatchMeshEdgeMap () const |
const globalIndexAndTransform & | globalTransforms () const |
const globalIndex & | globalPointNumbering () const |
const labelListList & | globalPointSlaves () const |
const labelListList & | globalPointTransformedSlaves () const |
const mapDistribute & | globalPointSlavesMap () const |
template<class Type , class CombineOp , class TransformOp > | |
void | syncPointData (List< Type > &pointData, const CombineOp &cop, const TransformOp &top) const |
const globalIndex & | globalEdgeNumbering () const |
const labelListList & | globalEdgeSlaves () const |
const labelListList & | globalEdgeTransformedSlaves () const |
const mapDistribute & | globalEdgeSlavesMap () const |
const bitSet & | globalEdgeOrientation () const |
const labelListList & | globalCoPointSlaves () const |
const mapDistribute & | globalCoPointSlavesMap () const |
const globalIndex & | globalBoundaryFaceNumbering () const |
const labelListList & | globalPointBoundaryFaces () const |
const labelListList & | globalPointTransformedBoundaryFaces () const |
const mapDistribute & | globalPointBoundaryFacesMap () const |
const labelList & | boundaryCells () const |
const globalIndex & | globalBoundaryCellNumbering () const |
const labelListList & | globalPointBoundaryCells () const |
const labelListList & | globalPointTransformedBoundaryCells () const |
const mapDistribute & | globalPointBoundaryCellsMap () const |
autoPtr< globalIndex > | mergePoints (labelList &pointToGlobal, labelList &uniquePoints) const |
autoPtr< globalIndex > | mergePoints (const labelList &meshPoints, const Map< label > &meshPointMap, labelList &pointToGlobal, labelList &uniqueMeshPoints) const |
void | movePoints (const pointField &newPoints) |
void | updateMesh () |
![]() | |
ProcessorTopology (const Container &patches, const label comm) | |
const labelList & | procPatchMap () const |
const lduSchedule & | patchSchedule () const |
![]() | |
constexpr | List () noexcept |
List (const label len) | |
List (const label len, const T &val) | |
List (const label len, const Foam::zero) | |
List (const Foam::one, const T &val) | |
List (const Foam::one, T &&val) | |
List (const Foam::one, const Foam::zero) | |
List (const List< T > &a) | |
List (const UList< T > &a) | |
List (List< T > &a, bool reuse) | |
List (const UList< T > &list, const labelUList &indices) | |
template<unsigned N> | |
List (const UList< T > &list, const FixedList< label, N > &indices) | |
template<unsigned N> | |
List (const FixedList< T, N > &list) | |
List (const PtrList< T > &list) | |
List (const SLList< T > &list) | |
template<class Addr > | |
List (const IndirectListBase< T, Addr > &list) | |
List (std::initializer_list< T > list) | |
List (List< T > &&list) | |
template<int SizeMin> | |
List (DynamicList< T, SizeMin > &&list) | |
List (SortableList< T > &&list) | |
List (SLList< T > &&list) | |
List (Istream &is) | |
autoPtr< List< T > > | clone () const |
~List () | |
void | clear () |
void | resize (const label len) |
void | resize (const label len, const T &val) |
void | resize_nocopy (const label len) |
void | setSize (const label n) |
void | setSize (const label n, const T &val) |
void | append (const T &val) |
void | append (T &&val) |
void | append (const UList< T > &list) |
template<class Addr > | |
void | append (const IndirectListBase< T, Addr > &list) |
label | appendUniq (const T &val) |
void | transfer (List< T > &list) |
template<int SizeMin> | |
void | transfer (DynamicList< T, SizeMin > &list) |
void | transfer (SortableList< T > &list) |
T & | newElmt (const label i) |
void | operator= (const UList< T > &a) |
void | operator= (const List< T > &list) |
void | operator= (const SLList< T > &list) |
template<class Addr > | |
void | operator= (const IndirectListBase< T, Addr > &list) |
template<unsigned N> | |
void | operator= (const FixedList< T, N > &list) |
void | operator= (std::initializer_list< T > list) |
void | operator= (const T &val) |
void | operator= (const Foam::zero) |
void | operator= (List< T > &&list) |
template<int SizeMin> | |
void | operator= (DynamicList< T, SizeMin > &&list) |
void | operator= (SortableList< T > &&list) |
void | operator= (SLList< T > &&list) |
Istream & | readList (Istream &is) |
void | shallowCopy (const UList< T > &)=delete |
template<class TypeT = T> | |
std::enable_if< std::is_same< bool, TypeT >::value, bool >::type | set (const label i, bool val=true) |
template<class T > | |
List (const label len) | |
template<class T > | |
List (const label len, const T &val) | |
template<class T > | |
List (const label len, const Foam::zero) | |
template<class T > | |
List (const Foam::one, const T &val) | |
template<class T > | |
List (const Foam::one, T &&val) | |
template<class T > | |
List (const Foam::one, const Foam::zero) | |
template<class T > | |
List (const UList< T > &a) | |
template<class T > | |
List (const List< T > &a) | |
template<class T > | |
List (List< T > &a, bool reuse) | |
template<class T > | |
List (const UList< T > &list, const labelUList &indices) | |
template<class T > | |
List (const PtrList< T > &list) | |
template<class T > | |
List (const SLList< T > &list) | |
template<class T > | |
List (std::initializer_list< T > list) | |
template<class T > | |
List (List< T > &&list) | |
template<class T > | |
List (SortableList< T > &&list) | |
template<class T > | |
List (SLList< T > &&list) | |
template<class T > | |
void | transfer (List< T > &list) |
template<class T > | |
void | transfer (SortableList< T > &list) |
template<class T > | |
void | operator= (const UList< T > &a) |
template<class T > | |
void | operator= (const List< T > &list) |
template<class T > | |
void | operator= (const SLList< T > &list) |
template<class T > | |
void | operator= (std::initializer_list< T > list) |
template<class T > | |
void | operator= (List< T > &&list) |
template<class T > | |
void | operator= (SortableList< T > &&list) |
template<class T > | |
void | operator= (SLList< T > &&list) |
Istream & | readList (Istream &is) |
template<class T > | |
constexpr | List () noexcept |
void | resize (const label newLen) |
template<class T > | |
void | append (const T &val) |
template<class T > | |
void | append (T &&val) |
template<class T > | |
void | append (const UList< T > &list) |
template<class T > | |
void | operator= (const T &val) |
template<class T > | |
void | operator= (const Foam::zero) |
template<class T > | |
List (Istream &is) | |
Istream & | readList (Istream &is) |
Static Public Member Functions | |
template<class Type , class CombineOp , class TransformOp > | |
static void | syncData (List< Type > &elems, const labelListList &slaves, const labelListList &transformedSlaves, const mapDistribute &slavesMap, const globalIndexAndTransform &, const CombineOp &cop, const TransformOp &top) |
template<class Type , class CombineOp > | |
static void | syncData (List< Type > &elems, const labelListList &slaves, const labelListList &transformedSlaves, const mapDistribute &slavesMap, const CombineOp &cop) |
![]() | |
static lduSchedule | nonBlockingSchedule (const Container &patches) |
![]() | |
static const List< T > & | null () |
Static Public Attributes | |
static const Foam::scalar | matchTol_ = 1e-8 |
Additional Inherited Members | |
![]() | |
typedef SubList< T > | subList |
Various mesh related information for a parallel run. Upon construction, constructs all info using parallel communication.
The shared point and edge addressing calculates addressing for points and edges on coupled patches. In the 'old' way a distinction was made between points/edges that are only on two processors and those that are on multiple processors. The problem is that those on multiple processors do not allow any transformations and require a global reduction on the master processor.
The alternative is to have an exchange schedule (through a 'mapDistribute') which sends all point/edge data (no distinction is made between those on two and those on more than two coupled patches) to the local 'master'. This master then does any calculation and sends the result back to the 'slave' points/edges. This only needs to be done on points on coupled faces. Any transformation is done using a predetermined set of transformations - since transformations have to be space filling only a certain number of transformation is supported.
The exchange needs
Definition at line 103 of file globalMeshData.H.
globalMeshData | ( | const polyMesh & | mesh | ) |
Definition at line 1739 of file globalMeshData.C.
References globalMeshData::updateMesh().
~globalMeshData | ( | ) |
Definition at line 1763 of file globalMeshData.C.
ClassName | ( | "globalMeshData" | ) |
void clearOut | ( | ) |
Definition at line 1769 of file globalMeshData.C.
|
inlinenoexcept |
Definition at line 340 of file globalMeshData.H.
|
inline |
Definition at line 347 of file globalMeshData.H.
|
inlinenoexcept |
Definition at line 354 of file globalMeshData.H.
|
inlinenoexcept |
Definition at line 361 of file globalMeshData.H.
|
inlinenoexcept |
Definition at line 367 of file globalMeshData.H.
Referenced by velocityDampingConstraint::addDamping(), waveMethod::calculate(), structuredDecomp::decompose(), decompositionMethod::decompose(), meshRefinement::printMeshInfo(), and zoltanRenumber::renumber().
|
inlinenoexcept |
Definition at line 377 of file globalMeshData.H.
Referenced by FaceCellWave< Type, int >::handleProcPatches(), Cloud< passivePositionParticle >::move(), and patchInjection::patchInjection().
|
inlinenoexcept |
Definition at line 385 of file globalMeshData.H.
|
inlinenoexcept |
Definition at line 392 of file globalMeshData.H.
Referenced by Cloud< passivePositionParticle >::move().
Foam::label nGlobalPoints | ( | ) | const |
Definition at line 1979 of file globalMeshData.C.
Referenced by syncTools::syncPointMap().
const Foam::labelList & sharedPointLabels | ( | ) | const |
Definition at line 1989 of file globalMeshData.C.
Referenced by polyMeshAdder::findSharedPoints(), syncTools::syncEdgeMap(), and syncTools::syncPointMap().
const Foam::labelList & sharedPointAddr | ( | ) | const |
Definition at line 1999 of file globalMeshData.C.
Referenced by polyMeshAdder::findSharedPoints(), syncTools::syncEdgeMap(), and syncTools::syncPointMap().
const Foam::labelList & sharedPointGlobalLabels | ( | ) | const |
Definition at line 1821 of file globalMeshData.C.
References Foam::endl(), forAll, IOobject::MUST_READ, pointLabels(), Foam::Pout, and IOobject::typeHeaderOk().
Foam::pointField sharedPoints | ( | ) | const |
Definition at line 1872 of file globalMeshData.C.
References UPstream::blocking, forAll, UPstream::master(), UPstream::masterNo(), pointLabels(), and UPstream::subProcs().
Foam::pointField geometricSharedPoints | ( | ) | const |
Definition at line 1951 of file globalMeshData.C.
References Foam::combineReduce(), and Foam::mergePoints().
Foam::label nGlobalEdges | ( | ) | const |
Definition at line 2009 of file globalMeshData.C.
const Foam::labelList & sharedEdgeLabels | ( | ) | const |
Definition at line 2019 of file globalMeshData.C.
const Foam::labelList & sharedEdgeAddr | ( | ) | const |
Definition at line 2029 of file globalMeshData.C.
const Foam::indirectPrimitivePatch & coupledPatch | ( | ) | const |
Definition at line 2039 of file globalMeshData.C.
References polyPatch::coupled(), Foam::expressions::patchExpr::debug, Foam::endl(), forAll, Foam::Pout, and polyPatch::start().
Referenced by addPatchCellLayer::calcExtrudeInfo(), createShellMesh::calcPointRegions(), syncTools::getMasterPoints(), globalIndexAndTransform::globalIndexAndTransform(), PatchTools::pointNormals(), motionSmootherAlgo::setDisplacement(), syncTools::syncEdgeList(), syncTools::syncPointList(), and pointConstraints::syncUntransformedData().
const Foam::labelList & coupledPatchMeshEdges | ( | ) | const |
Definition at line 2100 of file globalMeshData.C.
Referenced by syncTools::getMasterEdges(), and syncTools::syncEdgeList().
const Foam::Map< Foam::label > & coupledPatchMeshEdgeMap | ( | ) | const |
Definition at line 2120 of file globalMeshData.C.
References forAll, and Foam::constant::atomic::me.
Referenced by syncTools::syncEdgeList().
const Foam::globalIndexAndTransform & globalTransforms | ( | ) | const |
Definition at line 2153 of file globalMeshData.C.
Referenced by addPatchCellLayer::calcExtrudeInfo(), PatchTools::edgeNormals(), PatchTools::pointNormals(), syncTools::syncEdgeList(), and syncTools::syncPointList().
|
static |
Definition at line 30 of file globalMeshDataTemplates.C.
References mapDistribute::distribute(), forAll, and mapDistribute::reverseDistribute().
Referenced by addPatchCellLayer::calcExtrudeInfo(), PatchTools::edgeNormals(), syncTools::syncEdgeList(), and syncTools::syncPointList().
|
static |
Definition at line 95 of file globalMeshDataTemplates.C.
References mapDistribute::distribute(), forAll, and mapDistribute::reverseDistribute().
const Foam::globalIndex & globalPointNumbering | ( | ) | const |
Definition at line 2139 of file globalMeshData.C.
References nPoints, and globalIndex::reset().
const Foam::labelListList & globalPointSlaves | ( | ) | const |
Definition at line 2163 of file globalMeshData.C.
Referenced by syncTools::getMasterPoints(), PatchTools::pointNormals(), and syncTools::syncPointList().
const Foam::labelListList & globalPointTransformedSlaves | ( | ) | const |
Definition at line 2173 of file globalMeshData.C.
Referenced by syncTools::getMasterPoints(), PatchTools::pointNormals(), and syncTools::syncPointList().
const Foam::mapDistribute & globalPointSlavesMap | ( | ) | const |
Definition at line 2184 of file globalMeshData.C.
Referenced by PatchTools::pointNormals(), and syncTools::syncPointList().
void syncPointData | ( | List< Type > & | pointData, |
const CombineOp & | cop, | ||
const TransformOp & | top | ||
) | const |
Definition at line 152 of file globalMeshDataTemplates.C.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, forAll, and PrimitivePatch< FaceList, PointField >::meshPoints().
Referenced by syncTools::syncPointList().
const Foam::globalIndex & globalEdgeNumbering | ( | ) | const |
Definition at line 2194 of file globalMeshData.C.
References globalIndex::reset().
const Foam::labelListList & globalEdgeSlaves | ( | ) | const |
Definition at line 2207 of file globalMeshData.C.
Referenced by addPatchCellLayer::calcExtrudeInfo(), PatchTools::edgeNormals(), syncTools::getMasterEdges(), and syncTools::syncEdgeList().
const Foam::labelListList & globalEdgeTransformedSlaves | ( | ) | const |
Definition at line 2217 of file globalMeshData.C.
Referenced by addPatchCellLayer::calcExtrudeInfo(), PatchTools::edgeNormals(), syncTools::getMasterEdges(), and syncTools::syncEdgeList().
const Foam::mapDistribute & globalEdgeSlavesMap | ( | ) | const |
Definition at line 2238 of file globalMeshData.C.
Referenced by addPatchCellLayer::calcExtrudeInfo(), PatchTools::edgeNormals(), and syncTools::syncEdgeList().
const Foam::bitSet & globalEdgeOrientation | ( | ) | const |
Definition at line 2228 of file globalMeshData.C.
Referenced by syncTools::syncEdgeList().
const Foam::labelListList & globalCoPointSlaves | ( | ) | const |
Definition at line 2346 of file globalMeshData.C.
Referenced by globalIndexAndTransform::globalIndexAndTransform(), and pointConstraints::syncUntransformedData().
const Foam::mapDistribute & globalCoPointSlavesMap | ( | ) | const |
Definition at line 2356 of file globalMeshData.C.
Referenced by globalIndexAndTransform::globalIndexAndTransform(), and pointConstraints::syncUntransformedData().
const Foam::globalIndex & globalBoundaryFaceNumbering | ( | ) | const |
Definition at line 2248 of file globalMeshData.C.
const Foam::labelListList & globalPointBoundaryFaces | ( | ) | const |
Definition at line 2259 of file globalMeshData.C.
const Foam::labelListList & globalPointTransformedBoundaryFaces | ( | ) | const |
Definition at line 2271 of file globalMeshData.C.
const Foam::mapDistribute & globalPointBoundaryFacesMap | ( | ) | const |
Definition at line 2281 of file globalMeshData.C.
const Foam::labelList & boundaryCells | ( | ) | const |
Definition at line 2292 of file globalMeshData.C.
const Foam::globalIndex & globalBoundaryCellNumbering | ( | ) | const |
Definition at line 2302 of file globalMeshData.C.
const Foam::labelListList & globalPointBoundaryCells | ( | ) | const |
Definition at line 2313 of file globalMeshData.C.
const Foam::labelListList & globalPointTransformedBoundaryCells | ( | ) | const |
Definition at line 2325 of file globalMeshData.C.
const Foam::mapDistribute & globalPointBoundaryCellsMap | ( | ) | const |
Definition at line 2335 of file globalMeshData.C.
Foam::autoPtr< Foam::globalIndex > mergePoints | ( | labelList & | pointToGlobal, |
labelList & | uniquePoints | ||
) | const |
Definition at line 2367 of file globalMeshData.C.
References mapDistributeBase::constructSize(), forAll, PrimitivePatch< FaceList, PointField >::meshPoints(), PrimitivePatch< FaceList, PointField >::nPoints(), mapDistribute::reverseDistribute(), List::setSize(), globalIndex::toGlobal(), and bitSet::unset().
Foam::autoPtr< Foam::globalIndex > mergePoints | ( | const labelList & | meshPoints, |
const Map< label > & | meshPointMap, | ||
labelList & | pointToGlobal, | ||
labelList & | uniqueMeshPoints | ||
) | const |
meshPointMap | currently unused |
Definition at line 2501 of file globalMeshData.C.
References mapDistributeBase::constructSize(), mapDistribute::distribute(), forAll, Foam::labelMax, PrimitivePatch< FaceList, PointField >::meshPointMap(), PrimitivePatch< FaceList, PointField >::nPoints(), mapDistribute::reverseDistribute(), List::setSize(), and globalIndex::toGlobal().
void movePoints | ( | const pointField & | newPoints | ) |
Definition at line 2715 of file globalMeshData.C.
void updateMesh | ( | ) |
Definition at line 2724 of file globalMeshData.C.
References UPstream::allocateCommunicator(), Foam::expressions::patchExpr::debug, Foam::endl(), UPstream::freeCommunicator(), Foam::identity(), UPstream::msgType(), UPstream::nProcs(), Foam::Pout, Foam::returnReduce(), UPstream::warnComm, and UPstream::worldComm.
Referenced by globalMeshData::globalMeshData().
|
static |
Definition at line 319 of file globalMeshData.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.