Fluent中的收敛条件(Convergence Conditions)功能允许设置基于报告定义值(表面、体积、升力、阻力等)的求解收敛条件。使用报告定义声明收敛时,需要做出两个选择:
-
是否希望在每次迭代或每个时间步检查收敛?这可以在Check For组框中做出选择。
-
Solution Convergence
Fluent 在每个时间步检查求解的收敛性。
-
Time Step Convergence
Fluent 在每次迭代时检查求解的收敛性。
-
如果所有活动报告定义的标准和启用的残差都满足,或者只要任何活动报告定义的标准或启用的残差满足,是否可以认为求解以收敛?这可以在Choose Condition组框中做出选择。
-
All Conditions are Met
当所有活动报告定义的条件和启用的残差都满足时,认为求解已收敛。
-
Any Condition is Met
当任何活动的报告定义标准和启用的残差被满足时,认为求解已收敛。
默认情况下,如果满足任何一个报告定义的收敛标准和残差收敛标准,求解就会收敛。如果只想依赖报告定义值来决定收敛,需取消Residual Monitors对话框中Check Convergence复选框的勾选。
要打开Convergence Conditions对话框,可以点击Solution功能区标签中Reports组下的Convergence...按钮。
-
双击模型树节点 Solution → Reports → Convergence... 可以打开Convergence Conditions对话框
对话框中列表项左侧的Active复选框允许停用/启用收敛条件。
用户可以通过点击Add按钮并从下拉列表中选择一个Report Definition来创建新的收敛条件。
为了根据报告定义创建有意义的收敛条件,可以根据以下指导设置收敛条件变量的级别。
如果预期计算求解在前几次迭代/时间步长中会有较大波动,可以在Ignore Iterations Before | Ignore Time Steps Before列中输入一个表示预计波动将持续的迭代/时间步长的数量的值。计算将在这些迭代/时间步长完成后开始。
使用Use Iterations | Use Time Steps设置选择要包含在监控收敛检查中的先前迭代/时间步长的数量。对于像图36.40所示的波动仿真,这个数量应该足够大,以抵消波动的影响。
图 36.40 波动模拟示例
Stop Criterion 表示求解被认为已收敛的标准。Stop Criterion 的值计算如下:
Res-m(1) = [abs (m(n) - m(n-1))]/m(n)
Res-m(2) = [abs (m(n) - m(n-2))]/m(n)
Res-m(3) = [abs (m(n) - m(n-3))]/m(n)
.
.
.
Res-m(Np) = [abs (m(n) - m(n-Np))]/m(n)
其中:
-
Res-m
为报告定义残差 -
n
为迭代/时间步数 -
m(n)
是第 n 次迭代/时间步时的报告定义值 -
Np
是要考虑的前Np
次迭代/时间步数(Use Iterations / Use Time Steps)
报告定义残差是最近 Np
次迭代/时间步内监控量的绝对差值除以当前监控量的值。
如果所有 Res-m 值的最大值小于 Stop Criterion 值,则认为求解在第 n 次迭代/时间步长时已收敛。如果所有 Res-m 值的最大值大于或等于 Stop Criterion 数字,计算将继续进行到下一次迭代/时间步长。
选择Print复选框以在 Fluent 控制台中打印报告定义的残差。这些残差仅根据其最近的前一个值计算如下。
Pres-m(n) = [abs (m(n) - m(n-1))]/m(n)
其中:
-
Pres- m(n)
是报告定义的打印残差值 -
n
是当前在控制台打印的迭代次数 -
m(n)
是第n
次迭代/时间步长时的监视器值
因此:
Pres-m(n +1) = [abs (m(n+1) - m(n))]/m(n+1)
在第(n+1)次迭代/时间步的输出值是基于第(n)次迭代/时间步计算的,而在第(n)次迭代/时间步的输出值是基于第(n-1)次迭代/时间步计算的。
注:本文内容为Fluent UserGuide 36.16。机器翻译,未校对。
”
(完)
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册