APP下载

基于LBM的单气泡上升现象及并行优化研究

2020-01-10温剑锋覃一海

现代计算机 2019年34期
关键词:浮力气泡数值

温剑锋,覃一海

(广西建设职业技术学院,南宁530000)

0 引言

气液两相流是非常有趣自然现象,同时也是工业制造中常见的现象。气泡在液体中产生、合并、上升、爆裂等现象在工业生产中有着重要的影响。在工业生产中,通常根据气泡的动力学特点,调整生产过程的参数提高生产效率。在医疗中,利用气泡的运动特性,将药物运送到患者的生病部位达到治病目的。在航运过程中,通过减少高速运转的螺旋浆产生的空化气泡达到保护螺旋浆的目的。

至今,众多研究者对气泡上升时出现行为进行展开了深入的研究,如合并、变形、破裂、速度等。Li等人[1]用VOF方法研究了气泡在液相中产生和上浮。付等人[2]根据气泡在液体中的运动过程,推导出了气泡的运动方程。田等人[3]用水平集方法等研究气泡上升时的变形和运动特点,揭示了气泡变形的原因。陈等人[4]研究了气泡在浮力作用下的流场分规律,并提出了浮力作用的假设。

LBM是当前主流的数值模拟方法,它具有算法简单、边界易于处理、适合并行处理等特点,非常适合用于复杂多相流现象的模拟研究。CUDA是NVIDIA公司推出的解决复杂运算的架构,它能使GPU在并行运算、图像处理等方面的能力大大提升。基于CUDA的LBM算法为数值模拟提供了更高效的计算方式,受到众多学者的喜爱。

本文拟用LBM方法进行建模,然后使用CUDA并行技术对LBM程度进行加速计算,探索气泡上升的形态变化和上升的速度变化等。

1 LBM建模

1.1 LBM的基本公式

LBM编程简单主要在于该模型的公式简单、参数少,本文使用二维LBM模型进行编程,它的基本公式如下:

其中,fi、是分布函数,Ωi是碰撞因子、ei是单位速度、是平衡分布函数(ρ,u)、τ、ρ、u、δt分别是单驰豫时间、宏观密度、宏观速度、步长,展开为:

公式(1)包括了碰撞和迁移两部分,碰撞的公式为:

迁移的公式为:

1.2 LBM多相流模型

经过多年的发展,用于多相流模拟的LBM模型有颜色模型[5]、SC 模型[6]、Zheng 模型[7],然而这些均存在一些不足,如颜色模型计算具有指数复杂性、稳定性差,如伪势模型计算虚速度大,Zheng模型不满足伽利略不变性。在某些研究领域,这些模型的应用受了限制。对此,覃等人[8]深入分析了以上模型存在的缺陷,提出了复合的LBM多相流模型,此模型能更好地进行数值模拟,并具有较高的精确度和稳定性。该模型的动量公式为:

迁移公式为:

上述方程经过一系列的转化,可恢复N-S方程:

2 模型验证

本文主要使用(15)公式进行编程模拟,通过计算Δp的值,将实验计算的Δp值与理论进行比较,以检测模型的正确性。

其中,Δp表示气泡内外压强差,R表示半径,σ表示表面张力。计算区域定为201×201,界面厚度、气相密度、液相密度、驰豫时间、表面张力、迁移量、序参等分别为:5、1、1000、0.875、0.1、100、499.5。通过模拟不同的半径,求出内外压强差,然后用压强差与半径作图,所得数据如表1表示,由表可见实验值与理论值非常接近,计算误差均在1%以下,由实验可知本文采用的LBM满足Laplace定律,可用于多相流的数值模拟之中。

表1 实验结果与理论值对比

3 气泡上升研究

本文主要模拟二维单气泡在浮力作用下上升的现象。每一相的密度和表面张力系数的取值与文章Takada[9]一样。气泡处于四壁平稳的流场中。初始,气泡处于计算区域为80×300的低区域中(流场高度的1/4)。气泡内初始序参设为φ*,气泡外初始序参设为-φ*。在不同参数值(如表2所示),进行了几个数值模拟。由于气泡的半径很小,我们不必把界面厚设置太大。当浮力和拖拽力达到平衡,气泡将以几乎不变的速率上升。事实上,速率并不是常量。气泡在上升的时候,存在振荡现象。表2展示模拟结果对比情况。很明显,这些结果与VOF方法和Takada’s LBM吻合得非常好。气泡在不同条件下的最终上升的形态如图1所示。

表2 气泡在浮力作用下上升的模拟参数

表3 气泡在浮力作下上升的终点速率

图1 不同参数下气泡上升的最终形状

4 对气泡上升算法进行加速研究

维度划分是CUDA优化加速的其中方法之一。Grid和Block是划分维度的重要单元,通过确定合理的比例使CPU性能发挥最大作用。在优化时,可以将Block划分一维、二维、三维,通常认为维度越高,能划分的线程数就越多,但是由于GPU的线程数有限,并不能盲目对Block进行多维度划分。考虑到计算规模,本文先将Block划分一维,然后再将Block未利用的空间与Grid重新合并形成新的维度,这样充分利用了空闲的线程进行运算,使程序并行效率达到最大化。将未进行维度划分的算法设为S0,已经进行维度划分的算法为S1,演化10000步的计算结果,如表4所示,由表可见,经过优化加速后,流场越大获得的加速比越大。因此,进行大规模数值模拟运算时,引入CUDA并行技术能大大提升程序运行效率,能为更深入研究提供坚实的基础。

表4 方案S0、S1的耗时和加速效果的比较

5 结语

本文使用主流多相流LBM模型研究了气泡上升的现象,通过多组不同的初始参数计算了气泡上升的速度以及不同参数下气泡上升的形状,实验与前人研究结果基本吻合。针对当前程序计算效率低下问题,本文引入CUDA对LBM多相流程序进行了加速计算,能获得最高13.86倍的加速比,大大缩短了程序达到稳定时需要的时间,能为更深入的研究缩短期限。接下来,笔者计划在CUDA并行技术方面进行更深入的探索,希望能为LBM程序的运算减少更多的时间。

猜你喜欢

浮力气泡数值
体积占比不同的组合式石蜡相变传热数值模拟
数值大小比较“招招鲜”
SIAU诗杭便携式气泡水杯
浮法玻璃气泡的预防和控制对策
舰船测风传感器安装位置数值仿真
铝合金加筋板焊接温度场和残余应力数值模拟
冰冻气泡
第十章浮力
探秘浮力
神奇的浮力