DISTRIBUTED module

Description

Module that enables distributed parallel computation in Chrono.

This module implements MPI parallel computing algorithms that can be used as a faster alternative to the default simulation algorithms in Chrono::Engine. This module depends on the Chrono::Parallel module.

For additional information, see:

Collaboration diagram for DISTRIBUTED module:

Modules

 Collision objects
 
 Communication objects
 
 Physics objects
 

Classes

struct  chrono::LocalShapeNode
 Linked-list node for tracking free shapes. More...
 
class  chrono::ChDistributedDataManager
 A class for storing data for maintaining a consistent view of a distributed simulation consisting of multiple wrapped instances of ChSystemParallelSMC. More...
 

Typedefs

typedef enum chrono::distributed::COMM_STATUS chrono::distributed::COMM_STATUS
 Location and status of a given body with respect to this rank.
 
typedef enum chrono::distributed::MESSAGE_TYPE chrono::distributed::MESSAGE_TYPE
 Types of internal message that can be sent.
 

Enumerations

enum  chrono::distributed::COMM_STATUS {
  EMPTY = 0, chrono::distributed::OWNED = 1, chrono::distributed::GHOST_UP = 2, chrono::distributed::GHOST_DOWN = 3,
  chrono::distributed::SHARED_UP = 4, chrono::distributed::SHARED_DOWN = 5, chrono::distributed::UNOWNED_UP = 6, chrono::distributed::UNOWNED_DOWN = 7,
  chrono::distributed::GLOBAL = 8, chrono::distributed::UNDEFINED = 9
}
 Location and status of a given body with respect to this rank. More...
 
enum  chrono::distributed::MESSAGE_TYPE {
  EXCHANGE, chrono::distributed::UPDATE, chrono::distributed::FINAL_UPDATE_GIVE, chrono::distributed::FINAL_UPDATE_TAKE,
  chrono::distributed::UPDATE_TRANSFER_SHARE
}
 Types of internal message that can be sent. More...
 

Enumeration Type Documentation

◆ COMM_STATUS

Location and status of a given body with respect to this rank.

Enumerator
OWNED 

None, empty, disabled.

GHOST_UP 

exclusive to this rank

GHOST_DOWN 

a proxy for a body on high neighbor rank

SHARED_UP 

a proxy for a body on low neighbor rank

SHARED_DOWN 

has a proxy body on high neighbor rank

UNOWNED_UP 

has a proxy body on low neighbor rank

UNOWNED_DOWN 

unrelated to this rank

GLOBAL 

unrelated to this rank

UNDEFINED 

Present on all ranks.

◆ MESSAGE_TYPE

Types of internal message that can be sent.

Enumerator
UPDATE 

Introduction of new body to a rank.

FINAL_UPDATE_GIVE 

Update for an existing body on a rank from the owning rank.

FINAL_UPDATE_TAKE 

Update which ends in the other rank taking exclusive ownership.

UPDATE_TRANSFER_SHARE 

Update which ends in this rank taking exclusive ownership.

Update which updates the primary rank for the body