许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  【FLUENT保姆级教程】动网格负体积?重叠网格一招搞定!

【FLUENT保姆级教程】动网格负体积?重叠网格一招搞定!

阅读数 3
点赞 0
article_banner

动网格又报负体积了,转子转过第一个时间步就开始刷屏“Negative cell volume detected”,控制台一屏一屏地滚,最后直接崩掉。这个报错从螺旋泵那个算例开始就一直缠着,时间步从1e-4砍到2e-5,弹簧常数因子从0.8降到0.5,Remeshing的Minimum Cell Volume也改了,还是不行。后来翻论坛,有人一句话点醒了:“negative cell volume error may be due to distance moved per time step may be greater than the edge or cell size in the dynamic region”。动网格的根子问题在这里,网格在变形,每一步都在拉伸压缩,变形量一旦超过单元尺寸的容忍范围,负体积就来了。再怎么调参数,只要网格在变形,这个风险就一直在。


重叠网格的思路完全不一样。它不靠网格变形来适应运动,而是准备两套网格,一套背景网格覆盖整个流场,一套组件网格包住运动部件,两套网格叠在一起,运动部件带着自己的组件网格在背景网格里移动。背景网格一动不动,组件网格也一动不动,网格质量从第一步到最后一步完全一样。论坛上有人总结得挺到位:“嵌套网格的最大特点,就是让流体仿真变得更为简单和快捷”,“不会出现负体积,网格质量不随边界移动而变化”。动网格是让网格去追着运动跑,重叠网格是让运动跑在网格里,两者的根本区别就在这里。


网格准备这一步跟动网格不一样。背景网格和组件网格分开画,在Workbench里各建一个网格单元,分别导入Fluent。背景网格就是整个计算域的网格,尺寸可以粗一些,用六面体或者多面体都行。组件网格包住运动部件,外围留一圈边界,这个边界在网格工具里就要指定为overset类型,不能等导进Fluent再改。两套网格的重叠区域要够厚,peraglobal的教程里明确说“建议重区域的网格最少有4个层”,重叠太薄的话供体单元找不到,orphan单元出来了计算照样崩。组件网格外围那圈overset边界到部件表面的距离,至少保证四层网格的厚度,运动范围大的部件还要再留宽一点。


边界条件这里跟常规设置不一样的地方就一个,组件网格的外边界设成overset类型。Fluent里Boundary Conditions面板里找到那个面,Type下拉框里选overset,其他所有边界条件照常设。背景网格的边界该是什么就是什么,入口出口壁面照旧。组件网格上的运动部件表面也是壁面,这跟动网格里设Moving Wall的逻辑一样,只是网格本身不参与变形。论坛上有个帖子把步骤写得很清楚:“Ensure that the ‘Overset’ BC is assigned in meshing”,“Set the overset boundary condition”。网格工具里如果没有指定overset类型,导进Fluent之后在Boundary Conditions里手动改也行,Type下拉框里选overset。


Overset Interface的创建在Fluent的GUI里点一下就行,Domain→Mesh Interfaces→Create,选要组合的zone,命名,点Create。Fluent自动做三件事:挖洞,把组件网格里不在计算区域内的单元标记为dead;重叠区域最小化,把多余的重叠单元也标记为dead;供体搜索,给每个receptor单元找到对应的donor单元。这三步做完之后,重叠区域的网格插值关系就建立好了。如果几何上有相交的壁面边界,比如转子跟定子之间的间隙,不加collar网格的话会产生orphan单元,计算照样出问题。padtinc的文档里还有几个限制要注意:overset interface不能包含固体单元区域,组件网格不能接非共形界面,背景网格之间不能有非共形界面,组件区域不能有周期性边界。


初始化之后要看一眼单元类型分布,确认没有orphan。Fluent里Display→Mesh→Cell Type,Solve cells显示绿色,Receptor cells显示蓝色,Donor cells显示红色,Dead cells不显示,Orphan cells显示成醒目的颜色。如果有orphan,回去把重叠区域的网格加密或者把组件网格的外围边界往外推一点。默认只显示1到2号类型的单元,想看orphan要敲TUI命令“/define/overset-interfaces/options/render-receptor-cells?”把渲染打开。

FLUENT保姆级教程

时间步长不用像动网格那么苛刻了,但也不能随便给。组件网格运动一个时间步的位移,不能超过组件网格里最小单元的尺寸。论坛上那个圆柱入水的帖子,球体初始速度2m/s,时间步从1e-8到1e-12试了一圈还是报负体积,问题不在时间步大小,在组件网格本身有质量问题,某些单元的尺寸小于球体一个时间步的位移量。重叠网格不需要Remeshing,网格质量是固定的,时间步只要保证运动位移不超过组件网格的最小单元尺寸就行。组件网格在运动部件附近加密到跟时间步匹配的尺度,比动网格里反复调Remeshing参数省事得多。


优先级设置在多组件的情况下用。背景网格的grid-priority设0,组件网格设1,优先级高的网格在重叠区域保留下来,优先级低的被挖掉。padtinc的教程里说“Assigning a higher priority to an individual zone means that this zone will be maintained over the adjacent ones”。两个运动部件互相靠近的时候,把两个组件的优先级都设成1,背景设0,Fluent在中间过渡,两边的网格都保留,不会互相挖掉。donor-priority-method选boundary-distance-based,供体搜索按离壁面的距离来选,两个部件靠近的时候重叠过渡的位置尽量在中间,不会偏到一边去。


双精度必须开。padtinc的文档里专门用加粗写了一句“It is recommended to use double-precision for all overset mesh problems”。重叠网格的插值误差比常规网格大,单精度的舍入误差积累起来可能让插值出来的物理量不守恒,双精度能把这个误差压下去。启动Fluent的时候选3ddp,不要选3d。


重叠网格的代价是计算量,同样的网格量下重叠区域多算一遍,内存和CPU时间都涨。但省下来的时间是调Remeshing参数和反复重跑的时间。螺旋泵那个算例如果一开始就用重叠网格,组件网格包住转子,背景网格覆盖泵腔,转子带着组件网格转,网格永远不变形,负体积根本不会出现。D:\Fluent_work\overset\ 下面那个泵腔的算例还没建,组件网格的边界层第一层高度和重叠层数是……


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空