![]() |
YAC 3.7.1
Yet Another Coupler
|
#include "yac_mpi_common.h"
Go to the source code of this file.
Data Structures | |
struct | yac_dist_merge_vtable |
Functions | |
void | yac_dist_merge (size_t *count, void **array, size_t element_size, MPI_Comm comm, struct yac_dist_merge_vtable *vtable, size_t **idx_old_to_new) |
void yac_dist_merge | ( | size_t * | count, |
void ** | array, | ||
size_t | element_size, | ||
MPI_Comm | comm, | ||
struct yac_dist_merge_vtable * | vtable, | ||
size_t ** | idx_old_to_new ) |
Distributes and merges an array across all processes in comm. After the call, the array will be the same on all processes.
[in,out] | count | number of elements in the array |
[in,out] | array | array of elements to by synchronised |
[in] | element_size | size of a single element |
[in] | comm | communicator |
[in] | vtable | virtual method table that is to be used for the synchronisation |
[out] | idx_old_to_new | if idx_old_to_new != NULL this routine will allocate an array that has the original size of the input array. After the call the i'th element of the input array will be at position idx_old_to_new[i] in the new array. |
merge
function may itself call yac_dist_merge
to synchronise some of the additional information. Definition at line 64 of file dist_merge.c.