# [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

```