[petsc-users] Preconditioned BiCGStab in PETSC, formulas

Kirill Voronin kvoronin at labchem.sscc.ru
Sun Jan 25 23:02:14 CST 2015


Hello!

I'm solving the system with user-defined preconditioned BiCGStab from PETSc.

The question is - how exactly preconditioned BiCGStab looks like (as an
algorithm) in PETSC?
It can be right or left or some other type of preconditioning.

The output of my code shows that during each iteration PCApply (matvec of
preconditioner) is called 3 times and looking at Saad's version of
nonpreconditioned BiCGStab algorithm it is not that obvious for me where
these 3 calls exactly occur.

Saad's version:

1.Compute r0 = b - Ax0, r0* - arbitrary.
2.p0 := r0
3.for j = 0, 1 ... till convergence, do
4.  alpha_j := (r_j, r0*) / (Ap_j, r0*)
5.  s_j := r_j - alpha_j Ap_j
6.  omega_j = (As_j, s_j) / (As_j, As_j)
7.  x_{j+1} := x_j + alpha_j p_j + omega_j s_j
8.  r_{j+1} := s_j - omega_j As_j
9.  beta_j := (r_{j+1}, r0*)/(r_j, r0*)  * alpha_j/omega_j
10. p_{j+1} := r_{j+1} + beta_j (p_j - omega_j Ap_j)
11. end do

(from Saad Y. "Iterative methods for sparce linear systems")

Thank you in advance!

-- 

Best regards,

Kirill Voronin



More information about the petsc-users mailing list