• 三十九、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。但如果收敛性很好,就可以增加 Courant number。

    隐式格式Implicit Formulation

    默认库朗数为 5.0。通常可以 增加到 10、20、100 甚至更高。与显示一样可根据收敛情况进行更改。

    注:

    1.基于密度求解器

    General界面可选择求解器

    Solution Methods界面可设置是显式格式还是隐式格式

    Solution Controls可设置库朗数

    2.时间步长的设置

    由前面库朗数的定义可知,时间步长和库朗数相互决定,因此设置了库朗数,那么时间步长就确定了。

    无论是基于什么求解器,Fluent如果可以设置库朗数,那么软件会自动计算时间步长,尽管在Run Calculation界面仍然有Time Step Size栏,仍然可以输入数值,但这栏是不起任何作用的。既不会对计算收敛性起作用,也不代表真正的流动时间,这一点要千万注意。

    实际测试了一下,确实如此,更改库朗数会改变收敛性和流动时间,而Time Step Size不起作用。

    2.2 基于压力求解器Pressure-based

    使用基于压力求解器,速度压力耦合pressure-velocity scheme 选择Coupled,在 Solution Controls界面会出现Flow Courant number

    默认值是200,Fluent帮助文档中多设置为50,在实际计算过程中可减小到4。然后等计算比较稳定时,再增加库朗数。

    3. 时间步长

    上面我们用了非常多的篇幅介绍了库朗数及库朗数的设置,但是在实际的设置中,我们会发现很少能够在设置中看到库朗数选项,更别提设置库朗数了。

    这主要是因为大多数的算例都是基于压力求解器的,因此无法直接设置库朗数。

    如果设置中不出现库朗数,那要如何间接设置库朗数呢??  设置时间步长!!!

    通过上面的定义可知,库朗数与时间步长存在直接的关系,

    对上式进行变形,可以得到时间步长为

    流体的流速u,最小网格尺寸Δx都能大致估算出来,Courant number一般设置在1-10之间,可取5。由此我们可以大致估算出时间步长。

    如:流速u=2.0m/s,最小网格尺寸Δx=0.0002m,CFL=5,可以计算出时间步长Δt=5e-4s

    上面的计算过程很容易通过编程实现,因此我写了个图形界面小程序,直接输入数值就可以得到时间步长。

    我把这个小程序放群文件里,想要的小伙伴可加群获取,或者公众号输入“时间步长”关键词获取

    但要注意,上式只是库朗数在一维网格上的定义,实际的定义要复杂很多,因此只能用来估算。

     原文链接:

     三十九、Fluent时间步长的估算与库朗数形象点理解,u*Δt表示流体在Δt时间内流动的距离,除以网格尺寸,则表示流体在一个时间步长内流过了多少个网格。显然一个时间步长内流过的网格越多,计算就越快,但收敛性就会越差。https://mp.weixin.qq.com/s/aep0ZTL6ZhjR2XqNmipuKg

    以上案例的cas和dat文件均可以免费获取,需要的朋友,只需要点赞关注收藏一键三连后私信我即可哦 
     

  • 相关阅读:
    为什么选择Python作为AI开发语言
    使用applescript自动化trilium的数学公式环境
    Android 自定义View之圆形进度条
    【41. 最短编辑距离(线性DP)】
    聚已内酯偶联小鼠血清白蛋白/小麦麦清白蛋白;PCL-MSA/RSA(试用说明)
    计算机网络五层协议的体系结构
    栈和队列的概念及实现
    【百战机器学习】- 数学基础
    咖啡技术培训:9款网红咖啡制作配方合集,简单快速
    web前端期末大作业——用HTML+CSS做一个漂亮简单的电影主题网站
  • 原文地址:https://blog.csdn.net/weixin_45560646/article/details/126922667