[petsc-users] linear system solution for slightly changing operator matrix

Jose E. Roman jroman at dsic.upv.es
Tue Feb 16 03:37:22 CST 2010


On 16/02/2010, Umut Tabak wrote:

> Dear all,
>
> My question is not directly related to PETSc usage, however since I  
> use PETSc to test my ideas. I wanted to ask here.
>
> I believe there are many numerical experts in this group from whom I  
> can get some advice on linear system solutions. In brief, I was  
> working on an iterative correction algorithm for coupled  
> vibroacoustics in the last months, at each iteration I have to  
> update an operator matrix and rhs vectors and solve this system for  
> corrections, x.
>
> More specifically the system is(there are two systems like this but  
> they are built on the same idea: to solve linear systems for  
> correction vectors, x)
>
> (A - y * B) x = y * C * v
>
> where y and v are the eigenvalues and eigenvectors coming from an  
> eigenvalue problem,respectively, and updated at each iteration to  
> end up with new correction vectors x(and say x' for the other linear  
> system). A, B are sparse symmetric matrices, C is not symmetric but  
> pretty sparse.
>
> I try to solve these systems  iteratively, by cg in PETSc with the  
> some preconditioners, for the moment icc gave the best results for  
> my problem.
>
> However, I realized that the  eigenvalues which  affect the build   
> up of the operator matrix,(A - y * B), namely y values, do not  
> change too much from one iteration to another(Of course after 1 or 2  
> iterations, they start oscillating around more or less the same  
> values that is what I call they do not change too much). The  
> question is that can this little change(s) be handy to be able to  
> use some information from the previous linear system solutions? If  
> yes, how should I advance to make these linear solves faster?
>
> Any directions/pointers are appreciated.
>
> Best regards,
>
> Umut

Although there is no guarantee of improvement, you can try using  
KSPSetInitialGuessNonzero and setting x to be the solution computed by  
the previous KSPSolve.

Jose



More information about the petsc-users mailing list