CN115587523A - 高动态空间自适应流体仿真方法、设备及存储介质 - Google Patents

高动态空间自适应流体仿真方法、设备及存储介质 Download PDF

Info

Publication number
CN115587523A
CN115587523A CN202211575803.0A CN202211575803A CN115587523A CN 115587523 A CN115587523 A CN 115587523A CN 202211575803 A CN202211575803 A CN 202211575803A CN 115587523 A CN115587523 A CN 115587523A
Authority
CN
China
Prior art keywords
particles
particle
flow field
mass
type
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211575803.0A
Other languages
English (en)
Other versions
CN115587523B (zh
Inventor
刘斯诺
汪国平
朱飞
盖孟
李胜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University
Original Assignee
Peking University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Peking University filed Critical Peking University
Priority to CN202211575803.0A priority Critical patent/CN115587523B/zh
Publication of CN115587523A publication Critical patent/CN115587523A/zh
Application granted granted Critical
Publication of CN115587523B publication Critical patent/CN115587523B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/25Design optimisation, verification or simulation using particle-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2113/00Details relating to the application field
    • G06F2113/08Fluids
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T90/00Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开涉及一种高动态空间自适应流体仿真方法、设备及存储介质,该方法包括:计算并记录流场中粒子的物理属性;根据所述流场中粒子的物理属性,得到所述流场中粒子的动态水平和可见水平;根据所述流场中粒子的动态水平和可见水平,计算所述流场中粒子的最优质量;根据所述流场中粒子的所述真实质量与所述最优质量间的比值,确定所述粒子的类型;根据所述粒子的类型,更新所述流场中的粒子,并在更新所述流场中的粒子后,再一次执行所述计算并记录流场中粒子的物理属性的步骤;根据多次记录的所述流场中粒子的物理属性,生成关于流体动作的动画。

Description

高动态空间自适应流体仿真方法、设备及存储介质
技术领域
本公开实施例涉及计算机仿真技术领域,更具体地,涉及一种高动态空间自适应流体仿真方法、一种设备和一种存储介质。
背景技术
在虚拟环境中与自然现象的自由交互可以增强虚拟现实系统中的用户体验,其中飞溅和涡流等高动态行为是与流体相互作用时的主要特征之一。为了在虚拟现实应用程序中,提高用户与虚拟自然环境的自由交互体验,需要实现高动态流体的高真实感仿真。目前,人们采用空间自适应方法提高了仿真效率,同时确保了流体表面重要细节的高保真呈现。然而,由于多尺度离散化引起的信息提取不充分和密度误差,仍然导致高频细节的严重丢失。这使得人们难以在高效仿真高动态流体的同时,以高保真度提供充分的飞溅和涡流细节。
发明内容
本公开实施例的一个目的是提供一种高动态流体仿真的新的技术方案,以实现基于粒子的高动态流体的高保真、高效仿真。
根据本公开的第一方面,提供了一种高动态空间自适应流体仿真方法,该方法包括:
计算并记录流场中粒子的物理属性;其中,所述粒子的物理属性包括所述粒子的真实质量;
根据所述流场中粒子的物理属性,得到所述流场中粒子的动态水平和可见水平;其中,所述动态水平包括所述粒子的涡度和速度差,所述可见水平包括所述粒子到自由表面的距离;
根据所述流场中粒子的动态水平和可见水平,计算所述流场中粒子的最优质量;
根据所述流场中粒子的所述真实质量与所述最优质量间的比值,确定所述粒子的类型;其中,所述粒子的类型为设定的多个类型中的一个类型,所述多个类型包括需要分裂的第一类型;
根据所述粒子的类型,更新所述流场中的粒子,并在更新所述流场中的粒子后,再一次执行所述计算并记录流场中粒子的物理属性的步骤;其中,所述根据所述粒子的类型,更新所述流场中的粒子包括:采用密度误差最小的分裂方式,对所述流场中的属于所述第一类型的粒子进行分裂;
根据多次记录的所述流场中粒子的物理属性,生成关于流体动作的动画;其中,不同次记录对应不同的时间戳。
可选地,所述根据所述流场中粒子的动态水平和可见水平,计算所述流场中粒子的最优质量,包括:
分别通过动态水平映射函数、可见水平映射函数,获取所述流场中每个粒子的动态水平映射函数值和可见水平映射函数值;
通过尺寸函数、及所述流场中每个粒子的动态水平映射函数值和可见水平映射函数值,得到所述流场中每个粒子的最优质量。
可选地,所述采用密度误差最小的分裂方式,对所述流场中的属于所述第一类型的粒子进行分裂,包括:
根据属于所述第一类型的待分裂粒子的所述真实质量与所述最优质量间的比值,确定所述待分裂粒子的子粒子数量;
根据所述待分裂粒子的子粒子数量,为所述待分裂粒子选择分裂模板;
旋转所述分裂模板,计算所述待分裂粒子与每次旋转所述分裂模板得到的子粒子之间的密度误差,得到多个所述密度误差中的最小密度误差;
通过所述最小密度误差对应的分裂方式,对所述待分裂粒子进行分裂。
可选地,所述根据所述流场中粒子的所述真实质量与所述最优质量间的比值,确定所述粒子的类型,包括:
在所述粒子的所述真实质量与所述最优质量间的比值大于第四预设阈值的情况下,确定所述粒子的类型为所述需要分裂的第一类型;
在所述粒子的所述真实质量与所述最优质量间的比值大于或者等于第二预设阈值,且小于第三预设阈值的情况下,确定所述粒子的类型为保持不变的第二类型;
在所述粒子的所述真实质量与所述最优质量间的比值大于或者等于所述第三预设阈值,且小于或者等于所述第四预设阈值,或者,大于或者等于第一预设阈值,且小于所述第二预设阈值的情况下,确定所述粒子的类型为需要质量重分配的第三类型;
在所述粒子的所述真实质量与所述最优质量间的比值小于所述第一预设阈值的情况下,确定所述粒子的类型为需要合并的第四类型。
可选地,所述计算并记录流场中粒子的物理属性之前,所述方法包括:
根据所述流场中粒子的邻居粒子数量,得到关于所述粒子的候选粒子;
在所述候选粒子周围生成多个临时粒子。
可选地,在所述计算并记录流场中粒子的物理属性之后,及所述根据所述流场中粒子的物理属性,得到所述流场中粒子的动态水平和可见水平之前,所述方法还包括:
在所述流场中去除所述多个临时粒子。
可选地,所述计算并记录流场中粒子的物理属性,包括:
在流场中的粒子被更新过的情况下,计算被更新的粒子的原始物理属性;
将所述被更新的粒子的原始物理属性与所述被更新粒子的父粒子的物理属性相融合,得到并记录所述被更新的粒子的物理属性。
根据本公开的第二方面,还提供了一种高动态空间自适应流体仿真设备,该设备包括:
物理属性计算模块,用于计算并记录流场中粒子的物理属性;其中,所述粒子的物理属性包括所述粒子的真实质量;
粒子水平计算模块,用于根据所述流场中粒子的物理属性,得到所述流场中粒子的动态水平和可见水平;其中,所述动态水平包括所述粒子的涡度和速度差,所述可见水平包括所述粒子到自由表面的距离;
最优质量计算模块,用于根据所述流场中粒子的动态水平和可见水平,计算所述流场中粒子的最优质量;
粒子类型确定模块,用于根据所述流场中粒子的所述真实质量与所述最优质量间的比值,确定所述粒子的类型;其中,所述粒子的类型为设定的多个类型中的一个类型,所述多个类型包括需要分裂的第一类型;
粒子更新模块,用于根据所述粒子的类型,更新所述流场中的粒子,并在更新所述流场中的粒子后,再一次执行所述计算并记录流场中粒子的物理属性的步骤;其中,所述根据所述粒子的类型,更新所述流场中的粒子包括:采用密度误差最小的分裂方式,对所述流场中的属于所述第一类型的粒子进行分裂;
动画生成模块,用于根据多次记录的所述流场中粒子的物理属性,生成关于流体动作的动画;其中,不同次记录对应不同的时间戳。
可选地,所述最优质量计算模块,具体用于:
分别通过动态水平映射函数、可见水平映射函数,获取所述流场中每个粒子的动态水平映射函数值和可见水平映射函数值;
通过尺寸函数、及所述流场中每个粒子的动态水平映射函数值和可见水平映射函数值,得到所述流场中每个粒子的最优质量。
根据本公开的第三方面,还提供了一种高动态空间自适应流体仿真设备,包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序,以实现根据本公开第一方面所述的方法。
根据本公开的第四方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序在被处理器执行时实现根据本公开的第一方面所述的方法。
本公开实施例的一个有益效果在于,在本公开实施例的高动态流体仿真方法中,同时考虑了流场的可见性水平和动态水平,通过引入高动态流体内部的复杂运动,以实现基于粒子的高动态流体的高保真、高效仿真;整个流场的分辨率通过新设计的粒子分裂、合并和质量重新分配方案进行自适应调整,通过采用密度误差最小的分裂模板进行分裂,以确保基于粒子的空间自适应流体模拟的稳定性。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开实施例的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且连同其说明一起用于解释本公开实施例的原理。
图1是可用于实现本公开实施例的仿真设备的硬件配置框图;
图2是根据一个实施例的高动态空间自适应流体仿真方法的流程示意图;
图3是根据另一个实施例的高动态空间自适应流体仿真方法的流程示意图;
图4是根据一个实施例的高动态空间自适应流体仿真小球砸水实验效果示意图;
图5是根据一个实施例的高动态空间自适应流体仿真螺旋桨水下旋转实验效果示意图;
图6是根据一个实施例的高动态空间自适应流体仿真粒子数与统一高分辨率仿真粒子数的比值折线图;
图7是根据一个实施例的高动态空间自适应流体仿真设备的方框原理图;
图8是根据一个实施例的高动态空间自适应流体仿真设备的结构示意图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
在虚拟现实应用程序中,为了提高用户与虚拟自然环境的自由交互体验,需要实现高动态流体的高真实感仿真。为了实现高动态流体的高真实感仿真的目的,一种可选的实施方式为:通过将不同的分辨率应用于不同的流场位置,并且进行动态改变以达到流场粒子的最佳分辨率。然而,由于多尺度离散化引起的信息提取不充分和密度误差,仍然导致高频细节的严重丢失。这使得人们难以在高效仿真高动态流体的同时,以高保真度提供充分的飞溅和涡流细节。
<硬件配置>
图1是可用于实现本公开实施例的仿真设备的硬件配置框图。
如图1所示,该仿真设备1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克风1800等等。
处理器1100用于执行计算机程序,该计算机程序可以采用比如x86、Arm、RISC、MIPS、SSE等架构的指令集编写。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、耳机接口等。通信装置1400例如能够进行有线或无线通信,通信装置1400可以包括至少一种短距离通信模块,例如是基于Hilink协议、WiFi(IEEE 802.11协议)、Mesh、蓝牙、ZigBee、Thread、Z-Wave、NFC、UWB、LiFi等短距离无线通信协议进行短距离无线通信的任意模块,通信装置1400也可以包括远程通信模块,例如是进行WLAN、GPRS、2G/3G/4G/5G远程通信的任意模块。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘等。扬声器1700用于输出音频信号。麦克风1800用于采集音频信号。
该仿真设备1000可以是具有计算处理能力的任意类型的电子设备,在此不做限定。示例性地,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等。
本领域技术人员应当理解,尽管在图1中示出了仿真设备1000的多个装置,但是,本公开实施例的仿真设备1000可以仅涉及其中的部分装置,例如,只涉及处理器1100和存储器1200。这是本领域公知,此处不再赘述。
应用于本实施例中,存储器1200用于存储计算机程序指令,该指令用于控制处理器1100进行操作以执行根据本公开任意实施例的流体仿真方法。技术人员可以根据本发明所公开方案设计该指令。该指令如何控制处理器1100进行操作,这是本领域公知,故在此不再详细描述。
<方法实施例>
图2是根据一个实施例的高动态空间自适应流体仿真方法的流程示意图。
如图2所示,本实施例的高动态空间自适应流体仿真方法可以包括如下步骤S210~S260:
步骤S210,计算并记录流场中粒子的物理属性。
在流体仿真中,分辨率的定义取决于离散化的方式,对于欧拉方法是网格大小,对于拉格朗日方法是粒子大小。由于固定网格的限制,欧拉方法很难很好地描述大变形的仿真场景。因此,基于粒子的拉格朗日方法更适合高动态流体场景的模拟。
基于粒子的拉格朗日方法通过离散的采样点来计算连续的流场,其把整个被模拟的流体离散成采样点,这些离散的采样点被称为光滑粒子。在基于粒子的拉格朗日方法中,粒子可以分布于被模拟空间的任意位置,每个粒子都被认为占据着流体空间的一个片段,且为了得到更准确的加权量,采样的粒子必须比较密集。基于粒子的拉格朗日方法可以包括光滑粒子流体动力学方法(SPH)。
其中,SPH(Smoothed Particle Hydrodynamics)是光滑粒子流体动力学方法的缩写,是在近20多年来逐步发展起来的一种无网格方法。该方法的基本思想是将连续的流体(或固体)用相互作用的质点组来描述,各个物质点上承载各种物理量,包括质量、速度等,通过求解质点组的动力学方程和跟踪每个质点的运动轨道,求得整个系统的力学行为。
SPH方法将连续流场离散为有限数量的运动粒子,每个粒子携带一组物理量(属性),包括质量、密度、压力、速度、位置等。在每个时间步长内,需要求解流场内所有流体粒子的物理属性,并更新流体粒子在下一时刻的速度与位置。
本实施例中,在仿真设备模拟流体运动时,每一时刻流场中粒子的物理属性被计算并记录在该仿真设备的存储器中。该仿真设备例如可以是手机、平板电脑等,在此不做限定。
粒子可以是初始化后静态的粒子,也可以是处于各种运动状态下的粒子,例如是飞溅状态下的粒子、涡流状态下的粒子,还可以是对原始粒子进行各种后处理后的粒子,例如按照本实施例的方法对原始粒子进行合并、分裂和质量重分配后的粒子等等,在此不做限定。
每个粒子对应一组物理属性。物理属性是每个粒子携带的物理量,包括真实质量、密度、压力、速度、位置中的任意一项或多项。其中,真实质量指的是流场中粒子的实际质量。物理属性用于描述流场中粒子的运动状态,仿真设备得到每一时刻流场中粒子的运动状态,可生成流体动作的动画,实现流体动作的模拟。
示例性地,首先基于流场中粒子及其邻居粒子的物理属性计算并记录流场中粒子 的物理属性。其中,粒子的各物理属性利用了SPH方法的插值近似特点。三次样条核
Figure 789013DEST_PATH_IMAGE001
被用 作权重,以根据邻居粒子的属性值获得位置
Figure 315940DEST_PATH_IMAGE002
处的粒子
Figure 705465DEST_PATH_IMAGE003
的属性值:
Figure 54669DEST_PATH_IMAGE004
其中,
Figure 665779DEST_PATH_IMAGE005
表示粒子
Figure 160345DEST_PATH_IMAGE003
的属性值,
Figure 37165DEST_PATH_IMAGE006
表示粒子
Figure 834134DEST_PATH_IMAGE003
的邻居粒子
Figure 722586DEST_PATH_IMAGE007
的属性值,
Figure 60158DEST_PATH_IMAGE008
表示邻居粒子
Figure 407963DEST_PATH_IMAGE007
的真实质量,
Figure 692445DEST_PATH_IMAGE009
表示邻居粒子
Figure 560038DEST_PATH_IMAGE007
的密度,
Figure 848936DEST_PATH_IMAGE010
是粒子
Figure 434770DEST_PATH_IMAGE003
和粒子
Figure 54101DEST_PATH_IMAGE007
之间的距离,
Figure 759889DEST_PATH_IMAGE011
是光滑半 径,W为SPH方法中的核函数。只有当
Figure 173684DEST_PATH_IMAGE012
小于光滑半径时,粒子
Figure 512392DEST_PATH_IMAGE003
和粒子
Figure 387944DEST_PATH_IMAGE007
才被视为彼此的邻居, 并参与插值计算。
然后通过控制方程来得到每个粒子的总加速度,最终完成对粒子位置的更新。
流体粒子的运动由控制方程(Navier-Stokes方程)描述:
Figure 26867DEST_PATH_IMAGE013
其中,
Figure 142722DEST_PATH_IMAGE014
表示物质导数,
Figure 171989DEST_PATH_IMAGE015
表示梯度算子,
Figure 664281DEST_PATH_IMAGE016
表示拉普拉斯算子,
Figure 344661DEST_PATH_IMAGE017
是重力加速度,
Figure 631417DEST_PATH_IMAGE018
表示速度,
Figure 413560DEST_PATH_IMAGE019
表示时间,
Figure 455683DEST_PATH_IMAGE020
表示密度,
Figure 724990DEST_PATH_IMAGE021
表示压力,
Figure 979385DEST_PATH_IMAGE022
表示粘度。公式右边的三项分别代表压力、 粘性力和外力(重力)引起的速度变化。
步骤S220,根据流场中粒子的物理属性,得到流场中粒子的动态水平和可见水平。
本实施例中,仿真设备得到每一时刻流场中各粒子的涡度、速度差和各粒子到自由表面的距离。
粒子的动态水平用于描述当流场中的粒子处于复杂流体运动时,该粒子的运动状态。粒子的动态水平可以包括涡度和速度差,其中,涡度是描述局部区域旋转状态的物理量,定义为速度的旋度。旋度是向量分析中的一个向量算子,可以表示三维向量场对某一点附近的微元造成的旋转程度。这个向量提供了向量场在这一点的旋转性质。速度差表示两个粒子之间的相对速度。
粒子的可见水平用于描述流场中粒子的位置。粒子的可见水平可以包括粒子到流体自由表面的距离。其中,粒子到流体自由表面的距离可以采用水平集函数进行计算,例如Level-set函数。
继续上述示例,仿真设备得到每一时刻流场中各粒子的涡度、速度差和各粒子到自由表面的距离,具体计算方法如下:
粒子
Figure 248823DEST_PATH_IMAGE003
的涡度由邻居粒子涡度的插值得出:
Figure 817339DEST_PATH_IMAGE023
其中,
Figure 941153DEST_PATH_IMAGE024
表示粒子
Figure 569711DEST_PATH_IMAGE003
的涡度,
Figure 326446DEST_PATH_IMAGE025
表示粒子
Figure 151182DEST_PATH_IMAGE003
的速度,
Figure 676973DEST_PATH_IMAGE026
表示邻居粒子
Figure 476433DEST_PATH_IMAGE007
的速度,
Figure 172993DEST_PATH_IMAGE027
为系 数,W为SPH方法中的核函数。
对于粒子
Figure 83312DEST_PATH_IMAGE003
,其与邻居粒子间的速度差可以表示为:
Figure 994767DEST_PATH_IMAGE028
其中,
Figure 152079DEST_PATH_IMAGE029
表示粒子
Figure 680143DEST_PATH_IMAGE003
的速度差,
Figure 394152DEST_PATH_IMAGE030
表示粒子
Figure 628956DEST_PATH_IMAGE003
与其邻居粒子
Figure 222748DEST_PATH_IMAGE007
的速度差,
Figure 441371DEST_PATH_IMAGE031
表示范数。
粒子到自由表面的距离通过Level-set函数计算,并使用SPH插值进行平滑:
Figure 959071DEST_PATH_IMAGE032
其中,
Figure 563228DEST_PATH_IMAGE033
表示粒子
Figure 875392DEST_PATH_IMAGE003
到自由表面的距离,
Figure 507275DEST_PATH_IMAGE034
表示邻居粒子
Figure 77934DEST_PATH_IMAGE007
到自由表面的距离。
步骤S230,根据流场中粒子的动态水平和可见水平,计算流场中粒子的最优质量。
本实施例中,仿真设备计算得到流场中每个粒子的最佳分辨率。
最优质量指的是流场中每个粒子的最佳分辨率。将流场中的不同区域采用不同的分辨率,并且进行动态改变以达到最佳分辨率,可以实现空间自适应仿真,例如在流体动作复杂的区域采用高分辨率的粒子,在流体动作简单的区域采用低分辨率的粒子,可以实现高保真、多细节的流体模拟。
步骤S230中根据流场中粒子的动态水平和可见水平,计算流场中粒子的最优质量可以进一步包括如下步骤S231~S232:
步骤S231,分别通过动态水平映射函数、可见水平映射函数,获取流场中每个粒子的动态水平映射函数值和可见水平映射函数值。
动态水平映射函数用于将粒子的涡度和速度差映射到自定义区间。
可见水平映射函数用于将粒子到自由表面的距离映射到自定义区间。
其中,映射函数可根据提供的函数对指定的序列做映射,例如
Figure 162695DEST_PATH_IMAGE035
函数。
继续上述示例,将粒子到自由表面的距离使用如下映射函数映射到[0,1]区间:
Figure 380181DEST_PATH_IMAGE036
其中,
Figure 307817DEST_PATH_IMAGE037
表示粒子
Figure 151008DEST_PATH_IMAGE003
到自由表面的距离的映射函数值,
Figure 277227DEST_PATH_IMAGE038
表示距离预设阈值。
将涡度与速度差使用如下函数投影到
Figure 665614DEST_PATH_IMAGE039
区间:
Figure 80546DEST_PATH_IMAGE040
其中,
Figure 743740DEST_PATH_IMAGE035
表示映射函数,
Figure 380258DEST_PATH_IMAGE041
表示需要映射的属性值,
Figure 470704DEST_PATH_IMAGE042
Figure 107353DEST_PATH_IMAGE043
为自定义区间的 最小值和最大值,
Figure 761189DEST_PATH_IMAGE044
均为定义的参数。为了得到涡度与速度差的映射结果,需要定 义4个变量
Figure 65262DEST_PATH_IMAGE045
Figure 513561DEST_PATH_IMAGE046
Figure 903085DEST_PATH_IMAGE047
其中,
Figure 908081DEST_PATH_IMAGE048
表示粒子
Figure 535503DEST_PATH_IMAGE003
的涡度的映射函数值,
Figure 764490DEST_PATH_IMAGE049
表示粒子
Figure 624999DEST_PATH_IMAGE003
的速度差的映射函数值,
Figure 648667DEST_PATH_IMAGE050
Figure 927333DEST_PATH_IMAGE051
分别表示涡度最小值和最大值,
Figure 983013DEST_PATH_IMAGE052
Figure 81550DEST_PATH_IMAGE053
分别表示速度差最小值和最大 值。
步骤S232,通过尺寸函数、及流场中每个粒子的动态水平映射函数值和可见水平映射函数值,得到流场中每个粒子的最优质量。
尺寸函数用于计算粒子的最优质量。
继续上述示例,尺寸函数用于根据上述映射结果计算粒子的最佳质量:
Figure 162770DEST_PATH_IMAGE054
其中,
Figure 295942DEST_PATH_IMAGE055
表示粒子
Figure 319262DEST_PATH_IMAGE003
的最优质量,
Figure 108357DEST_PATH_IMAGE056
Figure 727689DEST_PATH_IMAGE057
分别表示当前时刻流场所 有粒子中的真实质量最大值、最小值。
在本实施例中,提出不仅要检测自由表面附近的粒子,还要检测数值变化剧烈的高动态区域中的粒子,相较于现有技术中仅检测自由表面附近的粒子,可以提高这些粒子的分辨率以捕获更多细节。
步骤S240,根据流场中粒子的真实质量与最优质量间的比值,确定粒子的类型。
本实施例中,仿真设备对流场中的各粒子进行分类。
粒子类型不同,处理方式不同。其中,处理方式可以包括分裂、合并和质量重分配。 其中,分裂指的是将原始粒子拆分成多个子粒子,例如
Figure 230214DEST_PATH_IMAGE058
分裂,n表示子粒子数量。合并指 的是将原始粒子进行删除,并将原始粒子的质量和其他原始粒子的质量进行合并。质量重 分配指的是将原始粒子的部分质量分配给其他的原始粒子。
步骤S240中根据流场中粒子的真实质量与最优质量间的比值,确定粒子的类型可以进一步包括如下步骤S241~S244:
步骤S241,在粒子的真实质量与最优质量间的比值大于第四预设阈值的情况下,确定粒子的类型为需要分裂的第一类型。
继续上述示例,对于流体粒子
Figure 112851DEST_PATH_IMAGE003
,计算它的真实质量
Figure 451559DEST_PATH_IMAGE059
和最优质量
Figure 327111DEST_PATH_IMAGE055
的比值,并 根据这个比值
Figure 169297DEST_PATH_IMAGE060
调整它的大小:
Figure 737681DEST_PATH_IMAGE061
对于
Figure 563686DEST_PATH_IMAGE062
的粒子
Figure 790399DEST_PATH_IMAGE003
,将其平均拆分为
Figure 939621DEST_PATH_IMAGE063
个子粒子,每个子粒子的质 量为
Figure 226377DEST_PATH_IMAGE064
。这个过程是
Figure 274098DEST_PATH_IMAGE058
分裂。子粒子的速度与原始粒子相同,以确保动量守恒。具 有相同父级的所有子级的相对位置由预先计算的模板给出。本实施例为
Figure 491453DEST_PATH_IMAGE058
分裂过程中的 每个
Figure 573810DEST_PATH_IMAGE065
值均准备了一个模板,其中
Figure 765888DEST_PATH_IMAGE066
。具有
Figure 487856DEST_PATH_IMAGE062
的粒子的类型为需要 分裂的第一类型。
Figure 44653DEST_PATH_IMAGE067
表示向上取整。
步骤S242,在粒子的真实质量与最优质量间的比值大于或者等于第二预设阈值,且小于第三预设阈值的情况下,确定粒子的类型为保持不变的第二类型。
保持不变指的是粒子保持原样,不做任何的处理。对于真实质量与最优质量接近的粒子,调整它们会消耗计算资源,但仅能产生微小的变化,对模拟没有明显的好处。因此,将这些粒子保持原样以节省计算资源。
继续上述示例,
Figure 981516DEST_PATH_IMAGE068
的粒子非常接近最佳尺寸。具有
Figure 62605DEST_PATH_IMAGE068
的粒子的类型为保持不变的第二类型。
步骤S243,在粒子的真实质量与最优质量间的比值大于或者等于第三预设阈值,且小于或者等于第四预设阈值,或者,大于或者等于第一预设阈值,且小于第二预设阈值的情况下,确定粒子的类型为需要质量重分配的第三类型。
继续上述示例,对于具有
Figure 84918DEST_PATH_IMAGE069
的粒子
Figure 394808DEST_PATH_IMAGE003
,分裂操作将产生两个分辨率高 于最优值的子粒子。因此,本实施例进行部分质量的重分配,将超出的质量
Figure 169866DEST_PATH_IMAGE070
分配给选定的伙伴。注意,只有
Figure 234905DEST_PATH_IMAGE071
的邻居将被选为伙伴。 每个伙伴
Figure 682198DEST_PATH_IMAGE072
将从粒子
Figure 107363DEST_PATH_IMAGE003
处获得质量
Figure 690922DEST_PATH_IMAGE073
,其中
Figure 926863DEST_PATH_IMAGE074
是伙伴的数量。具有
Figure 376299DEST_PATH_IMAGE069
的 粒子的类型为需要质量重分配的第三类型。
步骤S244,在粒子的真实质量与最优质量间的比值小于第一预设阈值的情况下,确定粒子的类型为需要合并的第四类型。
继续上述示例,在模拟中,
Figure 824729DEST_PATH_IMAGE075
的粒子
Figure 325111DEST_PATH_IMAGE003
小于最佳尺寸,它们将被删除以降 低局部区域的分辨率。它们的质量将平均分配给选定的伙伴,以确保质量守恒。这个过程是 合并。伙伴的选择规则依然是
Figure 918904DEST_PATH_IMAGE071
的邻居粒子。不同的是,被删除粒子
Figure 137527DEST_PATH_IMAGE003
的每 个伙伴
Figure 107757DEST_PATH_IMAGE076
都会获得质量
Figure 728225DEST_PATH_IMAGE077
,其中
Figure 243651DEST_PATH_IMAGE078
是被选中伙伴的数量。具有
Figure 198838DEST_PATH_IMAGE075
的粒子的 类型为需要合并的第四类型。
在本实施例中,采用分裂、合并和质量重分配的操作来调整粒子的分辨率,可以使得流场中粒子的分辨率达到理想水平。
步骤S250,根据粒子的类型,更新流场中的粒子,并在更新流场中的粒子后,再一次执行计算并记录流场中粒子的物理属性的步骤。
本实施例中,仿真设备对当前时刻是否结束模拟进行判断:若结束,则进行步骤S260;若未结束,则返回步骤S210进行迭代计算。其中,模拟结束的条件可以是迭代次数达到预期迭代次数,也可以是流场中所有粒子的位置不再发生变化。
步骤S250中根据粒子的类型,更新流场中的粒子可以进一步包括如下步骤S251~S254:
步骤S251,根据属于第一类型的待分裂粒子的真实质量与最优质量间的比值,确定待分裂粒子的子粒子数量。
继续上述示例,对于
Figure 723491DEST_PATH_IMAGE062
的粒子
Figure 995203DEST_PATH_IMAGE003
,本实施例将其平均拆分为
Figure 212689DEST_PATH_IMAGE063
个 子粒子,即为得到待分裂粒子i的子粒子数量
Figure 417623DEST_PATH_IMAGE079
步骤S252,根据待分裂粒子的子粒子数量,为待分裂粒子选择分裂模板。
在本实施例中,对于不同的子粒子数量,对应不同的分裂模板,例如当子粒子数量为2时,采用子粒子均匀分配的分裂模板。通过旋转分裂模板,可以使子粒子的位置发生变化,例如2个子粒子的位置可以是左右排布,也可以是上下排布。
继续上述示例,对于待分裂粒子
Figure 464077DEST_PATH_IMAGE003
,选择对应分裂模板
Figure 59137DEST_PATH_IMAGE080
步骤S253,旋转分裂模板,计算待分裂粒子与每次旋转分裂模板得到的子粒子之间的密度误差,得到多个密度误差中的最小密度误差。
粒子分裂时,由于子粒子的位置和原始粒子不同,导致引入了密度误差。其中,密度误差可以包括原始粒子替换为多个子粒子所引起的邻居粒子位置处的误差,以及每个子粒子与原始粒子的密度误差。
继续上述示例,密度误差计算公式如下:
Figure 165633DEST_PATH_IMAGE081
其中,
Figure 846144DEST_PATH_IMAGE082
表示粒子
Figure 447021DEST_PATH_IMAGE003
被分裂后的密度误差,
Figure 145856DEST_PATH_IMAGE083
用于迭代粒子
Figure 173986DEST_PATH_IMAGE003
的所有邻居粒子,
Figure 810635DEST_PATH_IMAGE084
用于迭代粒子
Figure 526787DEST_PATH_IMAGE003
的所有子粒子,
Figure 565281DEST_PATH_IMAGE085
Figure 561050DEST_PATH_IMAGE086
的邻居,m表示质量,
Figure 403104DEST_PATH_IMAGE087
表示粒子
Figure 142521DEST_PATH_IMAGE003
的密度,W表示系 数,为SPH方法中的核函数。公式右边的第一项表示将粒子
Figure 301101DEST_PATH_IMAGE003
替换为多个子粒子所引起的邻 居粒子位置处的误差,第二项是每个子粒子与原始粒子的密度误差。
根据上述密度误差计算公式可以计算每次旋转分裂模板后的密度误差。
步骤S254,通过最小密度误差对应的分裂方式,对待分裂粒子进行分裂。
当密度误差最小时,表示子粒子与原始粒子的物理属性比较接近,可以有效提高流体模拟的稳定性。
继续上述示例,本实施例多次旋转指定的分裂模板,得到每次旋转分裂模板后的 密度误差为
Figure 185881DEST_PATH_IMAGE088
Figure 797122DEST_PATH_IMAGE089
Figure 340230DEST_PATH_IMAGE090
,选择
Figure 805846DEST_PATH_IMAGE088
Figure 408997DEST_PATH_IMAGE089
Figure 241955DEST_PATH_IMAGE090
中的最小值对应的分裂方式,对粒子i进行分裂。
在本实施例中,着眼于粒子的所有邻居粒子和子粒子的所在位置,并计算这些位置处因分裂而造成的误差,使用误差最小的模板对粒子进行分裂,可以提高流体模拟的稳定性。
步骤S260,根据多次记录的流场中粒子的物理属性,生成关于流体动作的动画。
本实施例中,仿真设备将每一时刻记录的流场运动状态进行拼接,生成时间段内流体动作的视频。
多次记录指的是记录每一时刻流场中粒子的物理属性,不同次对应不同的时间戳。其中,时间戳可以是几秒,也可以是几分,还可以是几小时等。
生成关于流体动作的动画,包括流场表面信息的提取和流体渲染。流场表面信息提取用于构造流体表面,例如采用Marching Cube算法提取流体表面信息。流体渲染用于实现可视化。
继续上述示例,将每一时刻流场中粒子的物理属性作为流体动画视频中每一帧粒子的运动情况,然后采用Marching Cube算法提取每一帧中的流体表面信息,最后将每一帧中的流体进行渲染。
根据本公开实施例的流体仿真方法,其同时考虑了流场的可见性水平和动态水平,通过引入高动态流体内部的复杂运动,以实现基于粒子的高动态流体的高保真、高效仿真;整个流场的分辨率通过新设计的粒子分裂、合并和质量重新分配方案进行自适应调整,通过采用密度误差最小的分裂模板进行分裂,以确保基于粒子的空间自适应流体模拟的稳定性。
图3是根据另一个实施例的高动态空间自适应流体仿真方法的流程示意图。
如图3所示,在一个实施例中,在根据以上步骤S210计算并记录流场中粒子的物理属性之前,还包括步骤S200获取临时粒子;
根据以上步骤S200获取临时粒子,可以进一步包括步骤S201~S202:
步骤S201,根据流场中粒子的邻居粒子数量,得到关于粒子的候选粒子。
候选粒子指的是流场中,邻居粒子数量少于预设阈值的粒子。
示例性地,为了优化模拟结果,本实施例在高动态区域执行飞溅效果增强,以实现 与高分辨率结果更为相近的仿真效果。如果一个表面粒子的邻居少于用户定义的参数
Figure 854333DEST_PATH_IMAGE091
,则将该粒子视为飞溅候选粒子。
步骤S202,在候选粒子周围生成多个临时粒子。
临时粒子用于丰富流体动画效果。
示例性地,为了增强飞溅细节,本实施例在候选粒子
Figure 174456DEST_PATH_IMAGE092
周围生成
Figure 682928DEST_PATH_IMAGE093
个临时粒 子。本实施例以
Figure 257043DEST_PATH_IMAGE094
Figure 656800DEST_PATH_IMAGE095
为例,其中
Figure 582162DEST_PATH_IMAGE096
是粒子
Figure 527115DEST_PATH_IMAGE092
的邻居数。临时粒子
Figure 849512DEST_PATH_IMAGE097
的位置是根据其父粒子
Figure 69272DEST_PATH_IMAGE092
设置的:
Figure 380299DEST_PATH_IMAGE098
其中,
Figure 230574DEST_PATH_IMAGE099
是粒子
Figure 243530DEST_PATH_IMAGE092
与其邻居粒子Z间的平均位置偏移向量,
Figure 470243DEST_PATH_IMAGE100
是随机的飞溅增强参 数,用于控制候选粒子
Figure 166935DEST_PATH_IMAGE092
与其生成的临时粒子之间的距离,
Figure 437379DEST_PATH_IMAGE101
是随机的偏移向量,使水花看 起来更分散。
Figure 219521DEST_PATH_IMAGE102
表示粒子的位置,临时粒子
Figure 718767DEST_PATH_IMAGE097
的尺寸与其父粒子
Figure 519233DEST_PATH_IMAGE092
相同。
Figure 976890DEST_PATH_IMAGE103
其中,
Figure 246328DEST_PATH_IMAGE104
=
Figure 611582DEST_PATH_IMAGE105
-
Figure 975DEST_PATH_IMAGE106
是粒子Q与粒子Z之间的距离,
Figure 442583DEST_PATH_IMAGE107
表示粒子Z的真实质量,
Figure 917426DEST_PATH_IMAGE108
表示 粒子Z的密度,
Figure 289633DEST_PATH_IMAGE109
为系数,W为SPH方法中的核函数。
在本实施例中,提出一种新的后处理细节增强方案,具有可调参数,可以有效提高流体模拟的动态水平。它易于实现,可以与任何基于粒子的流体求解器集成。
根据以上步骤S210计算并记录流场中粒子的物理属性,可以进一步包括步骤S211~S212:
步骤S211,在流场中的粒子被更新过的情况下,计算被更新的粒子的原始物理属性。
示例性地,流场中的粒子在被更新后,利用如下公式计算被更新后粒子的原始物理属性:
Figure 905221DEST_PATH_IMAGE110
其中,
Figure 970261DEST_PATH_IMAGE111
表示被更新后粒子的原始物理属性,
Figure 11029DEST_PATH_IMAGE112
表示伙伴y原来的真实质量,
Figure 655768DEST_PATH_IMAGE113
表示伙伴y从粒子
Figure 550912DEST_PATH_IMAGE003
处获得的质量,
Figure 521273DEST_PATH_IMAGE005
表示粒子
Figure 987020DEST_PATH_IMAGE003
的原始物理属性。
步骤S212,将被更新的粒子的原始物理属性与被更新粒子的父粒子的物理属性相融合,得到并记录被更新的粒子的物理属性。
继续上述示例,按照如下公式对被更新后粒子的原始物理属性进行校准,得到被更新粒子的物理属性:
Figure 701030DEST_PATH_IMAGE114
其中,
Figure 450680DEST_PATH_IMAGE115
表示被更新粒子的物理属性,
Figure 795205DEST_PATH_IMAGE116
表示权重。
在本实施例中,通过将粒子更新前后的物理属性进行融合,可进一步降低粒子分裂带来的密度误差,进一步确保基于粒子的空间自适应流体模拟的稳定性。
在根据以上步骤S210计算并记录流场中粒子的物理属性之后,及根据以上步骤S220根据流场中粒子的物理属性,得到流场中粒子的动态水平和可见水平之前,还包括步骤S2100在流场中去除多个临时粒子。
在本实施例中,记录所有临时粒子的位置和半径,并将它们作为后处理步骤添加到仿真中。由于这些临时粒子只是为了丰富视觉效果而产生的,然后将临时粒子进行去除,它们并不影响流体仿真的后续计算。
根据本公开实施例的流体仿真方法,其通过增加流场中的临时粒子,以丰富流体仿真过程的细节,提供了一种新的后处理细节增强方法,该方法易于实现,可以与任何基于粒子的流体求解器集成,同时可以有效提高流体模拟的动态水平;同时,通过对更新后粒子的原始物理属性进行校准,进一步确保基于粒子的空间自适应流体模拟的稳定性。
图4是根据一个实施例的高动态空间自适应流体仿真小球砸水实验效果示意图。
如图4所示,分别使用均匀低分辨率(a)、基于表面的自适应分辨率(b)、本公开实施例的高动态自适应分辨率(c)和均匀高分辨率(d)进行仿真。在(a)中,大部分飞溅细节都丢失了。与基于表面的自适应方法(b)相比,本公开实施例的仿真方法能够保留更多的飞溅细节,并获得与高分辨率方法(d)更相似的外观。
图5是根据一个实施例的高动态空间自适应流体仿真螺旋桨水下旋转实验效果示意图。
如图5所示,分别使用均匀低分辨率(a)、基于表面的自适应分辨率(b)、本公开实施例的高动态自适应分辨率(c)和均匀高分辨率(d)进行仿真。在(a)中,大部分飞溅细节都丢失了。基于表面的自适应方法(b)无法捕捉到高频细节,飞溅无法达到预期高度,本公开实施例的仿真方法的结果更接近高分辨率模拟的结果。
图6是根据一个实施例的高动态空间自适应流体仿真粒子数与统一高分辨率仿真粒子数的比值折线图。
如图6所示,黑色实线为小球砸水实验时,本公开实施例的流体仿真方法粒子数与统一高分辨率仿真粒子数的比值随时间变化图;黑色虚线为螺旋桨水下旋转实验时,本公开实施例的流体仿真方法粒子数与统一高分辨率仿真粒子数的比值随时间变化图。由图可知,本公开实施例的流体仿真方法粒子数相对于统一高分辨率仿真的粒子数比值,其结果始终小于0.1,即相比于统一高分辨率仿真,本公开实施例的仿真方法使用了不到10%的粒子,但实现了相似的仿真结果,表明本公开实施例的仿真方法显著节省了计算资源。
<设备实施例一>
图7是根据一个实施例的高动态空间自适应流体仿真设备的方框原理图。
如图7所示,该仿真设备7000可以包括物理属性计算模块7100、粒子水平计算模块7200、最优质量计算模块7300、粒子类型确定模块7400、粒子更新模块7500和动画生成模块7600。
物理属性计算模块,用于计算并记录流场中粒子的物理属性;其中,所述粒子的物理属性包括所述粒子的真实质量。
粒子水平计算模块,用于根据所述流场中粒子的物理属性,得到所述流场中粒子的动态水平和可见水平;其中,所述动态水平包括所述粒子的涡度和速度差,所述可见水平包括所述粒子到自由表面的距离。
最优质量计算模块,用于根据所述流场中粒子的动态水平和可见水平,计算所述流场中粒子的最优质量。
粒子类型确定模块,用于根据所述流场中粒子的所述真实质量与所述最优质量间的比值,确定所述粒子的类型;其中,所述粒子的类型为设定的多个类型中的一个类型,所述多个类型包括需要分裂的第一类型。
粒子更新模块,用于根据所述粒子的类型,更新所述流场中的粒子,并在更新所述流场中的粒子后,再一次执行所述计算并记录流场中粒子的物理属性的步骤;其中,所述根据所述粒子的类型,更新所述流场中的粒子包括:采用密度误差最小的分裂方式,对所述流场中的属于所述第一类型的粒子进行分裂。
动画生成模块,用于根据多次记录的所述流场中粒子的物理属性,生成关于流体动作的动画;其中,不同次记录对应不同的时间戳。
在一个实施例中,该最优质量计算模块7300,用于分别通过动态水平映射函数、可见水平映射函数,获取所述流场中每个粒子的动态水平映射函数值和可见水平映射函数值;通过尺寸函数、及所述流场中每个粒子的动态水平映射函数值和可见水平映射函数值,得到所述流场中每个粒子的最优质量。
在一个实施例中,该粒子更新模块7500,根据属于所述第一类型的待分裂粒子的所述真实质量与所述最优质量间的比值,确定所述待分裂粒子的子粒子数量;根据所述待分裂粒子的子粒子数量,为所述待分裂粒子选择分裂模板;旋转所述分裂模板,计算所述待分裂粒子与每次旋转所述分裂模板得到的子粒子之间的密度误差,得到多个所述密度误差中的最小密度误差;通过所述最小密度误差对应的分裂方式,对所述待分裂粒子进行分裂。
在一个实施例中,该粒子类型确定模块7400,用于在所述粒子的所述真实质量与所述最优质量间的比值大于第四预设阈值的情况下,确定所述粒子的类型为所述需要分裂的第一类型;在所述粒子的所述真实质量与所述最优质量间的比值大于或者等于第二预设阈值,且小于第三预设阈值的情况下,确定所述粒子的类型为保持不变的第二类型;在所述粒子的所述真实质量与所述最优质量间的比值大于或者等于所述第三预设阈值,且小于或者等于所述第四预设阈值,或者,大于或者等于第一预设阈值,且小于所述第二预设阈值的情况下,确定所述粒子的类型为需要质量重分配的第三类型;在所述粒子的所述真实质量与所述最优质量间的比值小于所述第一预设阈值的情况下,确定所述粒子的类型为需要合并的第四类型。
在一个实施例中,该仿真设备7000还包括临时粒子生成模块(图中未示出)。
该临时粒子生成模块,用于在物理属性计算模块7100计算并记录流场中粒子的物理属性之前,根据所述流场中粒子的邻居粒子数量,得到关于所述粒子的候选粒子;在所述候选粒子周围生成多个临时粒子。
在一个实施例中,该仿真设备7000还包括临时粒子去除模块(图中未示出)。
该临时粒子去除模块,用于在物理属性计算模块7100计算并记录流场中粒子的物理属性之后,及在粒子水平计算模块根据所述流场中粒子的物理属性,得到所述流场中粒子的动态水平和可见水平之前,在所述流场中去除所述多个临时粒子。
在一个实施例中,该物理属性计算模块7100,用于在流场中的粒子被更新过的情况下,计算被更新的粒子的原始物理属性;将所述被更新的粒子的原始物理属性与所述被更新粒子的父粒子的物理属性相融合,得到并记录所述被更新的粒子的物理属性。
根据本公开实施例的高动态空间自适应流体仿真设备7000,其同时考虑了流场的可见性水平和动态水平,通过引入高动态流体内部的复杂运动,以实现基于粒子的高动态流体的高保真、高效仿真;整个流场的分辨率通过新设计的粒子分裂、合并和质量重新分配方案进行自适应调整,通过采用密度误差最小的分裂模板进行分裂,以及对更新后粒子的原始物理属性进行校准,以确保基于粒子的空间自适应流体模拟的稳定性;其通过增加流场中的临时粒子,以丰富流体仿真过程的细节,提供了一种新的后处理细节增强方法,该方法易于实现,可以与任何基于粒子的流体求解器集成。
<设备实施例二>
图8是根据一个实施例的高动态空间自适应流体仿真设备的结构示意图。
如图8所示,该仿真设备8000包括处理器8100和存储器8200,该存储器8200用于存储可执行的计算机程序,该处理器8100用于根据该计算机程序的控制,执行如本公开以上任意实施例所述的方法。
<介质实施例>
在本公开实施例中,还提供一种计算机可读存储介质,该计算机可读存储介质存储有可被计算机读取并运行的计算机程序,所述计算机程序用于在被所述计算机读取运行时,执行如本公开以上任意实施例所述的方法。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

Claims (10)

1.一种高动态空间自适应流体仿真方法,包括:
计算并记录流场中粒子的物理属性;其中,所述粒子的物理属性包括所述粒子的真实质量;
根据所述流场中粒子的物理属性,得到所述流场中粒子的动态水平和可见水平;其中,所述动态水平包括所述粒子的涡度和速度差,所述可见水平包括所述粒子到自由表面的距离;
根据所述流场中粒子的动态水平和可见水平,计算所述流场中粒子的最优质量;
根据所述流场中粒子的所述真实质量与所述最优质量间的比值,确定所述粒子的类型;其中,所述粒子的类型为设定的多个类型中的一个类型,所述多个类型包括需要分裂的第一类型;
根据所述粒子的类型,更新所述流场中的粒子,并在更新所述流场中的粒子后,再一次执行所述计算并记录流场中粒子的物理属性的步骤;其中,所述根据所述粒子的类型,更新所述流场中的粒子包括:采用密度误差最小的分裂方式,对所述流场中的属于所述第一类型的粒子进行分裂;
根据多次记录的所述流场中粒子的物理属性,生成关于流体动作的动画;其中,不同次记录对应不同的时间戳。
2.根据权利要求1所述的方法,其中,所述根据所述流场中粒子的动态水平和可见水平,计算所述流场中粒子的最优质量,包括:
分别通过动态水平映射函数、可见水平映射函数,获取所述流场中每个粒子的动态水平映射函数值和可见水平映射函数值;
通过尺寸函数、及所述流场中每个粒子的动态水平映射函数值和可见水平映射函数值,得到所述流场中每个粒子的最优质量。
3.根据权利要求1所述的方法,其中,所述采用密度误差最小的分裂方式,对所述流场中的属于所述第一类型的粒子进行分裂,包括:
根据属于所述第一类型的待分裂粒子的所述真实质量与所述最优质量间的比值,确定所述待分裂粒子的子粒子数量;
根据所述待分裂粒子的子粒子数量,为所述待分裂粒子选择分裂模板;
旋转所述分裂模板,计算所述待分裂粒子与每次旋转所述分裂模板得到的子粒子之间的密度误差,得到多个所述密度误差中的最小密度误差;
通过所述最小密度误差对应的分裂方式,对所述待分裂粒子进行分裂。
4.根据权利要求1所述的方法,其中,所述根据所述流场中粒子的所述真实质量与所述最优质量间的比值,确定所述粒子的类型,包括:
在所述粒子的所述真实质量与所述最优质量间的比值大于第四预设阈值的情况下,确定所述粒子的类型为所述需要分裂的第一类型;
在所述粒子的所述真实质量与所述最优质量间的比值大于或者等于第二预设阈值,且小于第三预设阈值的情况下,确定所述粒子的类型为保持不变的第二类型;
在所述粒子的所述真实质量与所述最优质量间的比值大于或者等于所述第三预设阈值,且小于或者等于所述第四预设阈值,或者,大于或者等于第一预设阈值,且小于所述第二预设阈值的情况下,确定所述粒子的类型为需要质量重分配的第三类型;
在所述粒子的所述真实质量与所述最优质量间的比值小于所述第一预设阈值的情况下,确定所述粒子的类型为需要合并的第四类型。
5.根据权利要求1所述的方法,其中,所述计算并记录流场中粒子的物理属性之前,所述方法包括:
根据所述流场中粒子的邻居粒子数量,得到关于所述粒子的候选粒子;
在所述候选粒子周围生成多个临时粒子;
在所述计算并记录流场中粒子的物理属性之后,及所述根据所述流场中粒子的物理属性,得到所述流场中粒子的动态水平和可见水平之前,所述方法还包括:
在所述流场中去除所述多个临时粒子。
6.根据权利要求1所述的方法,其中,所述计算并记录流场中粒子的物理属性,包括:
在流场中的粒子被更新过的情况下,计算被更新的粒子的原始物理属性;
将所述被更新的粒子的原始物理属性与所述被更新粒子的父粒子的物理属性相融合,得到并记录所述被更新的粒子的物理属性。
7.一种高动态空间自适应流体仿真设备,包括:
物理属性计算模块,用于计算并记录流场中粒子的物理属性;其中,所述粒子的物理属性包括所述粒子的真实质量;
粒子水平计算模块,用于根据所述流场中粒子的物理属性,得到所述流场中粒子的动态水平和可见水平;其中,所述动态水平包括所述粒子的涡度和速度差,所述可见水平包括所述粒子到自由表面的距离;
最优质量计算模块,用于根据所述流场中粒子的动态水平和可见水平,计算所述流场中粒子的最优质量;
粒子类型确定模块,用于根据所述流场中粒子的所述真实质量与所述最优质量间的比值,确定所述粒子的类型;其中,所述粒子的类型为设定的多个类型中的一个类型,所述多个类型包括需要分裂的第一类型;
粒子更新模块,用于根据所述粒子的类型,更新所述流场中的粒子,并在更新所述流场中的粒子后,再一次执行所述计算并记录流场中粒子的物理属性的步骤;其中,所述根据所述粒子的类型,更新所述流场中的粒子包括:采用密度误差最小的分裂方式,对所述流场中的属于所述第一类型的粒子进行分裂;
动画生成模块,用于根据多次记录的所述流场中粒子的物理属性,生成关于流体动作的动画;其中,不同次记录对应不同的时间戳。
8.根据权利要求7所述的设备,其中,所述最优质量计算模块,具体用于:
分别通过动态水平映射函数、可见水平映射函数,获取所述流场中每个粒子的动态水平映射函数值和可见水平映射函数值;
通过尺寸函数、及所述流场中每个粒子的动态水平映射函数值和可见水平映射函数值,得到所述流场中每个粒子的最优质量。
9.一种高动态空间自适应流体仿真设备,包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序用于控制所述处理器进行操作以执行根据权利要求1至6中任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至6中任一项所述的方法。
CN202211575803.0A 2022-12-09 2022-12-09 高动态空间自适应流体仿真方法、设备及存储介质 Active CN115587523B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211575803.0A CN115587523B (zh) 2022-12-09 2022-12-09 高动态空间自适应流体仿真方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211575803.0A CN115587523B (zh) 2022-12-09 2022-12-09 高动态空间自适应流体仿真方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN115587523A true CN115587523A (zh) 2023-01-10
CN115587523B CN115587523B (zh) 2023-03-17

Family

ID=84783445

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211575803.0A Active CN115587523B (zh) 2022-12-09 2022-12-09 高动态空间自适应流体仿真方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115587523B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116580158A (zh) * 2023-06-15 2023-08-11 北京大学 冷冻电子断层扫描的模拟图像生成方法、设备及存储介质
CN117556745A (zh) * 2024-01-11 2024-02-13 北京科技大学 空间自适应流体仿真方法、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110282641A1 (en) * 2010-05-16 2011-11-17 Stefan Bobby Jacob Xenos Method and system for real-time particle simulation
US20120316848A1 (en) * 2011-06-13 2012-12-13 Korea Advanced Institute Of Science And Technology Sph fluid simulation method and system for multi-level vorticity, recording medium for the same
US20150161810A1 (en) * 2013-12-10 2015-06-11 Nvidia Corporation Position based fluid dynamics simulation
US20180189999A1 (en) * 2016-12-29 2018-07-05 Pixar Computer graphic system and method of multi-scale simulation of smoke
CN109215100A (zh) * 2018-08-08 2019-01-15 天津大学 一种混合流体相变动画生成方法及装置
CN113486566A (zh) * 2021-07-13 2021-10-08 南开大学 一种使用虚拟粒子相进行多孔介质和多相流体混合仿真的方法
CN114218845A (zh) * 2022-02-23 2022-03-22 中国人民解放军火箭军工程大学 一种基于粒子分裂的sph计算优化方法及系统
CN115034156A (zh) * 2022-06-15 2022-09-09 中国石油大学(华东) 一种基于sph和fvm耦合的悬浮液滴电流体动力学行为仿真方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110282641A1 (en) * 2010-05-16 2011-11-17 Stefan Bobby Jacob Xenos Method and system for real-time particle simulation
US20120316848A1 (en) * 2011-06-13 2012-12-13 Korea Advanced Institute Of Science And Technology Sph fluid simulation method and system for multi-level vorticity, recording medium for the same
US20150161810A1 (en) * 2013-12-10 2015-06-11 Nvidia Corporation Position based fluid dynamics simulation
US20180189999A1 (en) * 2016-12-29 2018-07-05 Pixar Computer graphic system and method of multi-scale simulation of smoke
CN109215100A (zh) * 2018-08-08 2019-01-15 天津大学 一种混合流体相变动画生成方法及装置
CN113486566A (zh) * 2021-07-13 2021-10-08 南开大学 一种使用虚拟粒子相进行多孔介质和多相流体混合仿真的方法
CN114218845A (zh) * 2022-02-23 2022-03-22 中国人民解放军火箭军工程大学 一种基于粒子分裂的sph计算优化方法及系统
CN115034156A (zh) * 2022-06-15 2022-09-09 中国石油大学(华东) 一种基于sph和fvm耦合的悬浮液滴电流体动力学行为仿真方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116580158A (zh) * 2023-06-15 2023-08-11 北京大学 冷冻电子断层扫描的模拟图像生成方法、设备及存储介质
CN116580158B (zh) * 2023-06-15 2023-11-17 北京大学 冷冻电子断层扫描的模拟图像生成方法、设备及存储介质
CN117556745A (zh) * 2024-01-11 2024-02-13 北京科技大学 空间自适应流体仿真方法、设备及存储介质
CN117556745B (zh) * 2024-01-11 2024-03-22 北京科技大学 空间自适应流体仿真方法、设备及存储介质

Also Published As

Publication number Publication date
CN115587523B (zh) 2023-03-17

Similar Documents

Publication Publication Date Title
CN115587523B (zh) 高动态空间自适应流体仿真方法、设备及存储介质
Kim et al. Deep fluids: A generative network for parameterized fluid simulations
US7983884B2 (en) Water particle manipulation
US7468730B2 (en) Volumetric hair simulation
US20210327138A1 (en) Interactive System and Method Providing Real-Time Virtual Reality Visualization of Simulation Data
CN110717269B (zh) 一种基于网格和粒子耦合的流体表面细节保护方法
US20190087997A1 (en) Animation Techniques for Mobile Devices
US11915121B2 (en) Simulator-assisted training for interpretable generative models
CN112862942B (zh) 物理特效模拟方法、装置、电子设备和存储介质
US20230061175A1 (en) Real-Time Simulation of Elastic Body
Li et al. Kinetic-based multiphase flow simulation
US8199148B2 (en) System and method for surfacing of particle systems
US20040012585A1 (en) Simulation apparatus for simulating interacting movements of fluid and solid
Lu et al. A Rigging‐Skinning Scheme to Control Fluid Simulation
KR101760610B1 (ko) 리깅 툴 제공 방법 및 리깅 툴 제공 장치
Takamatsu et al. A fast and practical method for animating particle-based viscoelastic fluids
Jo et al. A new SPH fluid simulation method using ellipsoidal kernels
CN117556745B (zh) 空间自适应流体仿真方法、设备及存储介质
Zhang et al. Visualization of fluid simulation: An SPH‐based multi‐resolution method
Toledo et al. Fuzzy and data-driven urban crowds
Cao et al. Computer Simulation of Water Flow Animation Based on Two‐Dimensional Navier‐Stokes Equations
Singh Hybrid Machine Learning Approach for Predictive Modeling of Complex Systems
US11875445B2 (en) Seamless image processing of a tiled image region
Chen et al. Application and study of virtual reality in the diagnosis system of peritoneal effusion
Bhattacharya Physics-based animation tools for fluids and surfaces: Generating surfaces from fluids, animating fluids on surfaces and controlling fluids from surfaces

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant