首页/文章/ 详情

浅谈COMSOL中的“玄学”(一)

1年前浏览791



浅谈COMSOL中的“玄学”(一)

作者:极度喜欢上课


如果大家使用COMOL较长的一段时间了,可能会或多或少发现COMSOL中一些很“玄学”的现象。为了让广大同学更充分深入的理解COMSOL,本人打算出一个系列的文章专门介绍COMSOL中的“玄学”现象,系列文章目前打算分为三个专题,分别讲解三种本人遇到过的玄学现象。
玄学现象1.多次计算同一个模型会得到不同的结果
玄学现象2.不同的网格划分模型会得到不同的结果(这里说的不是网格独立性的验证,而是纯纯的不同的网格得到完全不同的结果。)
玄学现象3.几何绘图方式的不同会直接影响模型的收敛情况
其实不只是COMSOL,这些现象可能也会在其他的有限元分析软件中出现,各位同学可以多加留意。(我替大家先行踩坑了)
本文先详细介绍玄学现象1.多次计算同一个模型会得到不同的结果
对于“多次计算同一个模型会得到不同的结果”这个现象我之前有做过两期配套的视频进行讲解[1,2],也有讲到相应的解决方法,感兴趣的同学可以考古一下。为了对“多次计算同一个模型会得到不同的结果”这个现象进行更详细的说明,本文再详细列举一个更简单的例子——卡门涡街。卡门涡街的例子想必大家已经非常的熟悉了,最简单的卡门涡街的案例应该是“二维的卡门涡街脱落”,COMSOL官网上就有简单的二维卡门涡街的教程[3],感兴趣的同学可以下载学习。本人这里也对卡门涡街进行过一些较为深入的探讨,例如:1.研究过涡街脱落与钝体振动的关系——涡激共振[4]2.三维尺度下卡门涡街的形成[5]3.三维尺度下,层流、湍流以及大涡对卡门涡街现象模拟效果的对比[6]等等,关于这些研究的介绍都已经录制有相应的视频放在了B站上,欢迎大家观看,共同学习进步。
本文将卡门涡街中常见的圆形钝体变成四边形钝体(此案例可下载,详见[7]。),在观察卡门涡街现象的同时,尝试说明本节“多次计算同一个模型会得到不同的结果”这个问题。模型的几何如图1所示,其中计算域为长2米,高0.5米的矩形,在距离左端0.5米处有一个边长为0.1米的正方形钝体,左端为1米每秒的空气入口,空气的物性参数直接调用COMSOL的内置材料air,左端为压力等于0的空气出口,计算域上下壁面设置为滑移壁面,采用COMSOL5.6版本中的层流模块进行计算,采用物理场控制网格的“超细化”进行网格划分。为了提高模型收敛性,在空气入口设置一个阶跃过渡函数,正方形钝体的四个角进行半径为0.002米的圆角处理。

1 卡门涡街几何
如图2所示,为第一次计算与第二次计算所得到的速度云图对比图。在第0秒到第4秒内,同一个模型两次计算所得到的速度云图保持高度一致,在第5秒的时候两次计算所得到的速度云图开始出现肉眼可见的差异,第6秒到第7秒两次计算所得到的速度云图完全无法保持一致,差异明显。通过速度云图的对比可以发现在计算前期模型是能保持较好的一致性的,但是在计算后期差异越来越大,最终导致结果完全不一致。

2 速度云图对比图
如图3所示,为第一次计算与第二次计算所得到的雷诺数对比图。与速度云图对比图所反映的现象一致,在第0秒到第4秒内,两次计算结果保持高度一致,在第5秒的时候开始出现肉眼可见的差异,第6秒到第7秒两次计算所得到的结果完全无法保持一致,差异明显。

3 雷诺数对比图
如图4所示为两次计算所得到的曳力和升力对比图,其中左边的为第一次计算所得的到结果,右边的为第二次计算所得到的结果。其实从图2和图3已经可以明显的判断曳力和升力的对比图不可能是相同的,但是同学们还是可以简单对比一下,就算明知道不一样但是不是依然觉得它们是挺相似的?

