KSPGetAndClearConvergenceTest#
Gets the function to be used to determine convergence. Removes the current test without calling destroy on the test context
Synopsis#
#include "petscksp.h"
#include "petscmat.h"
PetscErrorCode KSPGetAndClearConvergenceTest(KSP ksp, PetscErrorCode (**converge)(KSP ksp, PetscInt it, PetscReal rnorm, KSPConvergedReason *reason, void *ctx), void **ctx, PetscErrorCode (**destroy)(void *ctx))
Logically Collective
Input Parameter#
ksp - iterative solver obtained from
KSPCreate()
Output Parameters#
converge - pointer to convergence test function
ctx - context for private data for the convergence routine
destroy - a routine for destroying the context
Calling sequence of converge#
ksp - iterative solver obtained from
KSPCreate()it - iteration number
rnorm - (estimated) 2-norm of (preconditioned) residual
reason - the reason why it has converged or diverged
ctx - optional convergence context, as set by
KSPSetConvergenceTest()
Calling sequence of destroy#
ctx - the convergence test context
Note#
This is intended to be used to allow transferring the convergence test (and its context) to another testing object (for example another KSP)
and then calling KSPSetConvergenceTest() on this original KSP. If you just called KSPGetConvergenceTest() followed
by KSPSetConvergenceTest() the original context information
would be destroyed and hence the transferred context would be invalid and trigger a crash on use
See Also#
KSP: Linear System Solvers, KSP, KSPConvergedDefault(), KSPGetConvergenceContext(), KSPSetTolerances(), KSPSetConvergenceTest(), KSPGetConvergenceTest()
Level#
advanced
Location#
src/ksp/ksp/interface/itfunc.c
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages