CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > General Forums > Main CFD Forum

conjugate gradient squared method

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   April 7, 2013, 04:45
Default conjugate gradient squared method
  #1
Senior Member
 
Mehdi Baba Mehdi
Join Date: Jan 2011
Posts: 158
Rep Power: 15
mb.pejvak is on a distinguished road
Hi friends;

I plan to implement a non-stationary relaxation method on the code I developed (modeling transition by Gamma-Retheta transition model).
did anyone work with this method?
can it be useful for this equations?
how much can it increase the speed of convergence?

thanks in advance
mb.pejvak is offline   Reply With Quote

Old   April 10, 2013, 00:25
Default
  #2
Senior Member
 
Mehdi Baba Mehdi
Join Date: Jan 2011
Posts: 158
Rep Power: 15
mb.pejvak is on a distinguished road
I found that BICGSTAB is better choice, but I face a problem in implementing it in navier-stocks equation. due to coefficient matrix [A] depends on the velocity (unknown matrix [x]) in each iteration [A] should be amended. in BICGSTAB method applying, whether after each iteration in the method, [A] should be amended or number of iterations in the method should be considered?
mb.pejvak is offline   Reply With Quote

Old   April 10, 2013, 10:57
Default
  #3
Member
 
Join Date: Jul 2011
Posts: 59
Rep Power: 14
rmh26 is on a distinguished road
BiCGSTAB is probably better than CGS in terms of stability. CGS tends to have irregular convergence. Both algorithms involve the same operations ( Matrix vectors, dot product, vector updates) so it shouldn't be hard to switch from one to the other.

I would not try updating the coefficient matrix in the BiCGSTAB algorithm. All of the Krylov subspace methods involve searching for solutions to a linear system in a vector space based on the coefficient matrix. They work by progressively minimizing the error in this space. If you change your matrix because you are trying to solve a non linear problem you will be modifying this space and your iteration will be break down. It seems like you are describing a Picard or fixed point type iteration scheme. You are linearizing the equations, solving them, and then updating your linearization. It it important that you restart the BiCG solver after each new linearization. So it would look more like 10 sets of 10 iterations rather than 100 iterations in a row with a varying coefficient matrix.
rmh26 is offline   Reply With Quote

Old   April 10, 2013, 23:00
Default
  #4
Senior Member
 
Mehdi Baba Mehdi
Join Date: Jan 2011
Posts: 158
Rep Power: 15
mb.pejvak is on a distinguished road
Quote:
Originally Posted by rmh26 View Post
BiCGSTAB is probably better than CGS in terms of stability. CGS tends to have irregular convergence. Both algorithms involve the same operations ( Matrix vectors, dot product, vector updates) so it shouldn't be hard to switch from one to the other.

I would not try updating the coefficient matrix in the BiCGSTAB algorithm. All of the Krylov subspace methods involve searching for solutions to a linear system in a vector space based on the coefficient matrix. They work by progressively minimizing the error in this space. If you change your matrix because you are trying to solve a non linear problem you will be modifying this space and your iteration will be break down. It seems like you are describing a Picard or fixed point type iteration scheme. You are linearizing the equations, solving them, and then updating your linearization. It it important that you restart the BiCG solver after each new linearization. So it would look more like 10 sets of 10 iterations rather than 100 iterations in a row with a varying coefficient matrix.
Dear rmh26;
Thank you so much. I plan to do it in a way that you recommended, but I am not sure about this remedy. I want to amend coefficient matrix after 10 BICGSTAB iterations based on the value of variables (U,V,P, ...), calculate [A] and [b] with Naveir-Stocks, turbulent and transition models and then use them in BICGSTAB algorithm, and do it until it converge.
I also have another question about preconditioner. in "Iterative Methods for Sparse Linear Systems", it is said that choosing appropriate preconditioner is more effective tha using relaxation method ("In general, the reliability of iterative techniques, when dealing with various applications, depends much more on the quality of the preconditioner than on the particular Krylov subspace accelerators used.") so what your idea about the preconditioner methods? can it be said that one of the better than another or their robustness and accuracy are determined in specific applications?
mb.pejvak is offline   Reply With Quote