4 曳力和升力对比图
从上述的结果对比图来看,结论已经很明显了,一个简单的卡门涡街模型两次计算分别得到了两组不同的结果。那么关于这个玄学现象本人有几点个人的看法想和大家分享一下。(只是个人的看法,请同学们理性看待,希望能扩宽同学们的思路。)
1.从哲学的至高点来看,世界上不存在两片完全相同的树叶,所以就算是同一个模型,多次计算之后也不会存在两组绝对完全相同的解,这里本人特别强调“绝对完全相同”这个概念。CPU的计算本身是有一个精度的,对于一般的模型,每一次计算之所以都能得到相同的结果,有可能只是因为CPU的计算精度无法识别到每次计算的差异,受到日常生活常识和学习习惯的影响我们已经理所当然的认为“正确的模型一定是每次计算的结果都相同的”这一条法则。
2.从现实中的实验来说,没有人能绝对完全复现前人已经做过的任何一个实验,这里本人依然强调“绝对完全复现”。大多数情况下我们说一个实验能被复现,是指在允许的误差范围内,实验的现象或者说结论被复现出来了,“复现”其实是有条件的“复现”。仿真模拟虽然不需要倒弄各种实验器材,但是它也可以归类到实验的一种,就好像我们复现一篇论文里面的仿真,肯定不可能绝对完全复现。这里有同学可能会说“那是因为电脑和软件版本都不一致,甚至是论文里面的条件可能都没给全。”,诚然是存在这样子的情况,但请允许我诡辩一下,虽然本文的模型是拿同一台电脑进行了两次计算的,但是没有人能保证本人那台电脑在那两次计算时候的“性能”绝对完全的一样,所以两次计算所得到的结果不可能绝对一致。(所处的环境不同,电脑的“性能”是不可能完全一样的。极端来说,我们的家用电脑如果拿到北极去跑仿真,可能由于温度太低,电脑都开不了机了,此时“性能”等于零。我们每次计算时电脑所处环境的温度、湿度,输入的电压肯定都是有微小的变化的,所以电脑每次计算模型时“性能”无法完全保持一致。)
3.模型每次计算结果不一样其实才是正常情况,那为什么大家还会用模型每次计算的一致性来判断模型是否正确呢?那是因为“模型每次计算结果都一样”是一条说明模型是准确的最简单明了的法则,也符合广大人民群众的常识。所以本人认为“模型每次计算结果都不一样”不能说明这个模型是错的,只是说它不能用这条法则来证明是准确的,如果有条件的话我们其实完全可以通过其他的方法来证明模型是准确的,例如:做一个实验,模型所反映的结果和规律和实验能对上,模型就能被证明准确;数学基础好的同学,可以拿各种数学公式进行理论推导,模型所反映的结果能和理论推导的结果对上,模型也能被证明准确。
4.其实从另一个方向思考一下,本文的卡门涡街模型是真的错了吗?通过图4可以看出,虽然模型的曳力和升力无法完全对应,但是曳力和升力的幅值、频率以及振动状态基本都是保持一致的,虽然在“定量”上它们不一致,但是在“定性“上它们所表现的规律是一致的。推广到速度云图和雷诺数的对比图,在“定性”上它们其实也是一致的。所以从某种意义上来说,本文的两次计算结果都是正确的。
当然上述只是本人的个人看法,各位同学还需理性看待,在大多数情况下,最好还是需要让模型保持每次计算的一致性。那如果发现模型“模型每次计算结果都不一样”需要怎么进行调试呢?建议大家可以看看这个视频[2],也建议大家也可以从1.求解器的相对容差,2.求解器的时间步长,3.网格的划分,4.物理场采用的离散方法等方面着手进行调试。
参考资料见附件

来源:COMSOL实例解析

附件

免费链接.txt
振动湍流理论材料控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-01-30
最近编辑:1年前
获赞 173粉丝 249文章 81课程 3
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