网格的作用如此重要,以至于小白纠结了很久。小白知道网格划分过程很大程度上受制于计算资源的限制,但小白还是不太明白,如果计算资源非常充足,不用顾忌资源限制的情况下,如何判断生成的网格好坏?如何确定自己生成的网格是否合乎要求?如何利用软件来判断网格是否满足要求?

在食堂的餐桌上,小白向小牛师兄询问这些问题。

“在我的眼中,网格和美女一样,只有漂亮的和不漂亮的区别,没有好与坏。”小牛师兄看着不远处一群饭都堵不住嘴巴在那叽叽喳喳的女生,慢悠悠的说。小牛师兄虽然学术搞得不错,可是快奔三的人仍然是光荣的单身狗一条,因此看到漂亮女生总能发表一些与众不同的看法。

“怎么说呢,对于网格好坏,我的做法是用肉眼观察,看着舒服的网格可能是好的,一眼看过去感觉不舒服的,肯定是有问题的不好的网格”。小牛师兄继续补充道。

“有没有科学点的判断方法呢?肉眼观察也太忽悠人了吧!”小白说。

网格疏密

“嘿嘿,的确忽悠了点,那我们就来说点儿正紧的。我们都知道,一般情况下好的网格要根据流场分布来进行布置,那么在流场计算之前就要预估物理量的分布。”小牛师兄补充道。

“都没计算,怎么判断流场分布呢?”小白问。

“在计算之前,需要根据流体力学理论判断流场分布,比如说流体流经障碍物的时候,在障碍物的上游及下游必定会出现较大的扰动,物理量变化极为剧烈,因此在这些区域需要布置更多的网格。”小牛师兄说。

“网格的疏密跟流场物理量梯度直接相关,那么哪些区域流场梯度大呢?”小白问。

“一般来说,这些区域流场梯度大:(1)障碍物上下游附近区域。(2)边界层区域。大梯度的区域都和边界扰动有关。”

“还有种情况需耍加密网格,那就是你需要提高某区域内计算精度时,此时需要提高此区域网格的密度。”

“说到网格疏密,就不得不提网格增长率。一套好的网格是有疏密分布的,那么在粗网格向密网格过渡时,存在一个增长率。CFD网格要求这个增长率不能太大,一般在1.1~1.3之间。”

网格形状

“除了网格疏密需要关注外,还需要关注网格形状,你觉得什么形状的网格是最好的?”小牛师兄问。

“我也不是很明确,很多资料上建议使用四边形和六面体,也有资料上说直接使用三角形和四面体,还有资料说要使用混合网格,也看到有资料说笛卡尔网格是一种发展趋势。众说纷纭,我都被搞迷糊了。”小白说道。

“先来说现在常用的网格形状。目前比较常用的网格形状主要有:三角形、四边形、四面体、六面体、五面体、三棱柱,有些求解器还支持多面体和六边形网格。”小牛师兄说道。

“这些形状是谁规定的呢?有没有球形和圆形的网格?”小白很好奇。

“网格的形状是由求解器决定的,或者更准确的说是由求解器的离散算法所决定。具体的以后有时间再具体探讨,今天要说的是:我们能够使用什么网格形状取决于求解器,像Fluent支持使用多面体网格,而CFX则不支持这种类型的网格。还有笛卡尔网格,很多EFD软件都支持,但支持此类型的CFD求解器并不多。当然如果是自己开发求解器的话,则完全可以开发支持任意形状网格的离散算法。”小牛师兄这样说。

“话虽然可以这样说,但实际上操作性并不强。因为选用网格类型需要考虑两个主要问题:(1)离散精度;(2)几何适应性。而这两方面却是相互矛盾的,某种网格离散精度高,其几何适应性往往不好。”

“再说点儿实际的,都在说四边形和六面体网格好,你觉得它们为什么好?”小牛师兄问。

“我也说不好,是不是离散精度比较高?好多复杂的几何都很难生成六面体网格,我猜它们的几何适应性肯定不会太好。”小白说。

“是的,四边形和六面体网格的离散精度好。这主要得益于其正交性好及相邻结点数较多。具体来讲,完美的四边形网格,其网格边具有完美的正交性(夹角90度),而完美的三角形网格夹角为60度,正交性会影响插值精度和计算收敛性。再说相邻结点数,四边形网格拥有四个相邻结点,六面体网格有六个相邻结点,而三角形网格及四面体网格相邻节点数分别为3个和4个。理论上讲,相邻节点数越多,插值精度越高。因此通常在网格数量相当的情况下,四边形和六面体网格拥有比三角形和四面体网格更高的精度。”小牛师兄解释道。

“有利就有弊,四边形和六面体网格也有其不利的方面,最典型的是几何适应性。对于复杂的几何模型,生成四边形网格或六面体网格常常需要花费极大的时间开销,有时甚至无法生成。”

“还有一种情况不适合使用四边形和六面体网格,那就是当流动与网格流向不一致的时候,此时使用四边形或六面体网格可能会造成较大的伪扩散,严重影响计算精度”

“实际上对于复杂的工程模型,往往同时存在多种类型的计算网格,常见的做法是:分割计算域几何,在简单区域或精度要求高的区域生成四边形或六面体网格,而在复杂区域或精度要求不高的区域生成三角形或四面体网格,不同类型网格之间采用五面体网格进行过度。”小牛师兄总结道。

其他的一些问题

“除了这些问题,划分网格的过程中还有什么其他的问题需要注意呢?”小白问。

“其实还有很多问题需要注意,比如边界层网格,这个我们后面再来探讨。”小牛师兄说。

“关于网格,你只需要记住一点就够了:漂亮的网格才是好网格!”

小白的总结

  • 一套好的网格,一定是看起来赏心悦目的
  • 好的网格,一定是疏密有间的,要根据流场分布来布置网格
  • 四边形和六面体网格拥有好的计算精度和收敛性,但几何适应性不好,对于复杂的模型通常采用混合网格结构

郑重申明

  • 本系列根据真实经历改编,如有雷同实属巧合,请勿人肉
  • 转载请务必保证文字完整

对系列感兴趣的朋友可微信扫描下方二维码,关注微信公众号第一时间接收文章更新。

【小白的CFD之旅】22 好网格与坏网格的更多相关文章

  1. 【小白的CFD之旅】小结及预告

    这是小白系列的索引,后续会继续更新. 已更新的部分 01 引子02 江小白03 老蓝04 任务05 补充基础06 流体力学基础07 CFD常识08 CFD速成之道09 初识FLUENT10 敲门实例1 ...

  2. 【小白的CFD之旅】13 敲门实例【续3】

    接上文[小白的CFD之旅]12 敲门实例[续2] 4 Results4.1 计算监测图形4.2 Graphics4.2.1 壁面温度分布4.2.2 创建截面4.2.3 显示截面物理量4.2.4 Pat ...

  3. 【小白的CFD之旅】12 敲门实例【续2】

    接上文[小白的CFD之旅]敲门实例[续] 主要内容 3 Solution3.1 Solution Methods3.2 Solution Controls3.3 Monitors3.4 Report ...

  4. 【小白的CFD之旅】11 敲门实例【续】

    主要内容: 接上文[小白的CFD之旅]10 敲门实例 2.4 Materials设置2.5 Cell Zone Conditions2.6 Boundary Conditons2.7 Dynamic ...

  5. 【小白的CFD之旅】01 引子

    小白的CFD之旅 写在前面 CFD是计算流体力学的英文简称,是计算机辅助工程(CAE)的主要分支,目前广泛应用与科学研究.工程设计中.这是一门综合了数学.计算机及流体力学的综合学科,涉及到众多的专业理 ...

  6. 《小白的CFD之旅》招募写手

    <小白的CFD之旅>系列招募写手. 由于工作繁忙,<小白的CFD之旅>系列更新缓慢,现招募志愿者写手.这是一个分享平台,欢迎各位愿意分享自己CFD学习经历的朋友们. <小 ...

  7. 【小白的CFD之旅】19 来自计算网格的困惑

    经过一年的忙碌,终于又到了寒假时间,小白又满状态复活了. 这一年小白学了很多的课程,但是一年下来,小白却感觉脑袋里没留下什么东西,貌似什么东西都在考完试的那一刹那全还回给老师了.这一年学习之余,小白仍 ...

  8. 【小白的CFD之旅】21 网格划分软件的选择

    但是怎样才能获得流体计算网格呢?“工欲善其事必先利其器”,画网格该用什么器呢?小白决定找黄师姐请教一番. 小白找到黄师姐的时候,黄师姐正在电脑上忙着. “黄师姐,我发现网格划分软件有好多种,究竟哪种才 ...

  9. 【小白的CFD之旅】16 流程

    那天听了小牛师兄关于CFD应用的四种境界的说法后,小白发现自己连第一种境界都算不上,自己对于CFD还只是停留在做了少数几个案例的基础上,可以说是对其一无所知.不过小白不是那种遇到挫折就退缩的人,他决定 ...

