YAC 3.7.1
Yet Another Coupler
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
yac_dist_merge_vtable Struct Reference

#include <dist_merge.h>

Collaboration diagram for yac_dist_merge_vtable:
Collaboration graph

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)
 

Detailed Description

Definition at line 13 of file dist_merge.h.

Field Documentation

◆ compare

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.

◆ free_data

void(* yac_dist_merge_vtable::free_data) (void *element)

Frees a single element.

Definition at line 61 of file dist_merge.h.

◆ get_pack_size

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.

◆ merge

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.

◆ pack

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.

◆ unpack

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.


The documentation for this struct was generated from the following file: