FLUENT控制步长时间courant数的有效的经验
- 格式:docx
- 大小:13.79 KB
- 文档页数:3
之阳早格格创做用FLUENT估计非稳态问题,是不是正在估计时必须包管正在每个时间步timestep里皆要支敛才止,可则估计截止便分歧过失呢?也便是道,正在iteration选项里,max iteration pertime step设为一个值,比圆500,便是如果500次迭代后仍已支敛,加进下一步迭代,那对付截止会有什么做用. 对付于隐式非定常要领,准则上,每个时间步少内必须包管截止支敛.正在fluent 的助闲中便有那样的话:“对付于不可压震动,正在每个时间步内,不可压解必须迭代直至支敛.”其余,咱们返回到fluent里里估计的基础,它真量便是一种好分算法,通过不竭迫近去赢得真正在解,那样咱们便不易明白为什么正在每个时间步少内需要支敛了.max iteration pertime step 设定的是最大时间步,正在简单步少内,如果截止已经支敛,则会自动跳至下一时间举止估计.所以其设定要纵瞅齐部.然而对付于周期性震动,那种支敛性的央供便相对付紧动一些.不过您需要多估计几个周期,等估计截止达到对付时间的周期状态后,再对付截止举止储藏. 对付于隐式非定常要领,正在Fluent助闲中那样道:“一定记着,对付于隐式非定常要领,每一个迭代便是一个时间步.”如果每个时间步内截止不得到支敛,则很有大概您所得到的截止是不真正在的,然而是一个时间步内的不真正在性该当不会做用到下一个时间步少内的估计.果为正在每一个时间步启时,fluent 皆市举止初初化.正在单个时间步内,它本量是依照稳态举止估计的.time step size的设定是根据您的估计需要,普遍是您的特性少度(比圆道管讲的少度)除于特性速度(比圆仄衡速度)的值再小一到二个量级即可,如果您的time stip size太大,估计会提示您的,改小即可.number of time steps是那样设定的:number of time steps X time step size=本量时间聚集.比圆道,您估计一个射流,您需要估计到1秒时间的情况,那么(number of time steps)=1秒/(time step size).Fluent中非稳态时间步少树立迩去所搞的非稳态估计,若树立太小,估计时间便太少,树立太大的话便会出现Global Courant Number飙降过大的不克不迭继承举止下去的问题.单元最小少度除于流场仄衡流速,不过那个值大概很小,您不妨以那个值为基准举止安排,一启初不妨与大些,如果不问题,不妨再搁大些,那样不妨支缩估计时间.若按那种要领,估计底下那个例子:2mm,10个网格,流速1m/s.时间步少time steps=0.2/1000=0.0002.然而是尔正在举止估计时,树立为1e-6,皆无法举止下去.所以那种换算要领仍旧只可动做参照.尔当前采与的是自动安排时间步少,暂时瞅去效验还不妨.怎么知讲非稳态估计时间步少是符合的?courant number与支敛 courant number本量上是指时间步少战空间步少的相对付闭系,系统自动减小courant数,那种情况普遍出当前存留尖钝形状的估计域,当局部的流速过大大概者压好过大时堕落,把局部的网格加稀再试一下.正在fluent中,用courant number去安排估计的宁静性与支敛性.普遍去道,随着courant number的从小到大的变更,支敛速度渐渐加快,然而是宁静性渐渐落矮.所以简直的问题,正在估计的历程中,最佳是把courant number从小启初树立,瞅瞅迭代残好的支敛情况,如果支敛速度较缓而且比较宁静的话,不妨适合的减少courant number的大小,根据自己简直的问题,找出一个比较符合的courant number,让支敛速度不妨脚够的快,而且不妨脆持它的宁静性.时间步少与准确性戴自《数值估计与工程仿真》第一期做家gim1 、正在不计模型缺面,而且估计宁静的前提下,数值估计的时间步少的采用存留一个妥当值,过大大概过小皆市做用模拟截止的准确性.2 、简直数值模拟中,最佳能有一定的真验数据大概其余的不妨认为准确的截止动做考证资料,那样才搞妥当的选定时间步少,普及估计的准确性.3 、FLUENT 硬件采与隐式估计,那便需要设定每一次迭代的最大步数(Max Iterations per Time step ) ,如果达到最大步数前估计已经支敛,系统会自动加进下一步迭代.利用那一面不妨采与如下要领决定迭代的时间步少:系统普遍认为每一步的迭代次数应正在10 一20 次之问,设定一个时间步少后如果正在迭代次数内还不支敛便该当减小时间步少,反之则该当减少时间步少.普遍,皆预先给定一个较小的时问步少举止迭代女步,而后逐步调整.天然迭代次数也跟简直问题相闭,还需要估计体味的不竭聚集.tags: fluent,非稳态,时间步少fluent迭代估计中,非定常问题的时间步少怎么样采用隐式时间积分规划:时间步少Δt<ρ(Δx)2 /2Γ;半隐式时间积分规划:时间步少Δt<ρ(Δx)2 /Γ;齐隐式时间积分规划:时间步少不节造.Δx是网格相邻节面的距离,Γ是扩集系数,分歧问题有分歧的物理意思非稳态时间步少与迭代步数的计划正在unsteady的估计供解中,大部分共教该当会对付solver 中树立比较迷惘,正在那里,尔念便尔部分的明白对付其时间步少与迭代步数举止一些分解计划. 1、正在举止unsteady 估计的时间,fluent是从前一个时间算到下一个时间(即time steps),而每个时间步少内的估计便相称于一个准稳态供解,果此需要树立Max Iterations per Time Step;正在那个时间步少内的估计便是一个稳态历程,正在达到iteration次数之前支敛完毕,便跳到下一个time step,可则便将所确定的迭代次数算完正在跳下一个time step. 2、时间步少的树立:(1)特性少度除以特性速度所得的时间小二个量级大概者更小.那是表里值,本量上,如果不是处事站运止的话,耗费的估计时间太少.果此,常常正在fluent中选定那个比率的1/5到1/10,特地是一启初不知讲怎么样设定的时间最佳是挨启adaptive 让它自动定义定义时间步少.然而其中最小的时间尺度,部分认为最小也只可小到那个比率的1/100的那个火仄上.(2)最小网格少度除以流速大概者转动震动速度.那个是包管每一次迭代皆正在一个网格范畴内,不会果跨网格而引导截止缺面,然而本量中估计一段时间后大概加快估计速度,会将时间步少树立较大,末尾为得到最后供解,再将时间步少调小,举止细微的估计.3、时间步少里的迭代步数树立:包管每个时间步少达到支敛,大概者能明隐瞅到主要残好直线趋于火仄.4、时间步数:瞅您需要估计多万古间,自己感触起码需要估计3-5个震动循环周期才大概得到非定常的宁静震动周期状态.。
1什么叫松弛因子?松弛因子对计算结果有什么样的影响?它对计算的收敛情况又有什么样的影响?1、亚松驰(Under Relaxation):所谓亚松驰就是将本层次计算结果与上一层次结果的差值作适当缩减,以避免由于差值过大而引起非线性迭代过程的发散。
用通用变量来写出时,为松驰因子(Relaxation Factors)。
《数值传热学-214》2、FLUENT中的亚松驰:由于FLUENT所解方程组的非线性,我们有必要控制的变化。
一般用亚松驰方法来实现控制,该方法在每一部迭代中减少了的变化量。
亚松驰最简单的形式为:单元内变量等于原来的值加上亚松驰因子a与变化的积, 分离解算器使用亚松驰来控制每一步迭代中的计算变量的更新。
这就意味着使用分离解算器解的方程,包括耦合解算器所解的非耦合方程(湍流和其他标量)都会有一个相关的亚松驰因子。
在FLUENT中,所有变量的默认亚松驰因子都是对大多数问题的最优值。
这个值适合于很多问题,但是对于一些特殊的非线性问题(如:某些湍流或者高Rayleigh数自然对流问题),在计算开始时要慎重减小亚松驰因子。
使用默认的亚松驰因子开始计算是很好的习惯。
如果经过4到5步的迭代残差仍然增长,你就需要减小亚松驰因子。
有时候,如果发现残差开始增加,你可以改变亚松驰因子重新计算。
在亚松驰因子过大时通常会出现这种情况。
最为安全的方法就是在对亚松驰因子做任何修改之前先保存数据文件,并对解的算法做几步迭代以调节到新的参数。
最典型的情况是,亚松驰因子的增加会使残差有少量的增加,但是随着解的进行残差的增加又消失了。
如果残差变化有几个量级你就需要考虑停止计算并回到最后保存的较好的数据文件。
注意:粘性和密度的亚松驰是在每一次迭代之间的。
而且,如果直接解焓方程而不是温度方程(即:对PDF计算),基于焓的温度的更新是要进行亚松驰的。
要查看默认的亚松弛因子的值,你可以在解控制面板点击默认按钮。
对于大多数流动,不需要修改默认亚松弛因子。
湍流与黏性有什么关系?湍流和粘性都是客观存在的流动性质。
湍流的形成需要一定的条件,粘性是一切流动都具有的。
流体流动方程本身就是具非线性的。
NS方程中的粘性项就是非线性项,当然无粘的欧拉方程也是非线性的。
粘性是分子无规则运动引起的,湍流相对于层流的特性是由涡体混掺运动引起的。
湍流粘性是基于湍流体的parcel湍流混掺是类比于层流体中的分子无规则运动,只是分子无规则运动遥远弱些吧了。
不过,这只是类比于,要注意他们可是具有不同的属性。
粘性是耗散的根源,实际流体总是有耗散的。
而粘性是制约湍流的。
LANDAU说,粘性的存在制约了湍流的自由度。
湍流粘性系数和层流的是不一样的,层流的粘性系数基本可认为是常数,可湍流中层流底层中粘性系数很小,远小于层流时的粘性系数;而在过渡区,与之相当,在一个数量级;在充分发展的湍流区,又远大于层流时的粘性系数.这是鮑辛内斯克1987年提出的。
1 FLUENT的初始化面板中有一项是设置从哪个地方开始计算(compute from),选择从不同的边界开始计算有很大的区别吗?该怎样根据具体问题选择从哪里计算呢?比如有两个速度入口A和B,还有压力出口等等,是选速度入口还是压力出口?如果选速度入口,有两个,该选哪个呀?有没有什么原则标准之类的东西?一般是选取ALL ZONE,即所有区域的平均处理,通常也可选择有代表性的进口(如多个进口时)进行初始化。
对于一般流动问题,初始值的设定并不重要,因为计算容易收敛。
但当几何条件复杂,而且流动速度高变化快(如音速流动),初始条件要仔细选择。
如果不收敛,还应试验不同的初始条件,甚至逐次改变边界条件最后达到所要求的条件。
2 要判断自己模拟的结果是否是正确的,似乎解的收敛性要比那些初始条件和边界条件更重要,可以这样理解吗?也就是说,对于一个具体的问题,初始条件和边界条件的设定并不是唯一的,为了使解收敛,需要不断调整初始条件和边界条件直到解收敛为止,是吗?如果解收敛了,是不是就可以基本确定模拟的结果是正确的呢?对于一个具体的问题,边界条件的设定当然是唯一的,只不过初始化时可以选择不同的初始条件(指定常流),为了使解的收敛比较好,我一般是逐渐的调节边界条件到额定值("额定值"是指你题目中要求的入口或出口条件,例如计算一个管内流动,要求入口压力和温度为10MPa和3000K,那么我开始叠代时选择入口压力和温度为1MPa和500K(假设,这看你自己问题了),等流场计算的初具规模、收敛的较好了,再逐渐调高压力和温度,经过好几次调节后最终到达额定值10MPa和3000K,这样比一开始就设为10MPa 和3000K收敛的要好些)这样每次叠代可以比较容易收敛,每次调节后不用再初始化即自动调用上次的解为这次的初始解,然后继续叠代。
fluent runge-kutta methods
龙格-库塔法(Runge-Kutta methods)是用于非线性常微分方程的解的重要的一类隐式或显式迭代法。
简写做RK法。
对于任意的
Y=f(X),假设某点(Xi,Yi)的斜率为ki,如果有无限小的dX,则有
Yi+1=Yi+ki*dx。
dx就是迭代步长,然而在现实中它不可能是无限小的,我们一般写作h。
将它与上式中的dx替换就是一阶RK法。
一般我们采用四阶RK法,其形式如下:
k1是时间段开始时的斜率;
k2是时间段中点的斜率,通过欧拉法采用斜率k1来决定y在点tn+h/2的值;
k3也是中点的斜率,但是这次采用斜率k2决定y值;
k4是时间段终点的斜率,其y值用k3决定。
通过四阶RK法的迭代可以得到较为精确的数值解。
FLUENT 收敛判断问题及解决方法1 Under-Relaxation Factors(亚松弛因子)所谓亚松弛,就是将本层次计算结果与上一层次结果的差值作适当缩减,以避免由于差值过大而引起非线性迭代过程的发散。
用通用变量来写出时,为亚松弛因子(Relaxation Factors)。
FLUENT中的亚松弛:由于FLUENT所解方程组的非线性,我们有必要控制变化。
一般用亚松弛方法来实现控制,该方法在每一部迭代中减少了变化量。
亚松弛最简单的形式为:单元内变量等于原来的值加上亚松弛因子a与变化的积。
分离解算器使用亚松弛来控制每一步迭代中的计算变量的更新。
这就意味着使用分离解算器解的方程,包括耦合解算器所解的非耦合方程(湍流和其他标量)都会有一个相关的亚松弛因子。
在FLUENT中,所有变量的默认亚松弛因子都是对大多数问题的最优值。
这个值适合于很多问题,但是对于一些特殊的非线性问题(如某些湍流或者高Raleigh数自然对流问题),在计算开始时要慎重减小亚松弛因子。
使用默认的亚松弛因子开始计算是很好的习惯,如果经过4到5步的迭代残差仍然增长,你就需要减小亚松弛因子。
有时候,如果发现残差开始增加,你可以改变亚松弛因子重新计算。
在亚松弛因子过大时通常会出现这种情况。
最为安全的方法就是在对亚松弛因子做任何修改之前先保存数据文件,并对解的算法做几步迭代以调节到新的参数。
最典型的情况是,亚松弛因子的增加会使残差有少量的增加,但是随着解的进行残差的增加又消失了。
如果残差变化有几个量级你就需要考虑停止计算并回到最后保存的较好的数据文件。
注意:粘性和密度的亚松弛是在每一次迭代之间的。
而且,如果直接解焓方程而不是温度方程(即对PDF计算),基于焓的温度的更新是要进行亚松驰的。
要查看默认的亚松弛因子的值,你可以在解控制面板点击默认按钮。
对于大多数流动,不需要修改默认亚松弛因子。
但是,如果出现不稳定或者发散你就需要减小默认的亚松弛因子了,其中压力、动量、k和e的亚松弛因子默认值分别为0.2,0.5,0.5和0.5。
用FLUENT计算非稳态问题,是不是在计算时必须保证在每个时间步timestep里都要收敛才行,否则计算结果就不对呢也就是说,在iteration选项里,max iteration pertime step设为一个值,比如500,就是如果500次迭代后仍未收敛,进入下一步迭代,那对结果会有什么影响。
对于隐式非定常格式,原则上,每个时间步长内必须保证结果收敛。
在fluent 的帮助中就有这样的话:“对于不可压流动,在每个时间步内,不可压解必须迭代直至收敛。
”另外,我们回归到fluent内部计算的本源,它实质就是一种差分算法,通过不断逼近来获得真实解,这样我们就不难理解为什么在每个时间步长内需要收敛了。
max iteration pertime step 设定的是最大时间步,在单一步长内,如果结果已经收敛,则会自动跳至下一时间进行计算。
所以其设定要纵观全局。
但对于周期性流动,这种收敛性的要求就相对松动一些。
不过你需要多计算几个周期,等计算结果达到对时间的周期状态后,再对结果进行储存。
对于显式非定常格式,在Fluent帮助中这样说:“一定记住,对于显式非定常格式,每一个迭代就是一个时间步。
”如果每个时间步内结果没有得到收敛,则很有可能你所得到的结果是不真实的,但是一个时间步内的不真实性应该不会影响到下一个时间步长内的计算。
因为在每一个时间步开时,fluent 都会进行初始化。
在单个时间步内,它实际是按照稳态进行计算的。
time step size的设定是根据你的计算需要,一般是你的特征长度(比如说管道的长度)除于特征速度(比如平均速度)的值再小一到两个量级即可,如果你的time stip size太大,计算会提示你的,改小即可。
number of time steps是这样设定的:number of time steps X time step size=实际时间积累。
比如说,你计算一个射流,你需要计算到1秒时候的情况,那么(number of time steps)=1秒/(time step size)。
continuity不收敛的问题(1)连续性方程不收敛是怎么回事?在计算过程中其它指数都收敛了,就continuity不收敛是怎么回事。
这和fluent程序的求解方法SIMPLE有关。
SIMPLE根据连续方程推导出压力修正方法求解压力。
由于连续方程中流场耦合项被过渡简化,使得压力修正方程不能准确反映流场的变化,从而导致该方程收敛缓慢。
你可以试验SIMPLEC方法,应该会收敛快些。
在计算模拟中,continuity总不收敛,除了加密网格,还有别的办法吗?别的条件都已经收敛了,就差它自己了,还有收敛的标准是什么?是不是到了一定的尺度就能收敛了,比如10-e5具体的数量级就收敛了continuity是质量残差,具体是表示本次计算结果与上次计算结果的差别,如果别的条件收敛了,就差它。
可以点report,打开里面FLUX选项,算出进口与出口的质量流量差,看它是否小于0.5%.如果小于,可以判断它收敛.(2) fluent残差曲线图中continuity是什么含义?是质量守恒方程的反映,也就是连续性的残差。
这个收敛的快并不能说明你的计算就一定正确,还要看动量方程的迭代计算。
表示某次迭代与上一次迭代在所有cells积分的差值,continuty表示连续性方程的残差(3) 正在学习Fluent,模拟圆管内的流动,速度入口,出口outflow 运行后xy的速度很快就到1e-06了,但是continuity老是降不下去,维持在1e-00和1e-03之间,减小松弛因子好像也没什么变化大家有什么建议吗?你查看了流量是否平衡吗?在report->flux里面操作,mass flow rate,把所有进出口都选上,compute一下,看看nut flux是什么水平,如果它的值小于总进口流量的1%,并且其他检测量在继续迭代之后不会发生波动,也可以认为你的解是收敛的。
造成连续方程高残差不收敛的原因主要有以下几点:1.网格质量,主要可能是相邻单元的尺寸大小相差较大,它们的尺寸之比最好控制在1.2以内,不能超过1.4.2.离散格式及压力速度耦合方法,如果是结构网格,建议使用高阶格式,如2阶迎风格式等,如果是非结构网格,除pressure保持standard格式不变外,其他格式改用高阶格式;压力速度耦合关系,如果使用SIMPLE,SIMPLEC,PISO等segerated solver对联系方程收敛没有提高的话,可以尝试使用coupled solver。
continuity不收敛的问题(1)连续性方程不收敛是怎么回事?在计算过程中其它指数都收敛了,就continuity不收敛是怎么回事。
这和fluent程序的求解方法SIMPLE有关。
SIMPLE根据连续方程推导出压力修正方法求解压力。
由于连续方程中流场耦合项被过渡简化,使得压力修正方程不能准确反映流场的变化,从而导致该方程收敛缓慢。
你可以试验SIMPLEC方法,应该会收敛快些。
在计算模拟中,continuity总不收敛,除了加密网格,还有别的办法吗?别的条件都已经收敛了,就差它自己了,还有收敛的标准是什么?是不是到了一定的尺度就能收敛了,比如10-e5具体的数量级就收敛了continuity是质量残差,具体是表示本次计算结果与上次计算结果的差别,如果别的条件收敛了,就差它。
可以点report,打开里面FLUX选项,算出进口与出口的质量流量差,看它是否小于0.5%.如果小于,可以判断它收敛.(2) fluent残差曲线图中continuity是什么含义?是质量守恒方程的反映,也就是连续性的残差。
这个收敛的快并不能说明你的计算就一定正确,还要看动量方程的迭代计算。
表示某次迭代与上一次迭代在所有cells积分的差值,continuty表示连续性方程的残差(3) 正在学习Fluent,模拟圆管内的流动,速度入口,出口outflow 运行后xy的速度很快就到1e-06了,但是continuity老是降不下去,维持在1e-00和1e-03之间,减小松弛因子好像也没什么变化大家有什么建议吗?你查看了流量是否平衡吗?在report->flux里面操作,mass flow rate,把所有进出口都选上,compute一下,看看nut flux是什么水平,如果它的值小于总进口流量的1%,并且其他检测量在继续迭代之后不会发生波动,也可以认为你的解是收敛的。
造成连续方程高残差不收敛的原因主要有以下几点:1.网格质量,主要可能是相邻单元的尺寸大小相差较大,它们的尺寸之比最好控制在1.2以内,不能超过1.4.2.离散格式及压力速度耦合方法,如果是结构网格,建议使用高阶格式,如2阶迎风格式等,如果是非结构网格,除pressure保持standard格式不变外,其他格式改用高阶格式;压力速度耦合关系,如果使用SIMPLE,SIMPLEC,PISO等segerated solver对联系方程收敛没有提高的话,可以尝试使用coupled solver。
continuity不收敛的问题(1)连续性方程不收敛是怎么回事在计算过程中其它指数都收敛了,就continuity不收敛是怎么回事。
这和fluent程序的求解方法SIMPLE有关。
SIMPLE根据连续方程推导出压力修正方法求解压力。
由于连续方程中流场耦合项被过渡简化,使得压力修正方程不能准确反映流场的变化,从而导致该方程收敛缓慢。
你可以试验SIMPLEC方法,应该会收敛快些。
在计算模拟中,continuity总不收敛,除了加密网格,还有别的办法吗别的条件都已经收敛了,就差它自己了,还有收敛的标准是什么是不是到了一定的尺度就能收敛了,比如10-e5具体的数量级就收敛了continuity是质量残差,具体是表示本次计算结果与上次计算结果的差别,如果别的条件收敛了,就差它。
可以点report,打开里面FLUX选项,算出进口与出口的质量流量差,看它是否小于%.如果小于,可以判断它收敛.(2) fluent残差曲线图中continuity是什么含义是质量守恒方程的反映,也就是连续性的残差。
这个收敛的快并不能说明你的计算就一定正确,还要看动量方程的迭代计算。
表示某次迭代与上一次迭代在所有cells积分的差值,continuty表示连续性方程的残差~(3) 正在学习Fluent,模拟圆管内的流动,速度入口,出口outflow 运行后xy的速度很快就到1e-06了,但是continuity老是降不下去,维持在1e-00和1e-03之间,减小松弛因子好像也没什么变化大家有什么建议吗你查看了流量是否平衡吗在report->flux里面操作,mass flow rate,把所有进出口都选上,compute一下,看看nut flux是什么水平,如果它的值小于总进口流量的1%,并且其他检测量在继续迭代之后不会发生波动,也可以认为你的解是收敛的。
造成连续方程高残差不收敛的原因主要有以下几点:1.网格质量,主要可能是相邻单元的尺寸大小相差较大,它们的尺寸之比最好控制在以内,不能超过.2.离散格式及压力速度耦合方法,如果是结构网格,建议使用高阶格式,如2阶迎风格式等,如果是非结构网格,除pressure保持standard格式不变外,其他格式改用高阶格式;压力速度耦合关系,如果使用SIMPLE,SIMPLEC,PISO等segerated solver对联系方程收敛没有提高的话,可以尝试使用coupled solver。
Courant number:库朗数。
实际上是指时间步长和空间步长的相对关系,系统自动减小courant数,这种情况一般出现在存在尖锐外形的计算域,当局部的流速过大或者压差过大时出错,把局部的网格加密再试一下。
在FLUENT中,用courant number来调节计算的稳定性与收敛性。
一般来说,随着courant number的从小到大的变化,收敛速度逐渐加快,但是稳定性逐渐降低。
所以具体的问题,在计算的过程中,最好是把courant number从小开始设置,看看迭代残差的收敛情况,如果收敛速度较慢而且比较稳定的话,可以适当的增加courant number的大小,根据自己具体的问题,找出一个比较合适的courant number,让收敛速度能够足够的快,而且能够保持它的稳定性。
FLUENT计算开始迭代最好使用较小的库朗数,否则容易导致迭代发散,修改办法slove-controls-solution,修改courant Number 默认值为1,开始没有经验的改小点,比如0.01,然后逐渐加大。
Fluent中的离散格式SIMPLE与SIMPLEC比较在FLUENT中,可以使用标准SIMPLE算法和SIMPLEC(SIMPLE-Consistent)算法,默认是SIMPLE算法,但是对于许多问题如果使用SIMPLEC可能会得到更好的结果,尤其是可以应用增加的亚松驰迭代时,具体介绍如下:对于相对简单的问题(如:没有附加模型激活的层流流动),其收敛性已经被压力速度耦合所限制,你通常可以用SIMPLEC算法很快得到收敛解。
在SIMPLEC中,压力校正亚松驰因子通常设为1.0,它有助于收敛。
但是,在有些问题中,将压力校正松弛因子增加到1.0可能会导致不稳定。
对于这种情况,你需要使用更为保守的亚松驰或者使用SIMPLE算法。
对于包含湍流和/或附加物理模型的复杂流动,只要用压力速度耦合做限制,SIMPLEC会提高收敛性。
fluent瞬态计算的库朗数摘要:1. Fluent瞬态计算简介2.库朗数的概念及意义3.库朗数与瞬态计算的关系4.库朗数对瞬态计算结果的影响5.减小库朗数的方法正文:Fluent作为一款流体仿真软件,被广泛应用于工程领域。
瞬态计算是Fluent中一种重要的计算方法,它可以模拟流体在一段时间内的变化过程。
在这个过程中,库朗数(Courant Number)是一个关键参数,它影响着计算的稳定性和精度。
库朗数是一个无量纲数,表示流体在某一时刻的流速与网格尺寸之比。
它的定义为:Courant Number(库朗数)= 流速/ 网格尺寸在瞬态计算中,库朗数具有重要的意义。
合适的库朗数可以保证计算的稳定进行,同时提高计算结果的精度。
然而,如果库朗数过大或过小,都可能导致计算不稳定,甚至出现错误。
库朗数与瞬态计算的关系表现在以下几个方面:1.当库朗数较大时,流体在网格内的变化较快,这可能导致计算的不稳定。
此外,过大的库朗数还会使得计算结果失去意义,因为流体在如此短的时间内无法达到稳态。
2.当库朗数较小时,流体在网格内的变化较慢,计算稳定性得到提高。
但同时,计算速度会降低,导致仿真时间较长。
为了获得更准确的瞬态计算结果,我们需要在保证计算稳定的前提下,选择合适的库朗数。
以下是一些建议:1.减小网格尺寸:通过减小网格尺寸,可以降低库朗数,从而提高计算精度。
但同时要注意,过小的网格尺寸可能导致计算时间大幅增加。
2.增加流速:适当增加流速,可以降低库朗数。
但需注意,过大的流速可能会导致实际工程中的不合理。
3.选择适当的计算时间步长:减小时间步长,可以降低库朗数。
但过小的时间步长会导致计算速度降低。
总之,在Fluent瞬态计算中,库朗数是一个关键参数,它影响着计算的稳定性和精度。
通过合理调整网格尺寸、流速和时间步长,可以降低库朗数,从而获得更准确的计算结果。
1.pressure based 和density basedCoupled会同时求解所有的方程(质量守恒方程、动量守恒方程和能量守恒方程)而不是单个方程求解(方程互相分离)。
当速度和压力高度耦合(高压和高速)时应该使用耦合求解,但这样会需要较长的计算时间。
在耦合求解中,能量方程中总是包含组分扩散(Species Diffusion Term)项。
当使用segregated求解时,fluent允许指定固体材料的各项异性传导性。
求解方法主要根据要求解的模型来选择。
Segregated方法是基于压力,而coupled求解是基于密度的。
这样就使得segregated求解低速流动较好而coupled求解音速/超音速问题较好。
我不推荐使用coupled求解所有低于马赫数4的流动(直到基于压力的coupled求解方法出现在下一个fluent版本中)。
我曾经用segregated方法求解直到1.5马赫的问题,并且结果很好。
但是速度越高,需要的网格就越多(因为segregated趋向于“平滑”波动),所以必须多加注意划分网格。
Coupled方法使用默认设置时往往是比较稳定的。
Segregated方法常常对容许极根很敏感。
当使用segregated方法求解时,不要提高turbulent viscosity ration lim it(除非你根据过去的经验或者你的物理模型有很好的理由超过这个极限,但我从没有听说这样是比较理想的)。
不要给压力和温度极限限定的合理的范围(例如Plim its=Pstatic+/-(2*dynam ic pressure))来计算适当的温度。
1,pressure based 求解方法在求解不可压流体时,如果我们联立求解从动量方程和连续性方程离散得到的代数方程组,可以直接得到各速度分量及相应的压力值,但是要占用大量的计算内存,这一方法已可以在Fluent6.3中实现,所需内存为分离算法的1.5-2倍,同时Fluent6.3中的压力基耦合求解器也很适合求解带有激波的高速空气动力问题(可压流体),这是一个新变化。
fluent实用技巧和问题解答1 对于刚接触到FLUENT新手来说,面对铺天盖地的学习资料和令人难读的FLUENT help,如何学习才能在最短的时间内入门并掌握基本学习方法呢?回答:学习任何一个软件,对于每一个人来说,都存在入门的时期。
认真勤学是必须的,什么是最好的学习方法,我也不能妄加定论,在此,我愿意将我三年前入门FLUENT心得介绍一下,希望能给学习FLUENT的新手一点帮助。
由于当时我需要学习FLUENT来做毕业设计,老师给了我一本书,韩占忠的《FLUENT流体工程仿真计算实例与应用》,当然,学这本书之前必须要有两个条件,第一,具有流体力学的基础,第二,有FLUENT安装软件可以应用。
然后就照着书上二维的计算例子,一个例子,一个步骤地去学习,然后学习三维,再针对具体你所遇到的项目进行针对性的计算。
不能急于求成,从前处理器GAMBIT,到通过FLUENT进行仿真,再到后处理,如TECPLOT,进行循序渐进的学习,坚持,效果是非常显著的。
如果身边有懂得FLUENT的老师,那么遇到问题向老师请教是最有效的方法,碰到不懂的问题也可以上网或者查找相关书籍来得到答案。
另外我还有本《计算流体动力学分析》王福军的,两者结合起来学习效果更好。
个人观点:上述两本书也算不错,为Fluent在国内最早的书籍,但是作为入门书我推荐《Fluent技术基础及应用实例》清华大学出版社出版,王瑞金、张凯和王刚等人编著,个人觉得详略比较得当,容易上手。
2 CFD计算中涉及到的流体及流动的基本概念和术语:理想流体和粘性流体;牛顿流体和非牛顿流体;可压缩流体和不可压缩流体;层流和湍流;定常流动和非定常流动;亚音速与超音速流动;热传导和扩散等。
A.理想流体(Ideal Fluid)和粘性流体(Viscous Fluid):流体在静止时虽不能承受切应力,但在运动时,对相邻的两层流体间的相对运动,即相对滑动速度却是有抵抗的,这种抵抗力称为粘性应力。
" What is the difference between the time accurate solution of Navier-Stokes equations and the DNS solution? "I'm not sure I understand this question correctly, but as far as I am aware DNS (Direct Numerical Simulation) is defined as a time accurate solution of the Navier-Stokes equations.Perhaps you mean "What is the difference between laminar & turbulent DNS?" ? Believing this to be so from reading the rest of your message I wrote the following:When the DNS is of turbulence rather than a laminar flow the turbulence requires initialization in some way. The same is true of LES (LES is always turbulent, because laminar LES = DNS by definition). I have found little reported work on the proceedures used to accomplish this turbulence initialization.I can only speak for the LES code I use (and the generations of code that preceded it). The turbulence is initialized by setting an initial flow field that has a random fluctation velocity component added to the inital mean velocity.-----------------For example:U_initial_cell =U_initial_mean + (Random_number * U_initial_mean * 0.20)( Random_number has a value in the range -1 to +1 )This function sets the initial cell velocity to that of the initial_mean with a tolerance of 20% (i.e. + or - 20%). So if the U_initial_mean was 1.0 then the initial velocity of the cell could be anywhere between 0.8 and 1.2 depending on the Random_number (an intrinsic computer function).-----------------The value for initial fluctuation (20% etc) is a fairly arbitrary value just required to `kick-start' the turbulence. Once the simulation has been kick-started and run sufficiently long enough for the correct energy cascade to be observed (by monitoring k.e. of the flow) the statistics data from that point onward is o.k to be used for results. This accumulation of statistical data is one of the reasons why LES/DNS turbulent simulations require so much more time to run.Providing the same random_number is used on the same cells during initialization the computations of two DNS cases will be exactly* the same when all other conditions (boundary, geometry, etc) are equivalent.*exactly is defined as Phi(x,t)_simulation_A = Phi(x,t)_simulation_BIf different random_numbers are used then the flow solution would be expected to be slightly numerically different from a previous run, but statistically the same. This would be similar to the case where two experimental turbulent simulations in a wind tunnel do not have exactly* the same flow field, but are expected to be statistically the same and have the same coherent structures in the flow.LES, or turbulent DNS is like journeying along a road. The intial fluctations imposed pre-determine which exact roads you will travel on, and the other boundary conditions determine the general direction in which you will be heading. In industrial problems the concern is with the direction you are heading,N,E,S, or West, and not so much if you are on a particular road at a particular time, e.g. walking by 43 Accacia Road at 5pm.This idea may be seen in the definition of turblence by Hinze (1959) "...so that statistically distinct average values can be discerned." For if Taylor & Von Karman's 1937 definition was taken literally CFD shouldn't exist!The grid size of LES should be small enough. But it is not easy to get the exact size of the smallest cells. Some people use y+, other people use Kolmogorov scales,etc. As you know, the basic assumption is that the flow with SGS is isotropic in the case of using Smagorinsky model.Based on my experience, not only the size of smallest grids but also there are many other facts to be considered in LES. Computational domain size, cell cluster, boundary conditions, wall treatment, etc.So if you want to do LES, some compromise would be necessary. At first, please use reasonable size of computational domain, number of cells and run the problem in your computer. If the result is not accurate enough, then increase the resolution. But even though the resolution is not enough (in the LES viewpoint), you may get satisfactory results.Good luckIdeally, while doing LES you want to have a mesh which resolves all the anisotropic scales leaving only the isotropic scales to be modeled. The modeling of the isotropic scales is similar to the RANS approach. In reality, it is not possible to satisfy all the mesh resolution requiremnts all the time with LES. For the question whether a coarse mesh LES gives a good solution, it depends on the level of accuracy you are lookiing at. This is where your engineering intuition should provide you the answer.。
FLUENT中courant
FLUENT中courant number FLUENT中courant number FLUENT计算开始迭代
最好使用较小的库朗数,否则容易导致迭代发散? 修改办法slove -controls-solution,修改courant Number 默认值为1,开始没有经验的改小点,比如0.01,然后逐渐加大,经验丰富的同仁自己决定court 数只有选
择耦合计算时才用到!FLUENT中courant number 是在耦合求解的时候才
出现的。
正确的调整,可以更好地加速收敛和解的增强稳定性。
courant number 实际上是指时间步长和空间步长的相对关系,系统自动减小courant 数,这种情况一般出
现在存在尖锐外形的计算域,当局部的流速过大或者压差过大时出错,把局部的网格
加密再试一下。
在fluent中,用courant number 来调节计算的稳定性与收敛性。
一般来说,随着courantnumber 的从小到大的变化,收敛速度逐渐加快,但是稳定性逐渐降低。
所以具体的问题,在计算的过程中,最好是把ourant number 从小开始设置,看看迭代残差的收敛情况,如果收敛速度
较慢而且比较稳定的话,可以适当的增加courant number 的大小,根据自己具体的问题,找出一个比较合适的courant number,让收敛速度能够足够的快,而且能够保持
它的稳定性。
Courant 数与CFL 准则息息相关,它关联时间步长,空间步长和特征值,因此对数值解的收敛性很重要!建议阁下去翻一翻计算流体力学的入门教材!有一本刘导治编的《计算流体力学基础》,开篇
就讲解的很详细。
FLUENT 中的时间步长是由库朗数定义的,而库朗数是由线性稳定性理论定义的一个范围,在这个范围内计算格式是稳定的。
给定一个库朗数,就可以相应地得到一个时间步长。
库朗数越大,时间步长就越长,计算收敛速度就越快,因此在计算中库朗数都在允许的范围内尽量取最大值。
在显式格式和隐式格式中库朗数的取值范围差别很大,在显式格式中库朗数的取值范围很小,隐式格式则宽松得多。
在FLUENT 使用的多步格式中,可以认为库朗数在小于2.5 的范围内是稳定的。
由于控制方程是非线性的,所以库朗数的取值一般达不到线性稳定性分析得到的极限值。
在耦合算法的显式格式中,系统设定的缺省值为1.0,在某些二维问题中可以适当放大这个值,但是不要超过2.0。
如果计算模型的设定是正确的,并且进行了初始化,而计算中却发现残差快速上升,通常说明库朗数的值可能需要降低。
另外,在计算的开始阶段,因为初始流场相对粗糙,所以可以适当降低库朗数,比如降低到0.1-0.5 左右,然后在计算相对稳定后再适当调高库朗数。
在线性稳定性理论表明FLUENT 中使用Gauss-Seidel 格式是无条件稳定的,但是由于控制方程非线性的影响,实际上库朗数在这种情况下也不可能取为无限大。
在隐式格式中,库朗数的缺省值为5.0,在很多情况下可以将缺省值改为10、20、100 甚至更高,具体取多高主要取决于问题的复杂程度。
与显式格式一样,在计算开始的时候可以把库朗数取得小一些,而在经过几个迭代步后可以将库朗数再调高。
三十九、Fluent时间步长的估算与库朗数1. 库朗数1.1 概念理解什么是库朗数?库朗数是用来衡量数值计算稳定性的一个物理量,也被称为CFL数、CFL准则在流体力学仿真软件中,都能找到库朗数(Courant number)的解释和定义。
在CFX的帮助文件里给出了一个比较直观的公式来定义一维网格的库朗数(Courant Number):其中,u为流体速度;Δt为时间步长;Δx为网格尺寸;形象点理解,u*Δt表示流体在Δt时间内流动的距离,除以网格尺寸,则表示流体在一个时间步长内流过了多少个网格。
显然一个时间步长内流过的网格越多,计算就越快,但收敛性就会越差。
类似于人赛跑,跑得快固然很快能跑完,但也可能中间摔跟头。
库朗数主要受流速u、时间步长Δt和网格尺寸Δx的影响。
而流速u和网格尺寸Δx主要由实际工况决定,不能人为控制,因此主要由时间步长Δt来控制库朗数。
1.2 取值标准一般来说,考虑收敛性的话,库朗数肯定越低越好,但相应的时间步长也会很小,收敛速度变慢。
一般取值在1~10之间比较合适,当然要根据实际情况,如收敛性比较差,可适当降低这个数值。
收敛性比较好,收敛速度慢,可适当增加库朗数。
Fluent帮助文档认为对于大多数问题,库朗数设置为1能够满足要求。
实际上,Fluent很多案例的库朗数都是50,这主要是选择了隐式算法的原因1.3 库朗数于亚松驰因子亚松驰因子under-relaxation factor单元格内物理量φ取决于旧值φold、变化量△φ和亚松弛因子α。
也就是说亚松弛因子是一个调节物理量变化的系数。
基于压力的耦合算法中库朗数可用亚松驰因子表示出来:2. 库朗数的设置2.1 基于密度求解器Density-based显示格式Explicit Formulation默认是1,对于2维问题可适当增加库朗数,但不要超过2.0。
如果设置没有问题,但是计算发散了,或者残差上升得非常快,就必须降低 Courant number,可能需要降低到0.5,甚至0.1。
" What is the difference between the time accurate solution of Navier-Stokes equations and the DNS solution? "I'm not sure I understand this question correctly, but as far as I am aware DNS (Direct Numerical Simulation) is defined as a time accurate solution of the Navier-Stokes equations.Perhaps you mean "What is the difference between laminar & turbulent DNS?" ? Believing this to be so from reading the rest of your message I wrote the following:When the DNS is of turbulence rather than a laminar flow the turbulence requires initialization in some way. The same is true of LES (LES is always turbulent, because laminar LES = DNS by definition). I have found little reported work on the proceedures used to accomplish this turbulence initialization.I can only speak for the LES code I use (and the generations of code that preceded it). The turbulence is initialized by setting an initial flow field that has a random fluctation velocity component added to the inital mean velocity.-----------------For example:U_initial_cell =U_initial_mean + (Random_number * U_initial_mean * 0.20)( Random_number has a value in the range -1 to +1 )This function sets the initial cell velocity to that of the initial_mean with a tolerance of 20% (i.e. + or - 20%). So if the U_initial_mean was 1.0 then the initial velocity of the cell could be anywhere between 0.8 and 1.2 depending on the Random_number (an intrinsic computer function).-----------------The value for initial fluctuation (20% etc) is a fairly arbitrary value just required to `kick-start' the turbulence. Once the simulation has been kick-started and run sufficiently long enough for the correct energy cascade to be observed (by monitoring k.e. of the flow) the statistics data from that point onward is o.k to be used for results. This accumulation of statistical data is one of the reasons why LES/DNS turbulent simulations require so much more time to run.Providing the same random_number is used on the same cells during initialization the computations of two DNS cases will be exactly* the same when all other conditions (boundary, geometry, etc) are equivalent.*exactly is defined as Phi(x,t)_simulation_A = Phi(x,t)_simulation_BIf different random_numbers are used then the flow solution would be expected to be slightly numerically different from a previous run, but statistically the same. This would be similar to the case where two experimental turbulent simulations in a wind tunnel do not have exactly* the same flow field, but are expected to be statistically the same and have the same coherent structures in the flow.LES, or turbulent DNS is like journeying along a road. The intial fluctations imposed pre-determine which exact roads you will travel on, and the other boundary conditions determine the general direction in which you will be heading. In industrial problems the concern is with the direction you are heading,N,E,S, or West, and not so much if you are on a particular road at a particular time, e.g. walking by 43 Accacia Road at 5pm.This idea may be seen in the definition of turblence by Hinze (1959) "...so that statistically distinct average values can be discerned." For if Taylor & Von Karman's 1937 definition was taken literally CFD shouldn't exist!The grid size of LES should be small enough. But it is not easy to get the exact size of the smallest cells. Some people use y+, other people use Kolmogorov scales,etc. As you know, the basic assumption is that the flow with SGS is isotropic in the case of using Smagorinsky model.Based on my experience, not only the size of smallest grids but also there are many other facts to be considered in LES. Computational domain size, cell cluster, boundary conditions, wall treatment, etc.So if you want to do LES, some compromise would be necessary. At first, please use reasonable size of computational domain, number of cells and run the problem in your computer. If the result is not accurate enough, then increase the resolution. But even though the resolution is not enough (in the LES viewpoint), you may get satisfactory results.Good luckIdeally, while doing LES you want to have a mesh which resolves all the anisotropic scales leaving only the isotropic scales to be modeled. The modeling of the isotropic scales is similar to the RANS approach. In reality, it is not possible to satisfy all the mesh resolution requiremnts all the time with LES. For the question whether a coarse mesh LES gives a good solution, it depends on the level of accuracy you are lookiing at. This is where your engineering intuition should provide you the answer.。