Actual source code: ex1.c
1: static char help[] = "Tests ISLocalToGlobalMappingCreateIS() for bs > 1.\n\n";
3: #include <petscis.h>
5: int main(int argc, char **argv)
6: {
7: PetscInt bs = 2, n = 3, ix[3] = {1, 7, 9}, iy[2] = {0, 2}, mp[2];
8: IS isx;
9: ISLocalToGlobalMapping ltog;
11: PetscFunctionBeginUser;
12: PetscCall(PetscInitialize(&argc, &argv, NULL, help));
14: PetscCall(ISCreateBlock(PETSC_COMM_SELF, bs, n, ix, PETSC_COPY_VALUES, &isx));
15: PetscCall(ISLocalToGlobalMappingCreateIS(isx, <og));
17: PetscCall(PetscIntView(2, iy, PETSC_VIEWER_STDOUT_WORLD));
18: PetscCall(ISLocalToGlobalMappingApply(ltog, 2, iy, mp));
19: PetscCall(PetscIntView(2, mp, PETSC_VIEWER_STDOUT_WORLD));
21: PetscCall(PetscIntView(2, iy, PETSC_VIEWER_STDOUT_WORLD));
22: PetscCall(ISLocalToGlobalMappingApplyBlock(ltog, 2, iy, mp));
23: PetscCall(PetscIntView(2, mp, PETSC_VIEWER_STDOUT_WORLD));
25: PetscCall(ISLocalToGlobalMappingDestroy(<og));
26: PetscCall(ISDestroy(&isx));
28: PetscCall(PetscFinalize());
29: return 0;
30: }
32: /*TEST
34: test:
36: TEST*/