petsc-master 2019-06-22
Report Typos and Errors


Gets the function to be used to determine convergence. Removes the current test without calling destroy on the test context


#include "petscksp.h" 
PetscErrorCode  KSPGetAndClearConvergenceTest(KSP ksp,PetscErrorCode (**converge)(KSP,PetscInt,PetscReal,KSPConvergedReason*,void*),void **cctx,PetscErrorCode (**destroy)(void*))
Logically Collective on ksp

Input Parameter

ksp -iterative context obtained from KSPCreate()

Output Parameter

converge - pointer to convergence test function
cctx - context for private data for the convergence routine
destroy - a routine for destroying the context

Calling sequence of converge

    converge (KSP ksp, int it, PetscReal rnorm, KSPConvergedReason *reason,void *mctx)

ksp - iterative context obtained from KSPCreate()
it - iteration number
rnorm - (estimated) 2-norm of (preconditioned) residual
reason - the reason why it has converged or diverged
cctx - optional convergence context, as set by KSPSetConvergenceTest()

Notes: This is intended to be used to allow transfering 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 transfered context would be invalid and trigger a crash on use

See Also

KSPConvergedDefault(), KSPGetConvergenceContext(), KSPSetTolerances(), KSP, KSPSetConvergenceTest(), KSPGetConvergenceTest()




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