当前位置: 首页 > 仿真模拟 >【求助】Error:Floating point error: invalid number【已完成】

【求助】Error:Floating point error: invalid number【已完成】

作者 asunbird
来源: 小木虫 300 6 举报帖子
+关注

请问:fluent里面老出现的错误Error:Floating point error: invalid number是什么原因引起的啊?如何通过更改设置解决这一错误啊?
此外,interface边界条件使用的场合是什么?本人设置多孔区域和固体的交界面为interface会出错。
新手上路,囊中羞涩,希望各位不吝指教!谢谢!

[ Last edited by nono2009 on 2009-9-23 at 16:07 ] 返回小木虫查看更多

今日热帖
  • 精华评论
  • wgf332

    看看关于interface的介绍吧,interface是成对出现的。你改用双精度试试看

  • asunbird

    谢谢楼上!

  • 夏之篮

    这个问题在FLUENT FAQ里面有涉及。
    应该边界条件设置或UDF程序的问题
    其实湍流粘性比受限制这个问题很常见,出现这个原因主要有两个:

    1:源项或者方程边界设置有错误

    Error: Floating point error: invalid number

    Error Object: ()
    这个问题就是比较通俗的随之而来的错误,其实就是我们常说的溢出,分为上溢出和下溢出,这个不是调整solve-limit-viscosity ratio可以解决的,具体形成原因在FAQ中有比较详细的说明。

    当边界条件设置不合理,如动量方程源项很大(出现异常的局部速度等等),不合理的边界处理等,或者某些情况下的亚松弛因子过大也会导致出现溢出。

    之所以谈到溢出这个问题,最后是为了说明在修改solve-limit-viscosity ,不可盲目,默认值一般是最佳值。

    一些情况下,手动修改湍流方程进行计算的时候,也会导致这一问题。

    2:湍流边界条件的不合理

    这个就是最常见的原因,也是FAQ中的解释。

    边界及初值选择合适的湍流强度和湍流尺度,或者合适和K或者E,对收敛起着非常重要的作用。

    给定的参数不合理,就会有湍流粘性比受限制的警告,具体怎么设置,可以参见FLUENT的湍流模拟的HELP,有详细的步骤。

    Error Object: ()
    这个问题就是比较通俗的随之而来的错误,其实就是我们常说的溢出,分为上溢出和下溢出,这个不是调整solve-limit-viscosity ratio可以解决的,具体形成原因在FAQ中有比较详细的说明。

    当边界条件设置不合理,如动量方程源项很大(出现异常的局部速度等等),不合理的边界处理等,或者某些情况下的亚松弛因子过大也会导致出现溢出。

    之所以谈到溢出这个问题,最后是为了说明在修改solve-limit-viscosity ,不可盲目,默认值一般是最佳值。


    边界及初值选择合适的湍流强度和湍流尺度,或者合适和K或者E,对收敛起着非常重要的作用。

    给定的参数不合理,就会有湍流粘性比受限制的警告,具体怎么设置,可以参见FLUENT的湍流模拟的HELP,有详细的步骤。

  • asunbird

    FAQ是Frequently Asked Questions (常见问题解答 )吗?嗯,回头找来看看,谢谢剖析,很深刻哈!

  • junfugan

    引用回帖:
    Originally posted by 夏之篮 at 2009-8-2 17:30:
    这个问题在FLUENT FAQ里面有涉及。
    应该边界条件设置或UDF程序的问题
    其实湍流粘性比受限制这个问题很常见,出现这个原因主要有两个:

    1:源项或者方程边界设置有错误

    Error: Floating point error: inva ...

    回答太官方了吧;
    前几天自己刚写了udf,也出现这个问题,你看一下方程里有没有分母为0 的情况出现,这个地方就注意一下,强制不为0;还有问题的话可以把中间数据输出来看

  • zhangvio

    我以前也出现过几次这样的error,把网格好好改改就好了。我的模型比较简单,现在可以全都用六面体来划分了。不知道你的模型能适用不。想下面是我以前搜到的一些东西,希望能对你有帮助。
    What does "floating point error" mean? How can I avoid it?
    The floating point error has been reported many times and discussed a lot. Here are some of the answers found in the Fluent Forum:
    From numerical computation view point , the basic operations performed by computer are represented inside computer in what is called floating point numbers. The errors that are either because of invalid numeric computation initiated by user or limitation of machine that is used are floating point errors.
    1)Invalid Operations:- Simplest example is if one uses Newton Raphson root finding method to solve f(x)=0 and for some Nth iteration if we get x = x(N) such that derivative of function f(x), f';(x(N))=0 then formula for calculating next iterate x(N+1) = x(N) - f(x(N))/f';(x(N)) requires division by f';(x(N)) which is zero. Here you get divide by zero type of floating point error.
    2) Over or Underflow:- Another type is having data with either too large or too small magnitude called ';overflow'; or ';underflow'; respectively.Such data cannot be physically represented on computer for direct processing by arithmetic processing part of Processor.
    3) Rounding off errors :- While rounding off a decimal number , some significant digits are lost which cannot be recovered . e.g. if we round off 0.1 to integer (not greater than it called ';floor'; of the given no.) then it is zero. If this value if further used for computation then it may lead to several errors.
    SOLVER AND ITERATION -----I think if you set shorter time step, it may be good. Or changing little Under-Relaxiation-Factors, it may be good. In my experience, I set 1/3 Under-Relaxiation-Factors as default.? -----?also lower the values of under relaxation factor and use the coupled implicit solver? -----?Try to change under-relaxation factors and if it is unsteady problem maybe time step is to large.? -----?you can improve the ratio in the solve--control--limits, maybe that can help.? -----?you will need to decrease the Courant number? -----?If you still get the error, initialize the domain with nothing to ';Compute from...'; Then click ';init';. Again select the surface from which you want to compute the initial values & iterate. This should work.? -----?Another reason could be a to high courant number - that means, that the steps between two iterations are too large and the change in the results is too large as well (high residuals)?
    GRID PROBLEMS -----?this error comes when I start scaling grid. in gambit, all my dimension is in mm, when in fluent i convert it in meter using buttone SCALE. after it, when i iterate, about hundred iteration, this error appeared. but when i not scale my drawing to m...and let it be as in gambit..then the iteration is success. -----?hi I think you should check your mesh grid mesh is very high. your problem solve by selection a low mesh.? -----?Your mesh is so heavy that your computers resources are not enough. try to use coarser mesh.?
    BOUNDARY CONDITIONS -----?In my case I had set a wall boundary condition instead of an axis boundary condition and then FLuent refuses to calculate telling me ';floating point error';.? -----?Your Boudary Conditions do not represent real physis.? -----?wrong boundary condition definition might cause the floating point error. For example setting an internal boundary as interior? -----?Once I had the problem, simulating a 2D chamber with a symmetry BC. I set the symmetry somewhere as ?axe symmetric? and the floating point error occur? -----?check the turbulence parameter you set. reduce the turbulence intensity to less that one for first, say 50 iterations.
    MULTI PROCESSOR ISSUES -----"I';ve had similar problems recently with floating point errors on a multi processor simulation. The solution for my problem seems to be to run on a single processor, where it runs fine....??
    WRONG INITIATION ----- Initiating the case with wrong conditions may lead to floating point error when the iterations start.
    [br][br][以下内容由 xlb 在 2007年06月04日 10:17am 时添加] [br]
    我试了  还是没有解决



    其实湍流粘性比受限制这个问题很常见,我分析出现这个原因主要有两个:

    1:源项或者方程边界设置有错误

    Error: Floating point error: invalid number

    Error Object: ()
    这个问题就是比较通俗的随之而来的错误,其实就是我们常说的溢出,分为上溢出和下溢出,这个不是调整solve-limit-viscosity ratio可以解决的,具体形成原因在FAQ中有比较详细的说明。

    当边界条件设置不合理,如动量方程源项很大(出现异常的局部速度等等),不合理的边界处理等,或者某些情况下的亚松弛因子过大也会导致出现溢出。

    之所以谈到溢出这个问题,最后是为了说明在修改solve-limit-viscosity ,不可盲目,默认值一般是最佳值。

    一些情况下,手动修改湍流方程进行计算的时候,也会导致这一问题。

    2:湍流边界条件的不合理

    这个就是最常见的原因,也是FAQ中的解释。

    边界及初值选择合适的湍流强度和湍流尺度,或者合适和K或者E,对收敛起着非常重要的作用。

    给定的参数不合理,就会有湍流粘性比受限制的警告,具体怎么设置,可以参见FLUENT的湍流模拟的HELP,有详细的步骤。



    原因: 数据矩阵求解过程中出现的问题。
    方法:1、检查网格质量。
    2、检查边界条件和初始条件。
    3、对问题进行深入分析,对比模拟情况与真实情况之间的差距,

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