一种基于光滑粒子流体动力学的空间自适应流体模拟方法

文档序号:33016893发布日期:2023-01-20 16:34阅读:26来源:国知局
一种基于光滑粒子流体动力学的空间自适应流体模拟方法
field,有向距离场)模型,并得到所述sdf模型的梯度场;
9.在模拟场景中添加流体粒子集,并将sdf模型及其梯度场导入模拟场景中;
10.在单个模拟时间步长中,通过水平集方法估算流体粒子到固体表面的距离,并结合粒子处的sdf值,计算粒子的尺度函数值,同时应用尾流保护机制,延缓边界固体附近的精细粒子尺度函数值的衰减;
11.在单个模拟时间步长中,根据计算得到的粒子的尺度函数值和预设的自适应比计算粒子最佳尺度,将计算出的粒子最佳尺度与当前粒子的尺度进行比较,根据比较结果对粒子进行分类,并依据粒子的类别,调整粒子的尺度;
12.在单个模拟时间步长中,基于光滑粒子流体动力学,对流体粒子进行动力学计算,同时处理流体粒子与边界固体的耦合,使用时间混合方案稳定数值场,更新粒子的物理属性以及边界固体的物理属性,完成当前时间步长内的模拟。
13.进一步地,所述sdf模型评估空间中某一位置到固体表面的距离,并使用符号来表示每一位置是处于固体内部还是固体外部;其中,当符号为正值时,表示对应位置处于固体外部,当符号为负值时,表示对应位置处于固体内部。
14.进一步地,所述流体粒子携带预设的物料属性,所述预设的物理属性包括位置、质量、密度、速度以及压强中的一种或多种的组合。
15.进一步地,所述通过水平集方法估算流体粒子到固体表面的距离,并结合粒子处的sdf值,计算粒子的尺度函数值,同时应用尾流保护机制,延缓边界固体附近的精细粒子尺度函数值的衰减,包括:
16.通过水平集方法,为所有粒子计算一个初始的水平集估计值,作为粒子初始的水平集值,从接近表面的粒子向邻域内其他内部粒子进行水平集值的迭代传播,直到所有粒子的水平集值都不发生变化,为粒子i保存一个水平集值
17.对于模拟场景中的边界固体b
*
,提取粒子所在位置的sdf值,考虑预设的最佳细化范围通过下式计算粒子i的固体尺度函数值
[0018][0019]
其中,表示粒子i所在位置的sdf值;
[0020]
应用尾流保护机制,迭代执行以下过程:对于刚进入选定固体周围一定范围的粒子,设置一个合并时延对于τ》0的粒子,停止其固体尺度函数值的衰减,并将当前停止衰减的固体尺度函数值传播至整个粒子集,以平滑固体尺度函数的数值场;直到这个固体尺度函数的数值场不发生变化;
[0021]
通过下式计算粒子i的尺度函数值φi:
[0022][0023]
其中,表示为特定固体b
*
周围流体粒子保留的最大合并时延。
[0024]
进一步地,所述根据计算得到的粒子的尺度函数值和预设的自适应比计算粒子最佳尺度,将计算出的粒子最佳尺度与当前粒子的尺度进行比较,根据比较结果对粒子进行分类,并依据粒子的类别,调整粒子的尺度,包括:
[0025]
根据计算得到的粒子的尺度函数值和预设的自适应比,利用下式,通过线性插值的方式计算最佳粒子质量
[0026][0027]
其中,m
base
表示最低分辨率粒子的质量,α表示预设的自适应比,即对于最高分辨率粒子质量m
fine
满足m
fine
=αm
base
,φ
max
表示用于限定细化范围的最大尺度函数值;
[0028]
基于计算得到的最佳粒子质量,对于质量为mi的粒子i计算其相对质量根据粒子的相对质量对粒子进行分类:
[0029][0030]
其中,ci表示粒子的分类结果,s、s、o、l、l分别表示不同的粒子类别;
[0031]
基于粒子的分类,对不同的粒子应用分裂、合并或质量共享调整其尺度。
[0032]
进一步地,所述基于粒子的分类,对不同的粒子应用分裂、合并或质量共享调整其尺度,包括:
[0033]
将s类粒子的所有质量分配给周围的s类或s类粒子,再将质量分配给其他粒子的s类粒子从粒子集中删除,遵循动量守恒条件,接收质量的粒子将获得与接收质量相对应的动量;将l类粒子的部分质量分配给周围的s类或s类粒子,同样地,接收质量的粒子将获得与接收质量相对应的动量;
[0034]
将l类粒子均等分裂为若干个质量接近m
opt
的粒子,再将被分裂的l类粒子从粒子集中删除,遵循质量守恒和动量守恒条件,分裂出的粒子将继承原始粒子的速度和其他部分用于求解流体动力学方程的属性,并优化分裂出的粒子的位置分布,以减少因新粒子加入模拟,粒子空间分布改变而产生的不稳定性。
[0035]
进一步地,所述基于光滑粒子流体动力学,对流体粒子进行动力学计算,同时处理流体粒子与边界固体的耦合,使用时间混合方案稳定数值场,更新粒子的物理属性以及边界固体的物理属性,包括:
[0036]
采样流体粒子周围的其他流体粒子,并根据边界固体的有向距离场在粒子位置导出近似的平面边界,计算所述平面边界的数值贡献,基于光滑粒子动力学,对流体粒子进行动力学计算,计算出流体粒子的密度;
[0037]
基于光滑粒子流体动力学,按照纳维-斯托克斯方程计算流体场在重力、粘性力及表面张力作用下的可压缩状态,基于密度不变性及无散度条件对流体进行隐式迭代的压力求解,使流体保持体积不可压缩性;
[0038]
应用牛顿第二定律和时间积分方法,对流体粒子的速度和位置进行更新。
[0039]
进一步地,在基于光滑粒子流体动力学,对流体粒子进行动力学计算,同时处理流
体粒子与边界固体的耦合,使用时间混合方案稳定数值场,更新粒子的物理属性以及边界固体的物理属性的过程中,应用时间混合机制,所述时间混合机制在流体粒子分裂和合并后一段时间内保存从模拟中删除的原始粒子的位置,并根据保存的位置和接收其质量的流体粒子对相应原始粒子的密度和速度进行估算,并将估算出的密度和速度混合入接收其质量的孩子粒子的相应的计算结果中,从而使这些孩子粒子在一定程度上保持分裂或合并发生前的行为,进而稳定它们周围的数值场,提高模拟的稳定性;
[0040]
其中,对密度的时间混合过程描述为:
[0041][0042]
其中,ρo表示原始粒子计算得到的密度,ρi表示接收原始粒子质量的粒子计算得到的密度,表示粒子i经过时间混合后的密度,β表示预设的时间混合权重,且β值会随模拟时间步的增加而逐渐缩减到0;
[0043]
对粒子速度的时间混合过程描述为:
[0044][0045]
其中,vo表示原始粒子计算得到的速度,vi表示接收原始粒子质量的粒子计算得到的速度,表示粒子i经过时间混合后的速度。
[0046]
再一方面,本发明还提供了一种电子设备,其包括处理器和存储器;其中,存储器中存储有至少一条指令,所述指令由处理器加载并执行以实现上述方法。
[0047]
又一方面,本发明还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现上述方法。
[0048]
本发明提供的技术方案带来的有益效果至少包括:
[0049]
1、现有的基于光滑粒子流体动力学的流体模拟技术,大多采用均一的分辨率,计算资源利用效率较低,而本发明提出的粒子流体空间自适应模拟技术,能够自适应地检测空间中重要区域,在其附近一定的空间范围内,采用连续尺度的精细粒子,以提高区域内的流体模拟质量,节省大量的计算资源,并保持了较高的模拟质量。
[0050]
2、本发明基于有向距离场的固体表示实现了对固体附近区域的检测,精确地捕捉到流体与多个动态边界固体对象发生交互的区域,通过粒子细化有效地提升了该区域内流固耦合的质量,并使用尾流保护机制,将该区域进行拓展,实现在更长的一段时间内保持发生流固耦合作用区域的模拟精细度。
附图说明
[0051]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0052]
图1是本发明实施例提供的基于光滑粒子流体动力学的空间自适应流体模拟方法的执行流程示意图;
[0053]
图2是船驶过水面场景下本发明与现有技术的模拟效果对比图;其中,(a)为均一
高分辨率的模拟效果图,(b)为均一低分辨率的模拟效果图,(c)为采用表面细化的空间自适应方法的模拟效果图,(d)为采用边界细化的空间自适应方法的模拟效果图;
[0054]
图3是螺旋桨搅水场景下本发明与现有技术的模拟效果对比图;其中,(a)为均一高分辨的模拟效果图,(b)为将本发明的边界细化机制与表面细化机制相结合的模拟效果图,(c)为仅采用表面细化机制的模拟图。
具体实施方式
[0055]
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0056]
第一实施例
[0057]
为了提高流体模拟的效率和质量,本实施例提供了一种基于光滑粒子流体动力学的空间自适应流体模拟方法,该方法对模拟场景中关键区域的检测进行优化,能够捕捉空间中流固交互行为更加丰富的区域,并在这些区域细化流体粒子的分辨率,在有限的计算资源下实现了更高精度的模拟,比现有的模型具有更小的计算量和存储量,以及更高的灵活性,满足了在复杂物理环境下对流体模拟的效率和精度要求。该方法的执行流程如图1所示,包括以下步骤:
[0058]
s1,将流体模拟场景中的边界固体对象的三维模型转换为sdf(signed distance field,有向距离场)模型,并得到所述sdf模型的梯度场;
[0059]
其中,sdf模型评估空间中某一位置到固体表面的距离,并使用符号来表示每一位置是处于固体内部还是外部;其中,当符号为正值时,表示对应位置处于固体外部,当符号为负值时,表示对应位置处于内部,从而表示整个固体。
[0060]
s2,在模拟场景中添加流体粒子集,将sdf模型及其梯度场导入模拟场景;
[0061]
其中,流体粒子携带位置、质量、密度、速度、压强等物理属性。
[0062]
s3,通过水平集方法估算流体粒子到固体表面的距离,并结合粒子处的sdf值,计算粒子的尺度函数值,同时应用尾流保护机制,延缓边界固体附近的精细粒子尺度函数值的衰减,从而保持分辨率;
[0063]
具体地,在本实施例中,上述s3包括以下步骤:
[0064]
通过水平集方法,为所有粒子计算一个初始的水平集估计值,作为粒子初始的水平集值,从接近表面的粒子向邻域内其他内部粒子进行水平集值的迭代传播,直到所有粒子的水平集值都不发生变化,为粒子i保存一个水平集值
[0065]
对于模拟场景中的边界固体b
*
,提取粒子所在位置的sdf值,考虑预设的最佳细化范围通过下式计算粒子i的固体尺度函数值
[0066][0067]
其中,表示粒子i所在位置的sdf值;
[0068]
应用尾流保护机制,对于刚进入特定固体周围一定范围的粒子,设置一个合并时延对于τ》0的粒子,停止其固体尺度函数值的衰减,以避免粒子在离开固体周围后快速合并导致的尾流效应缺失,并将该值通过传播至整个粒子集以平滑固体尺度函数的
数值场,迭代此过程直到这个数值场不发生变化;
[0069]
固体尺度函数可与水平集方法结合,若与用于检测表面的水平集函数结合,则选取二者中的最大值保证更精细的细化,由此可确定粒子i的尺度函数值φi为:
[0070][0071]
其中,表示为特定固体b
*
周围流体粒子保留的最大合并时延。
[0072]
通过上述对水平集值和固体尺度函数值取最大值作为粒子真实的尺度函数值φi,以保证最高分辨率的细化。
[0073]
s4,根据计算得到的粒子的尺度函数值和预设的自适应比计算粒子最佳尺度,将计算出的粒子最佳尺度与当前粒子的尺度进行比较,根据比较结果对粒子进行分类,并依据粒子的类别,对不同类别的粒子分别应用分裂、合并或质量共享,从而调整粒子的尺度;
[0074]
具体地,在本实施例中,上述s4包括以下步骤:
[0075]
基于计算得到的粒子的尺度函数值和预设的自适应比,利用下式,通过线性插值的方式计算最佳粒子质量
[0076][0077]
其中,m
base
表示最低分辨率粒子的质量,α表示预设的自适应比,即对于最高分辨率粒子质量m
fine
满足m
fine
=αm
base
,φ
max
表示用于限定细化范围的最大尺度函数值;
[0078]
基于计算得到的最佳粒子质量,对于质量为mi的粒子i计算其相对质量根据粒子的相对质量对粒子进行分类:
[0079][0080]
其中,ci表示粒子的分类结果,s、s、o、l、l分别表示不同的粒子类别;
[0081]
基于粒子的分类,将s类粒子的所有质量分配给周围的s或s类粒子,再将该原始粒子从模拟粒子集中删除,遵循动量守恒条件,接收质量的粒子将获得与接收质量相对应的动量;将l类粒子的部分质量分配给周围的s或s类粒子,同样地,接收质量的粒子将获得与接收质量相对应的动量;将l类粒子均等分裂为若干个质量接近m
opt
的粒子,再将该原始粒子从模拟粒子集中删除,遵循质量守恒和动量守恒条件,分裂出的细化粒子将继承原始粒子的速度和其他部分用于求解流体动力学方程的属性,并应用预计算的分裂模板优化精细粒子的位置分布,从而减少因新粒子加入模拟,粒子空间分布改变而产生的不稳定性。
[0082]
s5,基于光滑粒子流体动力学,对流体粒子进行动力学计算,同时处理流体粒子与边界固体的耦合,使用时间混合方案稳定数值场,更新粒子的物理属性以及边界固体的物理属性,完成当前时间步长内的模拟;
[0083]
具体地,在本实施例中,上述s5包括以下步骤:
[0084]
采样流体粒子周围的其他流体粒子,并根据边界固体的有向距离场在粒子位置导出近似的平面边界,计算所述平面边界的数值贡献,基于光滑粒子动力学,结合二者对流体粒子进行动力学计算,计算出流体粒子的密度;
[0085]
基于光滑粒子流体动力学,按照纳维-斯托克斯方程计算流体场在重力、粘性力及表面张力等作用下的可压缩状态,基于密度不变性及无散度条件对流体进行隐式迭代的压力求解,使流体保持体积不可压缩性;
[0086]
应用牛顿第二定律和时间积分方法,对流体粒子的速度和位置进行更新。
[0087]
在上述的过程中应用时间混合机制,时间混合机制在流体粒子分裂和合并后一段时间内保存从模拟中删除的原始粒子的位置,并根据该位置和接收其质量的流体粒子对该原始粒子的密度和速度进行估算,并将该密度和速度混合入接收其质量的孩子粒子的相应的计算结果中,使这些孩子粒子在一定程度上保持分裂或合并发生前的行为,进而稳定它们周围的数值场,提高模拟的稳定性;
[0088]
其中,对密度的时间混合过程可以描述为:
[0089][0090]
其中,ρo为原始粒子计算得到的密度,ρi为接收原始粒子质量的粒子计算得到的密度,为粒子i经过时间混合后的密度,该值将用于其他物理属性的计算,β为预设的时间混合权重,该值会随模拟时间步的增加而逐渐缩减到0;
[0091]
类似地,对粒子速度的时间混合过程可以描述为:
[0092][0093]
其中,vo表示原始粒子计算得到的速度,vi表示接收原始粒子质量的粒子计算得到的速度,表示粒子i经过时间混合后的速度。
[0094]
迭代执行s3~s5,直至达到预设的模拟结束条件,完成整个模拟过程。
[0095]
下面,以小船驶过水面的场景评估本发明方案与现有技术的模拟效果。在该场景中,小船与水体发生耦合作用,溅起的大量水花以及在船后产生尾流是模拟场景中的重要流体现象。
[0096]
图2给出现有方法使用均一分辨率的模拟效果,由图2中的(b)可看出均一低分辨率模拟无法观察到成型的水花和尾流,模拟质量较为低下;由图2中的(a)可看出均一高分辨率的模拟虽然能够实现对该场景进行高质量的模拟,但由于粒子数量随粒子粒径幂级增长,导致了大量的计算资源被浪费在水面以下的区域。图2中的(c)、(d)分别给出采用表面细化和边界细化的空间自适应方法的模拟效果,两种方案都使用了和均一低分辨率模拟等同的基础粒子尺度,以及同均一高分辨率等同的最细粒子尺度,对边界细化方案应用尾流保持机制以提高质量。两种模拟方案均以远少于高分辨模拟的粒子数,产生了与均一高分辨率模拟方案相近的模拟质量。图2中的(c)表明,本发明通过边界细化机制,实现在小船边界对象的周围进行细化,并且不影响其它的表面区域;相较而言,图2中的(d)表明表面细化因模拟高分辨率的流体平稳表面而产生一定的资源浪费,流体表面之下且与边界对象接触的粒子也未充分细化。二者对比说明本发明的边界细化机制能够进一步减少空间自适应模
拟所需的计算资源,并提高发生在流体表面之下的流固耦合的模拟质量。
[0097]
由上可知,本发明的空间自适应模拟方法能够较好地提升模拟的效率,同时本发明的边界细化机制相较表面细化机制,能够更精确地捕捉到流体现象更为强烈的区域,从而减少消耗在平稳表面的计算资源。
[0098]
进一步地,以螺旋桨搅动水体的场景评估本发明方案与现有技术的模拟效果。图3显示了该场景的横截面视图,在该场景下水面因螺旋桨搅动产生的湍流是模拟场景中的关键现象。
[0099]
图3中的(a)是均一高分辨的模拟效果,其虽产生了良好的质量,但相应的计算资源消耗较大。图3中的(b)是将本发明的边界细化机制与表面细化机制相结合的模拟效果,相较于图3中的(c)所示的仅采用表面细化机制的模拟,将边界细化和表面细化结合的模拟方案产生了与高分辨率模拟更相近的湍流效果。
[0100]
由上可知,本发明的边界细化机制能够显著地提升发生在流体表面之下的流固耦合的模拟质量,与表面细化机制的良好结合,则更进一步地体现了本发明的边界细化机制为制定细化区域检测策略提供的灵活性。
[0101]
综上,本实施例为sph流体模拟提出了一种新的具有边界细化功能的空间自适应模拟方法,该方法应用有向距离场模型表示模拟场景中的固体边界对象,从而自适应地检测模拟中的流固交互区域;在模拟场景中导入带有物理属性的粒子集表示流体;基于该有向距离场对计算尺度函数进行计算,通过有向距离场计算流体粒子与边界对象的距离从而评估粒子的最佳分辨率,粒子的最佳分辨率在到边界对象的特定距离内达到最高值,并随着距离的增加而平滑减小,直到达到基础分辨率;随后通过粒子分裂、合并以及质量再分配将粒子的实际分辨率调整为最佳分辨率;同时,应用尾流保护机制,锁定粒子在固体边界对象附近运动后的一段时间内的分辨率,以防止流动细节的丢失;再使用光滑粒子流体动力学方法计算流体粒子的各项物理属性,模拟粒子的运动。从而实现了更大限度且连续的自适应性,并通过更加灵活和高效的细化区域自适应检测,进一步地减少了时间消耗,并可产生更加精细的模拟效果。
[0102]
第二实施例
[0103]
本实施例提供一种电子设备,其包括处理器和存储器;其中,存储器中存储有至少一条指令,所述指令由处理器加载并执行,以实现第一实施例的方法。
[0104]
该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,cpu)和一个或一个以上的存储器,其中,存储器中存储有至少一条指令,所述指令由处理器加载并执行上述方法。
[0105]
第三实施例
[0106]
本实施例提供一种计算机可读存储介质,该存储介质中存储有至少一条指令,所述指令由处理器加载并执行,以实现上述第一实施例的方法。其中,该计算机可读存储介质可以是rom、随机存取存储器、cd-rom、磁带、软盘和光数据存储设备等。其内存储的指令可由终端中的处理器加载并执行上述方法。
[0107]
此外,需要说明的是,本发明可提供为方法、装置或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存
储介质上实施的计算机程序产品的形式。
[0108]
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0109]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0110]
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0111]
最后需要说明的是,以上所述是本发明优选实施方式,应当指出,尽管已描述了本发明优选实施例,但对于本技术领域的技术人员来说,一旦得知了本发明的基本创造性概念,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1