> > Neat trick. MatGetRow will give me the row of the matrix, so would > then > need a little loop to examine the elements and proceed as you > suggested; > am I right? >
There is probably more than one way to do this but you do NOT need to look at the elements (you can give PETSc a NULL arg for the values and it should work fine), you are getting the sparsity pattern from MatGetRow via the integer array of column ids. You use these column ids to set the correct sparse *rows* of the column in question. so something like this: list of colums (j) <-- MatGetRow( row i ) MatsetValues( columns(j), row(i), zero_array, SET_VALEUS ) // note the transpose, using the current row (i) as the one column in MatSetValues. Mark > I guess there is no way to directly access the sparsity pattern then? > > Thanks for the suggestion. > > Best, > Toby > > > ----- > > Toby D. Young (Adiunkt) > Department of Computational Science > Institute of Fundamental Technological Research > Polish Academy of Science > Room 206, ul. Swietokrzyska 21 > 00-049 Warszawa, POLAND > ********************************************************************** Mark Adams Ph.D. Columbia University 289 Engineering Terrace MC 4701 New York NY 10027 adams at pppl.gov www.columbia.edu/~ma2325 voice: 212.854.4485 fax: 212.854.8257 **********************************************************************