Actual source code: ex6.c
1: static char help[] = "Tests ISRenumber.\n\n";
3: #include <petscis.h>
5: PetscErrorCode TestRenumber(IS is, IS mult)
6: {
7: IS nis;
8: PetscInt N;
10: PetscPrintf(PetscObjectComm((PetscObject)is),"\n-----------------\n");
11: PetscPrintf(PetscObjectComm((PetscObject)is),"\nInitial\n");
12: ISView(is,NULL);
13: if (mult) {
14: PetscPrintf(PetscObjectComm((PetscObject)is),"\nMult\n");
15: ISView(mult,NULL);
16: }
17: ISRenumber(is,mult,&N,NULL);
18: PetscPrintf(PetscObjectComm((PetscObject)is),"\nRenumbered, unique entries %" PetscInt_FMT "\n",N);
19: ISRenumber(is,mult,NULL,&nis);
20: ISView(nis,NULL);
21: ISDestroy(&nis);
22: return 0;
23: }
25: int main(int argc, char **argv)
26: {
27: IS is;
28: PetscMPIInt size, rank;
30: PetscInitialize(&argc, &argv, NULL, help);
31: MPI_Comm_size(PETSC_COMM_WORLD,&size);
32: MPI_Comm_rank(PETSC_COMM_WORLD,&rank);
34: for (PetscInt c = 0; c < 3; c++) {
35: IS mult = NULL;
37: ISCreateStride(PETSC_COMM_WORLD,0,0,0,&is);
38: if (c) {
39: PetscInt n;
40: ISGetLocalSize(is,&n);
41: ISCreateStride(PETSC_COMM_WORLD,n,c-2,0,&mult);
42: }
43: TestRenumber(is,mult);
44: ISDestroy(&is);
45: ISDestroy(&mult);
47: ISCreateStride(PETSC_COMM_WORLD,2,-rank-1,-4,&is);
48: if (c) {
49: PetscInt n;
50: ISGetLocalSize(is,&n);
51: ISCreateStride(PETSC_COMM_WORLD,n,c-2,0,&mult);
52: }
53: TestRenumber(is,mult);
54: ISDestroy(&is);
55: ISDestroy(&mult);
57: ISCreateStride(PETSC_COMM_WORLD,10,4+rank,2,&is);
58: if (c) {
59: PetscInt n;
60: ISGetLocalSize(is,&n);
61: ISCreateStride(PETSC_COMM_WORLD,n,c-2,1,&mult);
62: }
63: TestRenumber(is,mult);
64: ISDestroy(&is);
65: ISDestroy(&mult);
67: ISCreateStride(PETSC_COMM_WORLD,10,-rank-1,2,&is);
68: if (c) {
69: PetscInt n;
70: ISGetLocalSize(is,&n);
71: ISCreateStride(PETSC_COMM_WORLD,n,c-2,1,&mult);
72: }
73: TestRenumber(is,mult);
74: ISDestroy(&is);
75: ISDestroy(&mult);
76: }
77: /* Finalize */
78: PetscFinalize();
79: return 0;
80: }
82: /*TEST
84: test:
85: suffix: 1
86: nsize: {{1 2}separate output}
88: TEST*/