petsc-3.12.5 2020-03-29
Report Typos and Errors

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" 
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, PetscInt 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 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

KSPConvergedDefault(), KSPGetConvergenceContext(), KSPSetTolerances(), KSP, 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