xref: /petsc/src/sys/objects/gcomm.c (revision 3cfa868005f9094c013e5a0923a816520f5fe8a6)
1e5c89e4eSSatish Balay #define PETSC_DLL
2e5c89e4eSSatish Balay /*
3e5c89e4eSSatish Balay      Provides utility routines for manulating any type of PETSc object.
4e5c89e4eSSatish Balay */
5e5c89e4eSSatish Balay #include "petsc.h"  /*I   "petsc.h"    I*/
6e5c89e4eSSatish Balay 
7e5c89e4eSSatish Balay #undef __FUNCT__
8e5c89e4eSSatish Balay #define __FUNCT__ "PetscObjectGetComm"
9e5c89e4eSSatish Balay /*@C
10e5c89e4eSSatish Balay    PetscObjectGetComm - Gets the MPI communicator for any PetscObject,
11e5c89e4eSSatish Balay    regardless of the type.
12e5c89e4eSSatish Balay 
13e5c89e4eSSatish Balay    Not Collective
14e5c89e4eSSatish Balay 
15e5c89e4eSSatish Balay    Input Parameter:
16e5c89e4eSSatish Balay .  obj - any PETSc object, for example a Vec, Mat or KSP. Thus must be
17e5c89e4eSSatish Balay          cast with a (PetscObject), for example,
18e5c89e4eSSatish Balay          PetscObjectGetComm((PetscObject)mat,&comm);
19e5c89e4eSSatish Balay 
20e5c89e4eSSatish Balay    Output Parameter:
21e5c89e4eSSatish Balay .  comm - the MPI communicator
22e5c89e4eSSatish Balay 
23e5c89e4eSSatish Balay    Level: advanced
24e5c89e4eSSatish Balay 
25e5c89e4eSSatish Balay    Concepts: communicator^getting from object
26e5c89e4eSSatish Balay    Concepts: MPI communicator^getting from object
27e5c89e4eSSatish Balay 
28e5c89e4eSSatish Balay @*/
29e5c89e4eSSatish Balay PetscErrorCode PETSC_DLLEXPORT PetscObjectGetComm(PetscObject obj,MPI_Comm *comm)
30e5c89e4eSSatish Balay {
31e5c89e4eSSatish Balay   PetscErrorCode ierr;
32e5c89e4eSSatish Balay 
33e5c89e4eSSatish Balay   PetscFunctionBegin;
34*3cfa8680SLisandro Dalcin   PetscValidHeader(obj,1);
35*3cfa8680SLisandro Dalcin   PetscValidPointer(comm,2);
36e5c89e4eSSatish Balay   if (obj->bops->getcomm) {
37e5c89e4eSSatish Balay     ierr = obj->bops->getcomm(obj,comm);CHKERRQ(ierr);
38e5c89e4eSSatish Balay   } else {
39e5c89e4eSSatish Balay     *comm = obj->comm;
40e5c89e4eSSatish Balay   }
41e5c89e4eSSatish Balay   PetscFunctionReturn(0);
42e5c89e4eSSatish Balay }
43e5c89e4eSSatish Balay 
44e5c89e4eSSatish Balay 
45