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");
     }