Example #1
0
File: ml.c Project: Kun-Qu/petsc
PetscErrorCode PCDestroy_ML(PC pc)
{
  PetscErrorCode  ierr;
  PC_MG           *mg = (PC_MG*)pc->data;
  PC_ML           *pc_ml= (PC_ML*)mg->innerctx;

  PetscFunctionBegin;
  ierr = PCReset_ML(pc);CHKERRQ(ierr);
  ierr = PetscFree(pc_ml);CHKERRQ(ierr); 
  ierr = PCDestroy_MG(pc);CHKERRQ(ierr);
  PetscFunctionReturn(0);
}
Example #2
0
PetscErrorCode PCDestroy_Exotic(PC pc)
{
    PetscErrorCode ierr;
    PC_MG          *mg  = (PC_MG*)pc->data;
    PC_Exotic      *ctx = (PC_Exotic*) mg->innerctx;

    PetscFunctionBegin;
    ierr = MatDestroy(&ctx->P);
    CHKERRQ(ierr);
    ierr = KSPDestroy(&ctx->ksp);
    CHKERRQ(ierr);
    ierr = PetscFree(ctx);
    CHKERRQ(ierr);
    ierr = PCDestroy_MG(pc);
    CHKERRQ(ierr);
    PetscFunctionReturn(0);
}