/*@ DMDAGetBoundingBox - Returns the global bounding box for the DMDA. Collective on DMDA Input Parameter: . dm - the DM Output Parameters: + gmin - global minimum coordinates (length dim, optional) - gmax - global maximim coordinates (length dim, optional) Level: beginner .keywords: distributed array, get, coordinates .seealso: DMDAGetCoordinateDA(), DMGetCoordinates(), DMDAGetLocalBoundingBox() @*/ PetscErrorCode DMDAGetBoundingBox(DM dm,PetscReal gmin[],PetscReal gmax[]) { PetscErrorCode ierr; PetscMPIInt count; PetscReal lmin[3],lmax[3]; PetscFunctionBegin; PetscValidHeaderSpecific(dm,DM_CLASSID,1); ierr = PetscMPIIntCast(dm->dim,&count);CHKERRQ(ierr); ierr = DMDAGetLocalBoundingBox(dm,lmin,lmax);CHKERRQ(ierr); if (gmin) {ierr = MPIU_Allreduce(lmin,gmin,count,MPIU_REAL,MPIU_MIN,PetscObjectComm((PetscObject)dm));CHKERRQ(ierr);} if (gmax) {ierr = MPIU_Allreduce(lmax,gmax,count,MPIU_REAL,MPIU_MAX,PetscObjectComm((PetscObject)dm));CHKERRQ(ierr);} PetscFunctionReturn(0); }
PETSC_EXTERN void PETSC_STDCALL dmdagetlocalboundingbox_(DM da,PetscReal lmin[],PetscReal lmax[], int *__ierr ){ *__ierr = DMDAGetLocalBoundingBox( (DM)PetscToPointer((da) ),lmin,lmax); }