24小时热门版块排行榜    

查看: 1727  |  回复: 9
当前主题已经存档。

迷茫的狼

铁虫 (初入文坛)

[交流] 【求助】设置迭代次数为200时,结果报错

求助:我初学fluent,在做2维气流的模拟时,设置迭代次数为200时,结果报错,说无效的数字浮点,它只显示到23左右。这大概是哪方面的原因造成的?谢谢
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woshilsh

荣誉版主 (职业作家)

优秀版主

帮你顶起来
[center][url=http://www.91cool.net/][img]http://id.91cool.net/sign/?name=小木虫印&say=各位版主辛苦了![/img][/url][/center]
2楼2009-05-06 19:39:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mousehat

铜虫 (小有名气)


coldwind042(金币+1,VIP+0):感谢参与讨论! 5-7 14:13
这种错误可能的原因很多,简单地说就是fluent没法计算了。你得仔细地检查自己的各项设置和UDF程序。
3楼2009-05-07 13:32:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

rewind

至尊木虫 (正式写手)


sunxiao(金币+1,VIP+0):谢谢参与,欢迎常来仿真模拟版 6-2 02:33
浮点错误?
最大的可能就是求解时 矩阵出错或者有0被除
在外种地...
4楼2009-05-24 19:23:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lxx244lxx

木虫 (小有名气)


sunxiao(金币+1,VIP+0):谢谢参与,欢迎常来仿真模拟版 6-2 02:33
有0被除哈,感觉
相信
5楼2009-06-01 15:35:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

padian

木虫 (著名写手)


sunxiao(金币+1,VIP+0):谢谢参与,欢迎常来仿真模拟版 6-4 02:43
一般而言,0作为分母的可能性最大

或者这个数特别大,比如说e^n中n太大
6楼2009-06-03 15:58:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

streamkite

铁杆木虫 (著名写手)


sunxiao(金币+1,VIP+0):谢谢参与,欢迎常来 7-21 02:18
0除的可能性很大了。
7楼2009-07-21 00:42:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

728728

木虫 (正式写手)

★ ★
sunxiao(金币+2,VIP+0):谢谢参与,欢迎常来 7-21 02:19
描述的不清楚,是计算到200步时候出错还是什么?
最可能的就是计算发散了。检查边界条件,初始条件等设置
8楼2009-07-21 01:21:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

streamkite

铁杆木虫 (著名写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
kuhailangyu(金币+3,VIP+0):感谢参与讨论 7-22 21:31
从数值计算方面看,计算机所执行的运算在计算机内是以浮点数(floating point number)来表示的。那些由于用户的非法数值计算或者所用计算机的限制所引起的错误称为floating point error。



1)非法运算:最简单的例子是使用Newton Raphson方法来求解f(x)=0的根时,如果执行第N次迭代时有,x=x(N),f’(x(N))=0,那么根据公式x(N+1)=x(N)-f(x(N))/ f’(x(N))进行下一次迭代时就会出现被0除的错误。



2)上溢或下溢:这种错误是数据太大或太小造成的,数据太大称为上溢,太小称为下溢。这样的数据在计算机中不能被处理器的算术运算单元进行计算。



3)舍入错误:当对数据进行舍入时,一些重的数字会被丢失并且不可再恢复。例如,如果对0.1进行舍入取整,得到的值为0,如果再对它又进行计算就会导致错误。



避免方法



计算和迭代:我认为设一个比较小的时间步长会比较好的。或者改成小的欠松驰因子也会比较好。从我的经验来看,我把欠松驰因子设为默认值的1/3;降低欠松驰因子或使用耦合隐式求解;改变欠松驰因子,如果是非稳态问题可能是时间步长太大;改善solver-control-limits比例或许会有帮助;你需要降低Courant数;如果仍然有错误,不选择compute from初始化求解域,然后单击init。再选择你想从哪个面初始化并迭代,这样应该会起作用。另外一个原因可能是courant数太大,就样就是说两次迭代之间的时间步太大并且计算结果变化也较大(残差高)。



网格问题:当我开始缩放网格时就会发生这个错误。在Gambit中,所有的尺寸都是以mm为单位,在fluent按scale按钮把它转换成m,然后迭代几百次时就会发生这种错误。但是当我不把网格缩放到m时,让它和在Gambit中一样,迭代就会成功;我认为你应当检查网格,你的网格数太多了,使用较少的网格问题就会解决;网格太多,计算机资源不够用,使使比较粗的网格。



边界条件:在我的分析中,我设了一个wall边界条件来代迭axis边界条件,结果fluent拒绝计算并告诉我floating point error。你的边界条件不能代表真实的物理现象;错误的边界条件定义可能会导致floating point error。例如把内边界设成interior;一次我使用对称边界条件模拟2D区间时也遇到这种问题,我把symmetry设为axe symmetric,就发生了floating point error;检查你设的湍流参数,减小湍流强度,先进行50次迭代。



多处理器问题:我近来在进行多处理器模拟时也遇到相似的问题。问题的解决方法是在单个处理器上运行,这样就运算得很好。



错误迭代: 以错误的条件来初始化,在开始迭代时就会发生floating point error。
9楼2009-07-22 18:29:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

夏之篮

木虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
kuhailangyu(金币+0,VIP+0):这也是方向!?,呵呵 7-22 21:31
哈哈 我也fluent
这种情况原因很多,只能是给一个方向,得一步步检查
10楼2009-07-22 19:02:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 迷茫的狼 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见