CN110598283B - 一种基于sph核函数的流体仿真模拟方法 - Google Patents

一种基于sph核函数的流体仿真模拟方法 Download PDF

Info

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
Application number
CN201910805357.XA
Other languages
English (en)
Other versions
CN110598283A (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.)
Jiangsu University
Original Assignee
Jiangsu 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 Jiangsu University filed Critical Jiangsu University
Priority to CN201910805357.XA priority Critical patent/CN110598283B/zh
Publication of CN110598283A publication Critical patent/CN110598283A/zh
Application granted granted Critical
Publication of CN110598283B publication Critical patent/CN110598283B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • Y02EREDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
    • Y02E30/00Energy generation of nuclear origin
    • Y02E30/30Nuclear fission reactors

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及计算机图形处理与工业设计交叉领域,具体涉及一种基于SPH核函数的流体仿真模拟方法,该方法选取光滑核函数计算粒子属性,求得粒子加速度公式;利用粒子加速度公式,基于SPH算法,构建基本流体粒子仿真模型;通过修改设定的密度光滑核函数的参数,对基本的流体仿真模型进行简单形变和复杂形变。本发明模拟方法功能多样化,操作更简单,实现效果更明显,结合计算机图形学后人们能直观的流体设计效果,通过密度核函数参数调节,用户能方便的使模型达到自己预设的效果。

Description

