二锅头 发表于 2005-6-29 14:58

[Fluent] 收敛判断和 solver选择

从cfd-online.com上转过来的,虽然是英语,但是静下心来慢慢读一读能学到很多

问题 :----------------------------

Hi! I have tried an external aerodynamic problem in Flunet. In it, I want to know pressure distribution over the wing assembly.

I have used Coupled-Implicit-Spalart Allamaras solver with courant number 1 initially. I gave pressure-far-field BC in elliptical boundary around wing assembly which is 10 times larger.

After 5000 iterations also, my solution is not converging or continuity and momentum residuals are not coming below 1e-3. They oscillating between 1e-2 and 1e-3. Viscous residual is less than 1e-3.

I have changed under relaxation factors, discretization schemes also. Still, I am not able to achieve residual lesser than 1e-4.

I want any one users help. I am conveying my advance thanks ..........

with regards, vengi.

二锅头 发表于 2005-6-29 14:58

某人的回答

There's a few things that could be going on.

One possible answer is that your model is converged (that's always the happiest answer, isn't it?). The residuals you are looking at are normalized based on the residuals of the first iteration. So if your initial guess is pretty accurate, then your first residuals will be small, and all of your following residuals will be small as well, but since they are normalized according to that first small value, they look large. This typically shows up in the continuity and momentum residuals, and sometimes even in the x, y, and z velocity residuals (at least in the coupled solver). One thing you should be doing with your model is monitoring other factors besides your residuals. If you're looking for the pressure distribution, then define a few points along your airfoil and monitor the pressure at these points. You should also monitor at least the lift of your airfoil. You can find these monitors under solve->monitors. Judge convergence by when these have leveled off. While your model is solving, you will probably have to go in and clear the data in the monitors or adjust the scale of the axis to get a better idea of when they've truly leveled off. That can all be done in the windows where you defined the monitors.

Another possibility is that your model isn't converged (the less happy of the answers). If that's the case, then there's lots of possible reasons. One common one is the use of the Coupled Solver in low speed flows. Since the coupled solver is a density based solver, it can get hung up in incompressible flow regimes. Typically, I only use the coupled solver for flows over Mach 0.7, but I've used the segregated solver from Mach 0.05 up to Mach 1.2 (paying CAREFUL attention to the mesh where shocks form). Another possible problem is that its an unsteady problem. If you've stalled, you could be shedding vortices at some frequency. The SA turb model does alright with small separation regions, but a large separation region (say behind a shock at some angle of attack) can cause it to fall apart. It was originally designed for 2D airfoils without any separation. They've modified it some to try and make it work in 3D, and to try and help it handle separation, but I still haven't had much luck with it. There could also be some issues with your mesh. Pay attention to your y+ values and the rules concerning them.

Either way, you really should be monitoring more than the residuals to judge convergence. I've seen it a lot here, where someone will call a model converged because the residuals dropped below 1e-03, but when I've taken the model and continued with the iterations, I've seen a dramatic change in the forces. I've also seen it where someone will be 8 or 9 thousand iterations in trying to get the residuals to drop, but the forces have been steady.

Hope this helps, and good luck,
Jason

二锅头 发表于 2005-6-29 14:59

又有一个人来提问

Hi Jason, could you tell me more about using the segregated for transonic on ligthly supersonic flows? I tried it with the AGARD 445.6 wing for flutter determination and I had very good results for transonic flows. So, If we take care of under-relaxation factors and we make a good mesh, can segregated solver be used even for transonic flows?

luca

二锅头 发表于 2005-6-29 14:59

Sysnoise's Users_Manual

