Actual source code: none.c

      1: #define PETSCKSP_DLL

      3: /*
      4:     Identity preconditioner, simply copies vector x to y.
      5: */
     6:  #include src/ksp/pc/pcimpl.h

     10: PetscErrorCode PCApply_None(PC pc,Vec x,Vec y)
     11: {

     15:   VecCopy(x,y);
     16:   return(0);
     17: }

     19: /*MC
     20:      PCNONE - This is used when you wish to employ a nonpreconditioned
     21:              Krylov method.

     23:    Level: beginner

     25:   Concepts: preconditioners

     27:   Notes: This is implemented by a VecCopy()

     29: .seealso:  PCCreate(), PCSetType(), PCType (for list of available types), PC
     30: M*/

     35: PetscErrorCode PETSCKSP_DLLEXPORT PCCreate_None(PC pc)
     36: {
     38:   pc->ops->apply               = PCApply_None;
     39:   pc->ops->applytranspose      = PCApply_None;
     40:   pc->ops->destroy             = 0;
     41:   pc->ops->setup               = 0;
     42:   pc->ops->view                = 0;
     43:   pc->ops->applysymmetricleft  = PCApply_None;
     44:   pc->ops->applysymmetricright = PCApply_None;

     46:   pc->data                     = 0;
     47:   return(0);
     48: }