[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