Sierra Toolkit Version of the Day
Bulk Data Parallel Distribution

Parallel distribution of mesh bulk data. More...

Collaboration diagram for Bulk Data Parallel Distribution:

Typedefs

typedef std::pair< Entity
*, unsigned > 
stk::mesh::EntityProc
 Pairing of an entity with a processor rank.
typedef std::vector< EntityProc > stk::mesh::EntityProcVec
typedef PairIter< std::vector
< EntityProc >::const_iterator > 
stk::mesh::PairIterEntityProc
 Spans of a vector of entity-processor pairs are common.
typedef PairIter< std::vector
< EntityCommInfo >
::const_iterator > 
stk::mesh::PairIterEntityComm
 Span of ( communication-subset-ordinal , process-rank ) pairs for the communication of an entity.
typedef std::vector
< EntityCommInfo > 
stk::mesh::EntityCommInfoVector

Functions

bool stk::mesh::comm_mesh_counts (BulkData &, std::vector< size_t > &counts, bool=false)
 Global counts for a mesh's entities.

Detailed Description

Parallel distribution of mesh bulk data.

Parallel distributed entities have relations to entities that cross proessor boundaries. Such a cross-processor relation can be viewed as follows.

( domain_entity , domain_proc ) -> ( range_entity , range_proc )

Mesh-specific parallel communication operations use a collection of cross-processor relations to determine what information is sent or received among processors. These operations send data from the domain_entity on the domain_processor to the range_entity on the range_processor. These communication operations are most efficient when all message data between a given pair of processors is packaged into a single message.

Efficient packing and unpacking of mesh-specific parallel communication messages is supported by structuring the cross-processor relations as follows.

Given a collection of cross-processor relations:

{ ( ( domain_entity , domain_proc ) -> ( range_entity , range_proc ) )[k] }

Form the following two correlated vectors on the domain and range processors.

Members of the domain processor's vector are ordered by the domain entity key and then by range processor. Members of the range processor's vector are ordered conformally with the domain processor's ordering. Thus message packing and unpacking can be performed by iterating the cross-processor relation vectors.


Typedef Documentation

typedef PairIter< std::vector< EntityProc >::const_iterator > stk::mesh::PairIterEntityProc

Spans of a vector of entity-processor pairs are common.

Definition at line 118 of file Types.hpp.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines