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