To whom it may concern, I am writing to ask about using PETSc with a direct solver to solve a linear system where a single zero-value eigenvalue exists. Currently, I am working on developing a finite-element solver for a linearized incompressible MHD equation. The code is based on an open-source library called MFEM which has its own wrapper for PETSc and is used in my code. From analysis, I already know that the linear system (Ax=b) to be solved is a saddle point system. By using the flags "solver_pc_type svd" and "solver_pc_svd_monitor", I indeed observe it. Here is an example of an output: SVD: condition number 3.271390119581e+18, 1 of 66 singular values are (nearly) zero SVD: smallest singular values: 3.236925932523e-17 3.108788619412e-04 3.840514506502e-04 4.599292003910e-04 4.909419974671e-04 SVD: largest singular values : 4.007319935079e+00 4.027759008411e+00 4.817755760754e+00 4.176127583956e+01 1.058924751347e+02 However, What surprises me is that the numerical solutions are still relatively accurate by comparing to the exact ones (i.e. manufactured solutions) when I perform convergence tests even if I am using a direct solver (i.e. -solver_ksp_type preonly -solver_pc_type lu -solver_pc_factor_mat_solver_type mumps). My question is: Why the direct solver won't break down in this context? I understand that it won't be an issue for iterative solvers such as GMRES [1][2] but not really sure why it won't cause trouble in direct solvers. Any comments or suggestions are greatly appreciated. Best Regards, Jau-Uei Chen Reference: [1] Benzi, Michele, et al. “Numerical Solution of Saddle Point Problems.” Acta Numerica, vol. 14, May 2005, pp. 1–137. DOI.org (Crossref), https://doi.org/10.1017/S0962492904000212. [2] Elman, Howard C., et al. Finite Elements and Fast Iterative Solvers: With Applications in Incompressible Fluid Dynamics. Second edition, Oxford University Press, 2014.