1 #ifndef __CS_CRYSTAL_ROUTER_H__ 2 #define __CS_CRYSTAL_ROUTER_H__ 53 #define CS_CRYSTAL_ROUTER_USE_DEST_ID (1 << 0) 55 #define CS_CRYSTAL_ROUTER_ADD_SRC_ID (1 << 1) 56 #define CS_CRYSTAL_ROUTER_ADD_SRC_RANK (1 << 2) 113 const int dest_rank[],
153 const int dest_rank[],
cs_datatype_t
Definition: cs_defs.h:275
#define BEGIN_C_DECLS
Definition: cs_defs.h:510
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.c:1645
void cs_crystal_router_log_finalize(void)
Log performance information relative to Crystal Router exchange.
Definition: cs_crystal_router.c:2209
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.c:1535
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.c:2184
struct _cs_crystal_router_t cs_crystal_router_t
Definition: cs_crystal_router.h:66
void cs_crystal_router_destroy(cs_crystal_router_t **cr)
Destroy a Crystal Router.
Definition: cs_crystal_router.c:1800
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.c:1998
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:316
#define END_C_DECLS
Definition: cs_defs.h:511
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.c:2055
void cs_crystal_router_exchange(cs_crystal_router_t *cr)
Exchange data with a Crystal Router.
Definition: cs_crystal_router.c:1831
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.c:1929