xref: /petsc/src/vec/is/ao/tests/ex7.c (revision b122ec5aa1bd4469eb4e0673542fb7de3f411254)
1 
2 static char help[] = "Demonstrates constructing an application ordering.\n\n";
3 
4 #include <petscao.h>
5 #include <petscviewer.h>
6 
7 int main(int argc,char **argv)
8 {
9   PetscInt       n = 5;
10   PetscMPIInt    rank,size;
11   IS             ispetsc,isapp;
12   AO             ao;
13 
14   CHKERRQ(PetscInitialize(&argc,&argv,(char*)0,help));
15   CHKERRQ(PetscOptionsGetInt(NULL,NULL,"-n",&n,NULL));
16   CHKERRMPI(MPI_Comm_rank(PETSC_COMM_WORLD,&rank));
17   CHKERRMPI(MPI_Comm_size(PETSC_COMM_WORLD,&size));
18 
19   /* create the index sets */
20   CHKERRQ(ISCreateStride(PETSC_COMM_WORLD,n,rank,size,&ispetsc));
21   CHKERRQ(ISCreateStride(PETSC_COMM_WORLD,n,n*rank,1,&isapp));
22 
23   /* create the application ordering */
24   CHKERRQ(AOCreateBasicIS(isapp,ispetsc,&ao));
25 
26   CHKERRQ(AOView(ao,PETSC_VIEWER_STDOUT_WORLD));
27 
28   CHKERRQ(ISView(ispetsc,PETSC_VIEWER_STDOUT_WORLD));
29   CHKERRQ(ISView(isapp,PETSC_VIEWER_STDOUT_WORLD));
30   CHKERRQ(AOPetscToApplicationIS(ao,ispetsc));
31   CHKERRQ(ISView(isapp,PETSC_VIEWER_STDOUT_WORLD));
32   CHKERRQ(ISView(ispetsc,PETSC_VIEWER_STDOUT_WORLD));
33 
34   CHKERRQ(ISDestroy(&ispetsc));
35   CHKERRQ(ISDestroy(&isapp));
36 
37   CHKERRQ(AODestroy(&ao));
38   CHKERRQ(PetscFinalize());
39   return 0;
40 }
41 
42 /*TEST
43 
44    test:
45       nsize: 2
46 
47 TEST*/
48