fluent中max iteration pertime step、time step size、number of time steps的设定
来源于:https://zhuanlan.zhihu.com/p/365041479

1.最大迭代数的设定

用FLUENT计算非稳态问题,是不是在计算时必须保证在每个时间步timestep里都要收敛才行,否则计算结果就不对呢?也就是说,在iteration选项里,max iteration pertime step设为一个值,比如500,就是如果500次迭代后仍未收敛,进入下一步迭代,那对结果会有什么影响。

对于隐式非定常格式,原则上,每个时间步长内必须保证结果收敛。在fluent 的帮助中就有这样的话:

“对于不可压流动,在每个时间步内,不可压解必须迭代直至收敛。”

另外,我们回归到fluent内部计算的本源,它实质就是一种差分算法,通过不断逼近来获得真实解,这样我们就不难理解为什么在每个时间步长内需要收敛了。max iteration pertime step 设定的是最大时间步,在单一步长内,如果结果已经收敛,则会自动跳至下一时间进行计算。所以其设定要纵观全局。但对于周期性流动,这种收敛性的要求就相对松动一些。不过你需要多计算几个周期,等计算结果达到对时间的周期状态后,再对结果进行储存。

对于显式非定常格式,在Fluent帮助中这样说:

“一定记住,对于显式非定常格式,每一个迭代就是一个时间步。”

如果每个时间步内结果没有得到收敛,则很有可能你所得到的结果是不真实的,但是一个时间步内的不真实性应该不会影响到下一个时间步长内的计算。因为在每一个时间步开时,fluent 都会进行初始化。在单个时间步内,它实际是按照稳态进行计算的。

2.时间步长

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,让收敛速度能够足够的快,而且能够保持它的稳定性。

时间步长与准确性

摘自《数值计算与工程仿真》第一期 作者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个流动循环周期才可能得到非定常的稳定流动周期状态。

非稳态计算时间步和最大迭代数的设定(分享)相关推荐

  1. android设置加密步长,非稳态计算时Fluent 时间步长如何设置(转载)

    用FLUENT计算非稳态问题,是不是在计算时必须保证在每个时间步timestep里都要收敛才行,否则计算结果就不对呢?也就是说,在iteration选项里,max iteration pertime ...

  2. 【Fluent】导出瞬态计算过程每一秒或每一个时间步的各个坐标/节点的物理量-温度场-压力场,TUI命令/file/export和/file/transient-export

    一.功能需求 如果你进行的是稳态计算,你需要将物理场中的每一个节点上的物理量数据(例如温度.压力)导出成类似txt或Excel表格的文件. 文件里的内容形式是:每一行中有节点ID.节点的XYZ坐标.物 ...

  3. 降低百倍时间步,精度媲美传统神经网络:上交等机构提出ANN-SNN转换框架

    ©作者 | 刘方鑫,赵文博,蒋力 来源 | 机器之心 脉冲神经网络(Spiking Neural Network, SNN)被誉为第三代的神经网络,以其丰富的时空领域的神经动力学特性.多样的编码机制. ...

  4. 源码学习之LAMMPS的一个时间步是如何工作的

    从本推文开始将开始学习LAMMPS的源码.这部分我也不太了解,所以一边学一边分享.学习源码的最好方法当然后阅读手册的PROGRAMMER GUIDE.为了督促自己学习,我首先将PROGRAMMER G ...

  5. matlab找到非定常涡流的每个时间步的涡的涡核位置和这个涡环量(以及重叠网格扑翼流场的涡动力学参数求解的解决方案)

    如果提前已经算好fluent每个时间步的cas和dat文件,那么可以用jou文件导出每个节点的u,v,dudy,dvdx,overset-cell-type.fluent中只能直接导出涡量幅值,想要计 ...

  6. LTS-局部时间步,自动调节步长技术

    在查看interFoam求解器时,会发现其中引入了LTS: if (LTS){#include "setRDeltaT.H"} 那么它的含义和功能是什么呢? LTS(locall ...

  7. C语言 · 计算时间

    算法提高 计算时间   时间限制:1.0s   内存限制:512.0MB 问题描述 给定一个t,将t秒转化为HH:MM:SS的形式,表示HH小时MM分钟SS秒.HH,MM,SS均是两位数,如果小于10 ...

  8. [MATLAB粒子模拟笔记]初始化半个时间步的位置

    function particle = position(particle,prm) % Update the position in one stepslx = prm.slx p = partic ...

  9. mysql计算秒_如何在MySQL中基于秒计算时间?

    让我们首先创建一个表-mysql> create table DemoTable ( Logouttime time ); 使用插入命令在表中插入一些记录-mysql> insert in ...

最新文章

  1. 梯度下降原理及Python实现
  2. 《R语言实战》第3章
  3. 【火爆】微软的Holographic会给我们带来什么?Imagine porn with this...
  4. 前端学习资料(书籍和视频)
  5. ASP.NET 中执行 URL 重写
  6. Unity3D基础11:Rigidbody物理类组件
  7. R语言使用order函数对dataframe数据进行排序、基于单个字段(变量)进行升序排序(ASCENDING)
  8. python读取csv最后一行_用Python读取CSV文件行的最后一个非空单元格
  9. 【Python数据分析与处理 实训01】 ---- 菜品订单信息分析(数据了解及简单统计)
  10. cbrt函数_cbrt()函数以及C ++中的示例
  11. HMS Core AR Engine 2D图片/3D物体跟踪技术 助力打造更智能AR交互体验
  12. 正弦和余弦(sin和cos)
  13. 苹果手机录音怎么批量导出?才知道原来可以这样操作
  14. 基于无线Mesh网络OLSR路由协议的MATLAB仿真
  15. 新颖的自我介绍_非常有创意的自我介绍
  16. 如何使用NFS发布共享资源,以及如何访问NFS共享资源
  17. 基于AnimeGAN模型生成宫崎骏风格动漫照片
  18. plsql批量执行SQL脚本 command window执行
  19. python when函数_python函数练习
  20. 如何申请163邮箱账号,中国邮箱排名深度解析!

热门文章

  1. 读js高级程序设计中有感
  2. 带你了解SN74LVC245ADWR
  3. html怎么显示base64,如何在HTML中显示Base64图像?
  4. WPS文字编辑区鼠标不能显示
  5. JVM学习笔记之四 四种引用和垃圾回收的两次标记
  6. 【SAP】公司代码与采购组织的分配关系
  7. 打通网络营销的任督二脉
  8. input 输入事件防抖
  9. SAP客户端多语言设置
  10. try to re connect to a new server ,server is not appointed,will choose a random server