Description
This class holds functions for processing the system's bodies to determine when a body needs to be sent to another rank for either an update or for creation of a ghost.
The class also decides how to update the comm_status of each body based on its position and its comm_status.
Actions:
A body with an OWNED comm_status will be packed for exchange to create a ghost body on another rank when it passes into one of this rank's shared regions, at which point the body is given a SHARED comm_status on this rank.
A body with a SHARED comm_status will become OWNED when it moves into the owned region on this rank. A body with a SHARED comm_status will become GHOST when it crosses subhi or sublo and the other rank will change its comm_status for the body to SHARED.
A body with a GHOST comm_status will become OWNED when it moves into the owned region of this rank. A body with a GHOST comm_status will be removed when it moves into the one of this rank's unowned regions.
#include <ChCommDistributed.h>

Public Member Functions | |
| ChCommDistributed (ChSystemDistributed *my_sys) | |
| void | Exchange () | 
| Scans the system's data structures for bodies that:  More... | |
Protected Attributes | |
| ChSystemDistributed * | my_sys | 
| MPI_Datatype | BodyExchangeType | 
| MPI Data Types for sending 1) new body 2) body update 3) new collision shape.  | |
| MPI_Datatype | BodyUpdateType | 
| MPI_Datatype | ShapeType | 
| ChMulticoreDataManager * | data_manager | 
| Pointer to underlying Chrono::Multicore data.  | |
| ChDistributedDataManager * | ddm | 
| Set of data for scaffolding on top of Chrono::Multicore.  | |
Member Function Documentation
◆ Exchange()
| void ChCommDistributed::Exchange | ( | ) | 
Scans the system's data structures for bodies that:
- need to be sent to another rank to create ghosts
 - need to be sent to another rank to update ghosts
 - need to update their comm_status Sends updates via mpi to the appropriate rank Processes incoming updates from other ranks
 
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono_distributed/comm/ChCommDistributed.h
 - /builds/uwsbel/chrono/src/chrono_distributed/comm/ChCommDistributed.cpp