二十九、​Fluent瞬态时间步长与迭代步数的讨论

稳态与瞬态是流体计算中的关键概念,稳态用于描述时间不变的流动状态,而瞬态则关注流动随时间的变化。在Fluent软件中,瞬态计算涉及NumberofTimeSteps、TimeStepSize和MaxIterations/TimeStep等参数设置。MaxIterations/TimeStep限制每个时间步的迭代次数,NumberofTimeSteps定义总的流动时间步数,而TimeStepSize决定时间间隔。设置时,timestepsize通常基于特征长度和速度,保持Iterations在5-10次为宜。对于初学者,可使用adaptive时间步长控制以自动调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.稳态与瞬态 

稳态与瞬态是流体计算为了方便而提出的概念,实际上任何流动、传热问题都应该是瞬态的,因为这些现象总是在时间维度上进行的。

但是实际上部分流动、传热问题在一定的时间之后,不再随时间而变化,达到了稳定的状态,当我们只考虑稳定之后的状态时,就可以用稳态进行计算;而如果我们想要研究达到稳态之前的状态,就必须使用瞬态进行计算。

那么是不是所有的流动问题最终都能达到瞬态呢?我的理解并不是,比如湍流问题,由于它的随机性,导致湍流过程总是随时间呈现不同状态。但这并不是说湍流不能用稳态模拟,实际上很多湍流都可以使用稳态进行模拟,因为我们只需要关注它宏观上的规律性。

再比如一杯水蒸发,显然杯中的水最终会蒸发完,如果我们想要研究水的蒸发过程就必须使用瞬态。

2.瞬态设置

那么瞬态计算需要注意什么呢?

Fluent软件瞬态计算中有三个比较重要的设置:Number of Time Steps、Time Step Size和Max Iterations/Time Step

3.Max Iterations/Time Step

首先,计算 unsteady flow 的时候,fluent 是从前一个时间算到下一个时间的。

从这个意思上来就认为是“time step”,一个时间接一个时间,而每个时间就相当于一个准稳态,因此计算的时候需要 Max Iterations per Time Step,这个就像你在计算稳态时候需要设置的一样,在达到 iteration 次数之前收敛就完成这个 time step,否则就算到所规定的次数。

4.Number of Time Steps

对稳态,Number of iterations表示迭代次数,一个迭代次数就会将所有的网格遍历一遍,完成一次循环。刚开始给网格的值可能不收敛,甚至和收敛网格相差很大,所以需要多次迭代。

而对非稳态来说,需要定义流动时间。一共流动多少秒,由此需要知道时间间隔(time step size),在这个时间间隔内,认为是稳态流动。

Max Iterations per Time Step是这个时间间隔最大的迭代次数,也就是说在这个时间间隔内最多迭代完这些步,同时当迭代完这些步数之后,流动就进行了这么多的时间。

Number of time steps表示有多少个这样的时间间隔。所以流动总时间应该是Number of time steps与time step size相乘,由于每个时间间隔最多迭代Max Iterations per Time Step,所以最大的迭代步数应该是Max Iterations per Time Step乘以Number of time steps。

所以当时间间隔取的越小,模拟应该越精确。但是要模拟相同的时间,Number of time steps取的要更大,总迭代次数也要更大。

5. Time step size 设置依据

有关 time step size 的设定。既然是一个时间接一个时间计算的,那就存在一个问题,两个时间之间的间隔是多少?

5.1 特征长度依据

比特征长度除以特征速度所得的时间小一至二个量级,比如流体以入口速度1m/s要经过1米的计算段,那么这个time step size就是 0.1至0.01 秒或者更小些。

5.2 最大迭代次数依据

Fluent 中提供了一个调整的判断依据,在每个时间(time step) 计算的 Iterations 在 5-10 次是最理想的,因此,如果每个 time step里 Iterations 的次数大于 10,那就要把 time step size 设置更小些,如果是小于 5 的,就调大些。

但是对于刚开始阶段(startup),这个判断并不合适,因为开始一般要充分收敛,所以在开始的 5-10 个 time step 里,还是应该把 time step size 设置充分小,到后面再逐渐增大 time step size。

特别是一开始不知道如何设定的时候,最好是打开 adaptive 让他自动定义定义时间步长跑最好了。其中最小的时间尺度,我认为最小也只能小到这个比例的 1/100 的这个水平上。

5.3 收敛方法

如果计算中发现达不到收敛的要求,建议不要盲目增加循环迭代次数,一般默认 10-15 次就够了,可以相应地适当减小 timestep 来达到收敛标准。

原文链接:

https://mp.weixin.qq.com/s/bjaDZOX3wEmNV-kisYOnuwicon-default.png?t=M666https://mp.weixin.qq.com/s/bjaDZOX3wEmNV-kisYOnuw

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

### Fluent 中的时间步长设置方法 在 Fluent 的仿真过程中,时间步长的合理设置对于获得精确解至关重要。以下是关于如何在 Fluent设置时间步长以及模拟实际运行时间的具体说明。 #### 时间步长的基础概念 时间步长是指每次迭代所跨越的实际物理时间单位。通过调整 `time step size` 和 `number of time steps` 参数,可以控制仿真的总时间和每一步的计算范围[^2]。 - **Time Step Size**: 单位时间内每个时间步覆盖的时间长度。 - **Number of Time Steps**: 总共执行多少个这样的时间步来完成整个仿真周期。 #### 如何设置时间步长 为了实现对特定时间段的仿真,需满足以下关系: \[ \text{Total Simulation Time} = (\text{Number of Time Steps}) \times (\text{Time Step Size}) \] 例如,如果目标是模拟 1 秒钟的过程,并希望采用较小的时间步长(如 0.01 秒),则应设置: \[ \text{Number of Time Steps} = \frac{\text{Total Simulation Time}}{\text{Time Step Size}} = \frac{1}{0.01} = 100 \] 此配置意味着 Fluent 将分 100 步逐步推进至最终时刻。 #### 非稳态计算中的注意事项 当处理非稳态问题时,每一次时间步内的计算可视为局部稳态过程。这意味着即使整体问题是瞬态变化的,但在单个时间步内部仍可能假设为稳定状态并进行求解。因此,适当增加 Iterations Per Time Step 可提升每一小段时间内结果的一致性和稳定性[^1]。 另外,在某些复杂流动场景下,固定大小的时间步未必总是最优选择。此时可以通过引入自适应策略或者手动调节不同阶段下的 Δt 来优化效率精度平衡[^4]。 #### 实际操作指南 下面给出一段 Python 脚本用于自动化定义这些参数: ```python import ansys.fluent.core as pyfluent solver_session = pyfluent.launch_fluent(mode="transient") # 定义总的模拟时间和单步间隔 total_time_seconds = 1.0 # 整体要跑多久 (s) desired_timestep_size = 0.01 # 希望使用的每一个step有多长(s) num_steps = int(total_time_seconds / desired_timestep_size) print(f"Setting up transient simulation with {num_steps} timesteps.") # 应用到FLUENT模型中... solver_session.transient_setup.number_of_time_steps.set_state(num_steps) solver_session.transient_setup.time_step_size.set_state(desired_timestep_size) ``` 以上脚本展示了怎样利用 PyFluent API 自动化地指定所需的 number of time steps 和 time step sizes。 #### 提高计算准确性的建议 除了上述技术细节外,还应注意选取合适的时间步长以匹配研究对象的动力学特性。如果有条件的话,借助已有实验数据或其他可靠资源来进行校核是非常有益的做法,这有助于更精准地决定最佳Δt值从而增强解决方案的质量[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值