PetscErrorCode PetscViewerRestoreSingleton_Draw(PetscViewer viewer,PetscViewer *sviewer) { PetscErrorCode ierr; PetscMPIInt rank; PetscInt i; PetscViewer_Draw *vdraw = (PetscViewer_Draw *)viewer->data,*vsdraw; PetscFunctionBegin; if (!vdraw->singleton_made) { SETERRQ(PETSC_ERR_ORDER,"Trying to restore a singleton that was not gotten"); } ierr = MPI_Comm_rank(((PetscObject)viewer)->comm,&rank);CHKERRQ(ierr); if (!rank) { vsdraw = (PetscViewer_Draw *)(*sviewer)->data; for (i=0; i<vdraw->draw_max; i++) { if (vdraw->draw[i] && vsdraw->draw[i]) { ierr = PetscDrawRestoreSingleton(vdraw->draw[i],&vsdraw->draw[i]);CHKERRQ(ierr); } } ierr = PetscFree3(vsdraw->draw,vsdraw->drawlg,vsdraw->drawaxis);CHKERRQ(ierr); ierr = PetscFree((*sviewer)->data);CHKERRQ(ierr); ierr = PetscHeaderDestroy(*sviewer);CHKERRQ(ierr); } vdraw->singleton_made = PETSC_FALSE; PetscFunctionReturn(0); }
/*@ PetscDrawLGDestroy - Frees all space taken up by line graph data structure. Collective over PetscDrawLG Input Parameter: . lg - the line graph context Level: intermediate .seealso: PetscDrawLGCreate() @*/ PetscErrorCode PetscDrawLGDestroy(PetscDrawLG *lg) { PetscErrorCode ierr; PetscInt i; PetscFunctionBegin; if (!*lg) PetscFunctionReturn(0); if (((PetscObject)(*lg))->classid != PETSC_DRAW_CLASSID) { PetscValidHeaderSpecific(*lg,PETSC_DRAWLG_CLASSID,1); } if (--((PetscObject)(*lg))->refct > 0) {*lg = 0; PetscFunctionReturn(0);} if (((PetscObject)(*lg))->classid == PETSC_DRAW_CLASSID) { ierr = PetscObjectDestroy((PetscObject*)lg);CHKERRQ(ierr); PetscFunctionReturn(0); } if ((*lg)->legend) { for (i=0; i<(*lg)->dim; i++) { ierr = PetscFree((*lg)->legend[i]);CHKERRQ(ierr); } ierr = PetscFree((*lg)->legend);CHKERRQ(ierr); } ierr = PetscFree((*lg)->colors);CHKERRQ(ierr); ierr = PetscDrawAxisDestroy(&(*lg)->axis);CHKERRQ(ierr); ierr = PetscFree2((*lg)->x,(*lg)->y);CHKERRQ(ierr); ierr = PetscHeaderDestroy(lg);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ 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); }
/*@ MatFDColoringDestroy - Destroys a matrix coloring context that was created via MatFDColoringCreate(). Collective on MatFDColoring Input Parameter: . c - coloring context Level: intermediate .seealso: MatFDColoringCreate() @*/ PetscErrorCode MatFDColoringDestroy(MatFDColoring *c) { PetscErrorCode ierr; PetscInt i; PetscFunctionBegin; if (!*c) PetscFunctionReturn(0); if (--((PetscObject)(*c))->refct > 0) {*c = 0; PetscFunctionReturn(0);} for (i=0; i<(*c)->ncolors; i++) { ierr = PetscFree((*c)->columns[i]);CHKERRQ(ierr); ierr = PetscFree((*c)->rows[i]);CHKERRQ(ierr); ierr = PetscFree((*c)->columnsforrow[i]);CHKERRQ(ierr); if ((*c)->vscaleforrow) {ierr = PetscFree((*c)->vscaleforrow[i]);CHKERRQ(ierr);} } ierr = PetscFree((*c)->ncolumns);CHKERRQ(ierr); ierr = PetscFree((*c)->columns);CHKERRQ(ierr); ierr = PetscFree((*c)->nrows);CHKERRQ(ierr); ierr = PetscFree((*c)->rows);CHKERRQ(ierr); ierr = PetscFree((*c)->columnsforrow);CHKERRQ(ierr); ierr = PetscFree((*c)->vscaleforrow);CHKERRQ(ierr); ierr = VecDestroy(&(*c)->vscale);CHKERRQ(ierr); ierr = VecDestroy(&(*c)->w1);CHKERRQ(ierr); ierr = VecDestroy(&(*c)->w2);CHKERRQ(ierr); ierr = VecDestroy(&(*c)->w3);CHKERRQ(ierr); ierr = PetscHeaderDestroy(c);CHKERRQ(ierr); PetscFunctionReturn(0); }
/* ----------------------------------------------------------------------------------------*/ static PetscErrorCode MatDestroy_MFFD(Mat mat) { PetscErrorCode ierr; MatMFFD ctx = (MatMFFD)mat->data; PetscFunctionBegin; ierr = VecDestroy(&ctx->w);CHKERRQ(ierr); ierr = VecDestroy(&ctx->drscale);CHKERRQ(ierr); ierr = VecDestroy(&ctx->dlscale);CHKERRQ(ierr); ierr = VecDestroy(&ctx->dshift);CHKERRQ(ierr); ierr = VecDestroy(&ctx->dshiftw);CHKERRQ(ierr); ierr = VecDestroy(&ctx->current_u);CHKERRQ(ierr); if (ctx->current_f_allocated) { ierr = VecDestroy(&ctx->current_f);CHKERRQ(ierr); } if (ctx->ops->destroy) {ierr = (*ctx->ops->destroy)(ctx);CHKERRQ(ierr);} ierr = PetscHeaderDestroy(&ctx);CHKERRQ(ierr); mat->data = 0; ierr = PetscObjectComposeFunction((PetscObject)mat,"MatMFFDSetBase_C",NULL);CHKERRQ(ierr); ierr = PetscObjectComposeFunction((PetscObject)mat,"MatMFFDSetFunctioniBase_C",NULL);CHKERRQ(ierr); ierr = PetscObjectComposeFunction((PetscObject)mat,"MatMFFDSetFunctioni_C",NULL);CHKERRQ(ierr); ierr = PetscObjectComposeFunction((PetscObject)mat,"MatMFFDSetFunction_C",NULL);CHKERRQ(ierr); ierr = PetscObjectComposeFunction((PetscObject)mat,"MatMFFDSetFunctionError_C",NULL);CHKERRQ(ierr); ierr = PetscObjectComposeFunction((PetscObject)mat,"MatMFFDSetCheckh_C",NULL);CHKERRQ(ierr); ierr = PetscObjectComposeFunction((PetscObject)mat,"MatMFFDSetPeriod_C",NULL);CHKERRQ(ierr); ierr = PetscObjectComposeFunction((PetscObject)mat,"MatMFFDResetHHistory_C",NULL);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ MatFDColoringDestroy - Destroys a matrix coloring context that was created via MatFDColoringCreate(). Collective on MatFDColoring Input Parameter: . c - coloring context Level: intermediate .seealso: MatFDColoringCreate() @*/ PetscErrorCode MatFDColoringDestroy(MatFDColoring *c) { PetscErrorCode ierr; PetscInt i; MatFDColoring color = *c; PetscFunctionBegin; if (!*c) PetscFunctionReturn(0); if (--((PetscObject)color)->refct > 0) {*c = 0; PetscFunctionReturn(0);} for (i=0; i<color->ncolors; i++) { ierr = PetscFree(color->columns[i]);CHKERRQ(ierr); } ierr = PetscFree(color->ncolumns);CHKERRQ(ierr); ierr = PetscFree(color->columns);CHKERRQ(ierr); ierr = PetscFree(color->nrows);CHKERRQ(ierr); if (color->htype[0] == 'w') { ierr = PetscFree(color->matentry2);CHKERRQ(ierr); } else { ierr = PetscFree(color->matentry);CHKERRQ(ierr); } ierr = PetscFree(color->dy);CHKERRQ(ierr); if (color->vscale) {ierr = VecDestroy(&color->vscale);CHKERRQ(ierr);} ierr = VecDestroy(&color->w1);CHKERRQ(ierr); ierr = VecDestroy(&color->w2);CHKERRQ(ierr); ierr = VecDestroy(&color->w3);CHKERRQ(ierr); ierr = PetscHeaderDestroy(c);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ ISDestroy - Destroys an index set. Collective on IS Input Parameters: . is - the index set Level: beginner .seealso: ISCreateGeneral(), ISCreateStride(), ISCreateBlocked() @*/ PetscErrorCode ISDestroy(IS *is) { PetscErrorCode ierr; PetscFunctionBegin; if (!*is) PetscFunctionReturn(0); PetscValidHeaderSpecific((*is),IS_CLASSID,1); if (--((PetscObject)(*is))->refct > 0) { *is = 0; PetscFunctionReturn(0); } if ((*is)->complement) { PetscInt refcnt; ierr = PetscObjectGetReference((PetscObject)((*is)->complement), &refcnt); CHKERRQ(ierr); if (refcnt > 1) SETERRQ(PETSC_COMM_SELF, PETSC_ERR_ARG_WRONGSTATE, "Nonlocal IS has not been restored"); ierr = ISDestroy(&(*is)->complement); CHKERRQ(ierr); } if ((*is)->ops->destroy) { ierr = (*(*is)->ops->destroy)(*is); CHKERRQ(ierr); } ierr = PetscLayoutDestroy(&(*is)->map); CHKERRQ(ierr); /* Destroy local representations of offproc data. */ ierr = PetscFree((*is)->total); CHKERRQ(ierr); ierr = PetscFree((*is)->nonlocal); CHKERRQ(ierr); ierr = PetscHeaderDestroy(is); CHKERRQ(ierr); PetscFunctionReturn(0); }
PetscErrorCode MatHeaderMerge(Mat A,Mat C) { PetscErrorCode ierr; PetscInt refct; PetscOps *Abops; MatOps Aops; char *mtype,*mname; void *spptr; PetscFunctionBegin; /* save the parts of A we need */ Abops = ((PetscObject)A)->bops; Aops = A->ops; refct = ((PetscObject)A)->refct; mtype = ((PetscObject)A)->type_name; mname = ((PetscObject)A)->name; spptr = A->spptr; /* zero these so the destroy below does not free them */ ((PetscObject)A)->type_name = 0; ((PetscObject)A)->name = 0; /* free all the interior data structures from mat */ ierr = (*A->ops->destroy)(A); CHKERRQ(ierr); ierr = PetscFree(C->spptr); CHKERRQ(ierr); ierr = PetscLayoutDestroy(&A->rmap); CHKERRQ(ierr); ierr = PetscLayoutDestroy(&A->cmap); CHKERRQ(ierr); ierr = PetscFunctionListDestroy(&((PetscObject)A)->qlist); CHKERRQ(ierr); ierr = PetscObjectListDestroy(&((PetscObject)A)->olist); CHKERRQ(ierr); /* copy C over to A */ ierr = PetscMemcpy(A,C,sizeof(struct _p_Mat)); CHKERRQ(ierr); /* return the parts of A we saved */ ((PetscObject)A)->bops = Abops; A->ops = Aops; ((PetscObject)A)->refct = refct; ((PetscObject)A)->type_name = mtype; ((PetscObject)A)->name = mname; A->spptr = spptr; /* since these two are copied into A we do not want them destroyed in C */ ((PetscObject)C)->qlist = 0; ((PetscObject)C)->olist = 0; ierr = PetscHeaderDestroy(&C); CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@C PetscContainerDestroy - Destroys a PETSc container object. Collective on PetscContainer Input Parameter: . obj - an object that was created with PetscContainerCreate() Level: advanced .seealso: PetscContainerCreate() @*/ PetscErrorCode PETSC_DLLEXPORT PetscContainerDestroy(PetscContainer obj) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(obj,PETSC_CONTAINER_COOKIE,1); if (--((PetscObject)obj)->refct > 0) PetscFunctionReturn(0); if (obj->userdestroy) (*obj->userdestroy)(obj->ptr); ierr = PetscHeaderDestroy(obj);CHKERRQ(ierr); PetscFunctionReturn(0); }
PetscErrorCode PETSCTS_DLLEXPORT TSGLAdaptDestroy(TSGLAdapt adapt) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(adapt,TSGLADAPT_COOKIE,1); if (--((PetscObject)adapt)->refct > 0) PetscFunctionReturn(0); if (adapt->ops->destroy) {ierr = (*adapt->ops->destroy)(adapt);CHKERRQ(ierr);} ierr = PetscHeaderDestroy(adapt);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ PetscMatlabEngineDestroy - Destroys a vector. Collective on PetscMatlabEngine Input Parameters: . e - the engine Level: advanced .seealso: PetscMatlabEnginCreate(), PetscMatlabEnginePut(), PetscMatlabEngineGet(), PetscMatlabEngineEvaluate(), PetscMatlabEngineGetOutput(), PetscMatlabEnginePrintOutput(), PETSC_MATLAB_ENGINE_(), PetscMatlabEnginePutArray(), PetscMatlabEngineGetArray(), PetscMatlabEngine @*/ PetscErrorCode PetscMatlabEngineDestroy(PetscMatlabEngine *v) { PetscErrorCode ierr; PetscFunctionBegin; if (!*v) PetscFunctionReturn(0); PetscValidHeaderSpecific(*v,MATLABENGINE_CLASSID,1); if (--((PetscObject)(*v))->refct > 0) PetscFunctionReturn(0); ierr = PetscHeaderDestroy(v);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ ISLocalToGlobalMappingDestroy - Destroys a mapping between a local (0 to n) ordering and a global parallel ordering. Note Collective Input Parameters: . mapping - mapping data structure Level: advanced .seealso: ISLocalToGlobalMappingCreate() @*/ PetscErrorCode PETSCVEC_DLLEXPORT ISLocalToGlobalMappingDestroy(ISLocalToGlobalMapping mapping) { PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(mapping,IS_LTOGM_COOKIE,1); if (--((PetscObject)mapping)->refct > 0) PetscFunctionReturn(0); ierr = PetscFree(mapping->indices);CHKERRQ(ierr); ierr = PetscFree(mapping->globals);CHKERRQ(ierr); ierr = PetscHeaderDestroy(mapping);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ PetscRandomDestroy - Destroys a context that has been formed by PetscRandomCreate(). Collective on PetscRandom Intput Parameter: . r - the random number generator context Level: intermediate .seealso: PetscRandomGetValue(), PetscRandomCreate(), VecSetRandom() @*/ PetscErrorCode PetscRandomDestroy(PetscRandom *r) { PetscErrorCode ierr; PetscFunctionBegin; if (!*r) PetscFunctionReturn(0); PetscValidHeaderSpecific(*r,PETSC_RANDOM_CLASSID,1); if (--((PetscObject)(*r))->refct > 0) {*r = 0; PetscFunctionReturn(0);} ierr = PetscHeaderDestroy(r);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@C RGDestroy - Destroys RG context that was created with RGCreate(). Collective on RG Input Parameter: . rg - the region context Level: beginner .seealso: RGCreate() @*/ PetscErrorCode RGDestroy(RG *rg) { PetscErrorCode ierr; PetscFunctionBegin; if (!*rg) PetscFunctionReturn(0); PetscValidHeaderSpecific(*rg,RG_CLASSID,1); if (--((PetscObject)(*rg))->refct > 0) { *rg = 0; PetscFunctionReturn(0); } if ((*rg)->ops->destroy) { ierr = (*(*rg)->ops->destroy)(*rg);CHKERRQ(ierr); } ierr = PetscHeaderDestroy(rg);CHKERRQ(ierr); PetscFunctionReturn(0); }
PetscErrorCode TSGLLEAdaptDestroy(TSGLLEAdapt *adapt) { PetscErrorCode ierr; PetscFunctionBegin; if (!*adapt) PetscFunctionReturn(0); PetscValidHeaderSpecific(*adapt,TSGLLEADAPT_CLASSID,1); if (--((PetscObject)(*adapt))->refct > 0) {*adapt = 0; PetscFunctionReturn(0);} if ((*adapt)->ops->destroy) {ierr = (*(*adapt)->ops->destroy)(*adapt);CHKERRQ(ierr);} ierr = PetscHeaderDestroy(adapt);CHKERRQ(ierr); PetscFunctionReturn(0); }
static PetscErrorCode DMKSPDestroy(DMKSP *kdm) { PetscErrorCode ierr; PetscFunctionBegin; if (!*kdm) PetscFunctionReturn(0); PetscValidHeaderSpecific((*kdm),DMKSP_CLASSID,1); if (--((PetscObject)(*kdm))->refct > 0) {*kdm = 0; PetscFunctionReturn(0);} if ((*kdm)->ops->destroy) {ierr = ((*kdm)->ops->destroy)(kdm);CHKERRQ(ierr);} ierr = PetscHeaderDestroy(kdm);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@C PetscContainerDestroy - Destroys a PETSc container object. Collective on PetscContainer Input Parameter: . obj - an object that was created with PetscContainerCreate() Level: advanced .seealso: PetscContainerCreate(), PetscContainerSetUserDestroy() @*/ PetscErrorCode PetscContainerDestroy(PetscContainer *obj) { PetscErrorCode ierr; PetscFunctionBegin; if (!*obj) PetscFunctionReturn(0); PetscValidHeaderSpecific(*obj,PETSC_CONTAINER_CLASSID,1); if (--((PetscObject)(*obj))->refct > 0) {*obj = 0; PetscFunctionReturn(0);} if ((*obj)->userdestroy) { ierr = (*(*obj)->userdestroy)((*obj)->ptr);CHKERRQ(ierr); } ierr = PetscHeaderDestroy(obj);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ MatColoringDestroy - Destroys the matrix coloring context Collective on MatColoring Input Parameter: . mc - the MatColoring context Level: beginner .keywords: Coloring, destroy .seealso: MatColoringCreate(), MatColoringApply() @*/ PetscErrorCode MatColoringDestroy(MatColoring *mc) { PetscErrorCode ierr; PetscFunctionBegin; if (--((PetscObject)(*mc))->refct > 0) {*mc = 0; PetscFunctionReturn(0);} ierr = MatDestroy(&(*mc)->mat);CHKERRQ(ierr); if ((*mc)->ops->destroy) {ierr = (*((*mc)->ops->destroy))(*mc);CHKERRQ(ierr);} if ((*mc)->user_weights) {ierr = PetscFree((*mc)->user_weights);CHKERRQ(ierr);} if ((*mc)->user_lperm) {ierr = PetscFree((*mc)->user_lperm);CHKERRQ(ierr);} ierr = PetscHeaderDestroy(mc);CHKERRQ(ierr); PetscFunctionReturn(0); }
dErr dFSRotationDestroy(dFSRotation *rot) { dErr err; dFunctionBegin; if (!*rot) dFunctionReturn(0); dValidHeader(*rot,dFSROT_CLASSID,1); err = ISDestroy(&(*rot)->is);dCHK(err); err = VecDestroy(&(*rot)->strong);dCHK(err); err = dFree2((*rot)->rmat,(*rot)->nstrong);dCHK(err); err = PetscHeaderDestroy(rot);dCHK(err); dFunctionReturn(0); }
PetscErrorCode PetscViewerRestoreSingleton_Binary(PetscViewer viewer,PetscViewer *outviewer) { PetscErrorCode ierr; PetscErrorCode rank; PetscFunctionBegin; ierr = MPI_Comm_rank(PetscObjectComm((PetscObject)viewer),&rank);CHKERRQ(ierr); if (!rank) { ierr = PetscFree((*outviewer)->data);CHKERRQ(ierr); ierr = PetscHeaderDestroy(outviewer);CHKERRQ(ierr); } PetscFunctionReturn(0); }
/*@ PetscSFDestroy - destroy star forest Collective Input Arguments: . sf - address of star forest Level: intermediate .seealso: PetscSFCreate(), PetscSFReset() @*/ PetscErrorCode PetscSFDestroy(PetscSF *sf) { PetscErrorCode ierr; PetscFunctionBegin; if (!*sf) PetscFunctionReturn(0); PetscValidHeaderSpecific((*sf),PETSCSF_CLASSID,1); if (--((PetscObject)(*sf))->refct > 0) {*sf = 0; PetscFunctionReturn(0);} ierr = PetscSFReset(*sf);CHKERRQ(ierr); if ((*sf)->ops->Destroy) {ierr = (*(*sf)->ops->Destroy)(*sf);CHKERRQ(ierr);} ierr = PetscHeaderDestroy(sf);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ TSTrajectoryDestroy - Destroys a trajectory context Collective on TSTrajectory Input Parameter: . tj - the TSTrajectory context obtained from TSTrajectoryCreate() Level: advanced .keywords: TS, trajectory, timestep, destroy .seealso: TSTrajectoryCreate(), TSTrajectorySetUp() @*/ PetscErrorCode TSTrajectoryDestroy(TSTrajectory *tj) { PetscErrorCode ierr; PetscFunctionBegin; if (!*tj) PetscFunctionReturn(0); PetscValidHeaderSpecific((*tj),TSTRAJECTORY_CLASSID,1); if (--((PetscObject)(*tj))->refct > 0) {*tj = 0; PetscFunctionReturn(0);} if ((*tj)->ops->destroy) {ierr = (*(*tj)->ops->destroy)((*tj));CHKERRQ(ierr);} ierr = PetscViewerDestroy(&(*tj)->monitor);CHKERRQ(ierr); ierr = PetscHeaderDestroy(tj);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ PetscDrawAxisDestroy - Frees the space used by an axis structure. Collective over PetscDrawAxis Input Parameters: . axis - the axis context Level: advanced @*/ PetscErrorCode PetscDrawAxisDestroy(PetscDrawAxis *axis) { PetscErrorCode ierr; PetscFunctionBegin; if (!*axis) PetscFunctionReturn(0); if (--((PetscObject)(*axis))->refct > 0) PetscFunctionReturn(0); ierr = PetscFree((*axis)->toplabel);CHKERRQ(ierr); ierr = PetscFree((*axis)->xlabel);CHKERRQ(ierr); ierr = PetscFree((*axis)->ylabel);CHKERRQ(ierr); ierr = PetscHeaderDestroy(axis);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ MatNullSpaceDestroy - Destroys a data structure used to project vectors out of null spaces. Collective on MatNullSpace Input Parameter: . sp - the null space context to be destroyed Level: advanced .keywords: PC, null space, destroy .seealso: MatNullSpaceCreate(), MatNullSpaceRemove(), MatNullSpaceSetFunction() @*/ PetscErrorCode MatNullSpaceDestroy(MatNullSpace *sp) { PetscErrorCode ierr; PetscFunctionBegin; if (!*sp) PetscFunctionReturn(0); PetscValidHeaderSpecific((*sp),MAT_NULLSPACE_CLASSID,1); if (--((PetscObject)(*sp))->refct > 0) {*sp = 0; PetscFunctionReturn(0);} ierr = VecDestroyVecs((*sp)->n,&(*sp)->vecs);CHKERRQ(ierr); ierr = PetscFree((*sp)->alpha);CHKERRQ(ierr); ierr = PetscHeaderDestroy(sp);CHKERRQ(ierr); PetscFunctionReturn(0); }
static PetscErrorCode PetscP4estFinalize(void) { PetscErrorCode ierr; PetscFunctionBegin; if (PetscBeganSc) { /* We do not want libsc to abort on a mismatched allocation and prevent further Petsc unwinding */ PetscStackCallP4est(sc_package_set_abort_alloc_mismatch,(sc_package_id,0)); PetscStackCallP4est(sc_package_set_abort_alloc_mismatch,(p4est_package_id,0)); PetscStackCallP4est(sc_package_set_abort_alloc_mismatch,(-1,0)); PetscStackCallP4est(sc_finalize,()); } ierr = PetscHeaderDestroy(&P4estLoggingObject);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ PetscConvEstDestroy - Destroys a PetscConvEst object Collective on PetscConvEst Input Parameter: . ce - The PetscConvEst object Level: beginner .keywords: PetscConvEst, convergence, destroy .seealso: PetscConvEstCreate(), PetscConvEstGetConvRate() @*/ PetscErrorCode PetscConvEstDestroy(PetscConvEst *ce) { PetscErrorCode ierr; PetscFunctionBegin; if (!*ce) PetscFunctionReturn(0); PetscValidHeaderSpecific((*ce),PETSC_OBJECT_CLASSID,1); if (--((PetscObject)(*ce))->refct > 0) { *ce = NULL; PetscFunctionReturn(0); } ierr = PetscFree3((*ce)->initGuess, (*ce)->exactSol, (*ce)->ctxs);CHKERRQ(ierr); ierr = PetscFree((*ce)->errors);CHKERRQ(ierr); ierr = PetscHeaderDestroy(ce);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@C SlicedDestroy - Destroys a vector slice. Collective on Sliced Input Parameter: . slice - the slice object Level: advanced .seealso SlicedCreate(), SlicedCreateGlobalVector(), SlicedGetGlobalIndices() @*/ PetscErrorCode PETSCDM_DLLEXPORT SlicedDestroy(Sliced slice) { PetscErrorCode ierr; PetscTruth done; PetscFunctionBegin; ierr = DMDestroy_Private((DM)slice,&done);CHKERRQ(ierr); if (!done) PetscFunctionReturn(0); if (slice->globalvector) {ierr = VecDestroy(slice->globalvector);CHKERRQ(ierr);} ierr = PetscFree(slice->ghosts);CHKERRQ(ierr); if (slice->dfill) {ierr = PetscFree3(slice->dfill,slice->dfill->i,slice->dfill->j);CHKERRQ(ierr);} if (slice->ofill) {ierr = PetscFree3(slice->ofill,slice->ofill->i,slice->ofill->j);CHKERRQ(ierr);} ierr = PetscHeaderDestroy(slice);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@C PetscDrawBarDestroy - Frees all space taken up by bar graph data structure. Collective over PetscDrawBar Input Parameter: . bar - The bar graph context Level: intermediate .seealso: PetscDrawBarCreate() @*/ PetscErrorCode PetscDrawBarDestroy(PetscDrawBar *bar) { PetscErrorCode ierr; PetscFunctionBegin; if (!*bar) PetscFunctionReturn(0); PetscValidHeaderSpecific(*bar,PETSC_DRAWBAR_CLASSID,1); if (--((PetscObject)(*bar))->refct > 0) PetscFunctionReturn(0); ierr = PetscFree((*bar)->values);CHKERRQ(ierr); ierr = PetscStrArrayDestroy(&(*bar)->labels);CHKERRQ(ierr); ierr = PetscDrawAxisDestroy(&(*bar)->axis);CHKERRQ(ierr); ierr = PetscDrawDestroy(&(*bar)->win);CHKERRQ(ierr); ierr = PetscHeaderDestroy(bar);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ TaoLineSearchDestroy - Destroys the TAO context that was created with TaoLineSearchCreate() Collective on TaoLineSearch Input Parameter . ls - the TaoLineSearch context Level: beginner .seealse: TaoLineSearchCreate(), TaoLineSearchSolve() @*/ PetscErrorCode TaoLineSearchDestroy(TaoLineSearch *ls) { PetscErrorCode ierr; PetscFunctionBegin; if (!*ls) PetscFunctionReturn(0); PetscValidHeaderSpecific(*ls,TAOLINESEARCH_CLASSID,1); if (--((PetscObject)*ls)->refct > 0) {*ls=0; PetscFunctionReturn(0);} ierr = VecDestroy(&(*ls)->stepdirection);CHKERRQ(ierr); ierr = VecDestroy(&(*ls)->start_x);CHKERRQ(ierr); if ((*ls)->ops->destroy) { ierr = (*(*ls)->ops->destroy)(*ls);CHKERRQ(ierr); } ierr = PetscHeaderDestroy(ls);CHKERRQ(ierr); PetscFunctionReturn(0); }
static PetscErrorCode PetscDrawRestoreSingleton_X(PetscDraw draw,PetscDraw *sdraw) { PetscErrorCode ierr; PetscDraw_X *sXwin = (PetscDraw_X*)(*sdraw)->data; PetscFunctionBegin; XFreeGC(sXwin->disp,sXwin->gc.set); XCloseDisplay(sXwin->disp); ierr = PetscDrawDestroy(&(*sdraw)->popup);CHKERRQ(ierr); ierr = PetscFree((*sdraw)->title);CHKERRQ(ierr); ierr = PetscFree((*sdraw)->display);CHKERRQ(ierr); ierr = PetscFree(sXwin->font);CHKERRQ(ierr); ierr = PetscFree(sXwin);CHKERRQ(ierr); ierr = PetscHeaderDestroy(sdraw);CHKERRQ(ierr); PetscFunctionReturn(0); }