基于Jaumin的等参单元算法框架设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Jaumin的等参单元算法框架设计
摘要:针对等参有限元的计算特点和有限元软件多种单元的开发需求,基于高性能计算程序开发框架Jaumin,使用面向对象语言,采用抽象和多态技术以及工厂模式,为有限元软件PANDA设计等参单元算法框架.该框架具有良好的可复用性及可扩展性,开发过程清晰,有利于提高开发效率.给出等参单元算法框架中各个模块所对应的类以及类的接口. 实例表明用PANDA中已实现的等参单元计算结果与ANSYS的计算结果一致.
关键词:算法框架;复用性;可扩展性;抽象和多态技术;工厂模式;PANDA
中图分类号:TB115文献标志码: A
Abstract:As to the calculation characteristics of isoparametric finite elements and the development requirements of various kinds of elements in finite element software,based on the high performance computing program development framework Jaumin,an algorithm framework of isoparametric element is designed for the finite element software PANDA by abstraction and polymorphism technique and factory pattern using objectoriented language. The framework has good reusability and scalability,of which the development process is
clear and can help to improve development efficiency. The corresponding classes and class interfaces of each module in the framework of isoparametric element algorithm are given. The examples show that the calculation results obtained by the isoparmetric element in PANDA is consistent with the results obtained by ANSYS.
Key words:algorithm framework;reusability;scalability;abstraction and polymorphism technique;factory pattern;PANDA
0引言
近几十年来,结构有限元发展迅速,已经形成成熟的商业软件行业.大型的通用有限元软件有ANSYS,Abaqus和MSC Nastran等,已成功地应用于土木工程、航天航空和机械制造等现代工业的各个方面.Jaumin是中国工程物理研究院开发的用于支持非结构网格的高性能计算程序开发框架,中国工程物理研究院软件中心正在利用该框架开发有限元
分析程序PANDA.等参单元[12]是结构有限元中比较成熟且有效的一类单元模式,作为一种重要的有限元单元模式,其具有推导简单、算法流程规范、边界条件描述容易以及数值积分方便等优点,特别是作为一种自然坐标,可以克服直角坐标导致的方向性问题[3],其应用已经取得巨大的成功,通用或专用有限元软件都对其集成.因此,为PANDA开发自己
的等参单元库十分必要.
等参单元种类繁多,若为PANDA开发等参单元库,在软件开发的角度需考虑程序代码的可复用性和软件的可扩
展性、可维护性,以及软件开发效率和软件代码量,这是开发等参单元库的关键问题之一.[47]为解决此问题,基于Jaumin,针对等参有限元的计算特点,利用面向对象、抽象、多态等技术和工厂设计模式[89],为PANDA设计并开发等参单元算法框架.此框架使得程序的设计思路清晰,同时代码的模块化解决代码的复用性,可有效解决上述关键问题,方便地集成各类等参单元.在此框架上实现多个单元,并用算例表明框架的实用性和有效性.
1等参单元算法
一般来讲,等参单元算法[10]可大致分为6步,以三维单元为例进行说明.
第1步:确定积分方案,即确定积分点个数、积分点坐标和积分权重.
2等参单元算法框架设计
等参单元算法为标准流程,即对于不同的单元类型流程是相同的.除第2步外,流程中所有步骤对不同类型单元都是通用的.不同类型单元第2步的具体实现有所不同,即第2步是个性化的.针对等参元单元算法的这一特点,有必要将单元算法与具体的单元类型进行分离,为此,设计等参单元算法
框架,见图1.
根据计算输入文件所要求的单元动态调用相应的单元进行计算由CTemplateFactory实现.CTemplateFactory使用工厂设计模式[9]:由于添加新的单元算法是开发单元库最频繁的行为,所以使用单独的类完成添加单元算法的过程,就是工厂类.工厂类负责一系列对象的创建,工厂设计模式使类的实例化延迟到扩展类,确切地说,是将创建对象实例的责任转移到工厂类中.根据相应单元算法标识,通过多态,工厂类可实例化合适的单元算法类,即合适的CTemplateBase的扩展类.工厂设计模式的优点是将单元算法与具体的单元形式分离,使得添加新的单元算法无须修改其他的单元算法,提高框架的可扩展性.CTemplateBase的主要接口为:4结束语。

相关文档
最新文档