/*@ PetscDrawDestroy - Deletes a draw context. Collective on PetscDraw Input Parameters: . draw - the drawing context Level: beginner .seealso: PetscDrawCreate() @*/ PetscErrorCode PetscDrawDestroy(PetscDraw *draw) { PetscErrorCode ierr; PetscFunctionBegin; if (!*draw) PetscFunctionReturn(0); PetscValidHeaderSpecific(*draw,PETSC_DRAW_CLASSID,1); if (--((PetscObject)(*draw))->refct > 0) PetscFunctionReturn(0); if ((*draw)->pause == -2) { (*draw)->pause = -1; ierr = PetscDrawPause(*draw);CHKERRQ(ierr); } /* if memory was published then destroy it */ ierr = PetscObjectSAWsViewOff((PetscObject)*draw);CHKERRQ(ierr); if ((*draw)->ops->destroy) { ierr = (*(*draw)->ops->destroy)(*draw);CHKERRQ(ierr); } ierr = PetscFree((*draw)->title);CHKERRQ(ierr); ierr = PetscFree((*draw)->display);CHKERRQ(ierr); ierr = PetscFree((*draw)->savefilename);CHKERRQ(ierr); ierr = PetscFree((*draw)->savefinalfilename);CHKERRQ(ierr); ierr = PetscHeaderDestroy(draw);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@C PFDestroy - Destroys PF context that was created with PFCreate(). Collective on PF Input Parameter: . pf - the function context Level: beginner .keywords: PF, destroy .seealso: PFCreate(), PFSet(), PFSetType() @*/ PetscErrorCode PFDestroy(PF *pf) { PetscErrorCode ierr; PetscFunctionBegin; if (!*pf) PetscFunctionReturn(0); PetscValidHeaderSpecific((*pf),PF_CLASSID,1); if (--((PetscObject)(*pf))->refct > 0) PetscFunctionReturn(0); ierr = PFViewFromOptions(*pf,NULL,"-pf_view");CHKERRQ(ierr); /* if memory was published with SAWs then destroy it */ ierr = PetscObjectSAWsViewOff((PetscObject)*pf);CHKERRQ(ierr); if ((*pf)->ops->destroy) {ierr = (*(*pf)->ops->destroy)((*pf)->data);CHKERRQ(ierr);} ierr = PetscHeaderDestroy(pf);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@C AODestroy - Destroys an application ordering. Collective on AO Input Parameters: . ao - the application ordering context Level: beginner .keywords: destroy, application ordering .seealso: AOCreate() @*/ PetscErrorCode AODestroy(AO *ao) { PetscErrorCode ierr; PetscFunctionBegin; if (!*ao) PetscFunctionReturn(0); PetscValidHeaderSpecific((*ao),AO_CLASSID,1); if (--((PetscObject)(*ao))->refct > 0) {*ao = 0; PetscFunctionReturn(0);} /* if memory was published with SAWs then destroy it */ ierr = PetscObjectSAWsViewOff((PetscObject)*ao);CHKERRQ(ierr); /* destroy the internal part */ if ((*ao)->ops->destroy) { ierr = (*(*ao)->ops->destroy)(*ao);CHKERRQ(ierr); } ierr = PetscHeaderDestroy(ao);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ PetscViewerDestroy - Destroys a PetscViewer. Collective on PetscViewer Input Parameters: . viewer - the PetscViewer to be destroyed. Level: beginner .seealso: PetscViewerSocketOpen(), PetscViewerASCIIOpen(), PetscViewerCreate(), PetscViewerDrawOpen() @*/ PetscErrorCode PetscViewerDestroy(PetscViewer *viewer) { PetscErrorCode ierr; PetscFunctionBegin; if (!*viewer) PetscFunctionReturn(0); PetscValidHeaderSpecific(*viewer,PETSC_VIEWER_CLASSID,1); ierr = PetscViewerFlush(*viewer);CHKERRQ(ierr); if (--((PetscObject)(*viewer))->refct > 0) {*viewer = 0; PetscFunctionReturn(0);} ierr = PetscObjectSAWsViewOff((PetscObject)*viewer);CHKERRQ(ierr); if ((*viewer)->ops->destroy) { ierr = (*(*viewer)->ops->destroy)(*viewer);CHKERRQ(ierr); } ierr = PetscHeaderDestroy(viewer);CHKERRQ(ierr); PetscFunctionReturn(0); }