dropping columns/rows from matrix?
Peter Schröder
ps at cs.caltech.edu
Fri Nov 23 18:58:33 CST 2007
As part of a greedy basis pursuit algorithm I drop/undrop columns/rows
from a matrix and resolve. I don't want to rebuild the matrix each time.
Is there a quick way to do this?
Basically the setup is this. Consider a 2-manifold triangle mesh and a
discretization (piecewise linear FE) of the Laplace-Beltrami operator
over this mesh (symmetric positive (semi-)definite [constant vector is
the only null space vector]). Fix boundary conditions (zero Dirichlet in
my case). Solve for a given rhs (I am using CG and absolute Jacobi as a
precon with good success). Based on the solution, take out a column (and
the same row) and resolve. Repeat this a few times until, say, 10
variables are dropped. Now pick one of them, say, i, and reintroduce it.
Based on the solution replace i with i_new. Now visit another variable
of the original 10 and "move" it. Etc.
Each one of the solves is quick (and I need to do hundreds for matrices
with hundreds of thousands to millions of variables). I'd rather not
rebuild the matrix each time... Any suggestions?
Thanks much!
Peter
More information about the petsc-users
mailing list