24小时热门版块排行榜    

CyRhmU.jpeg
查看: 6024  |  回复: 28

fangdian

木虫 (正式写手)

[求助] 一个老生常谈的话题----亚松弛因子

由于流体力学中要求解非线性的方程,在求解过程中,控制变量的变化是很必要的,这就通过松弛因子来实现的.它控制变量在每次迭代中的变化.也就是说,变量的新值为原值加上变化量乘以松弛因子。
     一般来讲,大家都是在收敛不好的时候,采用一个较小的欠松弛因子。 Fluent里面用的是欠松弛,主要防止两次迭代值相差太大引起发散。
      松弛因子的值在0~1之间,越小表示两次迭代值之间变化越小,也就越稳定,但收敛也就越慢。
   由于FLUENT所解方程组的非线性,我们有必要控制的变化。一般用亚松驰方法来实现控制,该方法在每一部迭代中减少了的变化量。亚松驰最简单的形式为:单元内变量等于原来的值加上亚松驰因子a与变化的积分离解算器使用亚松驰来控制每一步迭代中的计算变量的更新。这就意味着使用分离解算器解的方程,包括耦合解算器所解的非耦合方程(湍流和其他标量)都会有一个相关的亚松驰因子。

注:在FLUENT中,所有变量的默认亚松驰因子都是对大多数问题的最优值。这个值适合于很多问题,但是对于一些特殊的非线性问题(如:某些湍流或者高Rayleigh数自然对流问题),在计算开始时要慎重减小亚松驰因子。
使用默认的亚松驰因子开始计算是很好的习惯。如果经过4到5步的迭代残差仍然增长,你就需要减小亚松驰因子。
    有时候,如果发现残差开始增加,你可以改变亚松驰因子重新计算。

  但是此时,我有一个问题,就是关于亚松弛因子-----liquid fraction update
  我的计算模型主要是3D的VOF和熔化凝固模型。对于亚松弛因子的设定如下:

本来都是默认设定的。liquid fraction update的默认值为0.9.
可是在计算中间,连续性残差不稳,出现突然上升的情况。


此时的Global Courant Number还是小于1的。一个解决办法是减小时间步。可是时间步减小,计算到指定时间所需要的时间步就多了。于是我将liquid fraction update的亚松弛因子由默认的0.9改为0.5接着往下计算,“躲过”了这次的不稳定。

  可是,这样直接修改松弛因子接着往下算,有没有问题?对结果有没有影响?
   有的朋友说既然改变了亚松弛因子,就要从头开始算。--------不是我不想从头开始算,主要是我前面的数据已经连续计算5天(120小时)了,重头再来的话,工程浩大。
    对于到底取多少松弛因子,有的朋友说多测试,只是问题又来了,我的一个数据计算得上十天,如果一个一个测试,那么时间。。。。。。?
   好了,我总结一下自己的问题吧。
  1 亚松弛因子是否可以在计算中途改变,改变前后结果是否有继承性?
  2 对于亚松弛因子的设定,除了按照默认设定,经验设定,还有其他办法吗?

  啰嗦了半天,谢谢大家了
回复此楼

» 收录本帖的淘帖专辑推荐

模拟相关

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

47425804

木虫 (正式写手)


引用回帖:
9楼: Originally posted by jwm234 at 2012-11-06 22:07:02
本人新手,总听说改松弛因子有可能会对计算有些帮助,我想顺带着问个问题。。。是不是不管我的松弛因子改成多少,那么最终收敛时得出的结果都是一样的,只不过最终收敛所需要的时间不一样?

俺不这么认为,就像楼主帖子里说的,默认的松弛因子是经过很多算例验证过比较合适的值,一般对于不是特别复杂的问题,都不推荐改松弛因子。
松弛因子不能随便改成多少,太小的松弛因子会造成假收敛,导致计算结果完全是错的。
计算不收敛,最好还是多从网格、模型、差分格式、初值等方面找办法解决。
14楼2012-11-07 09:14:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

onesupeng

金虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
fangdian: 金币+10, ★★★很有帮助, 很有帮助,最后的10个金币给你了,呵呵,谢谢 2012-11-07 08:50:59
从算法的角度,什么时候更改松弛因子都是没有问题的
长期招收博士生,参见http://fsl-unsw.com
8楼2012-11-06 21:45:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

47425804

木虫 (正式写手)


描述得真详细,不支持一下绝对过不去!
按照俺的理解,松弛因子中途改变完全没问题,我自己就经常采用这种临时调整松弛因子或调整时间步长的方法跳过一些发散点,不过后面又会再慢慢改回来。

» 本帖已获得的红花(最新10朵)

2楼2012-11-06 09:22:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fangdian

木虫 (正式写手)

送鲜花一朵
引用回帖:
2楼: Originally posted by 47425804 at 2012-11-06 09:22:40
描述得真详细,不支持一下绝对过不去!
按照俺的理解,松弛因子中途改变完全没问题,我自己就经常采用这种临时调整松弛因子或调整时间步长的方法跳过一些发散点,不过后面又会再慢慢改回来。

谢谢你回帖,如果后面不手动改回来呢?影响大吗?
3楼2012-11-06 10:13:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sh073

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
fangdian: 金币+10, ★★★很有帮助, 谢谢,很有帮助。 2012-11-06 14:37:17
我也觉得应该没影响吧,改变松弛因子只是变了迭代变化量,过程还是那过程,有时候你要算非稳态还得先算个稳态的呢
4楼2012-11-06 10:54:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sinsia

新虫 (小有名气)

【答案】应助回帖

修改松弛因子在原来的结果上继续算没有问题。

» 本帖已获得的红花(最新10朵)

12楼2012-11-07 08:55:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fangdian

木虫 (正式写手)

送鲜花一朵
引用回帖:
13楼: Originally posted by 47425804 at 2012-11-07 09:11:18
不改回来也不会有什么大影响,不过个人还是喜欢再改回来,估计是强迫症吧,呵呵~~...

如果改回来的话,有时又出现那种突然不稳定状态,有时在夜深人静的时候发生,所以以防万一,我干脆到现在都没有改回来。。。。
  谢谢你的回复。
17楼2012-11-07 09:21:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

malu430

金虫 (小有名气)

引用回帖:
7楼: Originally posted by fangdian at 2012-11-06 14:38:54
你先改了松弛因子,在初始化?初始化后,data不就变了吗?...

初始化之后 data是变了
但是后面还有把最新的data数据导进去
继续计算。。。

不知道这样对不对哎。。。。。
有好几次计算我都是这样弄的
18楼2012-11-07 09:58:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sunqingtao

铜虫 (小有名气)

楼主,改变松弛因子不影响结果的,只是影响计算时间。不放心的话,可以用一个简单的case测试一下,改变一下松弛因子,看看结果变了没有?

» 本帖已获得的红花(最新10朵)

相信自己。。
20楼2012-11-07 10:47:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

5超7

至尊木虫 (著名写手)

菜鸟

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
fangdian: 金币+10, ★★★很有帮助, 谢谢,我觉得很有帮助 2012-11-06 14:37:41
引用回帖:
3楼: Originally posted by fangdian at 2012-11-06 10:13:25
谢谢你回帖,如果后面不手动改回来呢?影响大吗?...

我觉得更改残差因子很正常的啊。。。我用PDF算燃烧的时候,用默认的残差因子肯定不合适的啊,我会把密度的因子调小,等到计算稳定了再慢慢调到默认值!
我要奋斗到底
5楼2012-11-06 10:58:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

malu430

金虫 (小有名气)

不知道楼主有没有碰到这样的问题
就是有时候改了松弛因子后
要初始化 才有效果
这样计算又得重来。。。
我的办法是计算过程中存data
先改松弛因子,再初始化
然后把最新的data数据导入
开始计算
这样还挺管用的 但是不知道对不对
交流下
6楼2012-11-06 11:26:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fangdian

木虫 (正式写手)

引用回帖:
6楼: Originally posted by malu430 at 2012-11-06 11:26:12
不知道楼主有没有碰到这样的问题
就是有时候改了松弛因子后
要初始化 才有效果
这样计算又得重来。。。
我的办法是计算过程中存data
先改松弛因子,再初始化
然后把最新的data数据导入
开始计算
这样还挺管 ...

你先改了松弛因子,在初始化?初始化后,data不就变了吗?
7楼2012-11-06 14:38:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jwm234

铜虫 (小有名气)

本人新手,总听说改松弛因子有可能会对计算有些帮助,我想顺带着问个问题。。。是不是不管我的松弛因子改成多少,那么最终收敛时得出的结果都是一样的,只不过最终收敛所需要的时间不一样?
9楼2012-11-06 22:07:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fangdian

木虫 (正式写手)

引用回帖:
9楼: Originally posted by jwm234 at 2012-11-06 22:07:02
本人新手,总听说改松弛因子有可能会对计算有些帮助,我想顺带着问个问题。。。是不是不管我的松弛因子改成多少,那么最终收敛时得出的结果都是一样的,只不过最终收敛所需要的时间不一样?

我觉得应该是的,不知道对不对,呵呵
10楼2012-11-07 08:53:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 fangdian 的主题更新
信息提示
请填处理意见