Nek5000
SEM for Incompressible NS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
comm_test.c
Go to the documentation of this file.
1 #include <stddef.h>
2 #include <stdlib.h>
3 #include <stdio.h>
4 #include "name.h"
5 #include "fail.h"
6 #include "types.h"
7 #include "gs_defs.h"
8 #include "comm.h"
9 
10 int main(int narg, char *arg[])
11 {
12  comm_ext world; int np;
13  struct comm comm;
14  ulong sum[2],r[2],v, test;
15 #ifdef MPI
16  MPI_Init(&narg,&arg);
17  world = MPI_COMM_WORLD;
18  MPI_Comm_size(world,&np);
19 #else
20  world=0, np=1;
21 #endif
22 
23  comm_init(&comm,world);
24 
25  v = comm.id+1;
26  test = comm_reduce_slong(&comm,gs_add,(slong*)&v,1);
27  comm_scan(sum, &comm,gs_slong,gs_add, &v,1, r);
28  printf("%02d: %d %d %d\n",(int)comm.id,(int)sum[0],(int)sum[1],(int)test);
29 
30  comm_free(&comm);
31 
32 #ifdef MPI
33  MPI_Finalize();
34 #endif
35 
36  return 0;
37 }
#define slong
Definition: types.h:74
#define gs_slong
Definition: gs_defs.h:66
static double sum(struct xxt *data, double v, uint n, uint tag)
Definition: xxt.c:400
void test(const struct comm *const comm)
Definition: crs_test.c:16
int main(int narg, char *arg[])
Definition: comm_test.c:10
Definition: comm.h:85
static void comm_free(struct comm *c)
Definition: comm.h:176
void comm_scan(void *scan, const struct comm *com, gs_dom dom, gs_op op, const void *v, uint vn, void *buffer)
Definition: comm.c:101
int comm_ext
Definition: comm.h:69
#define ulong
Definition: types.h:75
uint id
Definition: comm.h:86
establishes some macros to establish naming conventions
static uint np
Definition: findpts_test.c:63
static void comm_init(struct comm *c, comm_ext ce)
Definition: comm.h:133