流域虚拟仿真中水沙模拟时空过程三维可视化_冶运涛
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
粒的初始分布
数学模型离散的计算网格的剖分相对比较均匀,而且对重点研究区域划分网格适当加密,因此,可以采
用计算网格对粒子的出生位置进行控制。 粒子出生位置的随机性决定了相关属性的随机性。粒子出生位置采用如下方法确定: 首先确定网格单元 的形心位置( x r ,y r ) ; 然后计算形心距离网格单元各 边 的 距离,并 比 较 获 得 其 中的 最 小值 r; 最 后 根 式 ( 1 ) 计 算粒子出生位置( x pos ,y pos ) 。
冶运涛,蒋云钟,梁犁丽
( 中国水利水电科学研究院水资源研究所,北京 100038 )
摘要: 将计算机图形学领域的粒子系统引 入 数 字 流域 研究, 研 发 了 基于 通 用网 格 的水 沙 模拟 时空过程三 维 可视 化 系统。该系统建立数据结构描述粒子信息和计算或者虚拟网格单元信息传递关系; 采用网格控制粒子随机生成; 提 出局部搜索定位方法来快速确定粒子位置; 通过反距离加权平 方 插 值 提 取 水流 信息; 利 用自适应 龙 格库 塔 方法 实 现粒子的动态变化; 设计了附有更多水流属性的水体粒子; 研究了流场变化过程中粒子分布不均的问题。将上述方 法应用于三峡与葛洲坝间河道水流的动态可视化模拟,验证了该系统的有效性和实用性。 关键词: 数字流域; 水沙模拟; 动态可视化; 非结构网格; 虚拟仿真 中图分类号: TV133 ; TV147 文献标志码: A 6791 ( 2011 ) 02024909 文章编号: 1001-
第 22 卷 第 2 期 2011 年 3 月
水 科 学 进 展 ADVANCES IN WATER SCIENCE
Vol. 22 , No. 2 Mar. ,2011
DOI: CNKI: 321309 / P. 20110313. 2241. 024
流域 虚 拟 仿真 中水 沙 模拟 时 空 过 程 三 维 可视 化
[78 ] 。 粒 子 系统 滴、水流的动态性和随机性,从而能够很好地模拟 火、云、水、森 林 和 原 野 等 许多 自 然 现 象 是一个动态系统,随着时间的推移,系统中不仅已有粒子的位置、形状以及属性发生变化,而且新的粒子不
断产生,旧的粒子不断消亡。每个 基本 粒 子 均 具 有 形 状、 大 小、 颜 色、 透 明 度、 运动 速 度 和 生 命 周 期 等 属 性,这些属性都是时间的函数。在计算机生成的虚拟环境中,随着时间流逝,各个粒子都要在虚拟世界中经 ” 、“运动” 和 “消亡” 的生命过程。同其它 描述 不 规则 物体 的方法 相比,粒 子 系统 具 有以 下 3 个 历 “产生 [9 ] 特点 : ( 1 ) 对物体的描述不是通过原始的具有边界的面元 ( 如 多 边 形 集 合 ) 来 描述,而 是通 过 一 组 定 义 在空 间 的原始粒子来描述; ( 2 ) 粒子系统不是一个静态实体,每个粒子的属性均是时间的函数; ( 3 ) 由粒子系统描述的物体不是预先定义好的,其形状位置等属性均用随机过程来描述。 基于粒子系统的上述特点,将运动的水体质点看作粒子,则整个流场的变化过程就可用粒子的出生、运 动、消亡的过程来模拟。粒子运动的规律由水动力学模型的计算结果控制,而其出生和消亡的规则又可按照 模拟效果的需求而定,对流场模拟具有很强的适应性。 在采用粒子系统模拟动态的模糊不规则物体之前,要分析物体的静态特性和动态特性,这样便于构建粒 子系统。假设流场是由若干个粒子构成,每个粒子的显示都经历过 4 个阶段: 粒子的产生; 粒子的运动; 粒 子的死亡; 粒子的绘制。粒子系统生成单帧图像的过程如图 1 。
/ / 单元边数 / / 单元顶点索引 / / 单元的形心 / / 形心与所有边中的最短距离 / / 相邻网格单元的索引
节点信息和单元信息存储数据结构
Fig. 2 Data structure for storing the information of node and element
粒子系统用双向链表存储。在流场模拟时采用两个链表存储 粒 子,一 个作 为 粒 子 源,另 一 个作 为 流 场 模 拟粒子系统,两者的粒子总和一定,在运行过程中动态变化: 当粒子消亡时将该粒子从模拟粒子链表中删除, 加入粒子源链表; 当粒子 出生 时 则 相 反。对 单 个 粒子,定义结构体来存储其属性信息,通过这些 属性控制粒子的运动状态、消亡条件等参数。在 流场模拟中,粒子需要表现流动特性,涉及空间 位置、矢量大小、方向随时间的变化过程。要通 过插值得出粒子相应位置的流速,还需确定粒子 所处计算网格的编号信息,另外为判断粒子的存 亡,需加入粒 子 是 否 跑 出 模拟区域的 标识 变量。 综合上述条 件, 定 义 结 构 体 Particle 存 储 粒 子 属 性
[4 ] [3 ]
结 合 粒 子 系统、 遥 感信息 模型 和
元球技术模拟了坡面的水蚀过程; 张 尚 弘 等 将 粒 子 系统 与 结 构 网 格 相 结 合模拟河 道 水流。 这些 研究均 取 得了很好效果,但是前者的水流运动仅是融入了更多地学信息,动力学机制不足,无法直接应用于河道水流 模拟; 后者是基于结构网格进行水流模拟研究,粒子绘制 采 用 线 性 箭 头 方式, 这 样 会 造 成 视 觉 上 的 二 义 性, [5 ] 附带的水流特性信息较少,使模拟 结 果 显 示 不 合理, 而 且 没 有 对 粒 子 的 出生 位 置 做详细 探讨。 冶 运 涛 等 采用点图标方法实现了流场可视化功能,可适当处理表现水流的局部动态性,实现简单,占有内存少; 但是 该方法表现的是欧拉场变化,不能追踪水流运动轨迹。 针对以上研究存在的不足,在基于非结构网格的水动力学模型基础上,将计算机图形学领域的粒子系统 引入数字流域研究中,进行河道水流模拟。本文首先研究流场模拟的粒子系统原理和框架; 然后设计了数据 结构体描述计算网格和粒子之间的传递关系; 再之对粒子系统模拟流场的关键环节,如粒子初始位置、粒子
第2 期
冶运涛,等: 流域虚拟仿真中水沙模拟时空过程三维可视化
251
非结构网格是数学模型离散的基础,其平面位置分布、节点与网格单元之间的拓扑关系在前处理过程中 就已经确定,在数值模拟求解过程中 也 是 固 定 不 变的, 但 是 对应的 属 性 信息 是 随 着 时 间 的 推 移 而 不 断 变化 的。其结构体的设计不但要考虑存储数学模型的计算结果,而且要满足流场可视化模拟的需要。单个节点的 数据结构体要包括节点的平面位置、高程、流速、水深、含沙量等属性信息。单个网格单元结构体则需要包 括网格单元的边数、与节点之间的索引关系、形心和距离各边的最短距离、相邻网格单元的索引等。节点和 单元的信息分别由结构体 GridNode 和 GridElem 描述,见图 2 。所有单元和节点用数组存储。
图 3 粒子信息存储数据结构 Fig. 3 Data structure for storing the information of node and element
,见图 3 。
同样对整个粒子系统而言,需要控制粒子的总数量和每帧中粒子更新的数量,因此定义数据 结 构 体 ParticleSystem 存储粒子链表指针、总粒子数、当前状态粒子数和每帧更新粒子数等信息。
250
水
科
学
进
展
第 22 卷
的时空过程、粒子出生和死亡、粒子的绘制和显示以及粒子分布不均进行了重点研究; 最后将提出的基于通 用网格的动态可视化方法应用于三峡与葛洲坝梯级调度系统开发,证明了该方法的实用性。
1
流场模拟总体框架
Reeves[6]于 1983 年将粒子系统引入计算机 图 形 学, 其 基本 思 想 是 采 用 许多形 状 简 单 的 微 小 粒 子 作 为 基 本元素来表示不规则模糊物体。与 传 统 图 形 学 方法 完 全 不同 的 是, 这 种 方法 体 现 了 不 规则 模 糊 物体, 如 雨
基于三维虚拟仿真的流域可视化技术,以其逼真的三维场景和友好的实时动态交互特性,引起了研究学 者广泛关注。它为研究者开辟了一个具有沉浸感的虚拟环境,实现了多维空间和时间数据的视觉化,使研究 者既能够在虚拟环境中交互操控研究对象,更可以在仿真模拟等科学计算过程中实时查询正在处理的各种计 [1 ] 算参数 。 流场研究是分析水流运动特性、污染物运移、河道冲 淤 规律、河 床 演 变 以 及水 沙 相 互 作 用 机 理的基 础。 随着科学和工程研究对河流模拟精度要求越来越高,势必生成大量数据,快速有效地分析这些数据对检验模 型的可靠性和模拟精度成为研究的关键,流场可视化研究为解决所面临的困境提供了先 进 技 术 手 段,它 在 庞 大的数据量中提取有效信息,并通过计算机直观、形象地展现给研究人员和决策者,极大地提高了数据处理 效率。 Kruger 等[2]研究了在 GPU 加速下的基于均匀网 格 的 粒 子 系统 模拟流 场 的方法, 但 是不 能直 接 移 植 到 数 字流域和河流研究中。有学者将粒 子 系统 引 入 水 利 领 域的 研究, Shen 等
[4 ]
struct Particle { Particle * previous; Particle * next; Position pos; Velocity vel; Color clr; Texture txr; TINNO gIdx; BOOL binGrid; }
/ / 指向前一粒子的指针 / / 指向后一粒子的指针 / / 粒子位置 ( x,y) 坐标 / / 粒子速度 ( u,v) / / 粒子的颜色 / / 粒子的纹理 / / 粒子所在网格索引 / / 标识 粒 子 是 否 在 模 拟 区 域 内 ,判 断 粒 子 的 存 亡
素在物理位置上也相邻,因此可以随机存取表中的任一元素,但是这种存储结构在插入或删除操作时,需要 移动大量元素,势必造成执行效率低下。链式存储结构不要求逻辑上相邻的元素在物理位置上相邻,在插入 和删除操作时,只需同时修改两个方向的指针,该存储结构虽然没有顺序存储结构的弱点,但同时也失去了 [10 ] 顺序表可随机存取的优点 。由于两种存储结构各有千秋,可以根据不同应用目的进行选择。
0507 ; 网络出版时间: 20110313 收稿日期: 2010网络出版地址: http: / / www. cnki. net / kcms / detail /32. 1309. P. 20110313. 2241. 024. html “十 一 五 ” 国 家 科 技 支 撑 计 划 资 助 项 目 基金项目: 国家 自 然 科 学 基 金 创 新 研 究 群 体 基 金 资 助 项 目 ( 50721006) ; ( 2008BAB29B08 ) ; 水利部公益性行业科研专项经费资助项目 ( 200901031 ; 201001024 ; 201101026 ) 作者简介: 冶运涛( 1983 - ) ,男,河南许昌人,博士,主要从事流域三维仿真模拟和河流动力学方面研究。 Email: yeyuntao@ gmail. com
图1
流场模拟的粒子系统框架
Fig. 1 Framework of flow field simulation based on particle system
2
数据结构体的描述
在粒子系统模拟河道水流过程中需要考虑网格存储结构和粒子系统存储结构的设计。 常见的有数组型的顺序存储结构和链表型的链式存储结构。顺序存储结构在逻辑关系上为相邻的两个元
struct GridNode { int idx; double x,y; doulbe elev; double u,v,h; doulbe sed,pol; } struct GridElem { int type; CArray < int,int > eleIdx; double xr,yr; double r; CArray < int,int > ajaGrid; } 图2 / / 节点编码 / / 节点横纵坐标 / / 节点高程值 / / 节点流速和水深 / / 节点泥沙和污染物值