文档库 最新最全的文档下载
当前位置:文档库 › 基于VTK的有限元后处理系统开发

基于VTK的有限元后处理系统开发

基于VTK的有限元后处理系统开发
基于VTK的有限元后处理系统开发

基于VTK的有限元后处理系统开发

何俊裕,楼淑君

河海大学工程力学系,南京 (210098)

E-mail:junyu_he_81@https://www.wendangku.net/doc/fa12504743.html,

摘要:采用VC++6.0作为开发平台,引入三维可视化类库VTK,开发有限元后处理系统。该系统采用了彩色云图、等值面、等值线、任意剖面等方式,实现了对有限元计算结果(温度场、位移场、应力场)的的显示。

关键词:VTK;有限元;可视化

1. 引言

随着计算机性能的飞速发展,科学计算的规模也越来越大,尤其在气象预报、地质勘探、空气动力学、有限元分析和医学影像处理等领域中,计算的结果或探测的原始数据量十分巨大,面对如此庞大的数据量,常规的数值分析方法已经显得无能为力。而将这些结果数据转化为图像,就能更好的分析数据内部的规律,极大地提高科学计算数据处理的效率和质量[1]。在国内外众多的图像生成及处理软件中,VTK(Visualization Toolkit)是近年来在科研领域被广泛使用的一种。它是美国Kitware公司开发的一套免费的C++类库,它吸收了众多优秀的图像处理和图形生成算法,是一个源代码开放、面向对象的计算机图形、可视化技术及图像处理软件系统。

2. VTK简介

VTK是一种用于3D计算机图形学、图象处理及可视化的软件系统工具,在国外很多大学、实验室已经将VTK作为教学和科研工具,其应用已渗透到医学、石油勘探、声学、流体力学等领域。VTK利用了面向对象的技术,它包括C++类库,及Tcl/TK、Java、Python等一些解释型界面层。其图形模型建立在比OpenGL更高层基础之上,所有的函数都封装在500多个类库中。VTK不仅支持对几何体的显示及渲染,还同时支持许多图形及可视化算法(矢量、标量、张量)及高级的建模技术(快速建模、多边形优化、Delaunay三角形片生成法)。同时,VTK 将图形图像算法直接集成,将2D/3D图形图像的算法和数据融合起来[2]。

2.1 VTK的特点

VTK是一套优秀的三维可视化图形系统,它之所以受到重视和广泛使用,是因为它具有如下一些鲜明的技术特点[3]:

(1)封装了目前许多优秀的三维数据场可视化算法,可方便的对数据集进行各种变换和操作。

(2)支持多种语言环境,并具有多种程序语言之间的代码转换功能。可在Tcl、Java、Python 编程语言之间转换。(C++不能和上述三种语言进行转换,因为C++具有指针,很容易嵌入到自己的图像应用之中。)

(3)可移植性:跨平台使用可在Windows系统或Unix系统中运行。

(4)可扩充性:因为它是开放源代码的,因此开发人员可对源代码修改或增加自己的新类,只要符合规范,自己的代码也会被广泛使用。

(5)生成图像的速度快,图像质量优秀。

(6)模块化设计,概念简单,易于学习和使用。上述所列只是它众多优点的一部分,还有诸如

生成的三维图像用户可交互手段丰富、代码重用性好、极少的代码编写量等。当然它也有一些不可避免的缺点,如对硬件配置要求较高、要求开发人员有较深的C++(或Java、Tcl/Tk、Python等语言)开发经验等缺点。

2.2 VTK的体系结构

VTK由两个主要的部分组成:图形(Graphics)模型和可视化(Visualization)模型。

1) 图形(Graphics)模型

图形模型讲几何体转换成图像,包括被显示对象的类和用于显示的方法,下面是Graphics模型的几个主要的类的简单描述。图1中的是可视化工具箱渲染窗口(vtkRenderWindow)和渲染器(vtkRenderer),它们可将可视化对象或角色(vtkActor)渲染到计算机屏幕上。

图1 图形生成(Graphics)模型

图2 可视化(Visualization)模型

图1中的可视化工具箱渲染窗口vtkRenderWindow管理着渲染过程,通过一个或者多个渲染器可以在渲染窗口中形成最终图像。渲染器vtkRenderer控制着物体的渲染过程,其

中包括对光照(vtkLight)、照相机(vtkCamera)、和角色(vtkActor)的坐标定位等。vtkActor

指在场景中绘制的实体。vtkMapper指在场景中Actor的几何定义,和图形设备中的可视化管道相联系。它通过一个向上观察板vtkLookupTabale来映射数据。vtkProperty是指Actor 的表面属性,包括Actor的颜色、亮度、纹理图、绘制方式和阴影方式等[4]。

2) 可视化(Visualization)模型

