mus_particles_communication_type Derived Type

type, public :: mus_particles_communication_type

Description of communication data for particles Will be a member of the particleGroup data type that exists on each process particleGroup%send for sendbuffer particleGroup%recv for recvbuffer


Components

Type Visibility Attributes Name Initial
integer, public :: nProcs = 0
integer, public, allocatable :: proc(:)

partition MPI rank

integer, public, allocatable :: rqHandle(:)

Request handle array

integer, public, allocatable :: rqHandle2(:)

2nd Request handle array so we can receive multiple KINDS of messages simultaneously

type(mus_particles_vectorbuffer_type), public, allocatable :: buf_force(:)

communication buffer for force contributions

type(mus_particles_posbuffer_type), public, allocatable :: buf_pos(:)

communication buffer for position updates (inc. coordOfOrigin)

type(mus_particles_vectorbuffer_type), public, allocatable :: buf_vec(:)

communication buffer for velocity updates

type(mus_particles_wallbuffer_type), public, allocatable :: buf_wall(:)

communication buffer for wall positions

type(mus_particles_statebuffer_type), public, allocatable :: buf_state(:)

communication buffer for particle state (= position + velocity + origin)

type(mus_particles_IDbuffer_type), public, allocatable :: buf_kill(:)

communication buffer for IDs of particles to be removed/killed

type(mus_particles_infobuffer_type), public, allocatable :: buf_particle(:)

communication buffer for all particle data together