论文部分内容阅读
随着计算机技术的不断进步和计算流体动力学(CFD)技术的不断提高,CFD数值计算的精度和复杂度越来越提高,产生了越来越大规模的海量数据。这些数据类型比较复杂,既有温度、压力等标量数据,又有速度等矢量数据,而且它们通常定义在非规则网格上的拓扑关系也很复杂。面对这些海量级数据,不借助有效的工具,很难做出准确的理解和判断。同时,现代科学提供的很多信息如流体流动仿真、舰船运动仿真等,必须借助可视图形才能交流。高效、准确、直观地进行大量输入数据的组织和计算结果三维数据场状态的分析,将有赖于科学计算可视化。可视化技术已经成为CFD研究领域具有特别重要意义的研究方向。 科学计算可视化是一个新兴的发展特别迅速的领域,新的可视化技术日新月异。所以,为了提供对随时出现的新技术的支持,良好的可扩展性是可视化系统设计首先必须考虑的重要因素之一。本文应用结构化面向对象的思想,具体阐述了开发CFD可视化系统的技术和理念。采用结构化软件开发方法可以在很大程度上提高系统软件的开发质量。结构化方法的关键是进行问题的分解。面向对象分解法使功能抽象与数据抽象结合在一起进行分解,因而模块具有独立性、可重用性、可理解性及易扩展性。 VTK(Visualization Toolkit)是面向计算机图形、图像处理和可视化的大型软件工具箱。它是采用面向对象的设计思想,用C++语言来实现的。系统以Visual C++6.0和VTK为开发工具,采用结构化的面向对象分解法进行设计:(1)将特定的、新的可视化技术、算法设计成新的VTK类,(2)将VTK类库进行扩充,(3)直接应用VTK类库。 针对数值计算时被计算的几何外形,即三维空间离散的数据所确定的几何外形需要显示出来特性,本文详细介绍了两种常用的剖分技术,即三角形剖分和四边形剖分原理、方法;将现有的、特定的可视化算法和技术与VTK类库充分结合,设计了能读取、存贮三角形或四边形剖分的数据组织以及实现其几何体绘制的类库。 本文介绍了常见标量场、矢量场可视化的各种技术并比较了它们的优缺武汉理工大学硕士学位论文点。目的是利用其基本原理、方法设计新的程序类库或扩充已有类库或利用已有类库开发自己的应用系统。 在VTK类库的基础之上设计和开发的CFD可视化系统在实际应用中显示了较强的功能,集成了诸多实用性技术,如多种图片格式的存贮、三维空间数据的剖分和切片、三维空间数据场的动态显示等。CFD计算的结果数据是以文件格式存贮的,所以能读取常见的文件格式也是一个可视化系统必需的,系统提供了多种文件格式的输入、输出及其转换。 同时友好、完善的人机交互界面也是系统的一个特点。用户可以方便地选择各种参数,动态观察交互中参数的变化,也可以在图像中加入文字、符号等信息。可以用鼠标和键盘来进行交互。 为了说明系统程序设计的基本理念、实现流程以及结果显示,本文在每一章节的后面都以船舶流体力学为主要对象进行了设计举例,以期探讨。