I have come across a curious issue when attempting to find the nullspace of a sparse structurally symmetric matrix A with PARDISO, i.e. solving the problem A x = b where b is the zero vector. When I set the RHS (the vector b) to be identically zero, I get only the trivial solution (x = the zero vector) with a residual of nan. However, when I make b arbitrarily small (e.g. all elements = 1e-16) I obtain a solution, but the residual is exceedingly high (on the order of 1, while the elements in the solution vector are on the order of 10^4).
Am I misusing PARDISO or are we intended to set b to some arbitrarily small value rather than zero when we wish to find the nullspace? Is there sample code that where the goal is to compute the nullspace specifically? I didn't encounter such problems when b was a vector of ones. If PARDISO cannot compute the nullspace, is there another MKL function which allows for computation of the nullspace of large, real-valued, indefinite, structurally symmetric sparse matrices?
In case of degenerate matrix pardiso find only one solution so it cannot be used for finding set of solution. For your problem it is better to use EE functionality (https://software.intel.com/en-us/mkl-developer-reference-c-extended-eigensolver-routines) - multiply matrix on itself transpose and find zero eigenvectors of resulted matrix