CFD Online Discussion Forums

CFD Online Discussion Forums (
-   Main CFD Forum (
-   -   About Preconditioning Euler eqs. convergence (

Rake October 1, 2006 11:50

About Preconditioning Euler eqs. convergence
Hi, I use a 2d Euler code to learn some Preconditioner. The first preconditioner is a gloable preconditioner,as discribed in "High-resolution Viscous flow simulations at arbitrary Mach number" ,W.R.Briley,L.K. Taylor,D.L Whitfield,Jounal of Computational Physics. The second is a local preconditioner following AIAA 99-2209.

Because the 2d Euler code is solved implicit, I modified the right and left eigenvectors, the local time-step, and the ROE dissipation terms according fifferent preconditioner.Although the farfield BC should be modified for accuracy if using preconditioning, in order to reduce the effect of far field,the mesh around NACA0012 I choose far enough way from the solid,about 25 chord of the airfoil. for subsonic flow the results are similar as the origennal. When i reduce the Mach number to 0.05,all these two preconditioner have poor convengence for continuty residul. and for very low Mach 0.001 or lower both these 2 preconditioner failed. I don't know why. WHo can give me some advice? thx!

Rake October 1, 2006 11:54

Re: About Preconditioning Euler eqs. convergence
o my god ican't edit it,there are so many ......


ganesh October 2, 2006 05:08

Re: About Preconditioning Euler eqs. convergence
Dear Rake,

I am not quite sure what your problem could be, but I have the following suggestions.

1. Preconditioning, from the coding point of view essentially requires two changes;

a. Flux computation, viz. the dissipation of the scheme needs to be altered. You must check if the dissipation terms are scaled properly, ie. these should not be scaled with the sonic velocity, but with a modified sonic speed that reverts back to the sonic speed when preconditioning is switched off or compressible effects are dominant.

b. The finite volume update for the residual is modified, evidently beacuse it gets premultiplied by the inverse of the preconditioning matrix.

2. Farfield BCs are to be modified if you are using a characteristic BC, since the concept of Reimann invariants does not exist in the limit M --> 0. Howvere, as you have used a freestream BC at a considerably large farfield distance is also ok, but you can try out with an even larger farfield of the order of 100 chords, just to make sure that there are no farfield effects coming into play. I feel that the farfield BC is not the culprit, although you can look into this issue.

3. Preconditioning is supposed to improve convergence at low mach numbers,(which is poor if no preconditioning is applied to the Euler code) and also give physically meaningful solutions( which is not obtained in the absence of preconditioning at low mach numbers) for both lower and higher speeds. Although there are some evidence that the preconditioning deteriorates the convergence if operated at higher M, my personal experience has been that it has been effective in both higher and lower M, giving reasonbably accurate results with a good convergence.

Since your preconditioned code seems to be working well for higher M, it looks to me that the code is fine, if you have looked into aspects (a) and (b). What subsonic M have you tried out the code with ? What is the convergence history and solution like whem M=0.1 or M=0.15 ? If at M=0.1 to 0.2, your code does fine, then possibly that problem lies in the definition of pressure. When M --> 0, the pressure values become quite small that round-off errors start creeping up, and you end up with problems of non-physical solution/poor convergence. What has to be done is to replace the pressure p by p' = p - p_ref, where p_ref is some reference pressure (say, the freestream pressure), and accordingly modify all equations where pressure appears( such as in flux formula, implcit update etc ...). This would than possibly lead to the right solution at a convergence rate expected, provided your code is otherwise bug-free. If you have access to VKI lecture series, you can look into the 1999-03 series on low mach number preconditioning, where an excellent review on these techiniques is available.

Hope this helps



Rake October 2, 2006 15:58

Re: About Preconditioning Euler eqs. convergence
Dear Ganesh:

Many thanks for your explanation. I run the code for Mach=0.1,the convergence is still poor,drooped from 1.e-4 to 1.e -6. just as you point in 1 (a) : there is a term of 1/c^2 in the dissipation terms .(c is the local sound velocity). The poor convergence may be caused by it.

I use the sound velocity to nodimensional the relatively velocity variables.Shoul I change it to free flow velocity ? because i check and modified the code to multiply the 1/c^2 to the Roe dissipation term last,I still cann't get the expect result, although it will effect the convergence slightly.

I till have another question after reading your answer: in the code i mutiply the inverse of preconditioning matrix(P^-1) to the residual vector, then multiply the R_q^-1(some terms still include 1/c^2), is it right ?

many thanks!


ganesh October 3, 2006 01:46

Re: About Preconditioning Euler eqs. convergence
Dear Rake,

There is no serious issue on using the sonic velcoity as a reference velocity for non-dimensionalisation. However, as I have mentioned the basic principle behind preconditioning relies on using a modified sonic velcoity, sat c' = f * c, where c is the sonic velcoity and f is some function such that c' is of the order of local velocity, when M --> 0 and c' --> c as M becomes large (ie. f=1). The preconditioning matrix actually incorporates this idea and this leads you to the right result. The important fact to note is that the dissipation must not scale with the sonic velcity, but with the modified sonic velocity. You may be intersted in looking at Weiss and Smith's precondtioner, (where they have shown the modified Roe scheme, although not much of explanation on how it is arrived at is given) as also the paper by Liou on extension of AUSM to low speed flows (where the idea of constructing the modified sound velocity is explained well). If you cannot access these papers, I can send you the soft copy by mail, if you could give me your e-mail address.

P.S.: As a thought, does your code run at 0.1 Mach, without preconditioning with a "good" convergence history ?



Rake October 3, 2006 15:37

Re: About Preconditioning Euler eqs. convergence
Dear Ganesh:

Yes,if no preconditioner,the convergence history is very well for subsonic speed flow. As you known,the results may be not accurate but the code even run at 0.01~0.05 without preconditioning with a "good" convergence history. just this confused me,why i couldn't get the similare convergence history with preconditioning?

Send these references to me please,thank you very much! my email:

Whith best wishes for success and happiness!


Paul October 17, 2006 11:45

Re: About Preconditioning Euler eqs. convergence
Rake and Ganesh

I'm currently knee-deep in implementing Weiss-Smith for a 3-D finite volume code. Although I have read much of the relevant literature (ie various Turkel/Vatsa papers, Darmofal and Van Leer VKI Lecture), I have not read Weiss-Smith's original paper, nor have I heard of this Liou et al paper.

Could you give me the full citation for Liou et al?



AshwaniAssam July 1, 2015 06:45


Was this problem solved? We are also getting some similar convergence issue for low-speed preconditioning convergence.

with regards,

All times are GMT -4. The time now is 09:29.