CN110598283A - 一种基于sph核函数的流体仿真模拟方法 - Google Patents
一种基于sph核函数的流体仿真模拟方法 Download PDFInfo
- Publication number
- CN110598283A CN110598283A CN201910805357.XA CN201910805357A CN110598283A CN 110598283 A CN110598283 A CN 110598283A CN 201910805357 A CN201910805357 A CN 201910805357A CN 110598283 A CN110598283 A CN 110598283A
- Authority
- CN
- China
- Prior art keywords
- particle
- fluid
- kernel function
- particles
- formula
- 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
Links
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02E—REDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
- Y02E30/00—Energy generation of nuclear origin
- Y02E30/30—Nuclear fission reactors
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及计算机图形处理与工业设计交叉领域,具体涉及一种基于SPH核函数的流体仿真模拟方法,该方法选取光滑核函数计算粒子属性,求得粒子加速度公式;利用粒子加速度公式,基于SPH算法,构建基本流体粒子仿真模型;通过修改设定的密度光滑核函数的参数,对基本的流体仿真模型进行简单形变和复杂形变。本发明模拟方法功能多样化,操作更简单,实现效果更明显,结合计算机图形学后人们能直观的流体设计效果,通过密度核函数参数调节,用户能方便的使模型达到自己预设的效果。
Description
技术领域
本发明涉及计算机图形处理与工业设计交叉领域,具体涉及一种基于SPH核函数的流体仿真模拟方法。
背景技术
流体是自然景观的重要组成部分。不同流体具有不同的密度和粘滞力,且结构复杂,自然形态优美,是虚拟现实、计算机游戏、影视动画等系统中不可缺少的组成部分。至今比较成熟的流体建模算法就是SPH算法,现今有不少人通过改变SPH算法中的核函数达到自己想要的流体模型,但这样做操作复杂,且实现效果比较单一。
现今流体建模呈现多样化的趋势,构建一个符合需求的流体核函数十分复杂。因此,设计一个简洁直观易实现多样化流体的核函数,实现流体仿真模拟,在一定程度上是非常必要的。
发明内容
针对现有核函数存在的复杂和实现效果单一的问题,本发明提出一种基于SPH核函数的流体仿真模拟方法,通过SPH算法构建基本的流体粒子模型,修改自己优化后的粒子密度核函数中的指数元素,再手动调节限定粒子作用力的参数值,使得粒子加速度的改变达到人们心中预设流体模型。
为实现上述目的,本发明具体技术方案如下:一种基于SPH核函数的流体仿真模拟方法,包括如下步骤:
1)选取光滑核函数计算粒子属性,求得粒子加速度公式;
2)利用粒子加速度公式,基于SPH算法,构建基本流体粒子仿真模型;
3)通过修改设定的密度光滑核函数的参数,对基本的流体仿真模型进行简单形变和复杂形变。
进一步地,上述步骤1)包括以下步骤:
1.1)选取简易的N-S方程,分析得出粒子间的作用力由重力、压力和粘滞力三部分组成,再对粒子的作用力进行化简,得到粒子的加速度的化简公式,公式如下:
其中是加速度,是重力加速度,ρ是密度,是压力场的梯度,μ是粘度系数,是速度差。
1.2)优化计算密度的光滑核函数,公式为:
其中h为核半径,为半径内的j位置的粒子与圆心的距离,m为决定流体的属性因子,k为粒子间距离倍数;
1.3)选取光滑核函数中的Spiky函数计算压力属性的累加公式,其中Spiky函数为:
其中,h为核半径,r为粒子所在位置,Kspiky是核流体相关的常数,只跟温度有关。
1.4)选取光滑核函数中的viscosity函数计算粘滞力属性的累加公式,其中viscosity函数为:
其中,h为核半径,r为粒子所在位置,Kviscosity是常数。
1.5)将步骤1.2)、1.3)、1.4)的结果代入步骤1.1)中粒子加速度的化简公式,得到粒子加速度的计算公式:
其中 是重力加速度,h是核半径,pi和pj是粒子压强,ρi和ρj是粒子密度,μ是粒子的粘滞度系数,是粒子的相对速度。
进一步地,上述步骤2)中构建流体粒子仿真模型包括以下步骤:
2.1)初始化粒子,为每个粒子赋上初始位置;
2.2)根据步骤1.2)中的公式计算每个粒子密度;
2.3)根据步骤1.3)中的公式计算每个粒子压强;
2.4)根据步骤1.4)中的公式计算每个粒子粘滞力;
2.5)根据步骤1.5)中的公式计算每个粒子的加速度;
2.6)根据粒子密度和阈值调整加速度;
2.7)根据加速度计算每个粒子的速度变化;
2.8)根据速度计算粒子位置变化;
2.9)绘制粒子;
2.10)判断粒子速度是否为零,当粒子速度为零时,结束循环;否则跳转到步骤2.2)。
进一步地,对基本流体仿真模型进行的简单形变包括流体抖动形变和流体溅落形变。
进一步地,本发明对基本流体仿真模型进行的复杂形变通过修改密度光滑核函数中的属性因子m、分母系数k实现,在可控区域内,m=1、0.5、h(核半径)是最接近现实流体的仿真构建,构建步骤如下:
3.1)m=1时,基本流体粒子仿真模型为液体溅落的3D效果仿真,同时控制密度核函数的分母系数k,控制粒子的作用效果;在流体粒子数不变的情况下,在约束条件确定的情况下,k越小,粒子间的作用效果越大;
3.2)m=0.5时,基本流体粒子仿真模型为液体蒸发的3D流体粒子效果图;
3.3)m=h(核函数的核半径)时,基本流体粒子仿真模型为火焰抖动的3D效果图。
跟多数核函数相比,本发明基于SPH核函数的流体仿真模拟方法功能多样化,操作更简单,实现效果更明显,结合计算机图形学后人们能直观的流体设计效果,通过密度核函数参数调节,用户能方便的使模型达到自己预设的效果。
附图说明
图1为基于SPH核函数的流体仿真模拟方法的流程图。
图2为绘制流体粒子的基本流程图。
图3为m=1时粒子密度核函数图。
图4为m=1时构建的流体模型图。
图5为m=0.5时粒子密度核函数图。
图6为m=0.5时构建的流体模型图。
图7为m=h(密度核函数的核半径)时粒子密度核函数图。
图8为m=h(密度核函数的核半径)时构建的流体模型图。
具体实施方式
下面结合附图和实施实例对本发明作进一步描述。如图1所示本发明为一种基于SPH核函数的流体仿真模拟方法,包括如下步骤:
1)选取光滑核函数计算粒子属性,在牛顿第二定律的基础之上,选取简易的N-S方程,根据自己优化的核函数计算密度,然后再根据Spiky函数计算压力属性,再根据viscosity函数计算粘滞力属性,最后得粒子加速度公式,具体过程包括:
1.1)选取简易的N-S方程,分析得出粒子间的作用力由重力、压力和粘滞力三部分组成,再对粒子的作用力进行化简,得到粒子的加速度的化简公式,公式如下:
其中是加速度,是重力加速度,ρ是密度,是压力场的梯度,μ是粘度系数,是速度差。
1.2)优化计算密度的光滑核函数,公式为:
其中h为核半径,为半径内的j位置的粒子与圆心的距离,m为决定流体的属性因子,k为粒子间距离倍数;
1.3)选取光滑核函数中的Spiky函数计算压力属性的累加公式,其中Spiky函数为:
其中,h为核半径,r为粒子所在位置,Kspiky是核流体相关的常数,只跟温度有关。
1.4)选取光滑核函数中的viscosity函数计算粘滞力属性的累加公式,其中viscosity函数为:
其中,h为核半径,r为粒子所在位置,Kviscosity是常数。
1.5)将步骤1.2)、1.3)、1.4)的结果代入步骤1.1)中粒子加速度的化简公式,得到粒子加速度的计算公式:
其中 是重力加速度,h是核半径,pi和pj是粒子压强,ρi和ρj是粒子密度,μ是粒子的粘滞度系数,是粒子的相对速度。
2)利用粒子加速度公式,基于SPH算法,构建基本流体粒子仿真模型,构建过程如图2所示,具体包括以下步骤:
2.1)初始化粒子,为每个粒子赋上初始位置;
2.2)根据步骤1.2)中的公式计算每个粒子密度;
2.3)根据步骤1.3)中的公式计算每个粒子压强;
2.4)根据步骤1.4)中的公式计算每个粒子粘滞力;
2.5)根据步骤1.5)中的公式计算每个粒子的加速度;
2.6)根据粒子密度和阈值调整加速度;
2.7)根据加速度计算每个粒子的速度变化;
2.8)根据速度计算粒子位置变化;
2.9)绘制粒子;
2.10)判断粒子速度是否为零,当粒子速度为零时,结束循环;否则跳转到步骤2.2)。
由于粒子间的压力和粘滞力由粒子密度属性决定,因此粒子密度的不同决定着粒子的加速度。根据粒子受力情况的不同,阈值粒子可以分为两类,小于阈值的为流体边缘的点,大于阈值的点为流体内部的点。每个流体实现效果的阈值都不一样,所以阈值根据不同的流体进行调整的。
3)通过修改设定的密度光滑核函数的参数,对基本的流体仿真模型进行简单形变和复杂形变。简单形变包括流体抖动形变和流体溅落形变。对基本流体仿真模型进行的复杂形变通过修改密度光滑核函数中的属性因子m、分母系数k实现,在可控区域内,m=1、0.5、h(核半径)是最接近现实流体的仿真构建,构建步骤如下:
3.1)m=1时,进行上述步骤2)得到液体溅落的原始3D效果仿真,同时控制密度的核函数的分母参数k,控制粒子的作用效果。在流体粒子数不变的情况下,在约束条件确定的情况下,k越小,粒子间的作用效果越大。实现效果见图4,核函数关系图见图3。
3.2)m=0.5时,进行上述步骤2),得到液体蒸发的3D流体粒子效果图。实现效果见图6,优化核函数关系图见图5。
3.3)m=h(核函数的核半径)时,进行上述步骤2),得到的是火焰抖动的3D效果图。实现效果见图8,优化核函数关系图见图7。
具体实施案列中,对流体的仿真,需要知道已定数量的粒子位置变化情况。而通过核函数求得的粒子属性是核半径内处i位置的粒子属性。所以要通过迭代对已定数量的粒子属性进行计算。步骤2)实现的效果是基本的液体倾倒的仿真,随着帧数的变化,可以看到仿真液体的粒子,在作用力下的运动情况。但可以发现,液体的受力后的水滴溅落不明显,我们可以通过修改密度的核函数的分母系数,使得流体溅落形变更加明显。对基本的流体仿真模型进行复杂的形变,因为粒子的加速度是由重力、压力和粘滞力决定的。在重力加速度已知的情况下,压力和粘滞力又由粒子的密度属性决定。因此通过修改密度光滑核函数指数m来切换属性,通过测试得到三个m值,比较符合实际流体的仿真,分别是m=1、m=0.5和m=h(核函数的核半径)。具体实施中,通过密度核函数指数m和分母参数k值调节,用户能方便的使模型达到自己预设的效果。
本发明通过修改粒子密度的核函数中的分母系数k来进行粒子的位置变化,达到预期的流体形变效果,在可控区域内,k值越小,流体倾倒时溅落的越明显,具体步骤如下:
4.1)对得到基本流体粒子模型,进行液体模拟。
4.2)对步骤4.1)中的液体模拟,进行粒子受力分析,得出边缘粒子受力情况与其他粒子的受力情况不一样(除边缘外的粒子),根据粒子受力情况的不同,根据阈值粒子可以分为两类,小于阈值的为流体边缘的点,大于阈值的点为流体内部的点。
4.3)对步骤4.2)中的粒子划分,通过对步骤2.2)中光滑核函数的k系数值调整,可以达到粒子溅落的效果。
Claims (5)
1.一种基于SPH核函数的流体仿真模拟方法,其特征在于,包括如下步骤:
1)选取光滑核函数计算粒子属性,求得粒子加速度公式;
2)利用粒子加速度公式,基于SPH算法,构建基本流体粒子仿真模型;
3)通过修改设定的密度光滑核函数的参数,对基本的流体仿真模型进行简单形变和复杂形变。
2.如权利要求1所述的基于SPH核函数的流体仿真模拟方法,其特征在于,所述步骤1)包括以下步骤:
1.1)选取简易的N-S方程,分析得出粒子间的作用力由重力、压力和粘滞力三部分组成,再对粒子的作用力进行化简,得到粒子的加速度的化简公式,公式如下:
其中是加速度,是重力加速度,ρ是密度,是压力场的梯度,μ是粘度系数,是速度差;
1.2)优化计算密度的光滑核函数,公式为:
其中h为核半径,为半径内的j位置的粒子与圆心的距离,m为决定流体的属性因子,k为粒子间距离倍数;
1.3)选取光滑核函数中的Spiky函数计算压力属性的累加公式,其中Spiky函数为:
其中,h为核半径,r为粒子所在位置,Kspiky是核流体相关的常数,只跟温度有关;
1.4)选取光滑核函数中的viscosity函数计算粘滞力属性的累加公式,其中viscosity函数为:
其中,h为核半径,r为粒子所在位置,Kviscosity是常数;
1.5)将步骤1.2)、1.3)、1.4)的结果代入步骤1.1)中粒子加速度的化简公式,得到粒子加速度的计算公式:
其中 是重力加速度,h是核半径,pi和pj是粒子压强,ρi和ρj是粒子密度,μ是粒子的粘滞度系数,是粒子的相对速度。
3.如权利要求2所述的基于SPH核函数的流体仿真模拟方法,其特征在于,所述构建流体粒子仿真模型包括以下步骤:
2.1)初始化粒子,为每个粒子赋上初始位置;
2.2)根据步骤1.2)中的公式计算每个粒子密度;
2.3)根据步骤1.3)中的公式计算每个粒子压强;
2.4)根据步骤1.4)中的公式计算每个粒子粘滞力;
2.5)根据步骤1.5)中的公式计算每个粒子的加速度;
2.6)根据粒子密度和阈值调整加速度;
2.7)根据加速度计算每个粒子的速度变化;
2.8)根据速度计算粒子位置变化;
2.9)绘制粒子;
2.10)判断粒子速度是否为零,当粒子速度为零时,结束循环;否则跳转到步骤2.2)。
4.如权利要求1所述的基于SPH核函数的流体仿真模拟方法,其特征在于,对基本流体仿真模型进行的简单形变包括流体抖动形变和流体溅落形变。
5.如权利要求1所述的基于SPH核函数的流体仿真模拟方法,其特征在于,对基本流体仿真模型进行的复杂形变通过修改密度光滑核函数中的属性因子m、分母系数k实现,在可控区域内,m=1、0.5、h(核半径)是最接近现实流体的仿真构建,构建步骤如下:
3.1)m=1时,基本流体粒子仿真模型为液体溅落的3D效果仿真,同时控制密度核函数的分母系数k,控制粒子的作用效果;在流体粒子数不变的情况下,在约束条件确定的情况下,k越小,粒子间的作用效果越大;
3.2)m=0.5时,基本流体粒子仿真模型为液体蒸发的3D流体粒子效果图;
3.3)m=h(核函数的核半径)时,基本流体粒子仿真模型为火焰抖动的3D效果图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910805357.XA CN110598283B (zh) | 2019-08-29 | 2019-08-29 | 一种基于sph核函数的流体仿真模拟方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910805357.XA CN110598283B (zh) | 2019-08-29 | 2019-08-29 | 一种基于sph核函数的流体仿真模拟方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110598283A true CN110598283A (zh) | 2019-12-20 |
CN110598283B CN110598283B (zh) | 2023-06-13 |
Family
ID=68856126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910805357.XA Active CN110598283B (zh) | 2019-08-29 | 2019-08-29 | 一种基于sph核函数的流体仿真模拟方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110598283B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111783368A (zh) * | 2020-07-15 | 2020-10-16 | 吉林大学 | 一种浅层海水物理参数模拟的方法 |
CN114077762A (zh) * | 2020-08-13 | 2022-02-22 | 华龙国际核电技术有限公司 | 考虑液体晃动的反应堆厂房结构确定方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
CN107633123A (zh) * | 2017-09-13 | 2018-01-26 | 浙江工业大学 | 一种用于光滑粒子流体动力学模拟出血及处理加速的方法 |
CN108269299A (zh) * | 2017-01-04 | 2018-07-10 | 北京航空航天大学 | 一种基于sph方法近似求解的粘性流体建模方法 |
-
2019
- 2019-08-29 CN CN201910805357.XA patent/CN110598283B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
CN108269299A (zh) * | 2017-01-04 | 2018-07-10 | 北京航空航天大学 | 一种基于sph方法近似求解的粘性流体建模方法 |
CN107633123A (zh) * | 2017-09-13 | 2018-01-26 | 浙江工业大学 | 一种用于光滑粒子流体动力学模拟出血及处理加速的方法 |
Non-Patent Citations (2)
Title |
---|
FRANK LOSASSO等: "Two-Way Coupled SPH and Particle Level Set Fluid Simulation", 《IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS ( VOLUME: 14, ISSUE: 4, JULY-AUG. 2008)》 * |
范承凯: "基于SPH方法的流体模拟的研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111783368A (zh) * | 2020-07-15 | 2020-10-16 | 吉林大学 | 一种浅层海水物理参数模拟的方法 |
CN111783368B (zh) * | 2020-07-15 | 2023-04-28 | 吉林大学 | 一种浅层海水物理参数模拟的方法 |
CN114077762A (zh) * | 2020-08-13 | 2022-02-22 | 华龙国际核电技术有限公司 | 考虑液体晃动的反应堆厂房结构确定方法及装置 |
CN114077762B (zh) * | 2020-08-13 | 2024-05-24 | 华龙国际核电技术有限公司 | 考虑液体晃动的反应堆厂房结构确定方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110598283B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Thürey et al. | Detail-preserving fluid control | |
Kim et al. | Practical animation of turbulent splashing water | |
Foster et al. | Controlling fluid animation | |
US7479963B2 (en) | Method and system for performing computer graphic simulation of a fluid using target-driven control | |
Thürey et al. | Animation of open water phenomena with coupled shallow water and free surface simulations | |
Raveendran et al. | Controlling liquids using meshes | |
US20080319722A1 (en) | Water Particle Manipulation | |
US20110307837A1 (en) | Region of interest tracking for fluid simulation | |
CN108269299A (zh) | 一种基于sph方法近似求解的粘性流体建模方法 | |
CN110598283A (zh) | 一种基于sph核函数的流体仿真模拟方法 | |
O'Brien et al. | Automatic simplification of particle system dynamics | |
KR101319996B1 (ko) | 유체 시뮬레이션 방법 | |
CN109783935B (zh) | 一种基于isph提高飞溅流体稳定性的实现方法 | |
Wang et al. | Thin-film smoothed particle hydrodynamics fluid | |
Stanton et al. | Self-refining games using player analytics | |
Zhang et al. | Position-based fluid control | |
Kim et al. | Synthesizing Large‐Scale Fluid Simulations with Surface and Wave Foams via Sharp Wave Pattern and Cloudy Foam | |
Liu et al. | Turbulent details simulation for SPH fluids via vorticity refinement | |
Koh et al. | View-dependent adaptive cloth simulation with buckling compensation | |
CN106650133A (zh) | 加热炉内导热流体仿真方法 | |
CN111581875A (zh) | 一种自适应粒子流体的计算机模拟方法 | |
Fujisawa et al. | Particle-based shallow water simulation with splashes and breaking waves | |
Baravalle et al. | Realistic modeling of porous materials | |
CN109726496A (zh) | 一种基于iisph提高不可压缩水体模拟效率的实现方法 | |
CN109726431B (zh) | 一种基于平均核函数和迭代密度变化率的自适应sph流体模拟方法 |
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 |