转载自:http://blog.sina.com.cn/s/blog_4ada3be301011rjp.html

用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飙升过大的不能继续进行下去的问题。

有网友建议:http://www.efluid.com.cn/dvbbs/dispbbs.asp?boardid=61&Id=3782

单元最小长度除于流场平均流速,不过这个值可能很小,你可以以这个值为基准进行调节,一开始可以取大些,如果没有问题,可以再放大些,这样可以缩短计算时间。

若按这种方法,计算下面这个例子: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,让收敛速度能够足够的快,而且能够保持它的稳定性。

时间步长与准确性

摘自《数值计算与工程仿真》第一期 作者gim

1 、在不计模型误差,而且计算稳定的前提下,数值计算的时间步长的选取存在一个恰当值,过大或过小都会影响模拟结果的准确性。

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个流动循环周期才可能得到非定常的稳定流动周期状态。

Fluent 时间步长【转载】的更多相关文章

  1. EFDC_EE如何设置自适应时间步长

    下图是EFDC_EE的运行时间参数的设置界面,在时间步长的设置中,如果“Safety Factor”参数,设置为非0,即可实现自适应时间步长的设置,但要注意如下几点: 1.“Safety Factor ...

  2. 【linux 命令】:查看系统开机,关机时间【转载】

    转载原文:http://www.cnblogs.com/kerrycode/p/3759395.html 看Linux开机关机时间的方法(非常全面) 1: who 命令查看 who -b 查看最后一次 ...

  3. VC++ 实现修改文件创建、访问、修改时间属性(转载)

    转载:http://sunnysab.blog.163.com/blog/static/18037500920134221295425/ struct _FILETIME { //结构体定义 DWOR ...

  4. python3之日期和时间(转载)

    转载:https://www.cnblogs.com/zhangxinqi/p/7687862.html a = datetime.datetime.now() time.sleep(10) b = ...

  5. Java fluent风格(转载)

    转载:java Fluent风格 一.我们先写一个通常的,即不使用fluent风格 1.实体类 package com.xbq.demo.stu; /** * @ClassName: Student ...

  6. C++中如何计算程序运行的时间 (转载)

    转载地址:http://blog.csdn.net/wuxuguang123/article/details/8130081 一 个程序的功能通常有很多种方法来实现,怎么样的程序才算得上最优呢?举个例 ...

  7. MongoDB executionStats 详细分步查询计划与分步时间(转载)

    mongodb性能分析方法:explain() 为了演示的效果,我们先来创建一个有200万个文档的记录.(我自己的电脑耗了15分钟左右插入完成.如果你想插更多的文档也没问题,只要有耐心等就可以了.) ...

  8. 如何设置ASP.NET页面的运行超时时间 (转载)

    全局超时时间 服务器上如果有多个网站,希望统一设置一下超时时间,则需要设置 Machine.config 文件中的 ExecutionTimeout 属性值. Machine.config 文件位于 ...

  9. Js时间格式[转载]

    var myDate = new Date();myDate.getYear();        //获取当前年份(2位)myDate.getFullYear();    //获取完整的年份(4位,1 ...

随机推荐

  1. 如何理解H264 编码

    H264 结构 https://blog.csdn.net/andywang201001/article/details/80274886 H264 源码  https://www.cnblogs.c ...

  2. iOS - 处理通话或录音状态中界面错乱的重布局

    iphone设备在通话或录音状态中,状态栏下移了20个像素,这时controller的view的frame的高度就减少了20个像素,所以我们需要根据view的frame去布局子view.但是是,当状态 ...

  3. 高德地图模糊搜索地址(elementUI)

    首先引入AMap: 1.在index.html引入AMap <script type="text/javascript" src="http://webapi.am ...

  4. Authorization Bypass in RSA NetWitness

    https://www.cnblogs.com/iAmSoScArEd/ SEC Consult Vulnerability Lab Security Advisory < 20190515-0 ...

  5. ios数组倒序

    比如有一个数组: NSArray *arr = @["]; 倒过来排序: arr = [[arr reverseObjectEnumerator] allObjects]; NSMutabl ...

  6. 查看安装的centos的操作系统版本

    cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core)

  7. 【转】provisional headers are shown 知多少

    前言 请求里面provisional headers are shown(显示临时报头) 出现的情况很多,但原因是多样的.如果你去直接匹配关键字搜索,得到的结果可能与你自己的情况大相径庭.网上大部分都 ...

  8. mysql双主模式方案

    MySQL双主(主主)架构方案   在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果 ...

  9. linux 安装MySql 5.7.20 操作步骤【亲测】

    一. #卸载系统自带的Mariadb[root@master ~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64[root@ ...

  10. 多任务4---greenlet完成多任务

    同yield一样 ,单线程,来回切换完成多任务,需要安装greenlet插件 pip install greenlet 代码: from greenlet import greenlet import ...