KSPSetComputeOperators#

set routine to compute the linear operators

Synopsis#

#include "petscksp.h" 
#include "petscmat.h" 
PetscErrorCode KSPSetComputeOperators(KSP ksp, PetscErrorCode (*func)(KSP, Mat, Mat, void *), void *ctx)

Logically Collective

Input Parameters#

  • ksp - the KSP context

  • func - function to compute the operators

  • ctx - optional context

Calling sequence of func#

func(KSP ksp,Mat A,Mat B,void *ctx)
  • ksp - the KSP context

  • A - the linear operator

  • B - preconditioning matrix

  • ctx - optional user-provided context

Notes#

The user provided func() will be called automatically at the very next call to KSPSolve(). It will NOT be called at future KSPSolve() calls unless either KSPSetComputeOperators() or KSPSetOperators() is called before that KSPSolve() is called. This allows the same system to be solved several times with different right hand side functions but is a confusing API since one might expect it to be called for each KSPSolve()

To reuse the same preconditioner for the next KSPSolve() and not compute a new one based on the most recently computed matrix call KSPSetReusePreconditioner()

Developer Note#

Perhaps this routine and KSPSetComputeRHS() could be combined into a new API that makes clear when new matrices are computing without requiring call this routine to indicate when the new matrix should be computed.

See Also#

KSP: Linear System Solvers, KSP, KSPSetOperators(), KSPSetComputeRHS(), DMKSPSetComputeOperators(), KSPSetComputeInitialGuess()

Level#

beginner

Location#

src/ksp/ksp/interface/itfunc.c

Examples#

src/ksp/ksp/tutorials/ex22f.F90.html
src/ksp/ksp/tutorials/ex25.c.html
src/ksp/ksp/tutorials/ex28.c.html
src/ksp/ksp/tutorials/ex29.c.html
src/ksp/ksp/tutorials/ex32.c.html
src/ksp/ksp/tutorials/ex34.c.html
src/ksp/ksp/tutorials/ex35.cxx.html
src/ksp/ksp/tutorials/ex36.cxx.html
src/ksp/ksp/tutorials/ex45.c.html
src/ksp/ksp/tutorials/ex45f.F90.html
src/ksp/ksp/tutorials/ex50.c.html


Edit on GitLab

Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages