- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2基于拓扑连接和关系矩阵的网格数据结构
有限元网格生成系统的基本框架
关振群, 单菊林, 张洪武
(大连理工大学工业装备结构分析国家重点实验室,工程力学系 大连 116024)
摘 要
关键词 框架;
1.引言
一般来说,有限元网格生成系统应该包含三个方面的内容:网格生成算法库、常用的数值算法工具箱以及基本框架。对于成熟的软件平台,框架是非常重要的。这是因为框架通常定义了应用体系的基本结构类和对象的关系等等设计参数,以便于具体应用实现者能集中精力于应用本身的特定细节。框架设计中必然要使用设计模式(Design pattern)[1]。使用设计模式的目的是使代码可重用、让代码更容易被他人理解、保证代码可靠性。R. C. Martin[2]给出了框架设计过程中应该注意的一些原则。
模型的几何和拓扑信息的获取在有限元网格生成的基本框架中占有重要地位。目前在网格生成中,对CAD模型几何信息的获取通常有以下四种方法[3]:(1) 转换和还原;(2) 离散化的表示;(3) 直接法; (4) 统一的几何和拓扑接口。G. Butlin和D. R. White等[4, 5]对这几种方法的优缺点进行了总结。在这几种方法中,直接法是采用CAD软件提供的应用程序接口(API)直接访问模型的几何拓扑数据,可以和CAD软件达到无缝结合。问题是不同CAD软件提供的接口函数是不同的,目前还没有一个统一的API标准接口可供使用。Tautges等[6] 基于ACIS开发出公共几何模块,该研究成果被用在Sandia试验室的CUBIT软件中。S. Gopalsamy等[8]也给出了基于拓扑模型的网格生成的接口,使得几何模型和网格模型之间可以相互通信。
有限元网格的描述方法对算法实现与效率有重要影响。紧凑型表达虽然能满足某些应用,但由于其缺少必要的拓扑连接信息,因而大大增加了诸如网格优化、自适应网格生成等算法的实现复杂度。基于拓扑关系的网格数据结构是个较好的选择[10-12]。
1.几何模型的公共几何和拓扑接口
对网格剖分程序来说,参数曲线和参数曲面是两种最重要的几何元素,关于参数曲线和曲面的相关介绍可以参照文献[13]。边界表示法(B-Rep)是定义和描述三维物体几何外形的方法。这种方法给出了物体几何外形的完整、显式的边界描述。用于CAD造型的B-Brep比较复杂,对网格剖分程序来说其中的很多内容可以进行适当的简化,本文简化后的用于网格剖分的B-Rep是:每个物体(BrComposite)都由有限个面(BrFace)构成,每个面(平面或曲面)由有限条边(BrEdge)围成的有限个封闭域构成,这些封闭区域成为环(BrLoop)。这些环又分为外环和内环,外环中所有的边按逆时针排列,内环中所有的边按顺时针排列。边由两个顶点(BrVertex)构成。这样整个B-Rep把三维物体的体、面、环、边、点的信息分层记录,并建立层与层之间的关系。
这些几何和拓扑接口把网格剖分模块和特定的CAD平台彻底分开。当需要在特定CAD平台使用本文的网格剖分程序,只需要在这个平台下实现这些接口,使得网格剖分程序可以根据需要获取相关的信息就可以了。
建立上述的抽象数据类型后,就可针对这些抽象数据类型实现一些常用的算法了。虽然可以把针对特定数据类型的算法作为对象本身的方法(行为)来处理,但是这样设计会带来一些问题:首先是算法的可扩展性,当需要扩展算法的功能或者用新的算法替换现有算法的时候就需要修改现有代码或者重新特化一个子类重载该类的相关算法。这就违反了框架设计的“开-闭”原则和里氏代换原则[2]。一个比较好的方法是采用设计模式中的策略模式来解决这个问题。策略模式是对算法的包装,是使算法的责任和算法本身隔开,委派给不同的对象管理,策略模式通常把一系列的算法包装到一系列的策略类中,作为一个子类,使得它们可以互换。
在不同的CAD平台的下对模型的B-Rep的定义和表达是不同的,在这种情况下可以用适配器模式(Adapter)来实现本文提出了B-Rep接口。因为适配器模式可以使一个可以复用的类与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。这里以Open CASCADE?[15]为例说明其具体实现。
首先实现参数曲线和曲面的相关接口,在Open CASCADE?下分别用Geom_Curve和Geom_Surface表示三维参数曲线和曲面。这里以曲面为例,曲面适配器类示图如图1所示。与曲线和曲面的几何接口类似,对于拓扑信息的接口也可以用适配器模式实现。以拓扑面为例说明其实现。拓扑面的适配器如图2所示,在拓扑面中主要的两个方法是获得对应得参数曲面和面中的环。
图1 曲面适配器UML类图 图2 拓
文档评论(0)