随机推荐

  1. Tomcat服务器版本号泄露-低危漏洞修复

    一.问题描述Tomcat报错页面泄漏Apache Tomcat/7.0.52相关版本号信息,是攻击者攻击的途径之一.因此实际当中建议去掉版本号信息.二.解决办法 1.进入到tomcat/lib目录下, ...

  2. List集合去重的一些方法(常规遍历、Set去重、java8 stream去重、重写equals和hashCode方法)

    1. 常规元素去重 碰到List去重的问题,除了遍历去重,我们常常想到利用Set集合不允许重复元素的特点,通过List和Set互转,来去掉重复元素. // 遍历后判断赋给另一个list集合,保持原来顺 ...

  3. 如何开发一个基于 Docker 的 Python 应用

    前言 Python 家族成员繁多,解决五花八门的业务需求.这里将通过 Python 明星项目 IPython Notebook,使其容器化,让大家掌握基础的 Docker 使用方法. IPython ...

  4. asyncsocket的用法

    更多参考文章 http://blog.csdn.net/zltianhen/article/details/6560322 http://www.cnblogs.com/bucengyongyou/a ...

  5. spring下Junit_jdbc回滚demo

    配置测试类 添加如下内容在class前,用于配置applicationContext.xml文件的位置. @RunWith(SpringJUnit4ClassRunner.class) @Contex ...

  6. WKWebView 使用及注意事项

    iOS8之后,苹果推出了WebKit这个框架,用来替换原有的UIWebView,新的控件优点多多.由于一直在适配iOS7,就没有去替换,现在仍掉了iOS7,以为很简单的就替换过来了,然而在替换的过程中 ...

  7. 获取可用的处理器(CPU)核数【转】

    linux下获取cpu核数,sysconf(_SC_NPROCESSORS_CONF),,, from:红黑联盟,https://www.2cto.com/kf/201210/164480.html ...

  8. 查看/修改Linux时区和时间

    一.时区 1. 查看当前时区 date -R 2. 修改设置时区 方法(1) tzselect 方法(2) 仅限于RedHat Linux 和 CentOS timeconfig 方法(3) 适用于D ...

  9. 【转】细说UI线程和Windows消息队列

    在Windows应用程序中,窗体是由一种称为“UI线程(User Interface Thread)”的特殊类型的线程创建的. 首先,UI线程是一种“线程”,所以它具有一个线程应该具有的所有特征,比如 ...

  10. Linux定时器工具

    要使用crontab定时器工具,必须要启动cron服务: service cron start crontab的语法,以备日后救急 参见:http://blog.csdn.net/zlzlei/art ...