可视化工具箱VTK使用数据流的方法将显示对象的信息转换为图像数据,这样的结构一般称为可视化网络(visualization network)或可视化管道(visualization pipeline),网络由一系列模块连接,当数据沿着网络流动时,模块就会对数据进行相应的运算,将数据处理为能够显示在屏幕上的图像。可视化模型由两种类型的基本对象组成:流程(process)对象和数据(data)对象。数据对象代表信息,是沿可视化网络流动的实际数据,数据对象提供了创建、访问和删除信息的方法。流程对象对输入数据进行处理并产生输出数据,是可视化网络的算法部分,流程对象可以对输入数据处理后输出新的数据,也可以是仅仅改变输入数据的格式而产生输出数据。图2表示数据集(dataset)在流程对象中的传递,其中的A、B和C分别表示process A、process B和process C,连接对象之间的箭头表示数据流动的方向。

流动对象又可细分为源(sources)对象、过滤器(filters)对象和映射(mappers)对象。源对象是可视化流程的起点,源对象包括从文件中读入及程序内部产生的数据。过滤器可以接受一个或多个数据对象输入和产生一个或多个数据对象的输出。映射指定了基本图元与数据之间的接口,接受过滤器对象输入的数据类型及数据值,把数据映射为基本图元[5]。

3. 有限元后处理系统的实现

在VTK工具软件系统的基础上可以很方便地开发新的库函数,从而建立独立的、特定的应用系统。利用VTK开发有限元后处理系统,主要任务是在VTK的过程对象与数据对象之间建立连接,实现数据场的可视化流程,生成可视化系统中的各种场景。后处理系统被设计为2层:内层和外层。内层是可视化引擎,由VTK核心层实现,用于处理可视化流水线;外层是GUI,由VC++6.0开发工具实现,提供交互式界面调用VTK核心层进行可视化处理,完成系统与用户的各种交互操作。

3.1数据格式

有限元后处理系统主要读取保存有限元计算结果的文本文件(.txt),文件主要包含有限元的单元节点坐标,单元的拓扑关系,单元类型,还有单元节点的各种属性数据。如:位移场、应力场、温度场等。

3.2系统功能

利用VTK和VC++6.0开发的有限元后处理系统主要功能:

(1)实现文本文件格式的有限元计算结果的读取。

(2)几何体和网格显示。系统可以将读入的几何数据和拓扑数据所确定的几何外形显示出来,以确定是否与所计算的实体一致。

(3)三位空间数据场显示。如实体彩色云图、等值面等标量场的显示,并可以通过交互手段改变属性的颜色显示。

(4)三维空间的切片和切片上等值线的显示。系统可以交互生成三维实体任以切面的彩色剖面图和任一切面的等值线图。

(5)系统可把屏幕上所显示的图像以bmp的图像格式存贮起来。

(6)友好的人机交互界面。用户可以方便选择各种参数,动态观察交互中各个参数的

变化。图像交互,如旋转、平移、缩放完全可用鼠标操作。

3.2应用实例

基于VTK设计的有限元后处理系统集成了网格线提取、等值面提取、等值线提取等可视化技术,实现了对大量有限元数据的高效处理和研究。图3显示的是樟山闸一孔有限元计算的网格模型,其单元为四面体单元,共有单元节点数16269个,单元数74170个。图4显示的是樟山闸一孔某剖面X方向的位移彩色云图。图5显示的是樟山闸一孔X向位移等值面图。图6显示的是樟山闸一孔X向位移彩图。图7显示的是樟山闸一孔某剖面X向位移等值线图。

4. 总结

VTK是一种基于OpenGL的开发工具,其在可视化开发中具有强大的功能。实践证明用其开发的有限元后处理系统在实际工程应用中显示比较强大的功能。

图3樟山闸一孔计算网格图4樟山闸一孔某剖面X向位移彩图

图5樟山闸一孔X向位移等值面图图6樟山闸一孔X向位移彩图

图7 樟山闸一孔某剖面X向位移等值线图

参考文献

[1]唐泽圣等著,三维数据场可视化,清华大学出版社,1999,12;

[2]Schroeder W, Martin K, Lorensen B. The Visualization Toolkit-an Object-oriented Approach to 3D Graphics[M].Prentice Hall: Kitware Inc, 2002;

[3]J. Rumbaugh,M .Blaha,W. Premerlani,,etc. Object-Oriented Modeling and Design, Prentice-Hall, Englewood Cliffs, New Jersey, 1991.

[4]李嘉,胡怀中,胡军,王勇,可视化三维图形库Visualization ToolKit3.2的原理及应用[J],计算机应用与软件,2004,2:2;

[5]常君明,邱磊,邹早建.基于VTK的CFD可视化系统开发和应用[J],武汉理工大学学报,2004,4:1;

Developing post-processing system for FEM based on VTK

He Junyu,Lou Shujun

Department of Engineering Mechanics, Hohai University, Nanjing, PRC (210098)

Abstract

This paper uses VC++6.0 as exploitation environment, imports 3D Visualization Toolkit, develops post-processing system for FEM. The system adopts different means, for example colorful contour, isosurfaces, isolines, certain section plane, presents the visualization of FEM computed result, such as temperature field, displacement field, stress field and so on.

Keywords: vtk, FEM, visualization

相关文档