[petsc-users] On re usability of A matrix and b vector

Barry Smith bsmith at petsc.dev
Wed Aug 19 23:05:58 CDT 2020


  KSP knows if the matrix has changed and rebuilds the parts of the preconditioner it needs if the matrix has changed. When the matrix has not changed it uses the exact same preconditioner as before.


   Barry

 This "trick" is done by having an integer state variable inside the matrix object. Each time the matrix is changed by MatSetValues() etc. the state variable is incremented. KSPSolve() keeps a record of the state variable of the matrix for each call to SNESSolve(), if the state variable has increased it knows the matrix has changed so updates the preconditioner. 

> On Aug 19, 2020, at 9:05 PM, baikadi pranay <pranayreddy865 at gmail.com> wrote:
> 
> Hello,
> 
> I am trying to solve the poisson equation iteratively using BiCGStab in FORTRAN 90. After every call to KSPSolve, I update the central coefficients of A matrix and the b vector (and then solve the new linear equation system, repeating the process until convergence is achieved). I want to know whether the A matrix and b vector that are created initially can be used in the iteration process or do I need to create a new A matrix and b vector in each iteration.
> 
> Please let me know if you need any further information.
> 
> Thank you.
> 
> Sincerely,
> Pranay.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200819/9e62560b/attachment.html>


More information about the petsc-users mailing list