一种基于SPH核函数的流体仿真模拟方法
技术领域
本发明涉及计算机图形处理与工业设计交叉领域,具体涉及一种基于SPH核函数的流体仿真模拟方法。
背景技术
流体是自然景观的重要组成部分。不同流体具有不同的密度和粘滞力,且结构复杂,自然形态优美,是虚拟现实、计算机游戏、影视动画等系统中不可缺少的组成部分。至今比较成熟的流体建模算法就是SPH算法,现今有不少人通过改变SPH算法中的核函数达到自己想要的流体模型,但这样做操作复杂,且实现效果比较单一。
现今流体建模呈现多样化的趋势,构建一个符合需求的流体核函数十分复杂。因此,设计一个简洁直观易实现多样化流体的核函数,实现流体仿真模拟,在一定程度上是非常必要的。
发明内容
针对现有核函数存在的复杂和实现效果单一的问题,本发明提出一种基于SPH核函数的流体仿真模拟方法,通过SPH算法构建基本的流体粒子模型,修改自己优化后的粒子密度核函数中的指数元素,再手动调节限定粒子作用力的参数值,使得粒子加速度的改变达到人们心中预设流体模型。
为实现上述目的,本发明具体技术方案如下:一种基于SPH核函数的流体仿真模拟方法,包括如下步骤:
1)选取光滑核函数计算粒子属性,求得粒子加速度公式;
2)利用粒子加速度公式,基于SPH核函数,构建基本流体粒子仿真模型;
3)通过修改设定的密度光滑核函数的参数,对基本的流体仿真模型进行简单形变和复杂形变。
进一步地,上述步骤1)包括以下步骤:
1.1)选取简易的N-S方程,分析得出粒子间的作用力由重力、压力和粘滞力三部分组成,再对粒子的作用力进行化简,得到粒子的加速度的化简公式,公式如下:
Figure GDA0004153770840000011
其中
Figure GDA0004153770840000012
是加速度,/>
Figure GDA0004153770840000013
是重力加速度,ρ是密度,/>
Figure GDA0004153770840000014
是压力场的梯度,μ是粘度系数,
Figure GDA0004153770840000015
是速度差。
1.2)优化计算密度的光滑核函数,公式为:
Figure GDA0004153770840000021
其中h为核半径,i、j分别代表粒子i、j,
Figure GDA0004153770840000022
为半径内的j位置的粒子与圆心的距离,m为决定流体的属性因子,k为粒子间距离倍数;
1.3)选取光滑核函数中的Spiky函数计算压力属性的累加公式,其中Spiky函数为:
Figure GDA0004153770840000023
其中,h为核半径,r为粒子所在位置,Kspiky是核流体相关的常数,只跟温度有关。
1.4)选取光滑核函数中的viscosity函数计算粘滞力属性的累加公式,其中viscosity函数为:
Figure GDA0004153770840000024
其中,h为核半径,r为粒子所在位置,Kviscosity是常数。
1.5)将步骤1.2)、1.3)、1.4)的结果代入步骤1.1)中粒子加速度的化简公式,得到粒子加速度的计算公式:
Figure GDA0004153770840000025
其中
Figure GDA0004153770840000026
是重力加速度,h是核半径,pi和pj是粒子压强,ρi和ρj是粒子密度,μ是粒子的粘滞度系数,/>
Figure GDA0004153770840000027
是粒子的相对速度。
进一步地,上述步骤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方程,分析得出粒子间的作用力由重力、压力和粘滞力三部分组成,再对粒子的作用力进行化简,得到粒子的加速度的化简公式,公式如下:
Figure GDA0004153770840000041
其中
Figure GDA0004153770840000042
是加速度,/>
Figure GDA0004153770840000043
是重力加速度,ρ是密度,/>
Figure GDA0004153770840000044
是压力场的梯度,μ是粘度系数,
Figure GDA0004153770840000045
是速度差。
1.2)优化计算密度的光滑核函数,公式为:
Figure GDA0004153770840000046
其中h为核半径,i、j分别代表粒子i、j,
Figure GDA0004153770840000047
为半径内的j位置的粒子与圆心的距离,m为决定流体的属性因子,k为粒子间距离倍数;
1.3)选取光滑核函数中的Spiky函数计算压力属性的累加公式,其中Spiky函数为:
Figure GDA0004153770840000048
/>
其中,h为核半径,r为粒子所在位置,Kspiky是核流体相关的常数,只跟温度有关。
1.4)选取光滑核函数中的viscosity函数计算粘滞力属性的累加公式,其中viscosity函数为:
Figure GDA0004153770840000049
其中,h为核半径,r为粒子所在位置,Kviscosity是常数。
1.5)将步骤1.2)、1.3)、1.4)的结果代入步骤1.1)中粒子加速度的化简公式,得到粒子加速度的计算公式:
Figure GDA00041537708400000410
其中
Figure GDA00041537708400000411
是重力加速度,h是核半径,pi和pj是粒子压强,ρi和ρj是粒子密度,μ是粒子的粘滞度系数,/>
Figure GDA00041537708400000412
是粒子的相对速度。
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方程,分析得出粒子间的作用力由重力、压力和粘滞力三部分组成,再对粒子的作用力进行化简,得到粒子的加速度的化简公式,公式如下:
Figure FDA0004153770830000011
其中
Figure FDA0004153770830000012
是加速度,/>
Figure FDA0004153770830000013
是重力加速度,ρ是密度,/>
Figure FDA0004153770830000014
是压力场的梯度,μ是粘度系数,/>
Figure FDA0004153770830000015
是速度差;
1.2)优化计算密度的光滑核函数,公式为:
Figure FDA0004153770830000016
其中h为核半径,i、j分别代表粒子i、j,
Figure FDA0004153770830000017
为半径内的j位置的粒子与圆心的距离,m为决定流体的属性因子,k为粒子间距离倍数;
1.3)选取光滑核函数中的Spiky函数计算压力属性的累加公式,其中Spiky函数为:
Figure FDA0004153770830000018
其中,h为核半径,r为粒子所在位置,Kspiky是核流体相关的常数,只跟温度有关;
1.4)选取光滑核函数中的viscosity函数计算粘滞力属性的累加公式,其中viscosity函数为:
Figure FDA0004153770830000019
其中,h为核半径,r为粒子所在位置,Kviscosity是常数;
1.5)将步骤1.2)、1.3)、1.4)的结果代入步骤1.1)中粒子加速度的化简公式,得到粒子加速度的计算公式:
Figure FDA00041537708300000110
其中
Figure FDA00041537708300000111
Figure FDA00041537708300000112
是重力加速度,h是核半径,pi和pj是粒子压强,ρi和ρj是粒子密度,μ是粒子的粘滞度系数,/>
Figure FDA0004153770830000021
是粒子的相对速度。
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效果图。
CN201910805357.XA 2019-08-29 2019-08-29 一种基于sph核函数的流体仿真模拟方法 Active CN110598283B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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方法近似求解的粘性流体建模方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
Clavet et al. Particle-based viscoelastic fluid simulation
Thürey et al. Animation of open water phenomena with coupled shallow water and free surface simulations
Raveendran et al. Controlling liquids using meshes
CN110598283B (zh) 一种基于sph核函数的流体仿真模拟方法
CN109948301A (zh) 基于网格控制的近水面滑行跳跃流固耦合数值预测方法
US20110307837A1 (en) Region of interest tracking for fluid simulation
CN108319793A (zh) 一种基于cfd的低速倾斜入水自由运动的分析方法
CN110717269A (zh) 一种基于网格和粒子耦合的流体表面细节保护方法
CN109783935B (zh) 一种基于isph提高飞溅流体稳定性的实现方法
CN108269299A (zh) 一种基于sph方法近似求解的粘性流体建模方法
KR101319996B1 (ko) 유체 시뮬레이션 방법
Tan et al. Physically-based fluid animation: A survey
KR20130094564A (ko) 형상 제어가 가능한 다상유체 시뮬레이션 장치 및 방법
Stanton et al. Self-refining games using player analytics
JP5892257B2 (ja) シミュレーションプログラム、シミュレーション方法及びシミュレーション装置
CN115587523B (zh) 高动态空间自适应流体仿真方法、设备及存储介质
Wang et al. Thin-film smoothed particle hydrodynamics fluid
Kim et al. Synthesizing Large‐Scale Fluid Simulations with Surface and Wave Foams via Sharp Wave Pattern and Cloudy Foam
Feng et al. Detail‐preserving SPH fluid control with deformation constraints
KR100779993B1 (ko) 압력장에 제어값을 적용하는 유체 시뮬레이션 방법, 그기록 매체 및 그 장치
CN109726431B (zh) 一种基于平均核函数和迭代密度变化率的自适应sph流体模拟方法
KR102436658B1 (ko) 입자 기반의 유체 해석 시뮬레이션 방법 및 유체 해석 시뮬레이션 장치
CN110909513B (zh) 一种基于物理的油水混合现象可视化仿真方法
KR20060090494A (ko) 3차원 물리 시뮬레이션 방법, 3차원 그래픽 생성 방법 및그 장치

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