1#ifndef CS_CRYSTAL_ROUTER_H
2#define CS_CRYSTAL_ROUTER_H
49#define CS_CRYSTAL_ROUTER_USE_DEST_ID (1 << 0)
51#define CS_CRYSTAL_ROUTER_ADD_SRC_ID (1 << 1)
52#define CS_CRYSTAL_ROUTER_ADD_SRC_RANK (1 << 2)
109 const int dest_rank[],
149 const int dest_rank[],
cs_crystal_router_t * cs_crystal_router_create_i(size_t n_elts, cs_datatype_t datatype, int flags, const cs_lnum_t *eld_idx, const void *elt, const cs_lnum_t *src_id, const cs_lnum_t *dest_id, const int dest_rank[], MPI_Comm comm)
Create a Crystal Router for indexed data.
Definition: cs_crystal_router.cpp:1641
size_t cs_crystal_router_get_max_sizes(cs_crystal_router_t *cr, size_t *max_sizes)
Query maximum buffer sizes reached by a Crystal Router.
Definition: cs_crystal_router.cpp:2180
void cs_crystal_router_exchange(cs_crystal_router_t *cr)
Exchange data with a Crystal Router.
Definition: cs_crystal_router.cpp:1827
void cs_crystal_router_destroy(cs_crystal_router_t **cr)
Destroy a Crystal Router.
Definition: cs_crystal_router.cpp:1796
cs_crystal_router_t * cs_crystal_router_create_s(size_t n_elts, int stride, cs_datatype_t datatype, int flags, const void *elt, const cs_lnum_t *src_id, const cs_lnum_t *dest_id, const int dest_rank[], MPI_Comm comm)
Create a Crystal Router for strided data.
Definition: cs_crystal_router.cpp:1531
cs_lnum_t cs_crystal_router_n_elts(const cs_crystal_router_t *cr)
Get number of elements associated with Crystal Router.
Definition: cs_crystal_router.cpp:1925
void cs_crystal_router_get_data(cs_crystal_router_t *cr, int **src_rank, cs_lnum_t **dest_id, cs_lnum_t **src_id, cs_lnum_t **data_index, void **data)
Get data elements associated with a Crystal Router.
Definition: cs_crystal_router.cpp:2051
void cs_crystal_router_log_finalize(void)
Log performance information relative to Crystal Router exchange.
Definition: cs_crystal_router.cpp:2205
cs_lnum_t cs_crystal_router_n_recv_elts(const cs_crystal_router_t *cr)
Get number of elements received with Crystal Router.
Definition: cs_crystal_router.cpp:1994
struct _cs_crystal_router_t cs_crystal_router_t
Definition: cs_crystal_router.h:62
cs_datatype_t
Definition: cs_defs.h:290
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:325