在水动力数值模拟领域,越来越多的工程问题需要三维计算来回答,由此推进了三维水动力数值模拟技术的发展,从而对三维计算结果后处理,尤其是三维流场的仿真模拟提出了要求,如何真实有效地表现三维流场一直是水动力数值模拟研究的一个领域。
以往对三维流场的表达大都通过获取水平或垂向截面方式间接地感知三维流场,该方法将计算得到的截面绘制在二维平面上,以欧拉法绘制各时刻截面流场,这在本质上还属于二维图形绘制范畴,绘制相对简单。通过比较若干个截面流场认识流场的三维特性,这类似于医学上的脑CT的绘制,像Delft3D、Mike3等商业化软件及作者以前对三维流场的后处理也是这样完成的。这也是无奈之举,因为在二维屏幕上表达具有运动特性的三维流场实在是受到了本质上的限制。
要想直接表达三维流场,涉及到真实三维场景的建立。用OpenGL构建三维地形己较为常见,但少有人将流场加入,原因是地形可以很轻易地用三维曲面描述,而流场则不然,没有很好的方式表现三维流场,尤其是以拉格朗日法描述流场,有很大困难。近些年有学者将二维计算流场叠加在三维地形上构成流场的三维显示,本质上流场显示也只是二维的。CJK3D对三维流场的表达通常是通过若干指定的垂线上的节点处用欧拉法以箭头的方式表达的,显示效果一般。
CJK3D三维流场图
TECPLOT可以实现对三维恒定流场的模拟显示,它采用示踪球加迹线方式展示三维运动中的流场,粒子运动是拉格朗日法描述。真实的三维场景加上几条不算太密的流线和在流线上运动的质球,三维模拟效果很好。而对于非恒定流场,它则无能为力。
三维水动力模拟研究中,非恒定流占大部分,如潮流场等。往复运动的特点使得以Tecplot采用的流线加示踪质点的方式不再可行,否则随时间的推移,流线将变成“一团乱麻”,没有了流线作参考,运动中的示踪质点也不会不容易被分辨其空间位置,使得流场三维特性不再明显,无法有效地表达流场模拟。必须探求有效的三维流场表现方式方能解决其模拟显示中的问题。
真正的三维流场的拉格朗日法模拟实现,必须在三维场景中对流场质点的三维运动进行表示,这在质点运动的算法上虽然不是太困难,但是如果仍然以通常的屏幕显示方式,采用某种几何对象如圆球代表三维流速质点方式在二维显示器上表达三维流场,可以想象,一方面运动流场需要通过放置在其中的运动质点来描述,另一方面需要将三维场景中的运动质点向显示平面进行投影,这必然会造成运动质点前后和上下的遮盖,使得整体上混乱不堪。即使采用不同质点形状,也不能达到理想的显示效果。这是二维屏幕直接表达三维场景的必然,也是真实三维流场模拟止步不前的关键所在。
对拉格朗日法的三维流场的仿真可视化必须解决基于平面显示设备的立体显示方式,立体成像技术就是解决这个问题的关键,它可以在平面设备上呈现立体图像,使得对三维景深的感知成为可能,从而解决了三维流场可视化中的关键问题,使得三维流场的仿真可视化成为可能。三维可视化与二维可视化在图形处理技术上有本质区别,由于三维可视化涉及到三维场景的建立,视角的变换等,三维可视化必须建立在三维图形处理平台之上。OpenGL(Open Graphics Library)、WPF(Windows Presentation Foundation)、OSG(Open Scene Graph)、VTK(Visualization Toolkit)、OGRE(Object-oriented Graphics Rendering Engine)是三维图形处理平台,它们都可用以进行三维场景的建立,都具有强大的三维图形处理能力,但有轻量级和重量级三维图形平台之分,各有优势。使用者可根据自身需要和喜好,选择不同的三维图形平台。