掌桥专利:专业的专利平台
掌桥专利
首页

一种流体模拟方法、装置、设备及存储介质

文献发布时间:2023-06-19 18:34:06


一种流体模拟方法、装置、设备及存储介质

技术领域

本申请涉及流体模拟技术领域,更为具体来说,本申请涉及一种流体模拟方法、装置、设备及存储介质。

背景技术

PBF全称为Position-Based Fluids,表示基于位置的流体,它将SPH(全称为SmoothedParticle Hydrodynamics)即光滑粒子流体动力学应用于PBD(Position-BasedDynamics,基于位置的动力学)框架中,继承了PBD本身较大模拟时间步长的优点。

然而,PBF方法只能模拟出非常有限的表面张力现象,即表面张力不能过大,也无法模拟液体薄膜,且其它粒子法如SPH和MPM中模拟表面张力的方法都是基于力的,很难迁移到PBF框架下。

发明内容

基于上述技术问题,本发明旨在对目标粒子检测出表面粒子和内部粒子,基于表面粒子构建局部网络并对其施加面积约束和距离约束,对内部粒子施加距离约束,对约束后的表面粒子和内部粒子进行流体模拟,以充分模拟出目标流体的表面张力。

本发明第一方面提供了一种流体模拟方法,所述方法包括:

获取目标流体,并将所述目标流体离散化为一组粒子;

将离散化得到的该组粒子作为待检测粒子,基于虚拟点光源和虚拟屏幕对所述待检测粒子进行检测,并判定出所述待检测粒子为内部粒子或为表面粒子;

基于确定出的表面粒子构建局部网络,并为所述局部网络施加第一约束条件;

针对施加第一约束条件后的局部网络中的表面粒子,结合预先施加第二约束条件后的内部粒子进行流体模拟。

在本发明的一些实施例中,所述基于虚拟点光源和虚拟屏幕对所述待检测粒子进行检测,并判定出所述待检测粒子为内部粒子或为表面粒子,包括:

确定第一粒子,其中,所述第一粒子为所述待检测粒子中任意一个粒子;

将虚拟点光源放置在所述第一粒子位置处,并将所述虚拟点光源为球心形成的球面作为虚拟屏幕,其中,所述虚拟屏幕的半径为第一粒子半径的预设倍数;

将除所述第一粒子外的其它粒子作为第一粒子的邻居粒子,并控制所述邻居粒子能够阻挡所述虚拟光源发射出的光线;

根据所述虚拟屏幕被照亮的面积大小判定出所述第一粒子为内部粒子或为表面粒子;

根据第一粒子的判定方式判定出所有的待检测粒子为内部粒子或为表面粒子。

在本发明的一些实施例中,所述根据所述虚拟屏幕被照亮的面积大小判定出所述第一粒子为内部粒子或为表面粒子,包括:

若虚拟屏幕中被照亮的面积占所述虚拟屏幕的比例大于预设比例,则确定所述第一粒子为表面粒子;

若虚拟屏幕中被照亮的面积占所述虚拟屏幕的比例小于或等于预设比例,则确定所述第一粒子为内部粒子。

在本发明的一些实施例中,所述基于确定出的表面粒子构建局部网络,包括:

