流可视化作为科学计算可视化领域的一个经典方向是一项展示液体/气体等流体的动态行为的矢量可视化技术,是流体力学研究的一项重要工具,并在气象分析(天气预报)、航空动力学、海洋学、工业流程分析、爆轰数据模拟、水利工程中的数字流域建设等许多领域中起到很重要的作用。该文对流可视化的相关工作进行了较为系统的介绍,并在此基础上展示了张量投票技术在流可视化中的应用。
自十五世纪中期Leonardo Da Vinci 用图像描述了投入流动液体中的细小沙粒和木屑的运动情况以来[1],流场成为应用得最广泛、研究得最深入的矢量场之一,流可视化的实验室研究变得越来越精确,微粒的大小和分布得到更严格的控制,摄影技术的发展也使得我们对流体在各种情况下的运动情况有了更多的了解。
最近计算流体力学(computational fluid dynamics)应运而生, 其研究结果以仿真的形式扩展了我们研究流的动态行为的能力。而流可视化技术则成为流体力学研究的一项重要工具,并在气象分析(天气预报)、航空动力学、海洋学、工业流程分析、爆轰数据模拟、水利工程中的数字流域建设等许多领域中起到很重要的作用。与其他动力系统相比,流体可视化得到了业界更多的关注和研究。在国际上有专门的期刊——The Journal of Flow Visualization and Image Processing 来登载流体可视化的相关研究成果。近年来,多种关于流场的简化表示方法被提出,几乎成了IEEE Visualization、ACM Siggraph、Eurograph等国际会议上的一个热点,流体可视化的最新研究成果一般都在这些会议上发表。
2. 基本概念 流体运动是一种典型的非刚性运动, 由于大多数流体(如空气、水等)都是透明的, 因而其运动模式对于人眼来讲是很难看出的。流体运动图像计算问题即是针对这种特殊图像的运动矢量计算和分析问题。
这里主要关心的不仅仅是运动矢量计算和测量的精度和可靠性,而且包括运动矢量的空间分布、亮度模式、运动形式、运动规律等,其分析结果通常以2-D 或3-D 空间中的速度矢量集的形式来表示。在实验中,可以采用在流体中添加一些其它材料、加热或者引入某些光学方法来辅助研究。而从数学角度,我们知道有经典的流体运动模型——雷诺平均(Navier-Stokes)通过时间和来描述流体的运动模式, 但是这一非线性偏微分方程却很难在实际应用中求解,即使采用一些现代的数值解法,也需要用实验数据进行修正才能与实际情况对应起来。
为便于描述,首先给出如下术语的定义[2] [3]: 定义1. 流线(Streamline):流体的运动会形成一个速度场, 与该速度场每一点的瞬时速度都相切的线, 可以给出同一时刻不同质点的运动方向。流线上的点符合关于机械能量守恒的Bernoulli 规律,流线上点的曲率大小与其法线方向的压力变化有关,于是可以利用流线的曲率计算压力梯度的幅度。
定义2. 脉线(Streakline):从场中某一固定位置投放染料,经过一段时间形成的一条有色线。研究者们经常通过添加染色剂来观察脉线的模式,从而可以设计一些改进措施来减小阻力(drag),大多数阻力都是由运动物体后产生的漩涡引起的,改进的目标是使流体通过运动物体之后流速减慢而不形成漩涡。脉线有利于检测流场中的不连续点,通常线上突然被分离开超常大距离的点都很容易被看到并被进一步用于检测涡流(vortices)、漩涡(eddies)或是流体中的其他变化。
定义3. 时线(等时线) (Timeline):一系列相同流体质点在不同瞬时组成的曲线,在实验中可在某一