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

时间:2022-11-08 14:15:06 来源:网友投稿

zoޛ)j馒Zh<Cky设计等参单元算法框架.该框架具有良好的可复用性及可扩展性,开发过程清晰,有利于提高开发效率.给出等参单元算法框架中各个模块所对应的类以及类的接口. 实例表明用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结束语

通过使用面向对象语言、抽象和多态技术以及工厂设计模式,可以方便地实现算法的抽象化和程序的模块化,有利于将共性与个性的特征分离,可提高软件的可复用性、可扩展性和灵活性,也有利于软件的维护.

单元算法框架的优点是使得单元算法库的扩展更加方便,程序开发思路更加清晰.由于将等参单元计算中通用的步骤抽象出来,使得开发不同的单元只需要开发人员开发相应的CTemplateBase扩展类,而不需要修改其他的类,有利于软件开发人员组织协同开发,提高软件开发效率.

本文只是针对小应变等参单元分析,对大应变等参单元,可以在此基础上进行扩充改进.对于非等参单元,也可以根据具体情况在此基础上进行改进或者借鉴此思想另行开发.参考文献:

[1]TAIG I C. Structural analysis by the matrix displacement method,S017[R]. English Electric Aviation Report, 1961.

[2]IRONS B M. Engineering application of numerical integration in stiffness method[J]. Am Inst Aeronautics & Astronautics J, 1966(14): 20352037.

[3]李宏光, 岑松, 龙驭球, 等. 六面体单元体积坐标方法[J]. 工程力学, 2008, 25(10): 1218.

LI Hongguang, CEN Song, LONG Yuqiu, et al. Volume coordinate method for hexahedral elements[J]. Eng Mech, 2008, 25(10): 1218.

[4]张盛, 杨东生, 尹进, 等. SiPESC.FEMS的单元计算模块设计模式[J]. 计算机辅助工程, 2011, 20(3): 4954.

ZHANG Sheng, YANG Dongsheng, YIN Jin, et al. Design pattern of element computation module of SiPESC.FEMS[J]. Comput Aided Eng, 2011, 20(3): 4954.

[5]FORDE B W R, FOSCHI R O, STIEMER S F. Objectoriented finite element analysis[J]. Comput & Structures, 1990, 34(3): 355374.

[6]ARCHER G C, FENVES G, THEWALT C. A new objectoriented finite element analysis program architecture[J]. Comput & Structures, 1999, 70(1): 6375.

[7]曹骥, 袁勇. 面向对象有限元方法研究进展[J]. 力学季刊, 2002, 23(2): 241248.

CAO Ji, YUAN Yong. Development of objectoriented finite element method[J]. Chin Q Mech, 2002, 23(2): 241248.

[8]魏永涛, 于建华, 陈君楷. 面向对象有限元程序设计——基本数据类[J]. 四川大学学报: 工程科学版, 2001, 33(2) : 1721.

WEI Yongtao, YU Jianhua, CHEN Junkai. Objectoriented approach to the finite element programming: basic data class[J]. J Sichuan Univ: Eng Sci, 2001, 33(2): 1721.

[9]GAMMA E, HELM R, JOHNSON R, 等. 设计模式: 可复用面向对象软件的基础[M]. 李英军, 马晓星, 蔡敏, 等, 译. 北京: 机械工业出版社, 2000: 7077.

[10]王勖成. 有限单元法[M]. 北京: 清华大学出版社, 2003: 131152.(编辑武晓英)

推荐访问:算法 框架 单元 设计 Jaumin