Trying again.

    Normally, numIts would be one less than nEntries since the initial residual is computed (and stored in the history) before any iterations.

    Is this what you are seeing or are you seeing other values for the two?

    I've started a run of the PETSc test suite that compares the two values for inconsistencies for all tests to see if I can find any problems.

    Barry

    Also note the importance of the reset value in KSPSetResidualHistory() which means the values will not match when reset is PETSC_FALSE.

On Jan 10, 2024, at 7:09 PM, Kevin G. Wang <kevinw3@vt.edu> wrote:

Hello everyone!

I am writing a code that uses PETSc/KSP to solve linear systems. I just realized that after running "KSPSolve(...)", the number of iterations given by 

KSPGetIterationNumber(ksp, &numIts)

is *different* from the size of the residual history given by

KSPGetResidualHistory(ksp, NULL, &nEntries);

That is, "numIts" is not equal to "nEntries". Is this expected, or a bug in my code? (I thought they should be the same...)

I have tried several pairs of solvers and preconditioners (e.g., fgmres & bjacobi, ibcgs & bjacobi). This issue happens to all of them.

Thanks!
Kevin

--
Kevin G. Wang, Ph.D.
Associate Professor
Kevin T. Crofton Department of Aerospace and Ocean Engineering
Virginia Tech
1600 Innovation Dr., VTSS Rm 224H, Blacksburg, VA 24061
Office: (540) 231-7547  |  Mobile: (650) 862-2663