[petsc-users] CG or GMRES

Alan zhenglun.wei at gmail.com
Fri May 10 08:15:52 CDT 2013


Thank you so much, Dr. Brown.
I have a minor question on the 'gamg'. As you said, 'gamg' works for
many moderately non-symmetric problems. Does this apply for general
algebraic MG preconditioner or just 'gamg' in PETSc. As you know, does
'BoomerAMG' suffer from the non-symmetric matrices problem? Should we
only use regular MG as the preconditioner for highly non-symmetric problems?

thanks,
Alan

> "Zhenglun (Alan) Wei" <zhenglun.wei at gmail.com> writes:
>
>> Dear folks,
>> I hope you're having a nice day.
>> For the Poisson solver in /src/ksp/ksp/example/tutorial/ex45.c, I used
>> the ksp_type = CG to solve it before; it converges very fast with
>> pc_type = gamg. However, I was trying to check if the matrix generated
>> by the 'ComputeMatrix' is symmetric by using "ierr = MatIsSymmetric(B,
>> tol, &flg);". It shows that this matrix is not exact a symmetric one by
>> setting tol = 0.0. Yet, the matrix is 'symmetric' if the tol > 0.01.
> The matrix does not enforce boundary conditions symmetrically.
>
>> Does this mean that, even if the matrix is not exact symmetric, the CG
>> could still be used. 
> You happen to be iterating in a "benign" space in which the operator is SPD.
>
>> This brings me a question. Can the CG be used to solve an actual
>> unsymmetric matrix as long as 'MatIsSymmetric' returns a 'PETSC_TRUE'
>> value with certain tolerance. 
> No.
>
>> Is there any rule of thumb for this tolerence?  Also, as a
>> preconditioner, does 'gamg' only work for symmetric positive-definite
>> matrix? or it works for any matrix or even with GMRES?
> It works for many moderately non-symmetric, certainly for something that only
> has non-symmetric boundary conditions.



More information about the petsc-users mailing list