针对每一个表面粒子,找到距离其符合预设条件的邻居粒子,所述预设条件为arccos(n

将所述待投影粒子基于表面粒子i的垂直平面进行垂直投影,得到投影点;对所述投影点进行Delaunay三角化,并基于Delaunay三角化得到的节点构造出局部网络。

在本发明的一些实施例中,所述第一约束条件为对所述局部网络中的三角形面积进行的约束,以最小化每个表面粒子对应的局部网格中所有三角形的面积总和。

在本发明的一些实施例中,在所述结合预先施加第二约束条件后的内部粒子进行流体模拟之前,还包括将施加第一约束条件后的局部网络中的表面粒子施加第二约束条件,其中,所述第二约束条件为两个同类型粒子之间的距离约束。

在本发明的一些实施例中,在所述将离散化得到的该组粒子作为待检测粒子之前,还包括将离散化得到的该组粒子施加密度约束,以使离散化得到的该组粒子不可压。

本发明第二方面提供了一种流体模拟装置,所述装置包括:

获取模块,被配置为获取目标流体,并将所述目标流体离散化为一组粒子;

判定模块,被配置为将离散化得到的该组粒子作为待检测粒子,基于虚拟点光源和虚拟屏幕对所述待检测粒子进行检测,并判定出所述待检测粒子为内部粒子或为表面粒子;

构建模块,被配置为基于确定出的表面粒子构建局部网络,并为所述局部网络施加第一约束条件;

模拟模块,被配置为针对施加第一约束条件后的局部网络中的表面粒子,结合预先施加第二约束条件后的内部粒子进行流体模拟。

本发明第三方面提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行以下步骤:

获取目标流体,并将所述目标流体离散化为一组粒子;

将离散化得到的该组粒子作为待检测粒子,基于虚拟点光源和虚拟屏幕对所述待检测粒子进行检测,并判定出所述待检测粒子为内部粒子或为表面粒子;

基于确定出的表面粒子构建局部网络,并为所述局部网络施加第一约束条件;

针对施加第一约束条件后的局部网络中的表面粒子,结合预先施加第二约束条件后的内部粒子进行流体模拟。

本发明第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下步骤:

获取目标流体,并将所述目标流体离散化为一组粒子;

将离散化得到的该组粒子作为待检测粒子,基于虚拟点光源和虚拟屏幕对所述待检测粒子进行检测,并判定出所述待检测粒子为内部粒子或为表面粒子;

基于确定出的表面粒子构建局部网络,并为所述局部网络施加第一约束条件;

针对施加第一约束条件后的局部网络中的表面粒子,结合预先施加第二约束条件后的内部粒子进行流体模拟。

本申请实施例中提供的技术方案,至少具有如下技术效果或优点:

本申请获取目标流体,并将所述目标流体离散化为一组粒子,将离散化得到的该组粒子作为待检测粒子,基于虚拟点光源和虚拟屏幕对所述待检测粒子进行检测,并判定出所述待检测粒子为内部粒子或为表面粒子,基于确定出的表面粒子构建局部网络,并为所述局部网络施加第一约束条件,针对施加第一约束条件后的局部网络中的表面粒子,结合预先施加第二约束条件后的内部粒子进行流体模拟,极大程度上丰富和扩展了PBF框架,能够充分模拟流体的表面张力现象,同时只占用少量的计算时间,进而保留了PBF大时间步下稳定的特性。特别地,第一约束条件使模拟能得到最小化表面积效果,第二约束条件用于维持粒子的均匀分布,对在构建局部网络及其施加约束后的流体粒子进行模拟,更大程度地模拟了流体的表面张力现象。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本申请一示例性实施例中的流体模拟方法步骤示意图;

图2示出了本申请一示例性实施例中另一流体模拟方法流程图;

图3示出了本申请一示例性实施例中虚拟点光源和虚拟屏幕示意图;

图4示出了本申请一示例性实施例中构建局部网络过程示意图;

图5示出了本申请一示例性实施例中的流体模拟装置结构示意图;

图6示出了本申请一示例性实施例所提供的一种计算机设备的结构示意图。

具体实施方式

以下,将参照附图来描述本申请的实施例。但是应该理解的是,这些描述只是示例性的,而并非要限制本申请的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本申请的概念。对于本领域技术人员来说显而易见的是,本申请可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本申请发生混淆,对于本领域公知的一些技术特征未进行描述。

应予以注意的是,这里所使用的术语仅是为了描述具体实施例,而非意图限制根据本申请的示例性实施例。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式。此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组合。

现在,将参照附图更详细地描述根据本申请的示例性实施例。然而,这些示例性实施例可以多种不同的形式来实施,并且不应当被解释为只限于这里所阐述的实施例。附图并非是按比例绘制的,其中为了清楚表达的目的,可能放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状以及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。

下面结合说明书附图1-附图6给出几个实施例来描述根据本申请的示例性实施方式。需要注意的是,下述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。

PBF方法虽然应用较广,但只能模拟出很有限的表面张力现象,即表面张力不能过大,也无法模拟液体薄膜,且其它粒子法如SPH和MPM中模拟表面张力的方法都是基于力的,很难迁移到PBF框架下。因此,在本申请一些示例性实施例中,提供了一种流体模拟方法,如图1所示,所述方法包括:

S1、获取目标流体,并将所述目标流体离散化为一组粒子;

S2、将离散化得到的该组粒子作为待检测粒子,基于虚拟点光源和虚拟屏幕对所述待检测粒子进行检测,并判定出所述待检测粒子为内部粒子或为表面粒子;

S3、基于确定出的表面粒子构建局部网络,并为所述局部网络施加第一约束条件;

S4、针对施加第一约束条件后的局部网络中的表面粒子,结合预先施加第二约束条件后的内部粒子进行流体模拟。

本申请所述流体模拟方法极大程度上丰富和扩展了PBF框架,能够充分模拟流体的表面张力现象,同时只占用少量的计算时间,保留了PBF大时间步下稳定的特性。

在一种具体的实现方式中,在将离散化得到的该组粒子作为待检测粒子之前,还包括将离散化得到的该组粒子施加密度约束,以使离散化得到的该组粒子不可压。具体实施时,密度约束基于PBF方法,参考图2,需要预测该组粒子中每一个粒子的位置,利用粒子的位置和质量计算其密度。为了确保位置的预测精度,如图2所示,需要确保预测位置所需要迭代的次数达到初始设定次数(n

其中,W是核函数,h是核半径,

再如图2所示,在每个时间步的最开始,先用隐式欧拉积分的形式预测粒子的位置,积分公式如下:

p

其中,

其中,ρ

其中,ε是一个由用户指定的松弛参数,用于调节这个约束的硬度来达到预期的模拟效果。在本申请中,所有的约束条件即包括第一约束条件和第二约束条件都是通过这种方式求解的。

在一种具体的实现方式中,基于虚拟点光源和虚拟屏幕对待检测粒子进行检测,并判定出待检测粒子为内部粒子或为表面粒子,包括:确定第一粒子,其中,第一粒子为待检测粒子中任意一个粒子;参考图3,将虚拟点光源放置在第一粒子位置处,并将虚拟点光源为球心形成的球面作为虚拟屏幕,其中,虚拟屏幕的半径为第一粒子半径的预设倍数;将除第一粒子外的其它粒子作为第一粒子的邻居粒子,并控制邻居粒子能够阻挡虚拟光源发射出的光线;根据虚拟屏幕被照亮的面积大小判定出第一粒子为内部粒子或为表面粒子;根据第一粒子的判定方式判定出所有的待检测粒子为内部粒子或为表面粒子。优选地,虚拟屏幕的半径为6倍粒子半径,可以理解为,将核函数平移至以粒子i为中心。但这里需要注意的是,在具体实施时,如果有某个邻居粒子距离当前粒子小于两倍粒子半径,则将该邻居粒子的半径调整为距离的一半,从而避免这个粒子挡住太多的光线。

在一种具体的实现方式中,根据虚拟屏幕被照亮的面积大小判定出第一粒子为内部粒子或为表面粒子时,如图3所示,若虚拟屏幕中被照亮的面积占虚拟屏幕的比例大于预设比例(图3中的R

在本申请的一些实施例中,参考图4,基于确定出的表面粒子构建局部网络,包括:针对每一个表面粒子,找到距离其符合预设条件的邻居粒子(图4中的①,临近搜索),所述预设条件为arccos(n

其中,c(x)表示颜色场,N(x)表示距离位置x小于核半径h的粒子集合。ni表示粒子i的法向量。颜色场的含义是流体内部为1,外部为0,并且在边界的地方平滑过渡,它的梯度方向即为表面法向。

需要说明的是,Delaunay三角化是将二维平面上的点集转化成以这些点为节点的三角网格。在平面T

在本发明的一些实施例中,所述第一约束条件为对所述局部网络中的三角形面积进行的约束,以最小化每个表面粒子对应的局部网格中所有三角形的面积总和。

在本发明的一些实施例中,在所述结合预先施加第二约束条件后的内部粒子进行流体模拟之前,还包括将施加第一约束条件后的局部网络中的表面粒子施加第二约束条件,其中,所述第二约束条件为两个同类型粒子之间的距离约束。这里,第一约束条件使模拟能得到最小化表面积效果,第二约束条件用于维持粒子的均匀分布。

第一约束条件用来最小化每个粒子对应的局部网格中所有三角形的面积总和,对于粒子i,设其局部网格中的三角形集合为

其中,t

在面积约束的作用下,粒子分布可能会变得不均匀,所以采用这个第一约束条件来限制粒子之间不能靠的过近,从而调整粒子的分布。这个约束

其中,d

接下来可以再参考图2,针对施加第一约束条件后的局部网络中的表面粒子,结合预先施加第二约束条件后的内部粒子进行流体模拟,所谓流体模拟是需要将这些加了约束条件的表面粒子和内部粒子作为待模拟粒子一起进行模拟,图2中的投影是将这些待模拟粒子投影到相关模拟系统在流体模态基础上完成模拟,这里的过程与现有技术中一般的模拟步骤相同,不再赘述。

本申请获取目标流体,并将所述目标流体离散化为一组粒子,将离散化得到的该组粒子作为待检测粒子,基于虚拟点光源和虚拟屏幕对所述待检测粒子进行检测,并判定出所述待检测粒子为内部粒子或为表面粒子,基于确定出的表面粒子构建局部网络,并为所述局部网络施加第一约束条件,针对施加第一约束条件后的局部网络中的表面粒子,结合预先施加第二约束条件后的内部粒子进行流体模拟,极大程度上丰富和扩展了PBF框架,能够充分模拟流体的表面张力现象,同时只占用少量的计算时间,进而保留了PBF大时间步下稳定的特性。特别地,第一约束条件使模拟能得到最小化表面积效果,第二约束条件用于维持粒子的均匀分布,对在构建局部网络及其施加约束后的流体粒子进行模拟,更大程度地模拟了流体的表面张力现象。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

在本申请的一些示例性实施例中,还提供了一种装置,如图5所示,该装置用于执行上述任一实施例提供的流体模拟方法,所述装置包括:

获取模块,被配置为获取目标流体,并将所述目标流体离散化为一组粒子;

判定模块,被配置为将离散化得到的该组粒子作为待检测粒子,基于虚拟点光源和虚拟屏幕对所述待检测粒子进行检测,并判定出所述待检测粒子为内部粒子或为表面粒子;

构建模块,被配置为基于确定出的表面粒子构建局部网络,并为所述局部网络施加第一约束条件;

模拟模块,被配置为针对施加第一约束条件后的局部网络中的表面粒子,结合预先施加第二约束条件后的内部粒子进行流体模拟。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

还需要强调的是,本申请实施例中提供的系统可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

下面请参考图6,其示出了本申请的一些实施方式所提供的一种计算机设备的示意图。如图6所示,所述计算机设备2包括:处理器200,存储器201,总线202和通信接口203,所述处理器200、通信接口203和存储器201通过总线202连接;所述存储器201中存储有可在所述处理器200上运行的计算机程序,所述处理器200运行所述计算机程序时执行本申请前述任一实施方式所提供的流体模拟方法。

其中,存储器201可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口203(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。

总线202可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器201用于存储程序,所述处理器200在接收到执行指令后,执行所述程序,前述本申请实施例任一实施方式揭示的所述流体模拟方法可以应用于处理器200中,或者由处理器200实现。

处理器200可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器200中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器200可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器201,处理器200读取存储器201中的信息,结合其硬件完成上述方法的步骤。

本申请实施方式还提供一种与前述实施方式所提供的流体模拟方法对应的计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的流体模拟方法。

另外,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。

本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的空分复用光网络中量子密钥分发信道分配方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。

本申请实施方式还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任意实施方式所提供的流体模拟方法的步骤,包括:获取目标流体,并将所述目标流体离散化为一组粒子;将离散化得到的该组粒子作为待检测粒子,基于虚拟点光源和虚拟屏幕对所述待检测粒子进行检测,并判定出所述待检测粒子为内部粒子或为表面粒子;基于确定出的表面粒子构建局部网络,并为所述局部网络施加第一约束条件;针对施加第一约束条件后的局部网络中的表面粒子,结合预先施加第二约束条件后的内部粒子进行流体模拟。

需要说明的是:在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备有固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

本申请的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的虚拟机的创建装置中的一些或者全部部件的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序。实现本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 一种后端存储设备的管理方法、装置、设备以及存储介质
  • 一种数据存储方法及装置、一种计算设备及存储介质
  • 一种数据存储方法及装置、一种计算设备及存储介质
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 一种存储系统的构建方法、装置、设备及存储介质
  • 一种基于裂缝多孔介质流体数学模型实现地下流体流动数值模拟的方法、设备及存储介质
  • 一种基于裂缝多孔介质流体数学模型实现地下流体流动数值模拟的方法、设备及存储介质
技术分类

06120115612037