fluent吧 关注:19,177贴子:98,013
  • 16回复贴,共1

关于瞬态中时间步长观念的纠正

只看楼主收藏回复

这篇本来是我发在个人知乎上的文章,现做了一些局部文字修改后,重新发出来
很多fluent初学者,甚至一些相当有经验的使用者,在瞬态分析中,在时间步长上弄不清楚,经常遇到报错,什么浮点溢出等问题,大多数原因是时间步长太大的原因。再具体说,就是时间子步太大了,为什么时间子步会设置的很大,我分析原因 ,主要是以下两种,第一是受到视频教程的误导,因为视频教程为了演示需要,工况很简单,所以时间子步设置的很大通常在0.01以内,不可能跑了三天两夜完成后,再回来讲解的话,这样时间成本太高了,时间就是金钱,还有合理的时间子步是先调试出来的,这个过程也不可能播放给你,如同一场晚会,经过太过的彩排,彩排过程是不可能播放出来的,最关键的是,这个需要调试的过程,任何视频教程是不会说的。
瞬态分析中,时间步长就是将这个所要计算物理时间段内的时间,离散化成很多细小的时间段,每个时间子步内相当于一个稳态分析。那么稳态分析大家都知道,要收敛,同样在瞬态分析中,每个时间步长内要收敛,软件默认迭代20次,所以,要求在这20次内要收敛。收敛的标准,按软件的默认标准1e-3,通常工况的复杂性,20步内很难收敛,为了实现这个目标,只能将时间步长再减小,具体有多小没人能知道,只能不断的试,调试出来为止,所以正式求解之前,要进行若干步(比如十步)试算,如果发散了或者没收敛,重新初始化再把时间子步改小,重新运算,反复这个过程,直到20步内收敛为止。这个时间步长内收敛的话,会自动跳到下个时间子步进行运算。假设每个时间子步没有收敛,也能正常运算,那么精度误差积累会越来越大甚至到最后就报错了,如果增加每个时间子步的迭代步数,不减小时间步长,那是不科学的。只能在调试过程中,可以这样操作,正式运算时,建议最大不能超过30步,总之要通过减小时间步长来达到收敛,而不是增加时间子步内的迭代步数来实现这个目的。
时间子步与网格有很大的关系,网格越小,时间子步就要越小,还与边界条件有关系,边界条件越剧烈,时间子步就要越小,否则就发散报错,现实中工况是复杂的,特别是动网格之内,运算过程中,时间子步是变化的,可能前面一段时间,稍大的时间子步就可以收敛,后面流场剧烈的时候,时间子步要改小,否则立即发散,还有无论你把时间子步设置的有多小都无法收敛,这时候就要重新调试了,尝试从其他方面解决了。
总之,瞬态的计算量非常大,因为时间子步小的原因,所以尽可能把瞬态转为稳态进行分析,尽可能简化方案模型,开始用较粗糙的网格等多种手段减小计算量,而不是通过增大时间步长来减小计算量,如果这个方案是可行的话,那服务器还有采购的必要吗,直接把时间步长改大,一台办公笔记本就能仿真出计算整个宇宙。
下一篇再去介绍,瞬态计算过程中,经常遇到残差曲线突然上升甚至发散的原因


IP属地:安徽1楼2024-11-25 10:00回复
    学到了


    IP属地:辽宁来自Android客户端2楼2024-11-25 10:31
    回复
      2025-08-19 23:05:20
      广告
      不感兴趣
      开通SVIP免广告
      确实


      IP属地:江苏来自Android客户端3楼2024-11-25 13:35
      回复
        为什么不能超过30,为什么增大子步数不科学?


        IP属地:四川来自Android客户端4楼2024-11-25 17:18
        收起回复
          之前动网格做瞬态分析,就是死活不收敛


          IP属地:河南来自Android客户端5楼2024-11-26 18:45
          回复
            只要设置正确那就是时间步长太大的原因了


            IP属地:安徽来自iPhone客户端6楼2024-11-26 21:38
            回复
              每次瞬态发散,或者动网格负体积问题等,我好心提示先尝试一下时间子步改的足够小试试,都不愿意接受,直接说不能改小,否则计算时间太长了,或者说改小过了还不行


              IP属地:安徽来自iPhone客户端7楼2024-12-09 07:50
              回复
                谢谢UP!!


                IP属地:甘肃8楼2024-12-16 09:27
                回复
                  2025-08-19 22:59:20
                  广告
                  不感兴趣
                  开通SVIP免广告
                  想要请教一下,我现在改小时间步长到1e-9,没有报错负体积了,但是总时间太短了,根本看不出变化来了,计算时间也太长了,请问有什么其他的方法吗


                  IP属地:山东来自Android客户端9楼2024-12-16 23:59
                  收起回复
                    请教一下大佬,为什么我跑垂直轴风力机的时候,在瞬态中,我要检测风轮的力矩然后求功率,为什么刚开始是正的(很大),然后一直有正有负,最好跑了一个负的,是不是我跑错了还是怎么回事?
                    而且我之前有个人给我说取一圈的力矩值,然后求平均值,这种是对不对?求大佬解答


                    IP属地:河南来自iPhone客户端10楼2024-12-17 10:18
                    回复
                      纯仿真软件方面看,每个时间步长内有没有收敛?


                      IP属地:安徽来自iPhone客户端11楼2024-12-17 12:49
                      回复
                        ‘时间子步与网格有很大的关系,网格越小,时间子步就要越小’,我也发现了,但是这样就没法进行网格无关性验证了啊,我一增加网格数,就需要减小步长,这样没法控制变量


                        IP属地:河南12楼2025-05-12 15:03
                        收起回复
                          楼主,我在做一个风扇噪音仿真,用fluent mesh做的网格,spaceclaim共节点,在fluent中拆分出来做正常交界面设计,稳态计算正常,但是切换到瞬态,如果采用ddes模型,有时报左手面警告,然后计算发散,改小时间子步,也是在计算一定步数后发散,改sas或les模型也是一样的问题,能看出来大概原因嘛?现在只能用稳态结果,使用FWH gutin noise模型,看能不能先弄出一组叶片表面声源的噪音。


                          IP属地:广东13楼2025-07-26 11:35
                          收起回复