diff --git a/MathLib/LinAlg/PETSc/PETScLinearSolver.cpp b/MathLib/LinAlg/PETSc/PETScLinearSolver.cpp index 420551655a9b366cfe162d984ae8439505aa9cd4..07605bad6a2fc3fd455b950c9de609ddf1a28650 100644 --- a/MathLib/LinAlg/PETSc/PETScLinearSolver.cpp +++ b/MathLib/LinAlg/PETSc/PETScLinearSolver.cpp @@ -111,7 +111,21 @@ bool PETScLinearSolver::solve(PETScMatrix& A, PETScVector& b, PETScVector& x) PetscInt its; KSPGetIterationNumber(_solver, &its); - PetscPrintf(PETSC_COMM_WORLD, "\nconverged in %d iterations.", its); + PetscPrintf(PETSC_COMM_WORLD, "\nconverged in %d iterations", its); + switch (reason) + { + case KSP_CONVERGED_RTOL: + PetscPrintf(PETSC_COMM_WORLD, + " (relative convergence criterion fulfilled)."); + break; + case KSP_CONVERGED_ATOL: + PetscPrintf(PETSC_COMM_WORLD, + " (absolute convergence criterion fulfilled)."); + break; + default: + PetscPrintf(PETSC_COMM_WORLD, "."); + } + PetscPrintf(PETSC_COMM_WORLD, "\n================================================\n"); }