资源描述:
《visual c++在开发二维渗流有限元分析软件中的应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VisualC++在开发二维渗流有限元分析软件中的应用第30卷第4期2004年l2月江西水利科技JIANGXIHYDRAULICSCIENCE&TECHN0L0GYV01.30No.4Dee.2Oo4VisualC++在开发二维渗流有限元分析软件中的应用杨军,秦卫星.,吴俊(1.广东省清远市水利水电勘测设计院,广东清远511515;2.武汉大学水资源与水电工程科学国家重点实验室,湖北武汉430072;3.长江勘测规划设计研究院施工处,湖北武汉430010)摘要:采用面向对象技术,应用C++基于VisualC++平台研制了一个渗流有限元分析系统.该
2、软件系统的前处理过程用对象化建模,实现方便,界面友好.有限元分析模块的引入使该系统具有规范性和客观性,计算结果不会因人而异,且后处理形象直观.以一个土坝渗流的实例,验证了该软件的可用性和优点.关键词:渗流;面向对象技术;C++语言;自适应;有限元软件中图分类号:TV223.4文献标识码:A文章编号:1004—4701(2004)04—0202—040引言以往的有限元分析系统软件,一般采用面向过程的方法编制,且维护和扩充很不方便.随着面向对象技术_l的发展,有限元软件的编制倾向采用面向对象技术编制,并在前后处理部分采用可视化技术_2,既有利于软件的开发和维
3、护,又极大地方便了用户,并减少了出错的可能性.面向对象技术的基本原理:基于信息隐蔽和抽象数据类型的概念,将研究的问题分成不同的对象,每个对象封装描述其属性的数据和处理这些数据的方法,从而使问题获得解决.我们用面向对象技术进行有限元分析软件开发,于1998年用面向对象开发方法,使用C++,基于VC++集成环境,在已有程序的基础上,搭建了平面自适应有限元系统的框架,并形成软件AFEAS』,为后续的研究奠定了坚实的基础,2003年又实现了渗流可视化分析系统ASA.S,并于2004年完成了有限元分析软件AFEAS与通用图形软件AutoCAD的无缝连接问题.作为面
4、向对象开发有限元软件研究的一个小结,本文主要介绍了渗流问题面向对象有限元软件收稿日期:2004—08—25作者简介:杨军(1977一),男,大学本科,助理工程师W-SAS(Windows—SeepageAnalysisSystem)的开发,它既可以作为渗流分析软件独立使用,又可以为后续的边坡稳定分析提供渗透荷载.本文详细地介绍该软件的构成和应用.1软件系统描述该软件系统采用C++,基于VC++6.0集成环境的MFC编程,界面具有类Windows风格,自带绘图系统,前处理的建模工作量减小,并降低了出错的概率;后处理采用流速矢量显示流场,具有形象直观的优点;
5、有限元分析模块用Fortran编制.该软件系统包括如下4个模块:(1)用户界面模块——弹出下拉菜单,对话框.工具条和状态条以及相关的GUI图符等;(2)前处理模块——实体几何建模和物理建模,单元自动剖分,有限元信息自动生成等;(3)渗流分析模块——有限单元库和渗流分析,误差估计等;(4)后处理模块——结果数据生成和流场的可视化;4个模块按照软件设计的高内聚性和低耦合性第30卷第4期杨军等VisualC++在开发二维渗流有限元分析软件中的应用203的原则建立,都只允许一个进口和一个出口.用户界面模块主要有各种下拉菜单,工具条和状态条.方便用户建立,查看,修
6、改模型资料.在前处理过程中包括两个模型对象:实体模型和网格模型.实体模型是指几何模型(造型)和相关的物理参数(材料,约束信息等)的集合体;网格模型则是实体模型通过网格剖分器生成的有限元网格模型.将有限元模型分为两步得到,正是针对自适应有限元能优化网格这一特点而设计的.另一方面,也体现了面向对象的思想.由于用户界面模块较简单,主要介绍前处理模块,渗流分析模块和后处理模块.1.1前处理模块前处理模块主要功能是形成实体模型(CEntity)和网格模型(CMesh).用自带的绘图系统,采用对话框和光标两种绘制方式交互绘图,准确地建立实体模型,或者采用无缝连接功能
7、从AutoCAD图形软件中导入实体模型,然后用网格生成器得到有限元模型.1.1.1实体模型结合面向对象和有限元的思想,实体模型的数据结构是一种层次结构.一个实体模型由若干个子域构成,一个子域由若干条边构成,而一条边由若干个关键点组成,故其数据成员有子域类(CSubDoma.in)对象,边类(CEdge)对象,关键点类(CVertex)对象,约束类(CRestrain)对象和材料类(CMateria1)对象.实体模型类的结构如下:classCEntity:publicCObject{public:CSubDomainm—subdomain;CEdgem—e
8、dge;CVertexm—vertex;CMaterialm—material;