Fund Project:Project supported by the Natural Science Foundation of Hebei Province, China (Grant No. F2020502014), the Fundamental Research Funds for the Central Universities of Ministry of Education of China (Grant No. 2021MS095), and the National Natural Science Foundation of China (Grant No. 61502168).
Received Date:05 July 2021
Accepted Date:06 August 2021
Available Online:17 August 2021
Published Online:05 December 2021
Abstract:The reality and real-time performance have always been the research hot-point of fluid simulation. Aiming at the unstable fluid surface motion in the scenes with complex terrain, in this paper, we propose an adaptive fluid velocity control force calculation model based on terrain difference, and a stable SPH numerical model for solving the shallow water equations is established. In this proposed numerical model, firstly we reduce the simulation domain from three-dimensional space to two-dimensional surface for reducing calculation quantity, and the water depth is represented by the density of particles at the meantime. Secondly, to ensure that the number of neighborhood particles is stable within a fixed range and to improve the accuracy of simulation, we apply a variable smoothing length to our numerical model. Then, an adaptive fluid velocity control force calculation model is introduced based on terrain difference, in which the velocity and position of particles are corrected by calculating the terrain difference caused by particle movement between each time step. The coordinates on terrain used for the calculation of terrain difference are dynamically chosen by the density of the particles. To improve the real-time performance of simulation, a screen space fluid rendering method is used to refrain the extraction and reconstruction of fluid surface. The numerical calculation and fluid surface rendering both load on the GPU for parallel execution. The simulation result shows that the proposed method can effectively improve the unstable fluid surface movement in scenes with complex terrain while reaching a real-time interaction level. The density and pressure are evenly distributed during the simulation. Keywords:smoothed particle hydrodynamics/ shallow water equations/ parallel computing/ complex terrain
式中, $\dfrac{{ \rho _i^{2{\text{D}}}}}{{{\rho ^{3{\text{D}}}}}}$=$ {h_i} $, 为粒子i当前的水体高度值. 图 2 速度控制力计算模型 Figure2. The calculation model of velocity control force.
由于$ {h_i} $是由粒子i当前密度大小决定的, 当粒子由于地形情况多变而产生堆积现象时, $ {h_i} $和压力大小会因粒子密度增大而骤增, 造成该区域粒子运动行为趋向于散乱, 出现粒子穿透地形或不合理的粒子飞溅现象. 由(11)式可知, 本文根据粒子的高度值和前后时间步所处地形的差异来提前反向抑制这种趋势, 粒子堆积越密集, 前后流经地形位置差异越大时, 流体粒子运动抑制力$ {f_{{\text{restrain}}}} $也越大, 可有效防止过多粒子过快进入易堆积区域. 其次, 为提高该方法在多种地形情况下的通用性, 本文基于双线性插值的思想对上述公式进行改良, 提出一种基于地形差异的自适应流体速度控制力计算模型. 首先参考图3的情况, 平坦的斜坡地形中, 有一处凹陷严重, 流经凹陷区域的粒子易产生堆积, 从而导致穿透或杂乱飞溅现象, 引入流体控制力可以改善这种现象, 但流体粒子在这种情况下运动时前后地形落差较大, 部分粒子根据地形落差产生的流体控制力会导致流体粒子无法保持原本的运动趋势离开该区域, 造成谷底更严重的堆积现象. 针对上述情况, 实验发现若取该谷底粒子在周围较平坦位置运动前后产生的控制力可以保证在控制流体速度的前提下有效避免上述现象. 因此本文提出, 根据当前流体粒子的速度控制力计算模型, 计算其周围4个地形点位处该粒子的流体速度控制力计算结果, 通过插值来得到该点的$ {f_{{\text{restrain}}}} $. 图 3 地形整体平坦但局部凹陷严重 Figure3. A terrain which is flat on the whole but severely depressed locally.
如图4所示, 在三维地形的xOz平面上, P点为当前求速度控制力的粒子所处地形坐标点, 取周围A, B, C, D 4个地形点位, P处于正方形ABCD的中心, 4个点位的位置选取根据当前粒子密度大小动态改变, 改良后的计算公式为 图 4 基于地形差异的自适应流体速度控制力计算模型 Figure4. An adaptive fluid velocity control force calculation model based on terrain difference.
表1实验参数取值 Table1.The values of parameters in experiment.
本文首先基于Unity地形系统随机生成复杂地形, 然后在模拟过程中引入基于地形差异的自适应流体速度控制力以验证该方法的有效性. 如图8(a), 在Unity随机生成的地形场景中, 通过噪音调整得到的地形情况是复杂频变的, 在这种情况下流体行进过程中受地形影响极易发生粒子堆积和无序飞溅的现象, 特别是经过高度落差剧烈变化以及坑洼的区域时, 整体流体运动行为趋于散乱, 密度压强分布不均匀. 针对这种复杂地形造成的流体运动不稳定现象, 本文动态地根据粒子密度变化实时修改光滑搜索半径, 同时依据搜索半径的大小和地形落差变化对流体粒子施加速度控制力, 从图8(b)中可以对比看出, 谷底处的粒子堆积现象明显改善, 同时也有效地避免了地形骤变造成的粒子无序飞溅情况, 流体整体压强密度分布均匀, 运动行为趋于稳定. 图 8 施加控制力前后效果对比 (a) 未施加控制力; (b) 施加控制力 Figure8. The comparison before and after applying control force: (a) Without adding control force; (b) with control force.
为说明静态边界粒子法在本文数值模型下的有效性, 流体粒子分别与固定圆柱体、长方体交互. 本文使用与流体粒子相同的粒子表示这两种几何体, 但在模拟环节中使其完全透明, 其在模拟环节中参与流体计算但不修改自身速度等物理量, 可通过调整采样粒子的半径大小, 使其分布更加密集从而更有效地防止穿透. 从图9可看出, 流体粒子在流经长方体和圆柱体时有效避免了穿透现象, 流体粒子能够绕过障碍继续行进, 实验说明静态边界粒子法在本文的情况下有效可行. 图 9 流体与几何体交互 (a) 流体与长方体交互; (b) 流体与圆柱体交互 Figure9. Fluid interacts with geometry: (a) Fluid interacts with the cuboid; (b) fluid interacts with the cylinder.
其次, 实验采用赤水河谷真实地形来验证本文方法, 同样地, 使用的粒子数为12000, 时间步长取0.02, 取15 s, 30 s, 45 s, 60 s时刻模拟结果. 如图11, 流体在河谷源头被初始化, 随后根据河谷中沟壑的走势开始运动. 在重力与地形走势的影响下, 水体逐渐从地势高的位置向地势低的区域蔓延, 在流经复杂颠簸的地形区域后并未出现粒子严重堆积与散乱运动现象, 行进到平缓地形后流体整体仍能稳定地根据沟壑走向继续流动, 流体整体压强与密度分布均匀. 图 11 赤水河谷场景的四个时刻模拟渲染图 (a) 15 s时刻; (b) 30 s时刻; (c) 45 s时刻; (d) 60 s时刻 Figure11. Fluid surface rendering of the Chishui river valley scene at four moments: (a) 15 s; (b) 30 s; (c) 45 s; (d) 60 s.
最后, 实验将图10爱荷华河场景中使用的粒子数增加到60000, 地形分辨率提升至1024×1024, 将最终淹没模拟结果与爱荷华洪水信息系统官方提供的真实淹没情况进行对比, 对比结果如图12所示, 其中, 图12(a)为根据爱荷华市历年洪水事件绘制的淹没范围图, 其中, 蓝色区域表示在100 a内, 每年会有1%的概率在该区域产生洪水灾害现象, 橙色区域则代表在500 a内, 每年会有2%的概率在该区域产生洪水灾害现象; 图12(b)为2008年6月, 爱荷华州由于雷暴大雨造成的雨洪淹没情况示意图, 颜色由浅蓝到深紫色代表淹没水深逐渐由低增高; 图12(c)为爱荷华河中总水量水深为25 ft (1 ft = 3.048 × 10–1 m), 河流流量为31200 cfs (1 cfs = 1 ft3/s = 0.028316847 m3/s)情况下的城市淹没真实场景图, 该场景提供每个淹没点位的具体水深数值; 图12(d)为本文模拟情况下爱荷华河场景的最终淹没结果图, 通过与图12(a)、图12(b)、图12(c)对比, 本文模拟的淹没范围基本在真实淹没情况的区域范围内. 同时, 对比图12(c)的水深数据, 实验选取4个模拟场景中的水深点位数据与其对比, 如表2所示. 本文模拟结果较图12(c)的真实情况相比, 误差在2.60%到9.79%之间, 模拟的水淹分布及水深与真实结果较为吻合, 误差的产生原因包括模拟过程中未考虑建筑分布情况或土质因素等. 图 12 爱荷华场景水淹情况示意图 (a) 依据历年水淹范围统计的淹没概率图; (b) 2008年6月爱荷华雨洪淹没范围图; (c) 水深25 ft, 流量31200 cfs情况下淹没范围图; (d) 本文淹没模拟结果示意图 Figure12. The flood inundation maps of iowa scene: (a) The inundation probability map based on the statistics of the flooding range over the years; (b) the flood inundation map of iowa in June, 2008; (c) map of inundation range under the condition of 25 ft water depth and 31200 cfs water flow; (d) the simulated inundation map of our method.
点位
模拟水深/m
实测水深/m
相对误差/%
A
1.29
1.43
9.79
B
1.51
1.65
8.48
C
1.97
1.92
2.60
D
1.50
1.40
7.14
表2实际水深与模拟水深数据对比 Table2.Comparison between actual and simulated water depth