xref: /petsc/src/sys/tests/ex57.c (revision 9566063d113dddea24716c546802770db7481bc0)
157f21012SBarry Smith 
257f21012SBarry Smith static char help[] = "Tests PetscCommGetComm().\n";
357f21012SBarry Smith 
457f21012SBarry Smith #include <petscsys.h>
557f21012SBarry Smith 
657f21012SBarry Smith int main(int argc,char **argv)
757f21012SBarry Smith {
857f21012SBarry Smith   MPI_Comm       comms[10],comm;
957f21012SBarry Smith   PetscInt       i;
1057f21012SBarry Smith   PetscRandom    rand;
1157f21012SBarry Smith 
12*9566063dSJacob Faibussowitsch   PetscCall(PetscInitialize(&argc,&argv,(char*)0,help));
13*9566063dSJacob Faibussowitsch   PetscCall(PetscRandomCreate(PETSC_COMM_WORLD,&rand));
14*9566063dSJacob Faibussowitsch   PetscCall(PetscObjectGetComm((PetscObject)rand,&comm));
1557f21012SBarry Smith   for (i=0; i<10; i++) {
16*9566063dSJacob Faibussowitsch     PetscCall(PetscCommGetComm(comm,&comms[i]));
1757f21012SBarry Smith   }
1857f21012SBarry Smith   for (i=0; i<5; i++) {
19*9566063dSJacob Faibussowitsch     PetscCall(PetscCommRestoreComm(comm,&comms[i]));
2057f21012SBarry Smith   }
2157f21012SBarry Smith   for (i=0; i<5; i++) {
22*9566063dSJacob Faibussowitsch     PetscCall(PetscCommGetComm(comm,&comms[i]));
2357f21012SBarry Smith   }
2457f21012SBarry Smith   for (i=0; i<10; i++) {
25*9566063dSJacob Faibussowitsch     PetscCall(PetscCommRestoreComm(comm,&comms[i]));
2657f21012SBarry Smith   }
27*9566063dSJacob Faibussowitsch   PetscCall(PetscRandomDestroy(&rand));
28*9566063dSJacob Faibussowitsch   PetscCall(PetscFinalize());
29b122ec5aSJacob Faibussowitsch   return 0;
3057f21012SBarry Smith }
3157f21012SBarry Smith 
3257f21012SBarry Smith /*TEST
3357f21012SBarry Smith 
3457f21012SBarry Smith    test:
3557f21012SBarry Smith      requires: defined(PETSC_USE_LOG)
3657f21012SBarry Smith      args: -info
3757f21012SBarry Smith      filter: grep Reusing | wc -l
3857f21012SBarry Smith 
3957f21012SBarry Smith TEST*/
40