|
cs_halo_t * | cs_halo_create (const cs_interface_set_t *ifs) |
| Create a halo structure given an interface set. More...
|
|
void | cs_halo_create_complete (cs_halo_t *halo) |
| Ready halo for use. More...
|
|
cs_halo_t * | cs_halo_create_from_ref (const cs_halo_t *ref) |
| Create a halo structure, given a reference halo. More...
|
|
cs_halo_t * | cs_halo_create_from_rank_neighbors (const cs_rank_neighbors_t *rn, cs_lnum_t n_local_elts, cs_lnum_t n_distant_elts, const int elt_rank_id[], const cs_lnum_t elt_id[]) |
| Create a halo structure from distant element distant ranks and ids. More...
|
|
void | cs_halo_destroy (cs_halo_t **halo) |
|
cs_halo_state_t * | cs_halo_state_create (void) |
| Create a halo state structure. More...
|
|
void | cs_halo_state_destroy (cs_halo_state_t **halo_state) |
| Destroy a halo state structure. More...
|
|
cs_halo_state_t * | cs_halo_state_get_default (void) |
| Get pointer to default halo state structure. More...
|
|
void | cs_halo_renumber_cells (cs_halo_t *halo, const cs_lnum_t new_cell_id[]) |
|
void | cs_halo_renumber_ghost_cells (cs_halo_t *halo, const cs_lnum_t old_cell_id[]) |
|
void * | cs_halo_sync_pack_init_state (const cs_halo_t *halo, cs_halo_type_t sync_mode, cs_datatype_t data_type, int stride, void *send_buf, cs_halo_state_t *hs) |
| Initialize halo state prior to packing halo data to send. More...
|
|
void | cs_halo_sync_pack (const cs_halo_t *halo, cs_halo_type_t sync_mode, cs_datatype_t data_type, int stride, void *val, void *send_buf, cs_halo_state_t *hs) |
| Pack halo data to send into dense buffer. More...
|
|
void | cs_halo_sync_start (const cs_halo_t *halo, void *val, cs_halo_state_t *hs) |
| Launch update array of values in case of parallelism or periodicity. More...
|
|
void | cs_halo_sync_wait (const cs_halo_t *halo, void *val, cs_halo_state_t *hs) |
| Wait for completion of update array of values in case of parallelism or periodicity. More...
|
|
void | cs_halo_sync (const cs_halo_t *halo, cs_halo_type_t sync_mode, cs_datatype_t data_type, int stride, void *val) |
| Update array of values in case of parallelism or periodicity. More...
|
|
void | cs_halo_sync_untyped (const cs_halo_t *halo, cs_halo_type_t sync_mode, size_t size, void *val) |
|
void | cs_halo_sync_num (const cs_halo_t *halo, cs_halo_type_t sync_mode, cs_lnum_t num[]) |
|
void | cs_halo_sync_var (const cs_halo_t *halo, cs_halo_type_t sync_mode, cs_real_t var[]) |
|
void | cs_halo_sync_var_strided (const cs_halo_t *halo, cs_halo_type_t sync_mode, cs_real_t var[], int stride) |
|
bool | cs_halo_get_use_barrier (void) |
|
void | cs_halo_set_use_barrier (bool use_barrier) |
|
cs_halo_comm_mode_t | cs_halo_get_comm_mode (void) |
| Get default communication mode for halo exchange. More...
|
|
void | cs_halo_set_comm_mode (cs_halo_comm_mode_t mode) |
| Set default communication mode for halo exchange. More...
|
|
cs_alloc_mode_t | cs_halo_get_buffer_alloc_mode (void) |
| Get default host/device allocation mode for message packing arrays. More...
|
|
void | cs_halo_set_buffer_alloc_mode (cs_alloc_mode_t mode) |
| Set default host/device allocation mode for message packing arrays. More...
|
|
void | cs_halo_dump (const cs_halo_t *halo, int print_level) |
|
Pack halo data to send into dense buffer.
A local state handler may be provided, or the default state handler will be used.
A local state and/or buffer may be provided, or the default (global) state and buffer will be used. If provided explicitely, the buffer must be of sufficient size.
- Parameters
-
[in] | halo | pointer to halo structure |
[in] | sync_mode | synchronization mode (standard or extended) |
[in] | data_type | data type |
[in] | stride | number of (interlaced) values by entity |
[in] | val | pointer to variable value array |
[out] | send_buf | pointer to send buffer, NULL for global buffer |
[in,out] | hs | pointer to halo state, NULL for global state |
Initialize halo state prior to packing halo data to send.
A local state handler may be provided, or the default state handler will be used.
This function is included in cs_halo_sync_pack, but may be called separately for specific implementations, such as for accelerator devices.
A local state and/or buffer may be provided, or the default (global) state and buffer will be used. If provided explicitely, the buffer must be of sufficient size.
- Parameters
-
[in] | halo | pointer to halo structure |
[in] | sync_mode | synchronization mode (standard or extended) |
[in] | data_type | data type |
[in] | stride | number of (interlaced) values by entity |
[out] | send_buf | pointer to send buffer, NULL for global buffer |
[in,out] | hs | pointer to halo state, NULL for global state |
- Returns
- pointer to halo send buffer
Wait for completion of update array of values in case of parallelism or periodicity.
This function aims at copying main values from local elements (id between 1 and n_local_elements) to ghost elements on distant ranks (id between n_local_elements + 1 to n_local_elements_with_halo).
The cs_halo_sync_start function should have been called before this function, using the same hs argument.
- Parameters
-
[in] | halo | pointer to halo structure |
[in] | val | pointer to variable value array |
[in,out] | hs | pointer to halo state, NULL for global state |