CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   Main CFD Forum (https://www.cfd-online.com/Forums/main/)
-   -   Help with Biconjugate Gradient to solve a system (https://www.cfd-online.com/Forums/main/6896-help-biconjugate-gradient-solve-system.html)

Isa December 5, 2003 05:38

Help with Biconjugate Gradient to solve a system
 
Hello to everybody: I have the following doubt: I want to solve the following system: Ax=f

I use an iterative solver, at first A is non-symmetric and positive. I use the Biconjugate gradient with A as preconditioner matrix.

Several iterations later, A gets to be negative in some of its elements and it is then when the program aborts. If I used a preconditioner matrix that was always symmetric and positive (for example a diagonal one like a lumped-mass matrix), would this problem disapear? What is the right solution?

Thank-you in advance. Best regards Isa

shobhit agarwal December 5, 2003 13:51

Re: Help with Biconjugate Gradient to solve a syst
 
hi! for using a preconditioned conjugate gradient matrix there are three requirements. (1). The main(center)diagonal elements should never be zero. (2).The absolute value of the main diagonal element should be greater than all the values of the elements in that row.i.e. example abs(a22)>a2j (3).The signs of all the diagonal elements should be same and also matrix should be symmetric in terms of signs in your case since the sign of some elements of main diagonal change after a few iterations then the rule-3 gets violated hence the problem begins....so it seems that there is some formulation problem check that,because even if you use the preconditioned gradient method the requiremnt no.3 is there for more refference see MSIMSL library and particularly help files jcgrc. shobhit

kenn December 20, 2003 07:19

Re: Help with Biconjugate Gradient to solve a syst
 
you should use GMRES or GPBiCG(m,l) linears solvers. these are two best general-purposed linear solvers.


All times are GMT -4. The time now is 00:41.