本发明涉及一种基于局部曲率自适应修正的改进水平集方法,属于多介质相互作用数值模拟技术领域。
背景技术:
多介质相互作用广泛的存在于自然界,并在工业、军事中有着重要的应用。认识多介质相互作用机理,对于爆炸冲击、武器弹药领域的发展具有重要意义。目前,研究多介质相互作用问题的主要手段包括理论分析、实验和数值模拟。由于爆炸冲击瞬态作用下,多介质相互作用的强非线性动力学行为,界面拓扑性质会发生复杂的改变,理论研究仅限于流致震动等界面几何性质简单的流固耦合问题。实验研究难以捕捉材料瞬态变化的历史过程,目前仍然缺乏针对一些特定问题的测试手段,且需要耗费大量科研经费。而数值模拟可以细致、深刻的真实再现爆炸冲击下炸药、壳体、靶板结构多介质相互作用的全物理过程,从多维度定点、定量进行分析,揭示实验难以观测到的物理现象。多介质界面处理是爆炸冲击高精度数值模拟的关键组成部分,综上,本发明提出的方法具有重要的工程应用价值和技术背景。
由于爆炸冲击下材料会产生拉伸、扭曲等大变形,只能通过欧拉算法进行高精度计算。爆炸冲击多介质相互作用数值模拟欧拉算法中的界面处理分为“界面追踪”和“界面捕捉”两种类型。“界面追踪”基本为拉格朗日方法,在数值模拟中,通过显式的推进界面运动来区分不同种物质。界面追踪方法表示的界面位置清晰、直观,但是当界面附近发生较大变形甚至是拓扑性质改变时,界面追踪方法会失效,产生较大误差,最终导致计算的不稳定。“界面捕捉”基本为欧拉方法,在计算中隐式地求解网格点上的体积分数、符号距离函数等信息,再通过求解得到的物理信息重构得到界面位置。由于界面信息是通过“重构”得到的,界面捕捉方法能够自然的处理多介质相互作用过程中界面拓扑性质发生显著改变的现象。
随着数值模拟在爆炸冲击、武器弹药领域中的广泛应用,复杂工况对多介质相互作用界面处理方法提出了更高的要求,单一的“界面追踪”或“界面捕捉”已经不能满足实际问题的高效率、高分辨率的界面处理。国内外学者提出并改进了水平集(levelset)、流体体积分数(volumeoffluid)等算法。然而这些方法许多在提高精度的同时,耗费了大量的计算量,计算效率低下,或者在牺牲精度的情况下提高计算效率,在高速侵彻武器及新型防护装备的研制及航空、机械领域的高速发展大背景下,以上不足影响了多介质相互作用数值模拟在实际工况下的有效应用,亟待弥补。
技术实现要素:
针对现有技术中多介质相互作用界面处理方法精度低、计算效率低,影响实际工况下界面处理不稳定、不精细的问题,本发明公开的一种基于局部曲率自适应修正的改进水平集方法要解决的技术问题是:实现界面追踪的高精度数值模拟,大幅提高计算效率,提高多介质耦合过程预测的准确性,进而进行多介质相互作用技术领域工程技术问题高精度数值模拟与预测,解决多介质相互作用技术领域相应工程技术问题。
所述多介质相互作用技术领域包括爆炸冲击、高速侵彻武器、防护装备、航空航天、机械工程领域。
本发明的目的是通过下述技术方案实现的。
本发明公开的一种基于局部曲率自适应修正的改进水平集方法,实现方法如下:基于水平集levelset方法,通过weno有限差分格式和tvdrunge-kutta格式对水平集函数进行离散。基于水平集函数的局部曲率自适应播撒示踪粒子,通过示踪粒子对水平集函数进行修正。weno有限差分格式和tvdrunge-kutta格式能实现水平集函数空间与时间项的高精度离散,保证界面水平集函数的计算精度;示踪粒子能在界面曲率变化较大的位置对水平集函数进行修正,确保多介质界面相互作用的数值仿真预测精度与效率。本发明有效的对复杂的工程问题多介质界面的运动进行高精度的数值模拟。
本发明公开的一种基于局部曲率自适应修正的改进水平集方法,包括如下步骤:
步骤1:确定界面运动计算区域,建立欧拉直角坐标系,在直角坐标系内进行网格划分,并设置边界条件及计算终止条件。
步骤1实现方法为:确定界面运动计算区域,建立欧拉直角坐标系,在直角坐标系内将计算区域划分为m*n个网格,其中,m表示x方向网格数量,n表示y方向网格数量。设置边界条件及计算终止条件。
步骤2:定义水平集levelset函数,通过水平集函数确定界面位置。
步骤2实现方法为:定义计算区域内初始状态下的用于区分界面位置的水平集函数如公式(1)所示,水平集函数满足空间欧拉点距离界面最短的线段长度,正负号表示水平集函数所区分的不同的物质。
在计算初始时刻,采用公式(1)定义水平集函数的初值:
其中,x、y分别为网格节点的物理空间坐标,d表示网格节点(x,y)到界面的距离,ω1、ω2分别为两种物质界面两侧的区域,γ(0)为初始时刻两种物质组成的界面。
水平集函数采用符号距离实现在任何时刻对界面演化过程的追踪,界面始终处于符号距离函数为零的零等值面位置:
其中,γ(t)为两种物质组成的运动界面,t为运动时间。
步骤3:根据步骤2定义的水平集函数分别求解不同区域法向量与曲率。
步骤3实现方法为:根据步骤2定义的水平集函数分别求解不同区域法向量与曲率,求解公式分别为公式(3)和(4):
其中,
步骤4:根据步骤2定义的水平集函数确定各区域,并根据需要定义不同区域对应的背景速度场。
步骤4实现方法为:根据步骤2定义的水平集函数确定各区域,并根据需要定义不同区域对应的背景速度场u(u,v),其中u为x方向的速度分量,v为y方向的速度分量。
步骤5:根据步骤3计算的求解区域内各网格点曲率,分别得到全场曲率与局部曲率。在界面附近三个网格宽度区域内,根据网格点的全场曲率与局部曲率初始化自适应播撒示踪粒子,实现在曲率相对较大的区域布置较多的示踪粒子,在曲率相对较小的区域布置较少的示踪粒子。定义示踪粒子半径范围,通过插值确定示踪粒子半径及正负,通过随机算法,将粒子在界面法向方向进行均匀排布。确保界面附近更多的粒子与界面相切,增加界面重构精度。进而可对曲率相对较大的易产生质量损失的区域产生有效的修正,提高模拟预测精度和效率。
步骤5具体实现方法为:根据步骤3计算求解区域的全场曲率与局部曲率,即基于步骤3计算得出全流场曲率绝对值的平均值与当前网格曲率的绝对值,对于界面附近三个网格宽度内的网格,单一计算网格内需布置的粒子数为:
其中,
为了提高数值模拟精度,作为优选,公式(5)中,p为3,q为4,为:
为了避免奇异点处曲率的奇异性导致过多示踪粒子的引入,采用如下限制器控制示踪粒子数量:
nneed≤24。(7)
对于示踪粒子,其半径rp的最小值与最大值分别为:
rmin=0.1min(δx,δy),(8)
rmax=0.5min(δx,δy)。(9)
示踪粒子初始均匀的布置在水平集函数绝对值小于3max(δx,δy)的欧拉网格内,其中,δx,δy分别为x,y方向的网格宽度。界面两侧粒子分布层的最小与最大厚度分别为:
bmin=rmin,(10)
bmax=3·max(δx,δy)。(11)
在保证界面切向粒子近似均匀分布的同时,有必要通过随机算法,将粒子在界面法向方向进行均匀排布,最终将有效粒子所处位置插值出的水平集函数的绝对值
在示踪粒子初始化完成后,将其标记为初始化粒子。
步骤6:根据步骤1确定的网格宽度及步骤4确定的速度参数,选取cfl参数,得到计算时间步长。
选取计算参数cfl计算时间步长,cfl参数为介于0到1之间的常数,选取计算参数cfl计算时间步长:
步骤7:对水平集函数的空间项进行离散,对单一介质计算区域进行时间离散,从而推进水平集函数,得到下一个时间步的水平集函数。
为了提高数值模拟精度,作为优选,步骤7中采用weno有限差分格式对水平集函数的空间项进行离散,采用tvdrunge-kutta格式对单一介质计算区域进行时间离散,从而推进水平集函数,得到下一个时间步的水平集函数。
步骤7实现方法为:
步骤7.1:对步骤2定义的水平集函数进行推进求解,具体推进的对流方程如下:
步骤7.2:对公式(14)的空间导数采用如下方式进行离散:
其中,
优选五阶hj-weno方法对
其中:
is0=13(a-b)2 3(a-3b)2
is1=13(b-c)2 3(b c)2
is2=13(c-d)2 3(3c-d)2
其中,ε为常数。对
步骤7.3:采用tvdrunge-kutta格式对计算区域进行时间离散。优选三阶tvdrunge-kutta格式对公式(14)的时间导数项进行离散,时间三阶tvdrunge-kutta得到水平集函数的完全离散格式,进而求得出下一时间步计算区域内各网格单元的界面函数值。
其中,
步骤8:对步骤4定义的速度场参数插值得到示踪粒子速度,结合步骤5定义的示踪粒子其他参数,推进示踪粒子的运动。
步骤8实现方法为:通过步骤4定义的速度场插值得到示踪粒子速度,结合步骤5定义的示踪粒子参数,通过式(21)直接推进布置在界面附近的示踪粒子的运动,修正网格点上的水平集函数。
其中,xp为示踪粒子的位置,u(xp)为示踪粒子的速度。
步骤9:根据步骤7与步骤8分别推进水平集函数与示踪粒子,根据新的水平集函数对示踪粒子进行插值,插值结果与步骤8得到的示踪粒子进行对比得到“逃逸粒子”,进而对逃逸粒子附近的水平集函数值进行修正。将正逃逸粒子与负逃逸粒子修正得到水平集函数值进行整合,增加鲁棒性。
在推进水平集函数及示踪粒子之后,通过新的水平集函数对示踪粒子进行插值,对于插值后示踪粒子对应正负符号
其中,
对于每个粒子都重复以上步骤,并最终将正逃逸粒子与负逃逸粒子修正得到水平集函数值进行整合,为了鲁棒性,采用公式(23):
其中,
步骤10:在步骤7求解过程中水平集函数将失去其原有性质。通过求解重新初始化函数,使水平集函数保持其符号距离性质,从而提高计算精度。
在步骤7求解过程中,由于数值误差,水平集函数难以保持原有性质,界面附近点的误差会导致界面计算精度的大幅降低,甚至导致错误的结果,因此,通过重新初始化将全流场水平集函数进行修正:
其中,
为了提高精度,作为优选,步骤10中时间步τ采用0.1dx进行虚拟推进。
步骤11:示踪粒子再次修正水平集函数。步骤10进行过程中,需保持示踪粒子静止,再用逃逸的示踪粒子去判断重新初始化产生的误差,并采用步骤9中的方法修正水平集函数。
步骤12:对示踪粒子重置。对步骤11修正后的水平集函数进行插值,采用修正后的粒子的水平集函数对应的插值对示踪粒子的半径进行重新赋值,重新赋值后的粒子半径应继续保持与界面相切。
步骤13:根据步骤12中的水平集函数增加或删除动态修正粒子,并对增加的动态修正粒子按照步骤5确定半径及正负信息,从而确保界面持续稳定的追踪。
在界面发生过度拉伸的位置,通过局部曲率计算得到该网格内需要存在示踪粒子的总数nneed(i,j),通过与当前网格内存在粒子总数ntotal(i,j)对比,确定额外引入的修正粒子数量ndynamic(i,j),随机布置在网格内,后续添加的示踪粒子标记为动态修正粒子。当界面发生缩短扭曲等情况时,若通过公式(6)计算所得到的当前网格示踪粒子所需数量nneed(i,j)小于当前网格内初始化粒子ninitial(i,j)与动态修正粒子数量ndynamic(i,j)的总和,则通过随机算法删除网格内部分或全部动态修正粒子,最终保证网格内粒子数量维持在预设较低水平。
在添加动态修正粒子之后,及时通过当前粒子插值得到的水平集函数值
步骤14:重复迭代步骤7至步骤13,直至达到最终计算步数或最终计算时间,实现不同介质界面追踪的高精度数值模拟预测。
还包括步骤15:根据步骤1至步骤14所述的一种基于局部曲率自适应修正的改进水平集方法进行多介质相互作用技术领域工程技术问题高精度数值模拟与预测,解决多介质相互作用技术领域相应工程技术问题。
步骤15所述多介质相互作用技术领域包括爆炸冲击、高速侵彻武器、防护装备、航空航天、机械工程领域。
所述高速侵彻武器工程技术问题包括激波打气泡、弹塑性块体撞击、聚能射流问题。
所述防护装备工程技术问题包括防护装备设计与制造、性能测试问题。
所述航空航天工程技术问题包括机翼绕流、激波模拟、紊流问题。
所述机械工程技术问题包括精确制造及其相关模拟问题。
作为优选,所述一种基于局部曲率自适应修正的改进水平集方法中,通过增加水平集函数维度,将二维x、y拓展至三维x、y、z,对于多介质界面,通过多个水平集函数确定,实现三维多介质数值模拟与预测。
有益效果:
1、本发明公开的一种基于局部曲率自适应修正的改进水平集方法,采用基于局部曲率的粒子重新播撒及修正方法,在提高精度的同时,大幅提升计算效率。基于界面曲率,将粒子连续的布置在界面附近,在角点等曲率较大的位置布置更多的粒子以达到更高的修正效率。
2、本发明公开的一种基于局部曲率自适应修正的改进水平集方法,能够有效的处理界面拉伸等大变形问题,动态修正粒子的引入确保界面在过度拉伸的情况下依然能够维持稳定的界面精度。
3、本发明公开的一种基于局部曲率自适应修正的改进水平集方法,由于初始化粒子携带的初始界面信息未被人为修正,避免信息的丢失,确保界面修正的准确性。具有更高的鲁棒性,并在保证界面精度的同时,提高计算效率。
4、本发明公开的一种基于局部曲率自适应修正的改进水平集方法,能够进行多介质相互作用技术领域工程技术问题高精度数值模拟与预测,解决多介质相互作用技术领域相应工程技术问题,所述多介质相互作用技术领域包括高速侵彻武器、防护装备、航空航天、机械工程领域。所述高速侵彻武器工程技术问题包括激波打气泡、弹塑性块体撞击、聚能射流问题。所述防护装备工程技术问题包括防护装备设计与制造、性能测试问题。所述航空航天工程技术问题包括机翼绕流、紊流、激波模拟问题。所述机械工程技术问题包括精确制造及其相关模拟问题。
附图说明
图1是本发明的一种基于局部曲率自适应修正的改进水平集方法流程图;
图2是本发明步骤2五角星形液滴界面示意图;
图3是原始方法粒子初始化云图;
图4是本发明步骤5自适应修正方法粒子初始化云图;
图5是本发明自适应修正方法与原始方法最终时间步界面对比示意图。
具体实施方式
实施例1:
为了更好的说明本发明的目的和优点,下面结合附图与实施例对本发明作进一步说明。
本实施例为基于局部曲率自适应修正的改进水平集方法对于五角星形液滴界面的数值模拟算例中的应用,五角星形液滴算例由于界面曲率为连续分布,是很好的检验自适应修正粒子算法性能的算例。
本实施例中所涉及单位制均为国际单位制。
如图1所示,本实施例公开一种基于局部曲率自适应修正的改进水平集方法,具体实现方法为:
步骤1:确定多介质界面运动计算区域,建立直角坐标系,在直角坐标系内进行网格划分,并设置边界条件及计算终止条件。
计算区域为[0,1]×[0,1],五角星形液滴中心坐标为[0.5,0.5],网格数为200×200。同时将上、下、左、右边界条件均设置为出流边界条件,保正物理模型的正确性。设置总时长为16s,在时间为8s时速度场反向,在时间为16s时,水平集函数零等值线回到原位置。
步骤2:定义水平集levelset函数。初始水平集函数在极坐标下为:
r(θ)=r acos(bθ),(25)
其中,r=0.3,a=0.1,b=5,初始界面函数如附图2所示。
步骤3:根据步骤2定义的水平集函数分别求解不同区域法向量与曲率。
步骤4:定义背景速度场。背景速度流场为旋转速度场:
步骤5:根据步骤3计算求解区域内各网格点的曲率,得到全场曲率与局部曲率。在界面附近三个网格宽度区域内,根据网格点的全场曲率与局部曲率初始化自适应播撒示踪粒子。
在进行步骤5时,原始方法与基于局部曲率自适应修正的改进水平集方法的粒子初始化云图如图3、图4所示。
步骤6:选取cfl参数,得到计算时间步长。为对比传统方法和改进的粒子方法,采用统一的时间步0.001s,其满足cfl条件。
步骤7:对水平集函数的空间项进行离散,对单一介质计算区域进行时间离散,从而推进水平集函数,得到下一个时间步的水平集函数。
步骤8:对步骤4定义的速度场参数插值得到示踪粒子速度,结合步骤5定义的示踪粒子其他参数,推进示踪粒子的运动。
步骤9:根据步骤7与步骤8分别推进水平集函数与示踪粒子,根据新的水平集函数对示踪粒子进行插值,插值结果与步骤8得到的示踪粒子进行对比得到“逃逸粒子”,进而对逃逸粒子附近的水平集函数值进行修正。将正逃逸粒子与负逃逸粒子修正得到符号距离函数值进行整合,增加鲁棒性。
步骤10:在步骤7求解过程中水平集函数将失去其原有性质。通过求解重新初始化函数,使水平集函数保持其符号距离性质,从而提高计算精度。
步骤11:示踪粒子再次修正符号距离函数。
步骤12:对示踪粒子重置。
步骤13:根据步骤12中的水平集函数增加或删除动态修正粒子,并对增加的动态修正粒子按照步骤5确定半径及正负信息,从而确保界面持续稳定的追踪。
步骤14:重复迭代步骤7至步骤13,直至达到最终计算步数或最终计算时间,实现不同介质界面追踪的高精度数值模拟预测
完成步骤14后,原始的传统的带示踪粒子的水平集方法与基于局部曲率自适应修正的改进水平集方法的计算时间与质量损失见表1。为方便对比,不同计算方法所需示踪粒子见表1。不同计算方法在计算结束后,其界面对比如图5所示。
表1不同方法五角星形液滴算例对比
仿真预测结果分析:
图4为自适应修正粒子算法初始粒子分布图。在距离中心更近的位置处,由于曲率最大,粒子数相较于传统方法(图3)明显变多,而在接近直线的曲边附近,粒子保持在一个较低的水平。图5为初始曲线与原始方法、自适应修正粒子算法计算结果对比图,在曲率大的位置,自适应修正粒子方法达到比原始方法更好的计算结果,效率提高约50%。
以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.一种基于局部曲率自适应修正的改进水平集方法,其特征在于:包括如下步骤,
步骤1:确定界面运动计算区域,建立欧拉直角坐标系,在直角坐标系内进行网格划分,并设置边界条件及计算终止条件;
步骤2:定义水平集levelset函数,通过水平集函数确定界面位置;
步骤3:根据步骤2定义的水平集函数分别求解不同区域法向量与曲率;
步骤4:根据步骤2定义的水平集函数确定各区域,并根据需要定义不同区域对应的背景速度场;
步骤5:根据步骤3计算的求解区域内各网格点曲率,分别得到全场曲率与局部曲率;在界面附近三个网格宽度区域内,根据网格点的全场曲率与局部曲率初始化自适应播撒示踪粒子,实现在曲率相对较大的区域布置较多的示踪粒子,在曲率相对较小的区域布置较少的示踪粒子;定义示踪粒子半径范围,通过插值确定示踪粒子半径及正负,通过随机算法,将粒子在界面法向方向进行均匀排布;确保界面附近更多的粒子与界面相切,增加界面重构精度;进而可对曲率相对较大的易产生质量损失的区域产生有效的修正,提高模拟预测精度和效率;
步骤6:根据步骤1确定的网格宽度及步骤4确定的速度参数,选取cfl参数,得到计算时间步长;
步骤7:对水平集函数的空间项进行离散,对单一介质计算区域进行时间离散,从而推进水平集函数,得到下一个时间步的水平集函数;
步骤8:对步骤4定义的速度场参数插值得到示踪粒子速度,结合步骤5定义的示踪粒子其他参数,推进示踪粒子的运动;
步骤9:根据步骤7与步骤8分别推进水平集函数与示踪粒子,根据新的水平集函数对示踪粒子进行插值,插值结果与步骤8得到的示踪粒子进行对比得到“逃逸粒子”,进而对逃逸粒子附近的水平集函数值进行修正;将正逃逸粒子与负逃逸粒子修正得到水平集函数值进行整合,增加鲁棒性;
步骤10:在步骤7求解过程中水平集函数将失去其原有性质;通过求解重新初始化函数,使水平集函数保持其符号距离性质,从而提高计算精度;
步骤11:示踪粒子再次修正水平集函数;步骤10进行过程中,需保持示踪粒子静止,再用逃逸的示踪粒子去判断重新初始化产生的误差,并采用步骤9中的方法修正水平集函数;
步骤12:对示踪粒子重置;对步骤11修正后的水平集函数进行插值,采用修正后的粒子的水平集函数对应的插值对示踪粒子的半径进行重新赋值,重新赋值后的粒子半径应继续保持与界面相切;
步骤13:根据步骤12中的水平集函数增加或删除动态修正粒子,并对增加的动态修正粒子按照步骤5确定半径及正负信息,从而确保界面持续稳定的追踪;
步骤14:重复迭代步骤7至步骤13,直至达到最终计算步数或最终计算时间,实现不同介质界面追踪的高精度数值模拟预测。
2.如权利要求1所述的一种基于局部曲率自适应修正的改进水平集方法,其特征在于:还包括步骤15:根据步骤1至步骤14所述的一种基于局部曲率自适应修正的改进水平集方法进行多介质相互作用技术领域工程技术问题高精度数值模拟与预测,解决多介质相互作用技术领域相应工程技术问题。
3.如权利要求2所述的一种基于局部曲率自适应修正的改进水平集方法,其特征在于:步骤15所述多介质相互作用技术领域包括高速侵彻武器、防护装备、航空航天、机械工程领域;
所述高速侵彻武器工程技术问题包括激波打气泡、弹塑性块体撞击、聚能射流问题;
所述防护装备工程技术问题包括防护装备设计与制造、性能测试问题;
所述航空航天工程技术问题包括机翼绕流、激波模拟、紊流问题;
所述机械工程技术问题包括精确制造及其相关模拟问题。
4.如权利要求3所述的一种基于局部曲率自适应修正的改进水平集方法,其特征在于:通过增加水平集函数维度,将二维x、y拓展至三维x、y、z,对于多介质界面,通过多个水平集函数确定,实现三维多介质数值模拟与预测。
5.如权利要求1、2或3所述的一种基于局部曲率自适应修正的改进水平集方法,其特征在于:
步骤1实现方法为,确定界面运动计算区域,建立欧拉直角坐标系,在直角坐标系内将计算区域划分为m*n个网格,其中,m表示x方向网格数量,n表示y方向网格数量;设置边界条件及计算终止条件。
步骤2实现方法为,定义计算区域内初始状态下的用于区分界面位置的水平集函数如公式(1)所示,水平集函数满足空间欧拉点距离界面最短的线段长度,正负号表示水平集函数所区分的不同的物质;
在计算初始时刻,采用公式(1)定义水平集函数的初值:
其中,x、y分别为网格节点的物理空间坐标,d表示网格节点(x,y)到界面的距离,ω1、ω2分别为两种物质界面两侧的区域,γ(0)为初始时刻两种物质组成的界面;
水平集函数采用符号距离实现在任何时刻对界面演化过程的追踪,界面始终处于符号距离函数为零的零等值面位置:
其中,γ(t)为两种物质组成的运动界面,t为运动时间;
步骤3实现方法为,根据步骤2定义的水平集函数分别求解不同区域法向量与曲率,求解公式分别为公式(3)和(4):
其中,
步骤4实现方法为,根据步骤2定义的水平集函数确定各区域,并根据需要定义不同区域对应的背景速度场u(u,v),其中u为x方向的速度分量,v为y方向的速度分量。
6.如权利要求5所述的一种基于局部曲率自适应修正的改进水平集方法,其特征在于:步骤5具体实现方法为,根据步骤3计算求解区域的全场曲率与局部曲率,即基于步骤3计算得出全流场曲率绝对值的平均值与当前网格曲率的绝对值,对于界面附近三个网格宽度内的网格,单一计算网格内需布置的粒子数为:
其中,
为了提高数值模拟精度,作为优选,公式(5)中,p为3,q为4,为:
为了避免奇异点处曲率的奇异性导致过多示踪粒子的引入,采用如下限制器控制示踪粒子数量:
nneed≤24;(7)
对于示踪粒子,其半径rp的最小值与最大值分别为:
rmin=0.1min(δx,δy),(8)
rmax=0.5min(δx,δy);(9)
示踪粒子初始均匀的布置在水平集函数绝对值小于3max(δx,δy)的欧拉网格内,其中,δx,δy分别为x,y方向的网格宽度;界面两侧粒子分布层的最小与最大厚度分别为:
bmin=rmin,(10)
bmax=3·max(δx,δy);(11)
在保证界面切向粒子近似均匀分布的同时,有必要通过随机算法,将粒子在界面法向方向进行均匀排布,最终将有效粒子所处位置插值出的水平集函数的绝对值
在示踪粒子初始化完成后,将其标记为初始化粒子。
7.如权利要求6所述的一种基于局部曲率自适应修正的改进水平集方法,其特征在于:步骤六实现方法为,
选取计算参数cfl计算时间步长,cfl参数为介于0到1之间的常数,选取计算参数cfl计算时间步长:
8.如权利要求7所述的一种基于局部曲率自适应修正的改进水平集方法,其特征在于:为了提高数值模拟精度,步骤7中采用weno有限差分格式对水平集函数的空间项进行离散,采用tvdrunge-kutta格式对单一介质计算区域进行时间离散,从而推进水平集函数,得到下一个时间步的水平集函数;
步骤7实现方法为,
步骤7.1:对步骤2定义的水平集函数进行推进求解,具体推进的对流方程如下:
步骤7.2:对公式(14)的空间导数采用如下方式进行离散:
其中,
选五阶hj-weno方法对
其中:
is0=13(a-b)2 3(a-3b)2
is1=13(b-c)2 3(b c)2
is2=13(c-d)2 3(3c-d)2
其中,ε为常数;对
步骤7.3:采用tvdrunge-kutta格式对计算区域进行时间离散;优选三阶tvdrunge-kutta格式对公式(14)的时间导数项进行离散,时间三阶tvdrunge-kutta得到水平集函数的完全离散格式,进而求得出下一时间步计算区域内各网格单元的界面函数值;
其中,
9.如权利要求8所述的一种基于局部曲率自适应修正的改进水平集方法,其特征在于:
步骤8实现方法为,通过步骤4定义的速度场插值得到示踪粒子速度,结合步骤5定义的示踪粒子参数,通过式(21)直接推进布置在界面附近的示踪粒子的运动,修正网格点上的水平集函数;
其中,xp为示踪粒子的位置,u(xp)为示踪粒子的速度;
在推进水平集函数及示踪粒子之后,通过新的水平集函数对示踪粒子进行插值,对于插值后示踪粒子对应正负符号
其中,
对于每个粒子都重复以上步骤,并最终将正逃逸粒子与负逃逸粒子修正得到水平集函数值进行整合,为了鲁棒性,采用公式(23):
其中,
10.如权利要求9所述的一种基于局部曲率自适应修正的改进水平集方法,其特征在于:
步骤10实现方法为,
在步骤7求解过程中,由于数值误差,水平集函数难以保持原有性质,界面附近点的误差会导致界面计算精度的大幅降低,甚至导致错误的结果,因此,通过重新初始化将全流场水平集函数进行修正:
其中,
步骤13实现方法为,在界面发生过度拉伸的位置,通过局部曲率计算得到该网格内需要存在示踪粒子的总数nneed(i,j),通过与当前网格内存在粒子总数ntotal(i,j)对比,确定额外引入的修正粒子数量ndynamic(i,j),随机布置在网格内,后续添加的示踪粒子标记为动态修正粒子;当界面发生缩短扭曲等情况时,若通过公式(6)计算所得到的当前网格示踪粒子所需数量nneed(i,j)小于当前网格内初始化粒子ninitial(i,j)与动态修正粒子数量ndynamic(i,j)的总和,则通过随机算法删除网格内部分或全部动态修正粒子,最终保证网格内粒子数量维持在预设较低水平;
在添加动态修正粒子之后,及时通过当前粒子插值得到的水平集函数值