Classes | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
globalMeshData Class Reference

Various mesh related information for a parallel run. Upon construction, constructs all info using parallel communication. More...

Inheritance diagram for globalMeshData:
Inheritance graph
[legend]
Collaboration diagram for globalMeshData:
Collaboration graph
[legend]

Classes

class  ListPlusEqOp
 

Public Member Functions

 ClassName ("globalMeshData")
 Runtime type information. More...
 
 globalMeshData (const polyMesh &mesh)
 Construct from mesh, derive rest (does parallel communication!) More...
 
 ~globalMeshData ()
 Destructor. More...
 
void clearOut ()
 Remove all demand driven data. More...
 
const polyMeshmesh () const
 Return the mesh reference. More...
 
bool parallel () const
 Does the mesh contain processor patches? (also valid when. More...
 
label nTotalPoints () const
 Return total number of points in decomposed mesh. Not. More...
 
label nTotalFaces () const
 Return total number of faces in decomposed mesh. Not. More...
 
label nTotalCells () const
 Return total number of cells in decomposed mesh. More...
 
const labelListprocessorPatches () const
 Return list of processor patch labels. More...
 
const labelListprocessorPatchIndices () const
 Return list of indices into processorPatches_ for each patch. More...
 
const labelListprocessorPatchNeighbours () const
 Return processorPatchIndices of the neighbours. More...
 
label nGlobalPoints () const
 Return number of globally shared points. More...
 
const labelListsharedPointLabels () const
 Return indices of local points that are globally shared. More...
 
const labelListsharedPointAddr () const
 Return addressing into the complete globally shared points. More...
 
const labelListsharedPointGlobalLabels () const
 Return shared point global labels. Tries to read. More...
 
pointField sharedPoints () const
 Collect coordinates of shared points on all processors. More...
 
pointField geometricSharedPoints () const
 Like sharedPoints but keeps cyclic points separate. More...
 
label nGlobalEdges () const
 Return number of globally shared edges. Demand-driven. More...
 
const labelListsharedEdgeLabels () const
 Return indices of local edges that are globally shared. More...
 
const labelListsharedEdgeAddr () const
 Return addressing into the complete globally shared edge. More...
 
const indirectPrimitivePatchcoupledPatch () const
 Return patch of all coupled faces. More...
 
const labelListcoupledPatchMeshEdges () const
 Return map from coupledPatch edges to mesh edges. More...
 
const Map< label > & coupledPatchMeshEdgeMap () const
 Return map from mesh edges to coupledPatch edges. More...
 
const globalIndexAndTransformglobalTransforms () const
 Global transforms numbering. More...
 
const globalIndexglobalPointNumbering () const
 Numbering of coupled points is according to coupledPatch. More...
 
const labelListListglobalPointSlaves () const
 
const labelListListglobalPointTransformedSlaves () const
 
const mapDistributeglobalPointSlavesMap () const
 
template<class Type , class CombineOp , class TransformOp >
void syncPointData (List< Type > &pointData, const CombineOp &cop, const TransformOp &top) const
 Helper to synchronise coupled patch point data. More...
 
const globalIndexglobalEdgeNumbering () const
 
const labelListListglobalEdgeSlaves () const
 
const labelListListglobalEdgeTransformedSlaves () const
 
const mapDistributeglobalEdgeSlavesMap () const
 
const PackedBoolListglobalEdgeOrientation () const
 Is my edge same orientation as master edge. More...
 
const labelListListglobalCoPointSlaves () const
 
const mapDistributeglobalCoPointSlavesMap () const
 
const globalIndexglobalBoundaryFaceNumbering () const
 Numbering of boundary faces is face-mesh.nInternalFaces() More...
 
const labelListListglobalPointBoundaryFaces () const
 
const labelListListglobalPointTransformedBoundaryFaces () const
 
const mapDistributeglobalPointBoundaryFacesMap () const
 
const labelListboundaryCells () const
 From boundary cell to mesh cell. More...
 
const globalIndexglobalBoundaryCellNumbering () const
 Numbering of boundary cells is according to boundaryCells() More...
 
const labelListListglobalPointBoundaryCells () const
 
const labelListListglobalPointTransformedBoundaryCells () const
 
const mapDistributeglobalPointBoundaryCellsMap () const
 
autoPtr< globalIndexmergePoints (labelList &pointToGlobal, labelList &uniquePoints) const
 Helper for merging (collocated!) mesh point data. More...
 
autoPtr< globalIndexmergePoints (const labelList &meshPoints, const Map< label > &meshPointMap, labelList &pointToGlobal, labelList &uniqueMeshPoints) const
 Helper for merging (collocated!) patch point data. More...
 
void movePoints (const pointField &newPoints)
 Update for moving points. More...
 
void updateMesh ()
 Change global mesh data given a topological change. Does a. More...
 
- Public Member Functions inherited from ProcessorTopology< Container, ProcPatch >
 ProcessorTopology (const Container &patches, const label comm)
 Construct from boundaryMesh. More...
 
const labelListprocPatchMap () const
 From neighbour processor to index in boundaryMesh. Local information. More...
 
const lduSchedulepatchSchedule () const
 Order in which the patches should be initialised/evaluated. More...
 
- Public Member Functions inherited from List< T >
 List ()
 Null constructor. More...
 
 List (const label)
 Construct with given size. More...
 
 List (const label, const T &)
 Construct with given size and value for all elements. More...
 
 List (const label, const zero)
 Construct with given size initializing all elements to zero. More...
 
 List (const List< T > &)
 Copy constructor. More...
 
template<class T2 >
 List (const List< T2 > &)
 Copy constructor from list containing another type. More...
 
 List (const Xfer< List< T >> &)
 Construct by transferring the parameter contents. More...
 
 List (List< T > &, bool reuse)
 Construct as copy or re-use as specified. More...
 
 List (const UList< T > &, const labelUList &mapAddressing)
 Construct as subset. More...
 
template<class InputIterator >
 List (InputIterator first, InputIterator last)
 Construct given start and end iterators. More...
 
template<unsigned Size>
 List (const FixedList< T, Size > &)
 Construct as copy of FixedList<T, Size> More...
 
 List (const PtrList< T > &)
 Construct as copy of PtrList<T> More...
 
 List (const SLList< T > &)
 Construct as copy of SLList<T> More...
 
 List (const UIndirectList< T > &)
 Construct as copy of UIndirectList<T> More...
 
 List (const BiIndirectList< T > &)
 Construct as copy of BiIndirectList<T> More...
 
 List (std::initializer_list< T >)
 Construct from an initializer list. More...
 
 List (Istream &)
 Construct from Istream. More...
 
autoPtr< List< T > > clone () const
 Clone. More...
 
 ~List ()
 Destructor. More...
 
label size () const
 Return the number of elements in the UList. More...
 
void resize (const label)
 Alias for setSize(const label) More...
 
void resize (const label, const T &)
 Alias for setSize(const label, const T&) More...
 
void setSize (const label)
 Reset size of List. More...
 
void setSize (const label, const T &)
 Reset size of List and value for new elements. More...
 
void clear ()
 Clear the list, i.e. set size to zero. More...
 
void append (const T &)
 Append an element at the end of the list. More...
 
void append (const UList< T > &)
 Append a List at the end of this list. More...
 
void append (const UIndirectList< T > &)
 Append a UIndirectList at the end of this list. More...
 
void transfer (List< T > &)
 Transfer the contents of the argument List into this list. More...
 
template<unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv>
void transfer (DynamicList< T, SizeInc, SizeMult, SizeDiv > &)
 Transfer the contents of the argument List into this list. More...
 
void transfer (SortableList< T > &)
 Transfer the contents of the argument List into this list. More...
 
Xfer< List< T > > xfer ()
 Transfer contents to the Xfer container. More...
 
TnewElmt (const label)
 Return subscript-checked element of UList. More...
 
void shallowCopy (const UList< T > &)=delete
 Disallow implicit shallowCopy. More...
 
void operator= (const UList< T > &)
 Assignment to UList operator. Takes linear time. More...
 
void operator= (const List< T > &)
 Assignment operator. Takes linear time. More...
 
void operator= (const SLList< T > &)
 Assignment to SLList operator. Takes linear time. More...
 
void operator= (const UIndirectList< T > &)
 Assignment to UIndirectList operator. Takes linear time. More...
 
void operator= (const BiIndirectList< T > &)
 Assignment to BiIndirectList operator. Takes linear time. More...
 
void operator= (std::initializer_list< T >)
 Assignment to an initializer list. More...
 
void operator= (const T &)
 Assignment of all entries to the given value. More...
 
void operator= (const zero)
 Assignment of all entries to zero. More...
 
- Public Member Functions inherited from UList< T >
 UList ()
 Null constructor. More...
 
 UList (T *__restrict__ v, label size)
 Construct from components. More...
 
label fcIndex (const label i) const
 Return the forward circular index, i.e. the next index. More...
 
label rcIndex (const label i) const
 Return the reverse circular index, i.e. the previous index. More...
 
std::streamsize byteSize () const
 Return the binary size in number of characters of the UList. More...
 
const Tcdata () const
 Return a const pointer to the first data element,. More...
 
Tdata ()
 Return a pointer to the first data element,. More...
 
Tfirst ()
 Return the first element of the list. More...
 
const Tfirst () const
 Return first element of the list. More...
 
Tlast ()
 Return the last element of the list. More...
 
const Tlast () const
 Return the last element of the list. More...
 
void checkStart (const label start) const
 Check start is within valid range (0 ... size-1) More...
 
void checkSize (const label size) const
 Check size is within valid range (0 ... size) More...
 
void checkIndex (const label i) const
 Check index i is within valid range (0 ... size-1) More...
 
void shallowCopy (const UList< T > &)
 Copy the pointer held by the given UList. More...
 
void deepCopy (const UList< T > &)
 Copy elements of the given UList. More...
 
void writeEntry (Ostream &) const
 Write the UList as a dictionary entry. More...
 
void writeEntry (const word &keyword, Ostream &) const
 Write the UList as a dictionary entry with keyword. More...
 
Toperator[] (const label)
 Return element of UList. More...
 
const Toperator[] (const label) const
 Return element of constant UList. More...
 
 operator const Foam::List< T > & () const
 Allow cast to a const List<T>&. More...
 
void operator= (const T &)
 Assignment of all entries to the given value. More...
 
void operator= (const zero)
 Assignment of all entries to zero. More...
 
iterator begin ()
 Return an iterator to begin traversing the UList. More...
 
iterator end ()
 Return an iterator to end traversing the UList. More...
 
const_iterator cbegin () const
 Return const_iterator to begin traversing the constant UList. More...
 
const_iterator cend () const
 Return const_iterator to end traversing the constant UList. More...
 
const_iterator begin () const
 Return const_iterator to begin traversing the constant UList. More...
 
const_iterator end () const
 Return const_iterator to end traversing the constant UList. More...
 
reverse_iterator rbegin ()
 Return reverse_iterator to begin reverse traversing the UList. More...
 
reverse_iterator rend ()
 Return reverse_iterator to end reverse traversing the UList. More...
 
const_reverse_iterator crbegin () const
 Return const_reverse_iterator to begin reverse traversing the UList. More...
 
const_reverse_iterator crend () const
 Return const_reverse_iterator to end reverse traversing the UList. More...
 
const_reverse_iterator rbegin () const
 Return const_reverse_iterator to begin reverse traversing the UList. More...
 
const_reverse_iterator rend () const
 Return const_reverse_iterator to end reverse traversing the UList. More...
 
label size () const
 Return the number of elements in the UList. More...
 
label max_size () const
 Return size of the largest possible UList. More...
 
bool empty () const
 Return true if the UList is empty (ie, size() is zero) More...
 
void swap (UList< T > &)
 Swap two ULists of the same type in constant time. More...
 
bool operator== (const UList< T > &) const
 Equality operation on ULists of the same type. More...
 
bool operator!= (const UList< T > &) const
 The opposite of the equality operation. Takes linear time. More...
 
bool operator< (const UList< T > &) const
 Compare two ULists lexicographically. Takes linear time. More...
 
bool operator> (const UList< T > &) const
 Compare two ULists lexicographically. Takes linear time. More...
 
bool operator<= (const UList< T > &) const
 Return true if !(a > b). Takes linear time. More...
 
bool operator>= (const UList< T > &) const
 Return true if !(a < b). Takes linear time. More...
 
template<>
const bool & operator[] (const label i) const
 

Static Public Member Functions

template<class Type , class CombineOp , class TransformOp >
static void syncData (List< Type > &pointData, const labelListList &slaves, const labelListList &transformedSlaves, const mapDistribute &slavesMap, const globalIndexAndTransform &, const CombineOp &cop, const TransformOp &top)
 Helper: synchronise data with transforms. More...
 
template<class Type , class CombineOp >
static void syncData (List< Type > &pointData, const labelListList &slaves, const labelListList &transformedSlaves, const mapDistribute &slavesMap, const CombineOp &cop)
 Helper: synchronise data without transforms. More...
 
- Static Public Member Functions inherited from ProcessorTopology< Container, ProcPatch >
static lduSchedule nonBlockingSchedule (const Container &patches)
 Calculate non-blocking (i.e. unscheduled) schedule. More...
 
- Static Public Member Functions inherited from List< T >
static const List< T > & null ()
 Return a null List. More...
 
- Static Public Member Functions inherited from UList< T >
static const UList< T > & null ()
 Return a null UList. More...
 

Static Public Attributes

static const Foam::scalar matchTol_ = 1e-8
 Geometric tolerance (fraction of bounding box) More...
 

Additional Inherited Members

- Public Types inherited from List< T >
typedef SubList< TsubList
 Declare type of subList. More...
 
- Public Types inherited from UList< T >
typedef T value_type
 Type of values the UList contains. More...
 
typedef Treference
 Type that can be used for storing into. More...
 
typedef const Tconst_reference
 Type that can be used for storing into. More...
 
typedef label difference_type
 The type that can represent the difference between any two. More...
 
typedef label size_type
 The type that can represent the size of a UList. More...
 
typedef Titerator
 Random access iterator for traversing UList. More...
 
typedef const Tconst_iterator
 Random access iterator for traversing UList. More...
 
typedef Treverse_iterator
 Reverse iterator for reverse traversal of UList. More...
 
typedef const Tconst_reverse_iterator
 Reverse iterator for reverse traversal of constant UList. More...
 
- Protected Member Functions inherited from List< T >
void size (const label)
 Override size to be inconsistent with allocated storage. More...
 

Detailed Description

Various mesh related information for a parallel run. Upon construction, constructs all info using parallel communication.

Requires:

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

Note
  • compared to 17x nTotalFaces, nTotalPoints do not compensate for shared points since this would trigger full connectivity analysis
  • most calculation is demand driven and uses parallel communication so make sure to invoke on all processors at the same time
  • old sharedEdge calculation: currently an edge is considered shared if it uses two shared points and is used more than once. This is not correct on processor patches but it only slightly overestimates the number of shared edges. Doing full analysis of how many patches use the edge would be too complicated
See also
mapDistribute globalIndexAndTransform
Source files

Definition at line 105 of file globalMeshData.H.

Constructor & Destructor Documentation

◆ globalMeshData()

globalMeshData ( const polyMesh mesh)

Construct from mesh, derive rest (does parallel communication!)

Definition at line 1769 of file globalMeshData.C.

References globalMeshData::updateMesh().

Here is the call graph for this function:

◆ ~globalMeshData()

Destructor.

Definition at line 1793 of file globalMeshData.C.

References globalMeshData::clearOut().

Here is the call graph for this function:

Member Function Documentation

◆ ClassName()

ClassName ( "globalMeshData"  )

Runtime type information.

Referenced by globalMeshData::ListPlusEqOp< T >::operator()().

Here is the caller graph for this function:

◆ clearOut()

void clearOut ( )

Remove all demand driven data.

Definition at line 1799 of file globalMeshData.C.

Referenced by globalMeshData::updateMesh(), and globalMeshData::~globalMeshData().

Here is the caller graph for this function:

◆ mesh()

const polyMesh& mesh ( ) const
inline

Return the mesh reference.

Definition at line 366 of file globalMeshData.H.

References globalMeshData::nTotalFaces(), globalMeshData::nTotalPoints(), globalMeshData::parallel(), and List< T >::size().

Here is the call graph for this function:

◆ parallel()

bool parallel ( ) const
inline

Does the mesh contain processor patches? (also valid when.

not running parallel)

Definition at line 373 of file globalMeshData.H.

Referenced by globalMeshData::mesh().

Here is the caller graph for this function:

◆ nTotalPoints()

label nTotalPoints ( ) const
inline

Return total number of points in decomposed mesh. Not.

compensated for duplicate points!

Definition at line 380 of file globalMeshData.H.

Referenced by meshRefinement::dupNonManifoldPoints(), globalMeshData::mesh(), and medialAxisMeshMover::~medialAxisMeshMover().

Here is the caller graph for this function:

◆ nTotalFaces()

label nTotalFaces ( ) const
inline

Return total number of faces in decomposed mesh. Not.

compensated for duplicate faces!

Definition at line 387 of file globalMeshData.H.

Referenced by globalMeshData::mesh().

Here is the caller graph for this function:

◆ nTotalCells()

label nTotalCells ( ) const
inline

Return total number of cells in decomposed mesh.

Definition at line 393 of file globalMeshData.H.

References globalMeshData::boundaryCells(), globalMeshData::coupledPatch(), globalMeshData::coupledPatchMeshEdgeMap(), globalMeshData::coupledPatchMeshEdges(), globalMeshData::geometricSharedPoints(), globalMeshData::globalBoundaryCellNumbering(), globalMeshData::globalBoundaryFaceNumbering(), globalMeshData::globalCoPointSlaves(), globalMeshData::globalCoPointSlavesMap(), globalMeshData::globalEdgeNumbering(), globalMeshData::globalEdgeOrientation(), globalMeshData::globalEdgeSlaves(), globalMeshData::globalEdgeSlavesMap(), globalMeshData::globalEdgeTransformedSlaves(), globalMeshData::globalPointBoundaryCells(), globalMeshData::globalPointBoundaryCellsMap(), globalMeshData::globalPointBoundaryFaces(), globalMeshData::globalPointBoundaryFacesMap(), globalMeshData::globalPointNumbering(), globalMeshData::globalPointSlaves(), globalMeshData::globalPointSlavesMap(), globalMeshData::globalPointTransformedBoundaryCells(), globalMeshData::globalPointTransformedBoundaryFaces(), globalMeshData::globalPointTransformedSlaves(), globalMeshData::globalTransforms(), globalMeshData::mergePoints(), globalMeshData::movePoints(), globalMeshData::nGlobalEdges(), globalMeshData::nGlobalPoints(), globalMeshData::processorPatches(), globalMeshData::processorPatchIndices(), globalMeshData::processorPatchNeighbours(), globalMeshData::sharedEdgeAddr(), globalMeshData::sharedEdgeLabels(), globalMeshData::sharedPointAddr(), globalMeshData::sharedPointGlobalLabels(), globalMeshData::sharedPointLabels(), globalMeshData::sharedPoints(), globalMeshData::syncData(), globalMeshData::syncPointData(), and globalMeshData::updateMesh().

Referenced by structuredDecomp::decompose(), decompositionMethod::decompose(), NamedEnum< directionType, 3 >::names(), meshRefinement::printMeshInfo(), zoltanRenumber::renumber(), structuredRenumber::renumber(), Foam::fvc::smooth(), and snappyRefineDriver::snappyRefineDriver().

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

◆ processorPatches()

const labelList& processorPatches ( ) const
inline

Return list of processor patch labels.

(size of list = number of processor patches)

Definition at line 403 of file globalMeshData.H.

Referenced by FaceCellWave< Type, TrackingData >::handleProcPatches(), injectionModelList::info(), transferModelList::info(), Cloud< streamLineParticle >::move(), globalMeshData::nTotalCells(), and patchInjection::patchInjection().

Here is the caller graph for this function:

◆ processorPatchIndices()

const labelList& processorPatchIndices ( ) const
inline

Return list of indices into processorPatches_ for each patch.

Index = -1 for non-processor parches. (size of list = number of patches)

Definition at line 411 of file globalMeshData.H.

Referenced by Cloud< streamLineParticle >::move(), and globalMeshData::nTotalCells().

Here is the caller graph for this function:

◆ processorPatchNeighbours()

const labelList& processorPatchNeighbours ( ) const
inline

Return processorPatchIndices of the neighbours.

processor patches. -1 if not running parallel.

Definition at line 418 of file globalMeshData.H.

Referenced by Cloud< streamLineParticle >::move(), and globalMeshData::nTotalCells().

Here is the caller graph for this function:

◆ nGlobalPoints()

Foam::label nGlobalPoints ( ) const

Return number of globally shared points.

Definition at line 2018 of file globalMeshData.C.

Referenced by globalMeshData::nTotalCells(), globalMeshData::sharedPoints(), and syncTools::syncPointMap().

Here is the caller graph for this function:

◆ sharedPointLabels()

const Foam::labelList & sharedPointLabels ( ) const

Return indices of local points that are globally shared.

Definition at line 2028 of file globalMeshData.C.

Referenced by polyMeshAdder::findSharedPoints(), globalMeshData::geometricSharedPoints(), globalMeshData::nTotalCells(), globalMeshData::sharedPointGlobalLabels(), globalMeshData::sharedPoints(), syncTools::syncEdgeMap(), and syncTools::syncPointMap().

Here is the caller graph for this function:

◆ sharedPointAddr()

const Foam::labelList & sharedPointAddr ( ) const

Return addressing into the complete globally shared points.

list Note: It is assumed that a (never constructed) complete list of globally shared points exists. The set of shared points on the current processor is a subset of all shared points. Shared point addressing gives the index in the list of all globally shared points for each of the locally shared points.

Definition at line 2038 of file globalMeshData.C.

Referenced by polyMeshAdder::findSharedPoints(), globalMeshData::nTotalCells(), globalMeshData::sharedPoints(), syncTools::syncEdgeMap(), and syncTools::syncPointMap().

Here is the caller graph for this function:

◆ sharedPointGlobalLabels()

const Foam::labelList & sharedPointGlobalLabels ( ) const

Return shared point global labels. Tries to read.

'pointProcAddressing' and returns list or -1 if none available.

Definition at line 1851 of file globalMeshData.C.

References Foam::endl(), polyMesh::facesInstance(), forAll, polyMesh::meshSubDir, IOobject::MUST_READ, pointLabels(), Foam::Pout, globalMeshData::sharedPointLabels(), and List< T >::size().

Referenced by globalMeshData::nTotalCells().

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

◆ sharedPoints()

Foam::pointField sharedPoints ( ) const

Collect coordinates of shared points on all processors.

(does parallel communication!) Note: not valid for cyclicParallel since shared cyclic points are merged into single global point. (use geometricSharedPoints instead)

Definition at line 1901 of file globalMeshData.C.

References UPstream::blocking, UPstream::firstSlave(), forAll, UPstream::lastSlave(), UPstream::master(), UPstream::masterNo(), globalMeshData::nGlobalPoints(), pointLabels(), polyMesh::points(), globalMeshData::sharedPointAddr(), globalMeshData::sharedPointLabels(), List< T >::size(), and Foam::Zero.

Referenced by globalMeshData::geometricSharedPoints(), and globalMeshData::nTotalCells().

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

◆ geometricSharedPoints()

Foam::pointField geometricSharedPoints ( ) const

Like sharedPoints but keeps cyclic points separate.

(does geometric merging; uses matchTol_*bb as merging tolerance) Use sharedPoints() instead.

Definition at line 1990 of file globalMeshData.C.

References polyMesh::bounds(), Foam::combineReduce(), boundBox::mag(), globalMeshData::matchTol_, Foam::mergePoints(), polyMesh::points(), globalMeshData::sharedPointLabels(), and globalMeshData::sharedPoints().

Referenced by globalMeshData::nTotalCells().

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

◆ nGlobalEdges()

Foam::label nGlobalEdges ( ) const

Return number of globally shared edges. Demand-driven.

calculation so call needs to be synchronous among processors!

Definition at line 2048 of file globalMeshData.C.

Referenced by globalMeshData::nTotalCells().

Here is the caller graph for this function:

◆ sharedEdgeLabels()

const Foam::labelList & sharedEdgeLabels ( ) const

Return indices of local edges that are globally shared.

Demand-driven calculation so call needs to be synchronous among processors!

Definition at line 2058 of file globalMeshData.C.

Referenced by globalMeshData::nTotalCells().

Here is the caller graph for this function:

◆ sharedEdgeAddr()

const Foam::labelList & sharedEdgeAddr ( ) const

Return addressing into the complete globally shared edge.

list. The set of shared edges on the current processor is a subset of all shared edges. Shared edge addressing gives the index in the list of all globally shared edges for each of the locally shared edges. Demand-driven calculation so call needs to be synchronous among processors!

Definition at line 2068 of file globalMeshData.C.

Referenced by globalMeshData::nTotalCells().

Here is the caller graph for this function:

◆ coupledPatch()

const Foam::indirectPrimitivePatch & coupledPatch ( ) const

◆ coupledPatchMeshEdges()

const Foam::labelList & coupledPatchMeshEdges ( ) const

Return map from coupledPatch edges to mesh edges.

Definition at line 2139 of file globalMeshData.C.

References globalMeshData::coupledPatch(), primitiveMesh::edges(), and primitiveMesh::pointEdges().

Referenced by globalMeshData::coupledPatchMeshEdgeMap(), globalMeshData::nTotalCells(), and syncTools::syncEdgeList().

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

◆ coupledPatchMeshEdgeMap()

const Foam::Map< Foam::label > & coupledPatchMeshEdgeMap ( ) const

Return map from mesh edges to coupledPatch edges.

Definition at line 2159 of file globalMeshData.C.

References globalMeshData::coupledPatchMeshEdges(), forAll, HashTable< T, Key, Hash >::insert(), Foam::constant::atomic::me, and List< T >::size().

Referenced by globalMeshData::nTotalCells(), and syncTools::syncEdgeList().

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

◆ globalTransforms()

const Foam::globalIndexAndTransform & globalTransforms ( ) const

Global transforms numbering.

Definition at line 2192 of file globalMeshData.C.

Referenced by PatchTools::edgeNormals(), globalMeshData::nTotalCells(), PatchTools::pointNormals(), syncTools::syncEdgeList(), and syncTools::syncPointList().

Here is the caller graph for this function:

◆ syncData() [1/2]

void syncData ( List< Type > &  pointData,
const labelListList slaves,
const labelListList transformedSlaves,
const mapDistribute slavesMap,
const globalIndexAndTransform transforms,
const CombineOp &  cop,
const TransformOp &  top 
)
static

Helper: synchronise data with transforms.

Definition at line 34 of file globalMeshDataTemplates.C.

References mapDistribute::distribute(), forAll, mapDistribute::reverseDistribute(), and List< T >::size().

Referenced by PatchTools::edgeNormals(), globalMeshData::mergePoints(), globalMeshData::nTotalCells(), minEqOp< labelPair >::operator()(), syncTools::syncEdgeList(), and syncTools::syncPointList().

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

◆ syncData() [2/2]

void syncData ( List< Type > &  pointData,
const labelListList slaves,
const labelListList transformedSlaves,
const mapDistribute slavesMap,
const CombineOp &  cop 
)
static

Helper: synchronise data without transforms.

Definition at line 107 of file globalMeshDataTemplates.C.

References mapDistribute::distribute(), forAll, mapDistribute::reverseDistribute(), List< T >::size(), and globalMeshData::syncPointData().

Here is the call graph for this function:

◆ globalPointNumbering()

const Foam::globalIndex & globalPointNumbering ( ) const

Numbering of coupled points is according to coupledPatch.

Definition at line 2178 of file globalMeshData.C.

References globalMeshData::coupledPatch(), and nPoints.

Referenced by globalMeshData::mergePoints(), and globalMeshData::nTotalCells().

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

◆ globalPointSlaves()

const Foam::labelListList & globalPointSlaves ( ) const

◆ globalPointTransformedSlaves()

const Foam::labelListList & globalPointTransformedSlaves ( ) const

Definition at line 2212 of file globalMeshData.C.

Referenced by globalMeshData::nTotalCells(), PatchTools::pointNormals(), and syncTools::syncPointList().

Here is the caller graph for this function:

◆ globalPointSlavesMap()

const Foam::mapDistribute & globalPointSlavesMap ( ) const

◆ syncPointData()

void syncPointData ( List< Type > &  pointData,
const CombineOp &  cop,
const TransformOp &  top 
) const

Helper to synchronise coupled patch point data.

Definition at line 172 of file globalMeshDataTemplates.C.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, forAll, PrimitivePatch< Face, FaceList, PointField, PointType >::meshPoints(), and List< T >::size().

Referenced by globalMeshData::nTotalCells(), globalMeshData::syncData(), and syncTools::syncPointList().

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

◆ globalEdgeNumbering()

const Foam::globalIndex & globalEdgeNumbering ( ) const

Definition at line 2233 of file globalMeshData.C.

References globalMeshData::coupledPatch().

Referenced by globalMeshData::nTotalCells().

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

◆ globalEdgeSlaves()

const Foam::labelListList & globalEdgeSlaves ( ) const

Definition at line 2246 of file globalMeshData.C.

Referenced by PatchTools::edgeNormals(), globalMeshData::nTotalCells(), minEqOp< labelPair >::operator()(), and syncTools::syncEdgeList().

Here is the caller graph for this function:

◆ globalEdgeTransformedSlaves()

const Foam::labelListList & globalEdgeTransformedSlaves ( ) const

Definition at line 2256 of file globalMeshData.C.

Referenced by PatchTools::edgeNormals(), globalMeshData::nTotalCells(), minEqOp< labelPair >::operator()(), and syncTools::syncEdgeList().

Here is the caller graph for this function:

◆ globalEdgeSlavesMap()

const Foam::mapDistribute & globalEdgeSlavesMap ( ) const

Definition at line 2277 of file globalMeshData.C.

Referenced by PatchTools::edgeNormals(), globalMeshData::nTotalCells(), minEqOp< labelPair >::operator()(), and syncTools::syncEdgeList().

Here is the caller graph for this function:

◆ globalEdgeOrientation()

const Foam::PackedBoolList & globalEdgeOrientation ( ) const

Is my edge same orientation as master edge.

Definition at line 2267 of file globalMeshData.C.

Referenced by globalMeshData::nTotalCells(), and minEqOp< labelPair >::operator()().

Here is the caller graph for this function:

◆ globalCoPointSlaves()

const Foam::labelListList & globalCoPointSlaves ( ) const

◆ globalCoPointSlavesMap()

const Foam::mapDistribute & globalCoPointSlavesMap ( ) const

Definition at line 2395 of file globalMeshData.C.

References globalMeshData::mergePoints().

Referenced by globalIndexAndTransform::globalIndexAndTransform(), globalMeshData::mergePoints(), globalMeshData::nTotalCells(), and pointConstraints::syncUntransformedData().

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

◆ globalBoundaryFaceNumbering()

const Foam::globalIndex & globalBoundaryFaceNumbering ( ) const

Numbering of boundary faces is face-mesh.nInternalFaces()

Definition at line 2287 of file globalMeshData.C.

Referenced by globalMeshData::nTotalCells().

Here is the caller graph for this function:

◆ globalPointBoundaryFaces()

const Foam::labelListList & globalPointBoundaryFaces ( ) const

Definition at line 2298 of file globalMeshData.C.

Referenced by globalMeshData::nTotalCells().

Here is the caller graph for this function:

◆ globalPointTransformedBoundaryFaces()

const Foam::labelListList & globalPointTransformedBoundaryFaces ( ) const

Definition at line 2310 of file globalMeshData.C.

Referenced by globalMeshData::nTotalCells().

Here is the caller graph for this function:

◆ globalPointBoundaryFacesMap()

const Foam::mapDistribute & globalPointBoundaryFacesMap ( ) const

Definition at line 2320 of file globalMeshData.C.

Referenced by globalMeshData::nTotalCells().

Here is the caller graph for this function:

◆ boundaryCells()

const Foam::labelList & boundaryCells ( ) const

From boundary cell to mesh cell.

Definition at line 2331 of file globalMeshData.C.

Referenced by globalMeshData::nTotalCells().

Here is the caller graph for this function:

◆ globalBoundaryCellNumbering()

const Foam::globalIndex & globalBoundaryCellNumbering ( ) const

Numbering of boundary cells is according to boundaryCells()

Definition at line 2341 of file globalMeshData.C.

Referenced by globalMeshData::nTotalCells().

Here is the caller graph for this function:

◆ globalPointBoundaryCells()

const Foam::labelListList & globalPointBoundaryCells ( ) const

Definition at line 2352 of file globalMeshData.C.

Referenced by globalMeshData::nTotalCells().

Here is the caller graph for this function:

◆ globalPointTransformedBoundaryCells()

const Foam::labelListList & globalPointTransformedBoundaryCells ( ) const

Definition at line 2364 of file globalMeshData.C.

Referenced by globalMeshData::nTotalCells().

Here is the caller graph for this function:

◆ globalPointBoundaryCellsMap()

const Foam::mapDistribute & globalPointBoundaryCellsMap ( ) const

Definition at line 2374 of file globalMeshData.C.

Referenced by globalMeshData::nTotalCells().

Here is the caller graph for this function:

◆ mergePoints() [1/2]

Foam::autoPtr< Foam::globalIndex > mergePoints ( labelList pointToGlobal,
labelList uniquePoints 
) const

◆ mergePoints() [2/2]

Foam::autoPtr< Foam::globalIndex > mergePoints ( const labelList meshPoints,
const Map< label > &  meshPointMap,
labelList pointToGlobal,
labelList uniqueMeshPoints 
) const

Helper for merging (collocated!) patch point data.

Takes maps from: local points to/from mesh. Determines

  • my unique points. These are mesh point indices, not patch point indices.
  • global numbering over all unique indices.
  • the global number for all local points.

Definition at line 2540 of file globalMeshData.C.

References mapDistributeBase::constructSize(), globalMeshData::coupledPatch(), mapDistribute::distribute(), HashTableCore::end(), HashTable< T, Key, Hash >::find(), forAll, globalMeshData::globalCoPointSlaves(), globalMeshData::globalCoPointSlavesMap(), Foam::labelMax, PrimitivePatch< Face, FaceList, PointField, PointType >::meshPointMap(), PrimitivePatch< Face, FaceList, PointField, PointType >::nPoints(), mapDistribute::reverseDistribute(), List< T >::setSize(), List< T >::size(), and globalMeshData::syncData().

Here is the call graph for this function:

◆ movePoints()

void movePoints ( const pointField newPoints)

Update for moving points.

Definition at line 2754 of file globalMeshData.C.

Referenced by globalMeshData::nTotalCells().

Here is the caller graph for this function:

◆ updateMesh()

void updateMesh ( )

Change global mesh data given a topological change. Does a.

full parallel analysis to determine shared points and boundaries.

Definition at line 2763 of file globalMeshData.C.

References UPstream::allocateCommunicator(), polyMesh::bounds(), globalMeshData::clearOut(), Foam::endl(), UPstream::freeCommunicator(), Foam::identity(), boundBox::mag(), globalMeshData::matchTol_, UPstream::msgType(), primitiveMesh::nCells(), primitiveMesh::nFaces(), primitiveMesh::nPoints(), UPstream::nProcs(), Foam::Pout, Foam::returnReduce(), and UPstream::worldComm.

Referenced by globalMeshData::globalMeshData(), and globalMeshData::nTotalCells().

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

Member Data Documentation

◆ matchTol_

const scalar matchTol_ = 1e-8
static

Geometric tolerance (fraction of bounding box)

Definition at line 345 of file globalMeshData.H.

Referenced by globalMeshData::geometricSharedPoints(), and globalMeshData::updateMesh().


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