【小白的CFD之旅】19 来自计算网格的困惑
经过一年的忙碌,终于又到了寒假时间,小白又满状态复活了。
这一年小白学了很多的课程,但是一年下来,小白却感觉脑袋里没留下什么东西,貌似什么东西都在考完试的那一刹那全还回给老师了。这一年学习之余,小白仍然坚持着做案例,做大量不同的案例,虽然有一些案例做起来并没有太大的作用,但是至少可以熟练软件操作过程。
最近小白对于网格产生了一些困惑,正巧的是中午在食堂吃饭的时候碰到了小牛师兄,这一学期忙着上课,有一阵子没见着小牛师兄了。
“嘿,师兄,好久不见了耶”,小白上去打招呼。
“是啊小白,最近忙些啥子呢?”小牛师兄的眼神永远那么犀利的盯着面前的那盘红烧肉。
“上课啊,考试啊,整天学这些基础理论也不知道后面用不用得到。唉呀妈呀终于结束了,终于可以安心做点事儿了。”小白很无奈的说。
“哈哈,这不是都学完了嘛,以后就会知道有没有用了。对了,最近还在学CFD么?老蓝还等着你接班呢,嘿嘿”。小牛师兄说。
“开什么玩笑哦,接班?接谁的班?我还没入门呢,就我学的那点儿假把式,估计还得半年,等研二了再说吧。”小白心里有点发虚。
“不开玩笑了,说真的,到底学怎样了?估计没那么多时间留给你学习了,最近有新的项目来了,急需人手,我建议你跟老蓝商量进组学习吧,这样比较快。”小牛师兄放下筷子说道。
“恩,其实软件操作、计算流程都掌握得差不多了,但是总觉得缺点什么,遇到新的问题也还是把握不住。就最近来说吧,就对于计算网格比较困惑,你说在计算的过程中,到底是网格质量重要还是网格数量重要?"小白问道。
“怎么会有这种问题呢,当然都重要啊”,小牛师兄说。
“那总有个优先级吧,比如说在为一个新的计算准备模型的时候,我是要优先考虑网格质量还是网格数量?虽然说很多时候网格数量多了网格质量也跟着变好,但是我那破电脑实在无法承受太多的计算网格,稍多一点就死机啊。那网格数量少了,计算结果还有用么?”小白问。
“其实很多时候,人们往往走入一个误区,他们认为网格数量多就意味着计算精度的提高。但其实并非是这样,对于变化梯度小的区域,你网格数量的增加对于计算精度的贡献其实并不明显,反而对于就计算时间的影响是显而易见的。而网格质量,则在很大程度上会影响计算的精度以及计算收敛过程,要知道收敛过程是直接影响计算时间的,我个人的观点,网格质量要比网格数量重要。高质量的计算网格,哪怕网格数量少点儿,但肯定不会影响计算趋势,但如果网格质量很差,则出现错误计算结果的概率可就比较大了。”小牛师兄说。
“嗯,懂了,在保证计算网格质量的基础上,再来根据计算机资源来考虑网格数量,对吧?”小白说。
“根骨不错呀,骚年”,小牛师兄笑道。
“那问题又来了,网格数量要到什么程度才算合适呢?比如说我要考虑这食堂的环境质量,要画多少网格才行呢?”小白接着问。
“这问题我没法回答你。首先,你没说你拥有的计算资源有多少。用笔记本和用巨型机,所能考虑的计算网格数量是很不一样的。其次,你没说你要考虑哪些问题。因为不同的物理模型和物理细节,对于网格的精密程度要求也是很不一样的。再次,你也没说你的计算时间有多少,一年的时间和一天的时间,所能接受的网格数量肯定有巨大的区别。但是我要说的是,在目前私人拥有的计算资源条件下,计算精度一般是与计算网格数量成正比的。也就是说,网格数量越多,计算精度越高。因此,如果计算时间充足,可以尽可能的提高网格数量。在工程上还有一种称之为”网格独立性“验证的说法,就是为了说明这一问题。”小牛师兄说。
“什么叫网格独立性?”小白很好奇的问。
“所谓的网格独立性,只是一个近似的说法,实际的数值计算,绝对不可能做到网格独立的。网格独立性的做法是这样的:做N套不同密度的计算网格,在相同的工况条件下进行计算,考虑相关物理量的变化率。当网格密度达到一定程度后,继续增加网格密度对于计算结果的影响非常小,此时可以认为计算网格数量的增加对于计算结果的影响可以忽略,在后续的计算过程中,采用计算结果不再发生变化位置的计算网格数量作为网格数量基准。其实说白了就是在计算精度与计算时间之间进行一个折中而已。而这里所说的计算结果不再发生变化,也取决于个人的判断,你觉得变化量在1%以内叫不变化,我也可以认为在5%以内叫不变化,自己确定,但是可以肯定的是,计算结果随着网格数量的增加肯定会有变化的。你想,计算结果怎么可能与网格数量无关嘛。"小牛师兄说。
“网格独立性验证要求我们的计算网格疏密对计算结果的影响在可以接受的范围之内,但是如果计算资源充足的话,的确可以再提高网格的数量以增加精度。但要记住的一点是:增加网格数量不一定能提高计算精度,但是高精度的计算结果一定来自于高密度的网格。说起来很拗口,你可以这样思考,影响计算结果精度的因素除了计算网格之外还有很多,比如计算模型,边界条件,初始条件,残差标准等等,因此网格数量的增加不一定就能够提高计算精度,但是如果网格数量过少,肯定得不到精确的计算结果。”
“那么问题来了,多少网格叫粗多少网格叫密呢?通常我们并不说某某模型需要多少网格,网格数量通常取决于你拥有的计算资源和时间资源。打个很简单的比方,比如你要设计某个产品,设计周期是一个月,你利用CFD来帮助进行设计,如果你每一个模型的计算时间需要一周,那时间资源肯定不够,你只能使用低密度的网格,每个计算时间在一天之内的网格模型来进行计算。或者你可以换用更高级的计算机,但一定要确保每个模型的计算时间不能超过一天。很简单的道理对不对。”
“还有个很容易被忽略的问题,那就是网格的分布。初学者划分的网格常常是均匀分布的,这其实是一种资源浪费。要记住的一点是只有梯度大的区域才需要高密度的网格。在流场计算过程中,只有一些物理量变化剧烈的场合才需要更精细的网格。因此在划分网格之前就需要对流体域内流动特征有一个初略的估计,在物理量梯度大的区域布置更加细密的网格,这是一个很重要的网格划分规则。”
小白的总结
- 一般情况下,网格质量必须得到保证,否则会影响计算收敛过程,甚至导致错误的计算结果。
- 在保证网格质量的前提下,根据计算资源来考虑网格数量
- 网格独立性并非表示数值计算结果与计算网格数量无关,而只是在计算精度与计算网格数量之间的一个折衷
- 增加网格数量不一定能提高计算精度,但是高精度的计算结果一定来自于高密度的网格
- 梯度大的区域才需要划分更精细的网格,尺寸均匀的网格不一定是好的网格
【小白的CFD之旅】19 来自计算网格的困惑的更多相关文章
- 【小白的CFD之旅】20 计算区域的构建
计算域是什么计算域如何创建常用的建模软件计算域几何的特殊之处具体的计算域提取方法小白总结 自从上次在食堂听了小牛师兄关于计算网格的一些问题后,小白决定在寒假期间好好的补习一下关于计算网格的划分内容.在 ...
- 【小白的CFD之旅】22 好网格与坏网格
网格疏密网格形状其他的一些问题小白的总结郑重申明 网格的作用如此重要,以至于小白纠结了很久.小白知道网格划分过程很大程度上受制于计算资源的限制,但小白还是不太明白,如果计算资源非常充足,不用顾忌资源限 ...
- 【小白的CFD之旅】小结及预告
这是小白系列的索引,后续会继续更新. 已更新的部分 01 引子02 江小白03 老蓝04 任务05 补充基础06 流体力学基础07 CFD常识08 CFD速成之道09 初识FLUENT10 敲门实例1 ...
- 【小白的CFD之旅】13 敲门实例【续3】
接上文[小白的CFD之旅]12 敲门实例[续2] 4 Results4.1 计算监测图形4.2 Graphics4.2.1 壁面温度分布4.2.2 创建截面4.2.3 显示截面物理量4.2.4 Pat ...
- 【小白的CFD之旅】12 敲门实例【续2】
接上文[小白的CFD之旅]敲门实例[续] 主要内容 3 Solution3.1 Solution Methods3.2 Solution Controls3.3 Monitors3.4 Report ...
- 【小白的CFD之旅】11 敲门实例【续】
主要内容: 接上文[小白的CFD之旅]10 敲门实例 2.4 Materials设置2.5 Cell Zone Conditions2.6 Boundary Conditons2.7 Dynamic ...
- 《小白的CFD之旅》招募写手
<小白的CFD之旅>系列招募写手. 由于工作繁忙,<小白的CFD之旅>系列更新缓慢,现招募志愿者写手.这是一个分享平台,欢迎各位愿意分享自己CFD学习经历的朋友们. <小 ...
- 【小白的CFD之旅】01 引子
小白的CFD之旅 写在前面 CFD是计算流体力学的英文简称,是计算机辅助工程(CAE)的主要分支,目前广泛应用与科学研究.工程设计中.这是一门综合了数学.计算机及流体力学的综合学科,涉及到众多的专业理 ...
- 【小白的CFD之旅】16 流程
那天听了小牛师兄关于CFD应用的四种境界的说法后,小白发现自己连第一种境界都算不上,自己对于CFD还只是停留在做了少数几个案例的基础上,可以说是对其一无所知.不过小白不是那种遇到挫折就退缩的人,他决定 ...
随机推荐
- Win极速文件搜索Listary
对于开源的everything在win下搜索文件很高效了.不过在listary功能上更加的丰富..支持正则搜索 对比: 都是基于本地磁盘索引,进而实现快速搜素 00.有能力的还是购买pro,当然也有免 ...
- 简化版的SpringMVC框架的实现思路
在SpringMVC基本统一Java web开发技术栈的环境下, 这是一个有点过时的话题了. SpringMVC的特点主要在于注解型的RequestMapping和参数机制非常灵活, 另外得益于Spr ...
- 在 Laravel 5.1 中使用 Pjax
在 Laravel 5.* 的版本中,使用 Pjax 实现无刷新效果,以及酷炫的进度条 项目地址:https://github.com/yccphp/pjax-for-laravel-5 求 star ...
- 【转】 mysql反引号的使用(防冲突)
转载地址:http://blog.itechol.com/space.php?uid=33&do=blog&id=6681 1.mysql语句中 反引号 [`]作用: 避免表明.字段名 ...
- ios中Pldatabase的用法(2)
@implementation AppGlobal static NSString* strHostName; static NSString* strVersion; static PLSqlite ...
- linux shell 脚本攻略学习3
1.Bash中的READ命令 #读取n个字符存入变量 read -n number_of_chars variable_name 示例: amosli@amosli-pc:~$ read -n var ...
- 转 windows查看端口占用命令
转自 http://www.cnblogs.com/allenblogs/archive/2010/06/25/1765055.html 开始--运行--cmd 进入命令提示符 输入netstat ...
- 获取COM组件类型库信息
类型库type library的作用是什么? 用来描述这个COM组建的接口信息,比如有多少个接口,每个接口有什么函数,函数的描述之类的.MSDN查一下ITypeLib,ITypeInfo,TypeAt ...
- 【struts2】名为chain的ResultType
1)基本使用 名称为“chain”的ResultType,在struts-default.xml里的配置如下: <result-type name="chain" class ...
- Android的API版本和名称对应关系
Android版本名和API Level关系全称 Android的版本 Android版本名称Code name Android的API level Android 1.0 (API level 1) ...