![]() |
YAC 3.7.1
Yet Another Coupler
|
#include <dist_merge.h>
Data Fields | |
size_t(* | get_pack_size )(void *element, MPI_Comm comm) |
void(* | pack )(void *element, void *buffer, int buffer_size, int *position, MPI_Comm) |
void(* | unpack )(void *buffer, int buffer_size, int *position, void *element, MPI_Comm comm) |
int(* | compare )(void const *a, void const *b) |
void(* | merge )(void *to, void *from, MPI_Comm comm) |
void(* | free_data )(void *element) |
Definition at line 13 of file dist_merge.h.
int(* yac_dist_merge_vtable::compare) (void const *a, void const *b) |
Compares the basic information of two elements.
Definition at line 39 of file dist_merge.h.
void(* yac_dist_merge_vtable::free_data) (void *element) |
Frees a single element.
Definition at line 61 of file dist_merge.h.
size_t(* yac_dist_merge_vtable::get_pack_size) (void *element, MPI_Comm comm) |
Determines pack size of an element. The data to be packed only has to include the basic information that is required to the element. Additional data is exchanged at a later stage.
Definition at line 20 of file dist_merge.h.
void(* yac_dist_merge_vtable::merge) (void *to, void *from, MPI_Comm comm) |
Merges two elements that have the same basic information. The first argument contains an element that was initialised by unpack
and only contains the basic information. The second argument contains a local element, which can contain additional information. If a process does not have a matching element, local will be NULL
. The user is responsible for synchronising the additional information between all processes in comm
and add this information to the element in the first argument. He also has to check the consistency of the additional information between the processes. The second argument will be freed after this call.
This pointer can be zero, if an element only contains basic information.
Definition at line 56 of file dist_merge.h.
void(* yac_dist_merge_vtable::pack) (void *element, void *buffer, int buffer_size, int *position, MPI_Comm) |
Packs an element (only basic information).
Definition at line 25 of file dist_merge.h.
void(* yac_dist_merge_vtable::unpack) (void *buffer, int buffer_size, int *position, void *element, MPI_Comm comm) |
Unpacks an element (only basic information). The non-basic data of the element is also to be initialised by this routine using dummy values.
Definition at line 32 of file dist_merge.h.