Actual source code: ex5.c
1: static char help[] = "Tests ISLocalToGlobalMappingGetInfo.()\n\n";
3: #include <petscis.h>
5: int main(int argc, char **argv)
6: {
7: PetscMPIInt size, rank;
8: PetscInt nlocal, local[5], nneigh, *neigh, **ineigh, *numneigh;
9: ISLocalToGlobalMapping mapping;
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: }
43: /*TEST
45: test:
46: nsize: 3
47: output_file: output/ex1_1.out
49: TEST*/