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

 April 7, 2013, 03:45 conjugate gradient squared method #1 Senior Member   Mehdi Join Date: Jan 2011 Location: Iran Posts: 130 Rep Power: 8 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 __________________ Best Regards; Mehdi E-mail: mb.pejvak[at]Gmail[dot]com

 April 9, 2013, 23:25 #2 Senior Member   Mehdi Join Date: Jan 2011 Location: Iran Posts: 130 Rep Power: 8 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? __________________ Best Regards; Mehdi E-mail: mb.pejvak[at]Gmail[dot]com

 April 10, 2013, 09:57 #3 Member   Join Date: Jul 2011 Posts: 59 Rep Power: 8 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.

April 10, 2013, 22:00
#4
Senior Member

Mehdi
Join Date: Jan 2011
Location: Iran
Posts: 130
Rep Power: 8
Quote:
 Originally Posted by rmh26 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?
__________________
Best Regards;
Mehdi
E-mail: mb.pejvak[at]Gmail[dot]com

 April 12, 2013, 11:27 #5 Member   Join Date: Jul 2011 Posts: 59 Rep Power: 8 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.

 April 15, 2013, 23:42 #6 Senior Member   Mehdi Join Date: Jan 2011 Location: Iran Posts: 130 Rep Power: 8 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? __________________ Best Regards; Mehdi E-mail: mb.pejvak[at]Gmail[dot]com Last edited by mb.pejvak; April 16, 2013 at 00:58.

 April 20, 2013, 01:50 #7 Senior Member   Mehdi Join Date: Jan 2011 Location: Iran Posts: 130 Rep Power: 8 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? __________________ Best Regards; Mehdi E-mail: mb.pejvak[at]Gmail[dot]com

 May 30, 2013, 21:47 #8 Senior Member   Mehdi Join Date: Jan 2011 Location: Iran Posts: 130 Rep Power: 8 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? __________________ Best Regards; Mehdi E-mail: mb.pejvak[at]Gmail[dot]com Last edited by mb.pejvak; May 30, 2013 at 23:48.

 Thread Tools Display Modes Linear Mode

 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 OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post Anorky FLUENT 0 April 27, 2010 10:55 parth Main CFD Forum 1 March 11, 2005 14:08 Paul Hsieh Main CFD Forum 3 November 11, 2003 05:52 John Main CFD Forum 2 July 31, 2001 12:08 Gary Dantinne Main CFD Forum 2 March 19, 1999 01:24

All times are GMT -4. The time now is 15:19.