接着回答

    You can use the segregated solver for transonic flows. It tends to diffuse the shocks compared to the coupled solver, but you can fix that by using a refined mesh. A lot of times that's what I have to do here, because I'm running into memory limits, and increasing the mesh by 10-20% still fits in the available memory, where switching to coupled solver doesn't (coupled solver uses 1.5x to 2x the memory because it stores the solution to the last iteration).

    As far as solver settings... it's very important to set your control limits. For temp and pressure, I calculate the delta between freestream and stagnation, and I double that. If I have a problem getting the model to converge, I may cut that down to about 1.5 to 1.2 times the difference between freestream and stagnation. (So my Pressure limits are Pstatic + 2*Q and Pstatic - 2*Q) I set the pressure and momentum URFs to 0.5 and 0.4, leaving energy at 1. The SIMPLE Pressure-Velocity coupling tends to work well... I've gotten some recommendations on switching to PISO, so I'm actually trying that right now. I tend to run for 10 to 50 iterations with all the default discretizations and the turb eq turned off. Then I turn the turb eq back on (I don't go all the way to convergence like some people recommend... I haven't found any benefit... I usually only do about 50 iterations with these settings). After that, I set everything to 2nd order discretization and run to convergence. These settings have worked well for me on aerodynamic models with little or no separation, and they've worked (with a little playing around in the URFs) all the way to Mach 1.2.

    I have run bluff bodies at subsonic compressible to transonic speeds (typically a symmetrical model to get more of a "time averaged" solution... this avoids the oscillating vortices and cuts out the need for the unsteady solver... I haven't run transonic of a full bluff body, but I have run Mach 0.5ish with a full model and the unsteady solver... that was a while ago though, and I don't remember if I had made any changes to my solver settings). The coupled solver is a poor solver for this kind of model because of the large separation region aft of the body. This becomes a difficult model for the segregated solver as well, but I've had good luck running it with default discretization and the turb model turned off for about 100 to 200 iterations... then turning on the turb model, and lowering the energy URF to about 0.7 and running for another 100 or so iterations. Then upping the energy URF back to 1 for another 50 or so, and then switching to second order and running to convergence.

    The most important things I have found are paying attention to your mesh (or using adaption or dynamic adaption to resolve shocks... you don't need to refine them all the way for overall forces, but you might for flutter analysis) and setting your control limits.

    Hope this helps, and good luck,
    Jason

二锅头 发表于 2005-6-29 15:00

Thank you Jason, your explanations are complete and well detailed as usual. I run the Agard 445.6 at mach 1.141 and had no problem with convergence. I just set momentum URF to 0.4. Yes you're rigth when you say coupled solver requires more memory. In fact if I use the segregated I can make a more refined grid because it requires less memory. This is great! SIMPLE scheme seems to work well and I didn't need to switch to PISO...and I had no problem to solve the flow with transonic or supersonic flow. Thank you again for your answer. I just needed to have a confirm somebody else tried to use the segregated solver for not subsonic external flows. Luca

cora 发表于 2005-10-6 15:39

1.我一般首先是改变初值,尝试不同的初始化,事实上好像初始化很
关键,对于收敛~
2.FLUENT的收敛最基础的是网格的质量,计算的时候看怎样选择CFL数,这个*经验
3.首先查找网格问题,如果问题复杂比如多相流问题,与模型、边界、初始条件都有关系。
4.边界条件 、网格质量
5.有时初始条件和边界条件严重影响收敛性,我曾经作过一个计算 反反复复,通过修改网格,重新定义初始条件,包括具体的选择的模型, 还有老师经常用的方法就是看看哪个因素不收敛,然后寻找和它有关的条件,改变相应参数。就收敛了
6.A.检查是否哪里设定有误.
比方用mm的unit建构的mesh,忘了scale...
比方给定的b.c.不合里...
B.从算至发散前几步,看presure分布,看不出来的话,再算几步,
看看问题大概出在那个区域,连地方都知道的话,应该不难想出问题所在.
C.网格,配合第二点作修正,
或是认命点,就重建个更漂亮的,或是更粗略的来除错...
D.再找不出来的话,我会换个solver...
7.我解决的办法是设几个监测点,比如出流或参数变化较大的地方,若这些地方的参数变化很小,就可以认为是收敛了,尽管此时残值曲线还没有降下来。
8.记得好像调节松弛因子也能影响收敛,不过代价是收敛速度。
9.网格有一定的影响,最主要的还是初始和边界条件

来自流控论坛

glise 发表于 2005-10-6 15:47

在FLUENT的中文帮助里,对收敛有比较详细地描述,建议去看看。
收敛性可能会受到很多因素影响。大量的计算单元,过于保守的亚松驰因子和复杂的流动物理性质常常是主要的原因。有时候很难确定你是否得到了收敛阶。
没有判断收敛性的普遍准则。残差定义对于一类问题是有用的,但是有时候对其它类型问题会造成误导。因此,最好的方法就是不仅用残差来判断收敛性而且还要监视诸如阻力、热传导系数等相关的积分量。
在FLUENTD的帮助文件里给出了下面几种典型的情况。
??;; 1、如果你对流场的初始猜测很好,初始的连续性残差会很小从而导致连续性方程的标度残差很大。在这种情况下,检查未标度的残差并与适当的标度如入口的质量流速相比较是很有用的。什么是标度残差?就是选作用来标准化的残差值,一般是取第五步吧,所以,一开是残差就很小,那么,后面的残差和它一比,值也很难收敛到很小数。
??;; 2、对于某些方程,如湍流量,较差的初始猜测可能会造成较高的标度因子。在这种情况下,标度的残差最开始会很小,随后会呈非线性增长,最后减小。因此,最好是从残差变化的行为来判断收敛性而不仅仅是残差的本身值来判断收敛性。你应该确认在几步迭代(比如说50步)之后残差继续减小或者仍然保持较低值,才能得出收敛的结论。
另一个判断收敛性的流行方法就是要求未标度的残差减小到三阶量级。为了实现这一方法,FLUENT提供了残差标准化,有关残差标准化的信息请参阅分离求解器残差定义和耦合求解器残差定义两节。在这种方法中,要求标准化的未标度残差降到10^-3。但是这种要求在很多情况下可能是不合适的。
??;;1、如果你提供了较好的初始猜测,残差可能不会降到三阶量级。比方说,在等温流动中,如果温度的初始猜测非常接近最终值,那么能量残差根本就不会降到三阶量级。
2、如果控制方程中包括的非线性源项在计算开始时是零,但是在计算过程中缓慢增加,残差是不会降到三阶量级的。例如,在封闭区域内部的自然对流问题,由于初始的均一温度猜测不会产生浮力,所以初始的动量残差可能非常接近零。在这种情况下,初始的接近零的残差就不适合作为残差的较好的标度。
??;; 3、如果所感兴趣的变量在所有的地方都接近零,残差不会降到三阶量级。例如,在完全发展的管流中,截面上的速度为零。如果这些速度初始化为零,那么初始的和最终的残差都接近零,因此也就不能期待降三阶量级。
在这种情况下,最好监视诸如阻力、总热传导系数等积分量来判断解的收敛。检查非标准化未标度的残差来确定这个残差和适当的标度相比是不是很小也是很有用的。
相反,如果初始猜测很差,初始的残差过大以至于残差下降三阶量级也不能保证收敛。这种情况对于初始猜测很难的k和e方程尤其常见。在这里,检查你所感兴趣的所有积分量就很有用了。如果解是不收敛的,你可以减少收敛公差

唯有时光 发表于 2010-11-1 02:35

很好的帖子,学习了不少东西!
页: [1]
查看完整版本: [Fluent] 收敛判断和 solver选择