基于VTK的有限元网格可视化研究及软件设计.doc
《基于VTK的有限元网格可视化研究及软件设计.doc》由会员分享,可在线阅读,更多相关《基于VTK的有限元网格可视化研究及软件设计.doc(86页珍藏版)》请在沃文网上搜索。
1、毕 业 论 文基于VTK的有限元网格可视化研究及软件设计The Visualization Study for Finite Element Mesh and Program Design Based on the VTK学 院 土木建筑学院 专 业 工 程 力 学 学 生 薛 健 学 号 08980130 指导教师 王家林 教授 重庆交通大学 2012 年前 言科学计算可视化112(Visualization in Scientific Computing)的概念自1987年提出到现在,短短25年的时间里,已经对自然科学的几乎所有领域产生了深刻而意义深远的影响。在有限元分析(FEA)领域,可
2、视化技术更是凭借其直观、高效、交互性好的优点成为了诠释网格数据和计算结果的强有力手段甚至是无可替代的方法。本课题的目的即在对于有限元网格可视化技术的研究。有限元网格可视化是有限元分析中一个重要的技术环节,具有重要的工程意义和理论价值。在实际工程中,网格划分的质量直接影响着求解精度以及解的收敛性,而网格的可视化则为庞大的网格系统的人机交互提供了一个方便、直观、高效的手段,不但能够有效地诠释网格数据,还为网格质量的评价与反馈提供了可能;在理论上,成形后的有限元网格具有不依赖于模型对象的独立的几何性态,这使其成为有限元计算的基础甚至核心,而有限元网格的可视化就正是要把网格那些重要的几何属性直观、高效
3、地揭示出来。目前,主流的有限元通用软件或者网格划分专用软件越来越重视软件的可视化及其相关的交互功能,不仅是在友好的图形用户界面的开发、多种数据结果的精确显示、复杂工程项目的可视化仿真建模等等方面,甚至将网格的可视化功能集成到网格划分的功能模块之中,大大提高了网格划分的效率,同时使用户能够对分析过程中网格数据的变化进行及时准确地把握。在有限元应用领域,网格小变形方向的可视化技术已经相当成熟;另外,在流体、传热、电磁场等涉及到物理场、大变形、甚至多场耦合的领域,有限元网格技术也取得了巨大的发展,可视化技术更是为其海量数据的分析处理提供了强大的支持。本课题以Microsoft Visual 2010
4、为编译平台,基于VTK (Visualization Toolkit)及其接口技术,面向土木工程领域研究有限元分析中杆系结构单元、表面单元、实体单元的网格可视化方法。由VTK与MFC混合编程开发出一个有限元网格可视化软件来实现有限元网格的显示、实现对多种网格数据类型的支持、实现网格对象的人机交互等功能。目 录摘 要IABSTRACTIII第一章 绪 论11.1选题的目的与意义11.2国内外研究现状11.2.1OpenGL (Open Graphics Library)21.2.2VTK (Visualization Toolkit)31.3 本课题研究内容3第二章 VTK的结构、执行机制以及V
5、TK软件平台的搭建52.1 VTK的结构与执行机制52.2 VTK软件平台的搭建72.2.1 Microsoft Visual 2010 与Boost库72.2.2 Cmake简介72.2.3 Windows XP环境下VTK 5.8.0的编译与配置8第三章 数据输入接口143.1 有限元网格数据类143.1.1 节点类143.1.2 单元类173.2 数据文件的读入203.2.1 网格数据的读入种类、控制与特点203.2.2 节点编号与坐标的读入213.2.3 二维Delaunay边界点的读入233.2.4 节点位移分量的读入253.2.5 单元编号及顶点的读入26第四章 有限元网格的可视化
6、284.1 VTK基本数据的表达284.1.1 可视化数据的特点284.1.2 VTK的单元数据集284.1.3 数据集类型324.2 VTK的对象工厂设计模式334.3 绘图程序的组织结构344.4 节点的绘制与标注364.5 线单元模型的绘制404.6 三角形单元模型的绘制434.7 四面体单元模型、六面体单元模型的绘制464.8 五面体单元模型的绘制494.9 Delaunay三角网的绘制514.9.1 平面点集的三角剖分524.9.2 Delaunay三角剖分524.9.3 Delaunay三角网的性质534.9.4 vtkDelaunay2D类与vtkDelaunay3D类534.9
7、.5 用vtkDelaunay2D类建立二维离散点集的Delaunay三角网554.9.6 用vtkDelaunay2D类建立二维约束Delaunay三角网59第五章 VTK与MFC混合编程655.1 MFC655.2 位移放大/缩小按钮的添加65第六章 结 论68致 谢69参考文献70附 录72重庆交通大学2012届毕业设计毕业论文摘 要本课题以Microsoft Visual 2010为编译平台,基于VTK (Visualization Toolkit)及其接口技术,实现了有限元分析中多种单元网格模型的可视化。这些网格单元类型包括:离散点集、线单元模型、三角形单元模型、四面体单元模型、五面
8、体单元模型、六面体单元模型。实现了网格单元变形图的绘制。通过改变位移放大系数的方式,可以得到网格未变形时的状态、真实变形状态以及变形放大状态。利用vtkDelaunay2D类进行了离散点集的Delaunay三角剖分与约束边界情形下的Delaunay三角剖分。讨论了vtkDelaunay2D类在进行约束边界情形下的Delaunay三角剖分时存在的一些局限性。实现了节点、单元、位移数据的输入接口,并由VTK与MFC混合编程实现了简单按钮与功能的添加以及多文件的组织。关键字:VTK,有限元网格,可视化,Microsoft Visual 2010,MFCIABSTRACTThe programming
9、 uses Microsoft Visual 2010 as its compile platform. It bases on the VTK (Visualization Toolkit) and its interface technology to realize the visualization of some models meshes in Finite Element Analysis. These meshes including: discrete points set, line element model, triangular element model, tetr
10、ahedral element model, wedge element model and hexahedron element model. It realizes the visualization of meshes deformation. With changing the displacement amplification coefficient, it can get the meshes which have no deformation, or the meshes have real deformation, or the deformation amplificati
11、on. Using the class vtkDelaunay2D to get the Delaunay triangulations about discrete point set, and also the triangulations that lies the boundaries exist. Discussed the limitations of class vtkDelaunay2D in process the Delaunay triangulations under the situation that the boundaries exist. The progra
12、mming realizes the input interface to the nodes, elements and displacement datas. And it realizes simple button and function and the organization of the files added by the VTK and MFC mixing programming.KeyWords: VTK, Finite Element Mesh, visualization, Microsoft Visual 2010, MFC75第一章 绪 论科学数据的可视化与数值
13、分析一样,是分析处理数据不可或缺的重要手段。它不但直观形象地诠释着庞杂的数据类型、挖掘着数据的本质与相互间的联系,还为处理海量的信息提供了强有力的技术支持。VTK是一个开源的可视化工具包,它在科学计算可视化领域(Visualization in Scientific Computing)占据着重要的地位,并越来越发挥出巨大的作用;在有限元分析领域,有限元网格则始终是有限元方法的核心。因此,可以想见,它们二者的结合将具有重要的理论与工程意义。有限元网格本质上可以抽象为一个复杂的空间拓扑点集。我们常常把这个点集中的点元素称为节点(Node),而把点与点之间的联系称为单元(Element)。点是最基
14、本的结构,无法再予以细分;而单元的不同类型和性状则描述了点之间的不同联系,这些联系和点阵的空间排布一起就形成了有限元网格的拓扑属性。对应地,VTK的数据集包含数据属性和组织结构,而组织结构又包含了拓扑结构(Cells)和几何结构(Points),每种结构上又各自绑定着相应的属性。这种拓扑结构与元素的对应正好可以用来映射网格结构的单元和节点,因而在VTK中的多边形数据、结构点集以及各种类型的网格数据就正好可用于网格拓扑点集的表达。1.1 选题的目的与意义有限元网格是有限元方法的核心,有限元分析的一切建模、计算都建立在其基础上。在有限元分析过程中,所划分网格的质量在很大程度上影响着计算结果的精度或
15、者收敛程度。而对于一个大型的有限元模型,庞大的网格数据一旦在计算过程中出现错误,很难检查出来,由此降低执行效率。如果将有限元网格在前处理过程中可视化,则可以通过直观、交互式的手段检查、评估网格划分的质量,对存在的问题进行及时、准确的处理,确保网格划分的有效性。另外,有限元网格在划分完成后实际上就与模型对象脱离了关系,具有独立的几何性态,之后的计算完全是建立在网格的几何属性之上而与原有模型没有任何关系。因此,对于网格生成后计算的研究属于几何与算法的范畴,不依赖于模型对象,也应当是独立的。有限元网格的可视化就正好可以为网格几何性质的表达、评价以及进一步的研究提供有力的支持。1.2 国内外研究现状现
16、有的有限元分析通用软件(如Abaqus、Ansys、Nastran等)已经越来越重视开发可视化的功能。比如,在图形用户界面的设计开发、网格及其节点的显示与交互、数据结果的可视化等许多方面做了大量的工作,使得这些软件的可视化功能变得更加的完善、界面变得更加的友好,用户在建模、分析等过程中对于模型对象的操作更加的便捷、高效,对数据结果的分析处理也更加的准确与直观。另外,一些专业前处理软件(如Abaqus/CAE、Ansys/workbench 等)和专门用于进行网格划分的前处理软件(MeshMorpher、HyperGraph、Gridgen、Gambit、Icem CFD等)更是将网格的可视化功
17、能集成在了网格划分的模块之中,大大提高了网格可视化的效率,同时使用户能够对分析过程中网格的变化进行及时准确地把握。目前常用的可视化工具主要有OpenGL12-15 (Open Graphics Library)、Direct 3D 16 (D3D)、IBM OpenDX1718(Open Visualization Data Explorer)、VTK2-7 (Visualization Toolkit)、Matlab19-21等等。其中,OpenGL是一个老牌的三维计算机图形和建模库,已广泛应用于计算机可视化的各个领域,包括游戏开发和科学计算可视化;Direct 3D是微软制定的3D规格界面
18、,与OpenGL同为电脑绘图软件和电脑游戏经常使用的两套绘图编程接口,但目前只在Windows平台上可用;IBM OpenDX是UNIX上一个功能全面的可视化应用程序,主要用于数据的可视化和分析;而VTK是一个开源的可视化工具包,用来进行3D的计算机图形图像的处理、可视化以及二次开发;Matlab的可视化功能则主要针对各种类型的函数、偏微分方程数值计算结果以及仿真建模的可视化,处理的数据主要是科学计算的数值结果,数据形式以矩阵形式为主。在这些可视化工具包中,OpenGL与VTK以其强大的功能在科学计算的图形图像处理方面占据了重要的地位,极大地推动了科学计算可视化的发展。1.2.1 OpenGL
19、 (Open Graphics Library)OpenGL12-15是一个三维的计算机图形和建模库,它独立于视窗操作系统或其它操作系统,亦是网络透明的。OpenGL也是一个专业的图形程序接口,是一个功能强大、调用方便,直接与硬件联系的、面向过程的底层图形库。OpenGL集成了所有曲面造型、图形变换、光照、材质、纹理、像素操作、融合、反走样、雾化等等复杂的计算机图形学算法,为用户提供了可视化方面强大而又方便实用的功能。OpenGL具有高度的开放性、可移植性、网络透明性等特点,因而常用于游戏开发、科学计算可视化(运动仿真、有限元分析、流体计算、医学成像、分子化学、汽车等曲面造型、地理信息、石油勘
20、探、气候模型模拟)、虚拟现实技术、影视广告、CAI等领域。OpenGL可与VC+紧密接合,因而便于有关计算和图形算法的实现,并保证算法的正确性和可靠性,使用简便、效率高。它能够在Windows 95/98、Windows NT、Macos、Beos、OS/2及Unix上应用,以它为基础开发的应用程序能够在这些平台间方便的移植。另外,OpenGL可以在网络上工作,即客户机/服务器型,显示图形的计算机(客户机)可以不是运行图形程序的计算机(服务器),客户机与服务器可以是不同类型的计算机,只要两者服从相同的协议1315。1.2.2 VTK (Visualization Toolkit)VTK2是一个
21、开源的可视化工具包,用来进行3D的计算机图形图像的处理、可视化以及二次开发。它亦是一个用于可视化应用程序构造与运行的支撑环境,是在三维函数库OpenGL的基础上采用面向对象的设计方法建立发展起来的。它将可视化开发过程中会经常遇到的细节屏蔽起来,并将一些常用的算法封装起来,以类的形式给用户以支持,极大地提高了数据的安全性和代码的执行效率。VTK包含一个功能强大的C+类库,同时也支持多种脚本语言,包括Python、Tcl/Tk、Java等;它支持多种可视化算法,包括标量、向量、张量、纹理和体积测定方法等;它提供许多高级的建模技术,比如隐函数建模、多边形减面、网格平滑、切割、造型以及Delaunay
22、三角划分等5。另外,许多成像算法已被整合,融入了二维成像和三维成像的图形算法和数据。VTK提供多种数据表达类型,包括无结构点集、多边形数据、图像、体元、结构网格、正交网格以及无结构网格等。它的绘制模式支持2D、多边形、体元和纹理绘制,以及它们的各种组合6。VTK源码开放、交互性好、跨平台、支持平行处理,它以其强大的可视化功能在学术研究以及商业应用的许多领域越来越受到重视。VTK的一个重要应用就是和ITK(Insight Segmentation and Registration Toolkit)混合编程实现医学影像的三维可视化重构8-10,其中包括著名的可视人计划(Visible Human
23、Project,VHP,1989)111、颅面建模等,为数字医学的研究、临床应用开辟了一个全新的方向。此外,VTK已在建筑学、气象学、生物学、航空航天、石油勘探、地理学、测绘学、声学系统、流体系统、有限元分析、表面重构等诸多应用领域发挥了巨大作用。1.3 本课题研究内容本课题以Microsoft Visual 2010为编译平台,基于VTK及其接口技术,面向土木工程领域研究有限元分析中杆系结构单元、表面单元、实体单元的网格可视化方法。由VTK与MFC混合编程开发出一个有限元网格可视化软件来实现有限元网格的显示、实现对多种网格数据类型的支持、实现网格对象的人机交互等功能,是VTK的基本应用。第二
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 VTK 有限元 网格 可视化 研究 软件设计