xref: /petsc/src/vec/is/is/tests/ex5.c (revision 609caa7c8c030312b00807b4f015fd827bb80932)
1 static char help[] = "Tests ISLocalToGlobalMappingGetInfo.()\n\n";
2 
3 #include <petscis.h>
4 
main(int argc,char ** argv)5 int main(int argc, char **argv)
6 {
7   PetscMPIInt            size, rank;
8   PetscInt               nlocal, local[5], nneigh, *neigh, **ineigh, *numneigh;
9   ISLocalToGlobalMapping mapping;
10 
11   PetscFunctionBeginUser;
12   PetscCall(PetscInitialize(&argc, &argv, NULL, help));
13   PetscCallMPI(MPI_Comm_size(PETSC_COMM_WORLD, &size));
14   PetscCheck(size == 3, PETSC_COMM_WORLD, PETSC_ERR_WRONG_MPI_SIZE, "Must run with three processors");
15   PetscCallMPI(MPI_Comm_rank(PETSC_COMM_WORLD, &rank));
16   if (rank == 0) {
17     nlocal   = 4;
18     local[0] = 0;
19     local[1] = 3;
20     local[2] = 2;
21     local[3] = 1;
22   } else if (rank == 1) {
23     nlocal   = 4;
24     local[0] = 3;
25     local[1] = 5;
26     local[2] = 4;
27     local[3] = 2;
28   } else {
29     nlocal   = 4;
30     local[0] = 7;
31     local[1] = 6;
32     local[2] = 5;
33     local[3] = 3;
34   }
35   PetscCall(ISLocalToGlobalMappingCreate(PETSC_COMM_WORLD, 1, nlocal, local, PETSC_COPY_VALUES, &mapping));
36   PetscCall(ISLocalToGlobalMappingGetInfo(mapping, &nneigh, &neigh, &numneigh, &ineigh));
37   PetscCall(ISLocalToGlobalMappingRestoreInfo(mapping, &nneigh, &neigh, &numneigh, &ineigh));
38   PetscCall(ISLocalToGlobalMappingDestroy(&mapping));
39   PetscCall(PetscFinalize());
40   return 0;
41 }
42 
43 /*TEST
44 
45    test:
46       nsize: 3
47       output_file: output/empty.out
48 
49 TEST*/
50