基于非结构化三角网格的流场可视化研究*
2023-08-02柴柏林张雅静
柴柏林 张雅静 李 琦
(1.中国石油大学(华东)计算机科学与技术学院 青岛 266580)
(2.中国石油大学(华东)海洋与空间信息学院 青岛 266580)
1 引言
流场可视化技术是一种将矢量场数据映射为图像或动画,从而表现出其结构与特征的技术。海洋流场可视化通过对高度概括的海洋流场动态演变特征的分析提取与可视化表达,能够深层次理解和归纳海洋流场的时空变化规律。因此在海洋应用领域使用越来越广泛。陈长胜[1]等提出了有限体积沿海海洋模型的3D 非结构化三角网格(称为FVCOM)。近年来,FVCOM 模型广泛应用于海洋可视化、模拟流场、预测沿海地区特征[2~5]等领域,并实现了较好的效果。但目前世界上并没有针对FVCOM 海洋模式的非结构化三角网格的可视化应用。
目前,关于种子点的放置问题,提出了随机、均匀、图像引导、流场引导、最远距离种子点放置等一系列算法[6~9]。例如Zhan 和Robert[10]通过拓扑种子点的优先顺序提出均匀分布的流线布置算法。Turk[11]等提出了一种图像引导流线放置算法。Bhatia[12]等提出了在单纯性内通过n+1个行列式快速判断临界点。但这些算法都不适用于FVCOM模式数据。点定位方面,杜小甫[13]提出了通过相邻网格单元表进行点定位,但在数据结构的建立上存在存储冗余。
在曲线积分过程中,由于固定步长精度较差,人们提出了自适应步长的计算方法。Buning[14]提出了步长与格网大小和速度矢量成倒数的方法,但计算较为复杂。又有部分学者通过计算相邻流线向量之间的夹角来自适应步长[15~19]。季民等[20]提出了一个新的计算流线追踪步长的模型(AMFCA算法),但此算法只针对于规则网格,没有针对非结构化三角网格稠密渐变的结构特性而分析。王文涛[21]提出对于网格单元差异很大时采用局部步长,但并没有展开讨论。
综上所示,本文针对FVCOM 模式非结构化三角网格的网格特性,通过添加局部网格尺寸和视角像素参数对AMFCA算法进行优化。同时结合粒子随机化和点定位方法对粒子运动轨迹进行计算,并设计实现了基于非结构化三角网格的流场可视化应用。
2 系统设计
如上述流程图1 所示,本文首先对FVCOM 海洋模式数据预处理。在数据预处理中,分析数据中网格关系,构建非结构化三角网格的数据结构;求解每个三角网格的面积,根据三角网格面积和临界点进行粒子随机化。然后以随机化的点为初始点,通过二阶龙格库塔法、改进的AMFCA 算法和点定位对粒子轨迹计算。
图1 系统总体设计流程图
本文基于Cesium[22~23]三维引擎进行粒子绘制和可视化应用的搭建。Cesium 是一个开源的Web地理空间数据可视化框架,它提供了一个效果精确、操作简易的渲染引擎,同时支持三维地球、地图、数据管理和用户界面,相比其他框架较为成熟而且功能也更为丰富,在众多领域都有广泛的应用。
3 流场可视化算法
3.1 粒子随机化
FVCOM 模式数据的非结构化三角网格如图2所示。网格在海陆边界处分布密集,在海洋内部分布稀疏。如果按照网格序号随机选取网格,会导致海陆边界处粒子数量过多、流场遮挡问题严重、视觉效果混乱,而在大洋内部粒子数量过少很容易丢失流场中表征重要特征的流线。
图2 网格效果图
基于上述分析,我们将粒子按照网格面积大小进行随机化,算法流程如下所示:
步骤一:遍历所有三角网格,计算每个三角网格的面积和三角网格面积总和。
步骤二:取最大和最小网格的面积差S,将[0,S]区间分成等大的n 份,将所有三角网格根据面积大小分成n个数组。
步骤三:计算n 个子数组中所有网格的面积之和,根据n个子数组间的面积和之比,按比例在n个数组中随机选取粒子。
在随机化的基础上,为了保证粒子随机化不丢失重要的网格特征点,我们通过Bhatia 提出的临界点快速检测方法提取海洋中的临界点。Bhatia 证明了一个单纯形内部是否包含临界点可以通过它的n+1 个顶点a0,a1,…,an 构成的行列式所决定,如式(1)所示:
用原点替换第n 个顶点后,通过这n+1 个行列式符号是否相同来确定当前网格内是否存在临界点。临界点的检测效果图如图3所示。
图3 临界点效果图
本文将临界点周围区域与根据网格面积的随机化相结合,最终形成粒子初始化集合,结果如图4所示。
图4 随机化结果图
3.2 二阶龙格库塔方法
目前流线数值积分的主要方法有欧拉法、二阶龙格库塔法、四阶龙格库塔法等[24]。欧拉法虽然计算量小,但是误差较大。四阶龙格库塔法计算精度高,但计算也较为复杂。同时由于FVCOM 全球海洋数据集较为庞大,结合四阶龙格库塔法计算会大大降低可视化效率,故本文使用二阶龙格库塔方法,其公式如式(2)、(3)、(4)所示:
其中,k1、k2代表斜率,而h是所取的时间步长。
3.3 AMFCA算法
2014 年季民等提出了一种同时顾及网格流速和流向的AMFCA算法。该算法综合考虑了当前网格的流速和流向两个因素,达到了同向网格积分步长的快速增长和逆向网格积分步长的迅速锐减。具体模型如式(5)所示:
式中,Dij表示规则网格第i 行、第j 列网格的积分步长;D 表示流场中的数据网格尺寸;μ表示全局步长增长控制参数,主要用于步长增长的平衡控制;αij表示当前网格流速与流场中最大流速的比值,其取值范围为[0,1];δ表示步长增长倍数,一般取大于1的值;θij表示流入与流出当前格网两个流向的夹角,取值范围为[0,π]。
3.4 基于AMFCA算法的改进
AMFCA 算法在规则网格下流线追踪具有较好的特性,但只适用于结构化网格。对于非结构化三角网格,若以相同的网格尺寸进行计算,在近岸密集的小网格上步长会过大,导致计算精度低。在大网格上步长过小,造成无谓增多的递推计算。同时,基于动态粒子的流场可视化方法,根据可视化地球视角的放大缩小而改变粒子运动的快慢,会有更好的可视化效果。故本文在AMFCA算法基础上兼顾网格大小、视角像素两个因素,具体模型如式(6)所示:式中,K 代表网格尺寸。将三角网格根据面积分为小于0.03、0.03~0.2、大于0.2三个区间,若三角网格面积小时我们采用小步长,这样可以使单次步长不会跨越过多的网格,保证可视化的准确性,面积较大时采用原始步长,K 根据网格面积尺寸取1/4、1/2、1。为了保证可视化效果的相对速度,当K 取1/4时,我们将4 次小步长的值相加得到最终步长。μ表示全局步长增长控制参数;ω表示视角像素值参数;α表示速度分量,δ表示流向局部控制参数,θ表示流入与流出网格的两个流向的夹角,取值范围为[0,π]。
在流线追踪的过程中,模型综合考虑了当前网格的大小、流向、流速、视角像素四个因素,并能通过μ、δ双自由度调整。达到同向网格步长增加、逆向网格步长锐减;视角像素值大的步长略大、视角像素值小的步长略小;根据网格尺寸大小采用局部步长。这样使可视化结果更精确,适应多种比例尺和曲率变化情况。
3.5 非结构化三角网格的点定位
通过二阶龙格库塔法和自适应步长法可以计算出粒子运动终点。但由于非结构化三角网格的特性,无法通过某一经纬度坐标直接定位到对应的三角网格,因此需要建立边列表数据结构,通过边列表查询粒子运动后所对应的网格。
杜小甫提出的点定位方法中,网格边界会存储大量-1 值,造成数据冗余。本文以“顶点序号-顶点序号”为键,代表两个顶点间的边。以“网格序号,网格序号”为值,代表边所对应的1 或2 个三角形网格。查询粒子坐标对应网格的算法步骤如下:
1)判断粒子下一时刻位置是否在当前三角形内,若在则返回当前三角形序号,若不在则进入步骤2)。
2)设连接粒子当前位置和下一时刻位置的线段(图5 中黑线所示),查询该线段与当前三角形有交点的边。
图5 粒子计算原理
3)查询该三角形的边是否存在所对应的另一个三角形(一条边最多可对应两个三角形),若不存在则证明是网格边界(海陆边界),粒子消亡。存在则进入步骤4)。
4)把此三角形赋值给当前三角形。循环执行步骤1)。
4 实验与应用
本文实验的PC 配置为操作系统为64bit 的Windows10,处 理 器 为 Intel(R) Core (TM)i7-4702MQ,内存为16GB,显卡为NVIDIA GeForce GTX 760M,开发软件为Microsoft VS Code,浏览器为Google Chrome。数据来自广州国家超级计算中心提供的FVCOM 海洋模式数据,数据分全球网格和珠江口区域网格数据,包含了流场U 分量、流场V分量、垂向深度自海洋表面至海底分50层。
本文采用的全球网格数据时间为2019 年6 月21日0时,珠江口区域网格数据时间为2019年6月1 日0 时。垂向深度为海洋表面流场。在实验中,我们通过粒子随机化方法生成了256*256 个粒子。ω视角像素值在小于2000、2000~9000、大于9000 下分别取值1、2、3。取μ=0.5,δ=2。我们将改进后的AMFCA算法与AMFCA算法进行对比,保证其他参数一致的情况下,在小网格区域单次步长平均穿越网格数减少了2.2 倍,提高了可视化的准确性。可视化效果如图6、图7所示,通过实验结果可以清晰的展示海洋中的流场特征和动态变化规律。
图6 我国珠江口区域流场细节图
图7 大西洋区域流场可视化效果图
5 结语
本文通过基于网格面积的粒子随机化方法能简单、快速、均匀地覆盖全球海洋区域及珠江口区域。在AMFCA算法的基础上根据网格面积自适应步长大小,提高了可视化的准确性;同时添加视角像素参数,使改进后的算法能随着可视化视角更好地描绘大型的流场轨迹和局部流场细节。基于边列表的点定位方法避免了数据冗余,使得数据存储更小。本文在Cesium 引擎上实现了非结构化三角网格海洋流场可视化应用,准确美观地表现出海洋流场的真实轨迹,可视化效果较好。