xref: /petsc/src/ksp/pc/impls/none/none.c (revision dba47a550923b04c7c4ebbb735eb62a1b3e4e9ae)
1*dba47a55SKris Buschelman #define PETSCKSP_DLL
2*dba47a55SKris Buschelman 
34b9ad928SBarry Smith /*
44b9ad928SBarry Smith     Identity preconditioner, simply copies vector x to y.
54b9ad928SBarry Smith */
64b9ad928SBarry Smith #include "src/ksp/pc/pcimpl.h"          /*I "petscpc.h" I*/
74b9ad928SBarry Smith 
84b9ad928SBarry Smith #undef __FUNCT__
94b9ad928SBarry Smith #define __FUNCT__ "PCApply_None"
10dfbe8321SBarry Smith PetscErrorCode PCApply_None(PC pc,Vec x,Vec y)
114b9ad928SBarry Smith {
12dfbe8321SBarry Smith   PetscErrorCode ierr;
134b9ad928SBarry Smith 
144b9ad928SBarry Smith   PetscFunctionBegin;
154b9ad928SBarry Smith   ierr = VecCopy(x,y);CHKERRQ(ierr);
164b9ad928SBarry Smith   PetscFunctionReturn(0);
174b9ad928SBarry Smith }
184b9ad928SBarry Smith 
194b9ad928SBarry Smith /*MC
204b9ad928SBarry Smith      PCNONE - This is used when you wish to employ a nonpreconditioned
214b9ad928SBarry Smith              Krylov method.
224b9ad928SBarry Smith 
234b9ad928SBarry Smith    Level: beginner
244b9ad928SBarry Smith 
254b9ad928SBarry Smith   Concepts: preconditioners
264b9ad928SBarry Smith 
274b9ad928SBarry Smith   Notes: This is implemented by a VecCopy()
284b9ad928SBarry Smith 
294b9ad928SBarry Smith .seealso:  PCCreate(), PCSetType(), PCType (for list of available types), PC
304b9ad928SBarry Smith M*/
314b9ad928SBarry Smith 
324b9ad928SBarry Smith EXTERN_C_BEGIN
334b9ad928SBarry Smith #undef __FUNCT__
344b9ad928SBarry Smith #define __FUNCT__ "PCCreate_None"
35*dba47a55SKris Buschelman PetscErrorCode PETSCKSP_DLLEXPORT PCCreate_None(PC pc)
364b9ad928SBarry Smith {
374b9ad928SBarry Smith   PetscFunctionBegin;
384b9ad928SBarry Smith   pc->ops->apply               = PCApply_None;
394b9ad928SBarry Smith   pc->ops->applytranspose      = PCApply_None;
404b9ad928SBarry Smith   pc->ops->destroy             = 0;
414b9ad928SBarry Smith   pc->ops->setup               = 0;
424b9ad928SBarry Smith   pc->ops->view                = 0;
434b9ad928SBarry Smith   pc->ops->applysymmetricleft  = PCApply_None;
444b9ad928SBarry Smith   pc->ops->applysymmetricright = PCApply_None;
454b9ad928SBarry Smith 
464b9ad928SBarry Smith   pc->data                     = 0;
474b9ad928SBarry Smith   PetscFunctionReturn(0);
484b9ad928SBarry Smith }
494b9ad928SBarry Smith EXTERN_C_END
50