<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div>Dear all,</div><div><br></div><div>      I need to evaluate the null space Span{v_i} of a sparse rectangular matrix A \in C^{ N x (N+k)}, </div><div><br></div><div>                   A v_i = 0,            (1)</div><div><br></div><div>where </div><div><br></div><div>i) N is typically very big ( N ~ 500’000 ) and k, in comparison, is very small  ( k ~ 500 ).</div><div>ii) The sub-matrix A_ij  i,j<= N is hermitian and non-singular. Equation (1), therefore, has exactly k solutions. </div><div>iii)The matrix is sparse, with a fill typically <= 3%, and its columns/rows can be reordered in such a way that </div><div>    a very large block, A_ij with i,j > n, & i,j<=N, n << N, is band-diagonal. </div><div>iv) A has a dominant diagonal. </div><div>v) For large values of i,j, the number of non-zero diagonals in the central band drop by about an order of magnitude.</div><div>vi) Finally, this problem must be solved for several (thousands) closely-spaced values of an external parameter </div><div>     Q on which A depends continuously, A = A(Q). Most of the time, therefore, the null space at Q_{i+1} is arguably</div><div>     very close to the null-space at Q_i .</div><div><br></div><div>My feeling is that this problem is very well defined, and that a parallel sparse iterative method should be</div><div>able to solve it with no issues or unnecessary operations. Yet, probably because I am not an expert </div><div>of either PETSc or SLEPc, the two libraries I have considered so far, all the possible solutions that I found </div><div>seem to provide much more information than needed (thus, consuming much more resources than</div><div>warranted). For example: is it really necessary to make a sparse LU factorization for the *whole* matrix? </div><div>In practice, one is looking for the null eigenspace of  A^h A. However, SLEPc suggests that this operation is </div><div>much more expensive than for a sparse A matrix alone (is it so? Shouldn’t Lanczos be implementable at just </div><div>twice the cost?), or maybe I misinterpreted the user guide.</div><div><br></div><div>Your suggestions will be greatly appreciated. Thank you so much for your help!</div><div><br></div><div>Cheers,</div><div><br></div><div>      Luca</div><div><br></div><div><br></div><div>
<div>-- </div><div>Luca Argenti<br>Departamento de Química<br>Universidad Autónoma de Madrid<br>28049 Madrid, Spain<br>Module 13<br>Office 308<br>e-mail: <a href="mailto:luca.argenti@uam.es" target="_blank">luca.argenti@uam.es</a><br>tel : <a href="tel:%2B34%20914973360" value="+34914973360" target="_blank">+34 914973360</a><br>fax: <a href="tel:%2B34%20914975238" value="+34914975238" target="_blank">+34 914975238</a><br>group homepage: <a href="http://www.uam.es/departamentos/ciencias/quimica/spline/index.html" target="_blank">http://www.</a><a href="http://xchem.uam.es/" target="_blank">xchem.uam.es</a></div>
</div>
<br></body></html>