Old   April 12, 2013, 12:27
Default
  #5
Member
 
Join Date: Jul 2011
Posts: 59
Rep Power: 14
rmh26 is on a distinguished road
Incomplete lower upper factorizations worked well for me. I am working on a multigrid preconditioner in my spare time. It should increase the speed up but will require a little more work. Besides making the solver run faster than main benefit of preconditioning is that the iteration procedure can break down for the CGS or BiCG style methods. When using a preconditioner they tend to be much more robust. It won't affect the accuracy of the solution. For a convection dominated problem I would think that ILU would work well. The ordering of your matrix will have a large effect on the rate. If your lucky and the flow is mostly in one direction then you decomposition should be in that direction as well.
rmh26 is offline   Reply With Quote

Old   April 16, 2013, 00:42
Default
  #6
Senior Member
 
Mehdi Baba Mehdi
Join Date: Jan 2011
Posts: 158
Rep Power: 15
mb.pejvak is on a distinguished road
another thing that I faced is BICGSTAB weak point in some cases in which A has imaginary eigenvalue, and it causes the method to break down (BICGSTAB(L) FOR LINEAR EQUATIONS INVOLVING UNSYMMETRIC MATRICES WITH COMPLEX SPECTRUM; by GERARD L.G. SLEIJPENy AND DIEDERIK R. FOKKEMA) in that case BICGSTAB(l) is recommended by them. particularly in an example (No.1) in this paper, it was mentioned that if the equation is advection-dominated problem, BICGSTAB has worse results than BICG.
now, my question is regarding my problem which is low-Reynolds-number flow and NS, SST K-omega, and Gamma-Retheta models should be solved, do you think using BICGSTAB can be effective or I should select BICGSTAB(l) for better results?

Last edited by mb.pejvak; April 16, 2013 at 01:58.
mb.pejvak is offline   Reply With Quote

Old   April 20, 2013, 02:50
Default
  #7
Senior Member
 
Mehdi Baba Mehdi
Join Date: Jan 2011
Posts: 158
Rep Power: 15
mb.pejvak is on a distinguished road
Dear Friends;
I select BICGSTAB(l) for the code that I have developed (NS, SST K-Omega turbulence model, Gamma-Retheta transition model equations) to increase the speed of convergence in this code. I wrote subroutine of this method. I want to evaluate it before adding to my main code with a small matrices, but I can not find a real problem. does any one have this kind of example for evaluating this code?
mb.pejvak is offline   Reply With Quote

Old   May 30, 2013, 22:47
Default
  #8
Senior Member
 
Mehdi Baba Mehdi
Join Date: Jan 2011
Posts: 158
Rep Power: 15
mb.pejvak is on a distinguished road
I implemented BICGSTAB(l) in NS equations, but unfortunately it does not work well. after only one iteration in SIMPLER algorithm, it diverges. I don't know why? I check the code and make necessary changes in [A] and [B] matrix.
I should say I apply BICGSTAB(l) without preconditioner. does anyone know what should I do or what steps are necessary in implementing this method in NS equation with SIMPLER algorithm? or relaxation method does not depend on descritizing algorithms (SIMPLE or ...).
In addition, is it necessary to apply preconditioner in BICGSTAB(l) since it may diverge?

Last edited by mb.pejvak; May 31, 2013 at 00:48.
mb.pejvak is offline   Reply With Quote

Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Fluent 6.3.26 vs 12.1 and partition method Anorky FLUENT 0 April 27, 2010 11:55
conjugate gradient method parth Main CFD Forum 1 March 11, 2005 14:08
How to compute gradient for non-orthogonal grids? Paul Hsieh Main CFD Forum 3 November 11, 2003 05:52
Block Matrix Solver Using Conjugate Gradient John Main CFD Forum 2 July 31, 2001 13:08
Poisson eq and conjugate gradient method Gary Dantinne Main CFD Forum 2 March 19, 1999 01:24


All times are GMT -4. The time now is 17:24.