Bulk Data Parallel Distribution
[Sierra Toolkit Mesh]


Detailed Description

Parallel distribution of mesh bulk data.

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.


Typedefs

typedef std::pair< Entity *,
unsigned > 
stk::mesh::EntityProc
 Pairing of an entity with a processor rank.
typedef PairIter< std::vector<
EntityProc >::const_iterator > 
stk::mesh::PairIterEntityProc
 Spans of a vector of entity-processor pairs are common.

Functions

void stk::mesh::sort_unique (std::vector< EntityProc > &)
 Sort and unique an EntityProc array.
bool stk::mesh::verify (const std::vector< EntityProc > &, std::string &)
 Sanity check locally for non-null, same-mesh, off-processor, and proper ordering.
std::vector< EntityProc
>::const_iterator 
stk::mesh::lower_bound (const std::vector< EntityProc > &, Entity &)
 Find the first entry corresponding to the given entity.
std::vector< EntityProc
>::const_iterator 
stk::mesh::lower_bound (const std::vector< EntityProc > &, unsigned)
 Find the first entry corresponding to the given entity type.
std::vector< EntityProc
>::const_iterator 
stk::mesh::lower_bound (const std::vector< EntityProc > &, const EntityProc &)
 Find the first entry corresponding to the given entity and processor.
std::vector< EntityProc
>::iterator 
stk::mesh::lower_bound (std::vector< EntityProc > &, Entity &)
 Find the first entry corresponding to the given entity.
std::vector< EntityProc
>::iterator 
stk::mesh::lower_bound (std::vector< EntityProc > &, const EntityProc &)
 Find the first entry corresponding to the given entity and processor.
bool stk::mesh::comm_verify (ParallelMachine, const std::vector< EntityProc > &, std::string &)
 Sanity check on existing or potential parallel relation information.
bool stk::mesh::comm_verify (ParallelMachine, const std::vector< EntityProc > &, const std::vector< EntityProc > &, std::string &)
 Sanity check on existing or potential parallel relation information.
bool stk::mesh::comm_mesh_counts (BulkData &, std::vector< size_t > &counts, bool=false)
 Global counts for a mesh's entities.
bool stk::mesh::comm_verify_shared_entity_values (const BulkData &, unsigned, const FieldBase &)
 Verify that the shared entity values are bit-wise identical.


Function Documentation

bool stk::mesh::verify ( const std::vector< EntityProc > &  ,
std::string &   
)

Sanity check locally for non-null, same-mesh, off-processor, and proper ordering.

Return an error string if a problem.

Definition at line 168 of file Comm.cpp.

std::vector< EntityProc >::const_iterator stk::mesh::lower_bound ( const std::vector< EntityProc > &  ,
Entity &   
)

Find the first entry corresponding to the given entity.

The array must be properly sorted.

Definition at line 87 of file Comm.cpp.

std::vector< EntityProc >::const_iterator stk::mesh::lower_bound ( const std::vector< EntityProc > &  ,
unsigned   
)

Find the first entry corresponding to the given entity type.

The array must be properly sorted.

Definition at line 79 of file Comm.cpp.

std::vector< EntityProc >::const_iterator stk::mesh::lower_bound ( const std::vector< EntityProc > &  ,
const EntityProc  
)

Find the first entry corresponding to the given entity and processor.

The array must be properly sorted.

Definition at line 95 of file Comm.cpp.

std::vector< EntityProc >::iterator stk::mesh::lower_bound ( std::vector< EntityProc > &  ,
Entity &   
)

Find the first entry corresponding to the given entity.

The array must be properly sorted.

Definition at line 103 of file Comm.cpp.

std::vector< EntityProc >::iterator stk::mesh::lower_bound ( std::vector< EntityProc > &  ,
const EntityProc  
)

Find the first entry corresponding to the given entity and processor.

The array must be properly sorted.

Definition at line 111 of file Comm.cpp.

bool stk::mesh::comm_verify ( ParallelMachine  ,
const std::vector< EntityProc > &  ,
std::string &   
)

Sanity check on existing or potential parallel relation information.

If the result is invalid then outputs a string with an explanation. Symmetric version of verification.

Definition at line 234 of file Comm.cpp.

bool stk::mesh::comm_verify ( ParallelMachine  ,
const std::vector< EntityProc > &  ,
const std::vector< EntityProc > &  ,
std::string &   
)

Sanity check on existing or potential parallel relation information.

If the result is invalid then outputs a string with an explanation. Asymmetric version of verification.

Definition at line 351 of file Comm.cpp.


Generated on Tue Jul 13 09:27:32 2010 for Sierra Toolkit by  doxygen 1.4.7