基于FLUENT的水下子弹数值模拟
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于FLUENT的水下子弹数值模拟
一、问题介绍
Fluent是目前处于领先地位的CFD软件包之一,它为流体力学领域提供了强大丰富的计算平台。
针对各种复杂流动的物理现象,fluent可以采用不同的离散格式和插值方法,在特定区领域内使计算速度、稳定性和精度等方面达到最佳组合。
但是针对特殊的物理情景,其自身无法提供完全近似的物理模型,必须通过其自带的自定义函数UDF(user Defined function)对其进行二次开发。
例如,对于水下航行的子弹,现有的模块不能模拟子弹运动过程,只能给定一个逆向的速度入口边界条件来实现,即水动子弹不动。
为了更近似的模拟子弹运动过程,需要对FLUENT进行二次开发。
本文采取的方法是利用用户自定义函数UDF,对fluent进行二次改造,采用动网格技术,对子弹匀速运动进行模拟。
二、物理平台
本文用到的软件包括:前处理软件gambit,计算软件fluent12.0,UDF支持语言microsoft visual C++6.0,后处理软件tecplot.
Gambit用于建立几何模型,划分网格。
本算例采用二维轴对称模型,子弹以一矩形近似代替。
Fluent用于计算子弹运动流场特性,包括速度,压力,阻力等。
本算例涉及到子弹运动,需要采用动网格技术,即网格在计算过程不断变化更新,因此通过UDF对fluent进行二次开发。
其中UDF是fluent自带的宏命令,其运行环境是C语言,所以必须在计算机中提空支持C语言的运算环境microsoft visual C++6.0(也可以是其他更高版本)。
Tecplot为计算结果后处理软件,可以制作动画,云图等。
三、动网格简介
1.spring based smoothing 弹簧近似光滑模型
2.dynamic layering 动态分层模型
3.local remeshing 局部重构模型
三种动网格技术有自己的使用范围,其中弹簧近似光滑模型对于结构和非结构化网格都适用,对于模拟物体小范围运动或者变形有巨大优势,而对于大范围移动却无法实现,一般情况下此方法很少单独使用,通常是配合后面两种动网格技术使用。
网格局部重构模型只适合四面体网格和三角形网格,可以用于模拟大范围平移和旋转,同时在模拟复杂边界移动具有很大优势。
动态分层模型只是用于结构化网格,对于三角形和四面体网格则毫无用处。
由于本文采用此方法,这里讲具体介绍此模型:
动态分层模型(dynamic layering),对于规则计算域,划分规则四边形网格后,采用此模型有利于实现物体的单方向平动,其优点是不需要网格重构,不会改变运动体周围的网格形态,节约了网格更新的时间,同时能保证网格一致性,提高计算效率。
此方法的弱点在于无法模拟物体旋转运动,无论对于二维还是三维模型,只能解决物体平动问题。
此方法的思想是当网格边界缩短小于设定值时自动与上一个网格合并成,而当网格被拉伸小于设定的最大网格线长度时,又自动分裂成两个网格。
无论是哪种动网格模型,对内部的参数设置要求十分严格,若参数设置不当,可能出现
负网格,因此,在进行划分网格时候,严格记录各关键部位尺寸,计算前,最好进行网格预览。
四、本文算例介绍
1、几何模型
本文将模拟子弹在水下运动过程,分别设定子弹以20m/s,,25m/s,30m/s在水下匀速运动,观察子弹周期的压力场,速度场以及空化情况,在此基础上选取30m/s运动速度采用动网格技术进行模拟,意在指明子弹与水的相对运动关系的区别。
为了节约计算资源,子弹简化为一长30mm,宽10mm,计算区域长300,宽100mm。
全域采用四边形结构化网格,同时在子弹周围网格加密。
网格总数15050,最小网格0.375mm。
因为计算物体和计算区域高度对称,因此截取一半采用二维轴对称方式计算。
计算网格及边界条件如图1所示:
图1
2、计算方法
将网格导入fluent12.0中,本文所有算例采用标准k-epsi湍流模型,离散方法为piso算法,打开空化模型。
不同速度算例均为定常情况,动网格模型为非定常模型,其时间步长0.0001s。
3、计算结果
算例1:下图为20m/s,25m/s,30m/s速度下,子弹的空泡云图,速度云图和压力云图,从图2中可以看出随着速度增大,空泡尺寸相应增大,子弹周围压力减小。
当达到30m/s 时,子弹几何被整个气泡包裹。
空泡尺寸速度云图压力云图
图2
以上算例均以子弹不动,在左边界给一个速度入口边界条件,以水相对子弹运动来代替自带在水中运动,此种方式在数学理论上符合逻辑,但是是否符合物理实际,现在众说纷纭。
在相关领域也有相应的实验场地,均采用此种方式模拟真实的子弹或者其他水下航行体运动。
由于子弹运行距离较长,不可能在实验中实际检测子弹的运动,因此,此方法在理论和实验方面都具有很强的优势。
算例2:选取30m/s运动速度,采用动网格技术,模拟子弹在水中航行。
程序代码如图3
图3
具体操作步骤如下:
因计算机为双核处理器,所以在并行计算时候只能选取双核并行,若计算机性能足够强大,可选择多核并行,如图4标注。
图5 图6
本算例采用动态边界层动网格模型,在相应的模型前选中即可,内部的分裂因子保持默认,如图6。
此模型需要把整个流域以及子弹作为运动物体同时运动,并且入口和出口设置为不动边界。
此处动网格能否实现的关键在于运动体的参数设置。
其中的cell hight均为y方向的最小网格尺寸,若设置成x方向,则无法运动。
同时必须保证,s为最小网格尺寸, 为时间步长,v为物体运动速度。
为了与定常30m/s具有可比性,本算例所以计算方法,参数以及边界条件与30m/s定常运动完全一致,不同之处在于来流速度为0,子弹以30m/s速度向右运动。
计算之前最好先进行动网格预览。
图7是不同时刻子弹空泡发展情况:
图7
从云图可以看出,随时间增大,空泡尺寸不断变大,最后发展成为一个超空泡。
由于计算区域较短,后面时候子弹运动靠近边界,数据不稳定,可认为此时空泡已经完全发展。
由于计算时间较少,若延长计算时间,可看到空泡脱落现象。
为了说明动网格计算结果与定网格计算结果的差异,将30m/s定常结果与动网格模拟结果做对比,由于定常算例计算的是稳定后的空泡形态,因此必须以动网格计算空泡形态稳定后结果作为对比,如图8所示:
图8
图8看出定常计算和动网格计算在形态上有着明显的差别,动网格计算的空泡尺寸和尾部倒流情况明显不同于定常计算结果。
至于哪个结果更符合物理实际,需要与相应的实验数据做对比。
由于精力和条件限制,此处没有实际实验数据提供参考,此项工作将是后续工作重心。
五、结论和展望
通过以上算例计算,验证了动网格技术的可行性。
动网格技术,可以捕捉物体的完整运动过程,对于工程实际可以提供相应的技术参考。
动网格技术也存在很大的缺陷,例如计算时间巨大,对计算机性能要求高,因此,优化网格结构,简化计算方法,提高计算效率是动网格发展的必然趋势。