[Fluent] 收敛判断和 solver选择

0 views
Skip to first unread message

macj...@gmail.com

unread,
May 18, 2009, 11:32:51 PM5/18/09
to cfd_m
问题 :----------------------------

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.

某人的回答

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

又有一个人来提问

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

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


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

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

来自流控论坛

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

Reply all
Reply to author
Forward
0 new messages