YetAnotherCoupler 3.5.2
Loading...
Searching...
No Matches
remote_point.h
Go to the documentation of this file.
1// Copyright (c) 2024 The YAC Authors
2//
3// SPDX-License-Identifier: BSD-3-Clause
4
5#ifndef REMOTE_POINT_H
6#define REMOTE_POINT_H
7
8#include <stdint.h>
9#include <mpi.h>
10
11#include "yac_types.h"
12
15 int rank; // MPI rank
16 uint64_t orig_pos; // local id on the remote process
17};
18
20// more processes
22 int count; // number of processes
23 union {
24 struct remote_point_info single; // valid if count == 1;
25 struct remote_point_info * multi; // valid if count != -1;
26 } data; // remote process information
27};
28
30// is located on one or more processes
35
37// about a list of points that are located on one or more processes
40 size_t count;
41 struct remote_point_info buffer[]; // buffer required to
42 // store location information
43};
44
51MPI_Datatype yac_get_remote_point_info_mpi_datatype(MPI_Comm comm);
52
63 struct remote_point_infos const * infos, MPI_Datatype point_info_dt,
64 MPI_Comm comm);
65
76 struct remote_point_infos const * infos, void * buffer, int buffer_size,
77 int * position, MPI_Datatype point_info_dt, MPI_Comm comm);
78
90 void * buffer, int buffer_size, int * position,
91 struct remote_point_infos * infos, MPI_Datatype point_info_dt,
92 MPI_Comm comm);
93
103 struct remote_point * point, MPI_Datatype point_info_dt, MPI_Comm comm);
104
115 struct remote_point * point, void * buffer, int buffer_size, int * position,
116 MPI_Datatype point_info_dt, MPI_Comm comm);
117
129 void * buffer, int buffer_size, int * position, struct remote_point * point,
130 MPI_Datatype point_info_dt, MPI_Comm comm);
131
141 struct remote_points * points, MPI_Datatype point_info_dt, MPI_Comm comm);
142
153 struct remote_points * points, void * buffer, int buffer_size, int * position,
154 MPI_Datatype point_info_dt, MPI_Comm comm);
155
167 void * buffer, int buffer_size, int * position,
168 struct remote_points ** points, MPI_Datatype point_info_dt, MPI_Comm comm);
169
170#endif // REMOTE_POINT_H
void yac_remote_point_pack(struct remote_point *point, void *buffer, int buffer_size, int *position, MPI_Datatype point_info_dt, MPI_Comm comm)
void yac_remote_point_unpack(void *buffer, int buffer_size, int *position, struct remote_point *point, MPI_Datatype point_info_dt, MPI_Comm comm)
void yac_remote_point_infos_unpack(void *buffer, int buffer_size, int *position, struct remote_point_infos *infos, MPI_Datatype point_info_dt, MPI_Comm comm)
int yac_remote_point_infos_get_pack_size(struct remote_point_infos const *infos, MPI_Datatype point_info_dt, MPI_Comm comm)
void yac_remote_points_pack(struct remote_points *points, void *buffer, int buffer_size, int *position, MPI_Datatype point_info_dt, MPI_Comm comm)
void yac_remote_points_unpack(void *buffer, int buffer_size, int *position, struct remote_points **points, MPI_Datatype point_info_dt, MPI_Comm comm)
int yac_remote_points_get_pack_size(struct remote_points *points, MPI_Datatype point_info_dt, MPI_Comm comm)
MPI_Datatype yac_get_remote_point_info_mpi_datatype(MPI_Comm comm)
void yac_remote_point_infos_pack(struct remote_point_infos const *infos, void *buffer, int buffer_size, int *position, MPI_Datatype point_info_dt, MPI_Comm comm)
int yac_remote_point_get_pack_size(struct remote_point *point, MPI_Datatype point_info_dt, MPI_Comm comm)
single location information of a point
location information about a point that is located on one or
union remote_point_infos::@46 data
struct remote_point_info single
struct remote_point_info * multi
information (global id and location) about a point that
yac_int global_id
struct remote_point_infos data
structure containing the information (global id and location)
struct remote_point_info buffer[]
struct remote_point * data
static struct user_input_data_points ** points
Definition yac.c:136
Xt_int yac_int
Definition yac_types.h:15