在fluent计算中,经常会遇到 floating point exception的报错,让人很头疼。查找了一下,相关网上的原因,总结了这篇文章。内容不全部为原创。

1.1浮点数floating point

既然说了是浮点数溢出,那么先来看下什么是浮点数。我们都知道,fluent用的C语言写的。好的,我们来回顾下在C语言里,数据类型有哪些。

表1 C语言中的数据类型

类型

操作数类型

存储长度

char

整数/字节

8

short

整数/字

16

int

整数/双字

32

long int

整数/双字

32

Long long int

-

2x32

Char*

整数/双字

32

Float

单精度浮点数

32

Double

双精度浮点数

32

Long double

扩展精度浮点数

80/96

1.2浮点数的表示方式

在计算机中,采用科学计数法来存储浮点数,不同于平时见到以10为基数,计算机中以2为基数,表示浮点数。例如,要表示123456789,科学计数法表示为1.23456789*10^8或者,12.3456789*10^7。

在计算机中,用科学计数法,并且要用规格化的形式,即小数点前只有一位非0数。这个是为了方便运算,统一的格式适合重复运算。

1.3浮点数的表示范围

可以看到浮点数是有表示范围的,而且不仅有最大值,正数里有最小值,负数里有最小值,还有最大值。

32位浮点数的规格化数表示为:

第0位,表示正负

第1-8位,表示阶码E

第9-31位,表示尾数M

浮点数表示的范围,

负数-(1-2^-24)×2^127到-2^-129

正数2^-129到(1-2^-24)

1.4为什么会出现浮点数的溢出?

浮点数溢出的问题,最主要的问题就是除以0 ,有的人会说了,那我的这里面都有值,都给了速度,但是,如果给的值过小的话,就会导致浮点数溢出。另外,如果网格质量差,在一些质量差的地方,会出现极小值,导致出现溢出的情况。

1.5浮点数溢出的解决方法

常见的问题可能有边界条件设置有误,初始条件不合理,网格质量差,时间步长太大,松弛因子设置问题。

使用upwind convection schemes

引入了数值扩散,可以确保在特定的情况下收敛。避免使用高阶项,因为更容易引起不收敛的问题。

检查边界条件

湍流动能是否为零,温度边界是否有未定义,可压缩流体中的压力是否为零。

初始化

初始化出现问题,瞬态计算的初始值设定是否合理。如果不合理,或者报错,可以修改或者细化。

合适的步长

步长太大导致计算不收敛,在开始的时候如果步长过大,流体的流速较小,会出现报错。

使用亚松弛因子

默认的计算方式,使用新计算的值代替旧值,但是如果都用旧值,可能出现在局部收敛的情况。亚松弛因子的原理,在新值产生之后,不全用新值代替旧值,而是给新值和旧值个一直权重,组合来进行。

求解器

尽可能使用耦合式求解器

处理器

在串联或者并联计算的时候,使用单个求解器可能会出现浮点数溢出。

网格质量

检查所有网格的质量,确保歪斜度skewness在0.8以下。

Fluent中floating point exception的问题原因及处理方法相关推荐

  1. 微信小程序首页index.js获取不到app.js中动态设置的globalData的原因以及解决方法

    微信小程序首页index.js获取不到app.js中动态设置的globalData的原因以及解决方法 参考文章: (1)微信小程序首页index.js获取不到app.js中动态设置的globalDat ...

  2. 直接双击启动tomcat中的startup.bat闪退原因及解决方法

    直接双击启动tomcat中的startup.bat闪退原因及解决方法 参考文章: (1)直接双击启动tomcat中的startup.bat闪退原因及解决方法 (2)https://www.cnblog ...

  3. html设置margin无效,CSS中margin不起作用的原因及解决方法

    margin是一个属性,指定元素和元素之间的间距,但不能为内联元素指定边距,本篇文章将给大家介绍关于CSS中margin不起作用的原因及解决方法. margin不起作用的原因 对于初学者来说,可能会经 ...

  4. 投稿时html公式错误,Excel中出现公式常见显示错误原因与解决方法

    Excel2007的公式如果写错,就会在单元格中显示各种各样的错误信息.看到这些奇怪的错误代码,有的朋友可能会手忙脚乱,甚至感到烦躁.今天,学习啦小编就教大家在Excel中出现公式常见显示错误原因与解 ...

  5. ubuntu12.04中shell脚本无法使用source的原因及解决方法

    现象: shell脚本中source aaa.sh时提示 source: not found 原因: ls -l `which sh` 提示/bin/sh -> dash 这说明是用dash来进 ...

  6. XP中CPU占用率100%原因及解决方法

    我们在使用Windows XP操作系统的时候,用着用着系统就变慢了,一看"任务管理器"才发现CPU占用达到100%.这是怎么回事情呢?遇到病毒了,硬件有问题,还是系统设置有问题,在 ...

  7. 服务器.bat文件启动闪退,直接双击启动tomcat中的startup.bat闪退原因及解决方法

    免安装的tomcat双击startup.bat后,启动窗口一闪而过,而且tomcat服务未启动. 原因是:在启动tomcat是,需要读取环境变量和配置信息,缺少了这些信息,就不能登记环境变量,导致了t ...

  8. mysql命令行界面出现问题,MySQL命令行界面中出现字符错误提示的原因及解决方法...

    ERROR 2019 (HY000): Can't initialize character set gb2312 搞了好半天,MySQL都重装了两次,号悲剧... 之前设置了系统编码全都是UTF-8 ...

  9. 数控加工中产品粗糙度的缺陷产生原因与排除方法

    在金属加工中,表面粗糙度缺陷严重影响金属加工质量,而表面粗糙度缺陷产生的机理与各方面粗糙度缺陷的排除方法值得我们深入研究并不断完善. 表面粗糙度是衡量零件表面质量的标准,对于零件的美观.接触面摩擦.贴 ...

  10. Selenium UI自动化测试中元素定位不到的原因和解决方法汇总

    文章目录 1.总览 2.元素定位不到的原因之[页面元素没有及时加载] 3.元素定位不到的原因之[页面元素不可见或不可点击] 4.元素定位不到的原因之[页面元素是动态的] 1.总览 原因 解决方法 没有 ...

最新文章

  1. 什么是 CNN?Facebook 员工写给小白的机器学习入门贴彻底火了!
  2. oracle 9i 在安装到Oracle Database Configuration assistant....的时候
  3. 常考数据结构与算法:异或操作
  4. 使用SourceTree拉取代码出现Permission denied (publickey)
  5. Leetcode-53:最大子序和
  6. mongodb添加创建修改时间_mongodb副本集生产环境下部署案例,推荐一个主两个从三台机器...
  7. eclipse加载maven工程提示pom.xml无法解析org.apache.maven.plugins:maven-resources-plugin:2.4.3解决方案...
  8. 数据仓库 Hive(内含大数据镜像下载)
  9. checkbox修改默认样式
  10. perl的my,our,local等用法
  11. 功不唐捐,每日一道LeetCode,玉汝于成,终获offer满满!
  12. LSMTree - SStable 初体验
  13. android scrollview 动态添加,使用Scrollview和LinearLayout动态添加布局
  14. Windows解决net Framerwork 3.5无法安装的问题
  15. 从文本中提取单词生成单词本
  16. Autoencoder理解(2): 自动编码器的作用之稀疏编码
  17. My Sixty-Second Page - 斐波那契数列 - By Nicolas
  18. php网页游戏开发代码,PHP游戏编程25个脚本代码
  19. css响应式布局及分辨率(PC端、H5端)
  20. 谷歌云指南_Google材料设计指南的10个重要要点

热门文章

  1. JVM学习笔记(13) 垃圾回收-相关概念
  2. 库卡c2机器人编程语言,有一篇文章知道库卡-C2机器人的内部结构
  3. java 自动化报表_SpringMvc JDBC jQWidgets项目案例JasperReport自动化报表系统
  4. mysql 插入多条值_mysql一次性插入多条数据
  5. 大盘酝酿反弹中-可以短跑几天
  6. 笔记 :归纳总结 (一)
  7. recyclerview 动态设置高度_RecyclerView 动态调整高度, 调整item高度
  8. 数据结构与算法(java):线性表(链表-双向链表)
  9. 怎么将EXCEL的网格线打印出来,教程在这里,EXCEL里的网格线如何打印出来
  10. 盘点互联网招聘玩法:从垂直招聘到猎头平台到精准匹配