1 /*****************************************************************************
2  * Copyright (c) 2019 FrontISTR Commons
3  * This software is released under the MIT License, see LICENSE.txt
4  *****************************************************************************/
5 
6 #ifndef INC_HECMW_COUPLE_COMM
7 #define INC_HECMW_COUPLE_COMM
8 
9 #include "hecmw_config.h"
10 
11 extern int HECMW_couple_inter_send_recv(
12     int n_neighbor_pe_send, int *neighbor_pe_send, int *sendbuf_index,
13     void *sendbuf, int n_neighbor_pe_recv, int *neighbor_pe_recv,
14     int *recvbuf_index, void *recvbuf, HECMW_Datatype datatype,
15     HECMW_Comm comm);
16 
17 extern int HECMW_couple_intra_send_recv(int n_neighbor_pe, int *neighbor_pe,
18                                         int *sendbuf_index, void *sendbuf,
19                                         int *recvbuf_index, void *recvbuf,
20                                         HECMW_Datatype datatype,
21                                         HECMW_Comm comm);
22 
23 extern int HECMW_couple_bcast(int n_neighbor_pe_send, int *neighbor_pe_send,
24                               int sendbuf_size, void *sendbuf,
25                               int n_neighbor_pe_recv, int *neighbor_pe_recv,
26                               int *recvbuf_index, void *recvbuf,
27                               HECMW_Datatype datatype, HECMW_Comm comm);
28 
29 extern int HECMW_couple_inter_bcast(const char *boundary_id, void *buffer,
30                                     int count, HECMW_Datatype datatype,
31                                     int direction);
32 
33 extern int HECMW_couple_inter_barrier(const char *boundary_id);
34 
35 #endif /* INC_HECMW_COUPLE_COMM */
36