CN110598283B - 一种基于sph核函数的流体仿真模拟方法 - Google Patents
一种基于sph核函数的流体仿真模拟方法 Download PDFInfo
- Publication number
- CN110598283B CN110598283B CN201910805357.XA CN201910805357A CN110598283B CN 110598283 B CN110598283 B CN 110598283B CN 201910805357 A CN201910805357 A CN 201910805357A CN 110598283 B CN110598283 B CN 110598283B
- Authority
- CN
- China
- Prior art keywords
- particle
- fluid
- formula
- kernel function
- particles
- 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.)
- Active
Links
- 239000012530 fluid Substances 0.000 title claims abstract description 80
- 238000004088 simulation Methods 0.000 title claims abstract description 44
- 238000000034 method Methods 0.000 title claims abstract description 23
- 239000002245 particle Substances 0.000 claims abstract description 142
- 230000001133 acceleration Effects 0.000 claims abstract description 35
- 230000000694 effects Effects 0.000 claims abstract description 31
- 239000007788 liquid Substances 0.000 claims description 11
- 230000008859 change Effects 0.000 claims description 8
- 230000009471 action Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 claims description 6
- 230000005484 gravity Effects 0.000 claims description 4
- 238000009825 accumulation Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000008020 evaporation Effects 0.000 claims description 3
- 238000001704 evaporation Methods 0.000 claims description 3
- 238000005094 computer simulation Methods 0.000 claims 2
- 230000006870 function Effects 0.000 abstract description 60
- 238000004422 calculation algorithm Methods 0.000 abstract description 5
- 230000000007 visual effect Effects 0.000 abstract description 2
- 238000010276 construction Methods 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000008689 nuclear function Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
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)优化计算密度的光滑核函数,公式为:
1.3)选取光滑核函数中的Spiky函数计算压力属性的累加公式,其中Spiky函数为:
其中,h为核半径,r为粒子所在位置,Kspiky是核流体相关的常数,只跟温度有关。
1.4)选取光滑核函数中的viscosity函数计算粘滞力属性的累加公式,其中viscosity函数为:
其中,h为核半径,r为粒子所在位置,Kviscosity是常数。
1.5)将步骤1.2)、1.3)、1.4)的结果代入步骤1.1)中粒子加速度的化简公式,得到粒子加速度的计算公式:
进一步地,上述步骤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)优化计算密度的光滑核函数,公式为:
1.3)选取光滑核函数中的Spiky函数计算压力属性的累加公式,其中Spiky函数为:
其中,h为核半径,r为粒子所在位置,Kspiky是核流体相关的常数,只跟温度有关。
1.4)选取光滑核函数中的viscosity函数计算粘滞力属性的累加公式,其中viscosity函数为:
其中,h为核半径,r为粒子所在位置,Kviscosity是常数。
1.5)将步骤1.2)、1.3)、1.4)的结果代入步骤1.1)中粒子加速度的化简公式,得到粒子加速度的计算公式:
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 (4)
1.一种基于SPH核函数的流体仿真模拟方法,其特征在于,包括如下步骤:
1)选取光滑核函数计算粒子属性,求得粒子加速度公式;
2)利用粒子加速度公式,基于SPH核函数,构建基本流体粒子仿真模型;
3)通过修改设定的密度光滑核函数的参数,对基本的流体仿真模型进行简单形变和复杂形变;
所述步骤1)包括以下步骤:
1.1)选取简易的N-S方程,分析得出粒子间的作用力由重力、压力和粘滞力三部分组成,再对粒子的作用力进行化简,得到粒子的加速度的化简公式,公式如下:
1.2)优化计算密度的光滑核函数,公式为:
1.3)选取光滑核函数中的Spiky函数计算压力属性的累加公式,其中Spiky函数为:
其中,h为核半径,r为粒子所在位置,Kspiky是核流体相关的常数,只跟温度有关;
1.4)选取光滑核函数中的viscosity函数计算粘滞力属性的累加公式,其中viscosity函数为:
其中,h为核半径,r为粒子所在位置,Kviscosity是常数;
1.5)将步骤1.2)、1.3)、1.4)的结果代入步骤1.1)中粒子加速度的化简公式,得到粒子加速度的计算公式:
2.如权利要求1所述的基于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.如权利要求1所述的基于SPH核函数的流体仿真模拟方法,其特征在于,对基本流体仿真模型进行的简单形变包括流体抖动形变和流体溅落形变。
4.如权利要求1所述的基于SPH核函数的流体仿真模拟方法,其特征在于,所述步骤3)通过修改步骤1.2)中密度的光滑核函数的属性因子m、分母系数k对基本流体仿真模型进行复杂形变,具体步骤如下:
3.1)m=1时,基本流体粒子仿真模型为液体溅落的3D效果仿真,同时控制密度核函数的分母系数k,控制粒子的作用效果;在流体粒子数不变的情况下,在约束条件确定的情况下,k越小,粒子间的作用效果越大;
3.2)m=0.5时,基本流体粒子仿真模型为液体蒸发的3D流体粒子效果图;
3.3)m=h时,所述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 CN110598283A (zh) | 2019-12-20 |
CN110598283B true 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) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111783368B (zh) * | 2020-07-15 | 2023-04-28 | 吉林大学 | 一种浅层海水物理参数模拟的方法 |
CN114077762B (zh) * | 2020-08-13 | 2024-05-24 | 华龙国际核电技术有限公司 | 考虑液体晃动的反应堆厂房结构确定方法及装置 |
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 |
---|
Two-Way Coupled SPH and Particle Level Set Fluid Simulation;Frank Losasso等;《IEEE Transactions on Visualization and Computer Graphics ( Volume: 14, Issue: 4, July-Aug. 2008)》;20080831;全文 * |
基于SPH方法的流体模拟的研究;范承凯;《中国优秀硕士学位论文全文数据库》;20171130;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110598283A (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Foster et al. | Controlling fluid animation | |
Song et al. | Stable but nondissipative water | |
Clavet et al. | Particle-based viscoelastic fluid simulation | |
Rasmussen et al. | Directable photorealistic liquids | |
Raveendran et al. | Controlling liquids using meshes | |
Thürey et al. | Detail-preserving fluid control | |
CN110598283B (zh) | 一种基于sph核函数的流体仿真模拟方法 | |
CN109948301A (zh) | 基于网格控制的近水面滑行跳跃流固耦合数值预测方法 | |
Mercier et al. | Surface turbulence for particle-based liquid simulations | |
CN108197072B (zh) | 一种基于加权守恒变量阶跃的高精度间断Galerkin人工粘性激波捕捉方法 | |
US20110307837A1 (en) | Region of interest tracking for fluid simulation | |
CN110717269A (zh) | 一种基于网格和粒子耦合的流体表面细节保护方法 | |
CN105631916B (zh) | 画笔与液体模拟 | |
CN109783935B (zh) | 一种基于isph提高飞溅流体稳定性的实现方法 | |
CN108269299A (zh) | 一种基于sph方法近似求解的粘性流体建模方法 | |
KR101319996B1 (ko) | 유체 시뮬레이션 방법 | |
Tan et al. | Physically-based fluid animation: A survey | |
O'Brien et al. | Automatic simplification of particle system dynamics | |
KR20130094564A (ko) | 형상 제어가 가능한 다상유체 시뮬레이션 장치 및 방법 | |
Wang et al. | Thin-film smoothed particle hydrodynamics fluid | |
JP5892257B2 (ja) | シミュレーションプログラム、シミュレーション方法及びシミュレーション装置 | |
Kim et al. | Synthesizing Large‐Scale Fluid Simulations with Surface and Wave Foams via Sharp Wave Pattern and Cloudy Foam | |
KR100779993B1 (ko) | 압력장에 제어값을 적용하는 유체 시뮬레이션 방법, 그기록 매체 및 그 장치 | |
CN111581875A (zh) | 一种自适应粒子流体的计算机模拟方法 | |
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 |