基于ABAQUS的橡胶垫隔震支座单元二次开发
- 格式:pdf
- 大小:624.06 KB
- 文档页数:12
Abaqus/CAE二次开发功能与应用实例作者:黄霖来源:《计算机辅助工程》2011年第04期摘要:为实现复杂的有限元前后处理功能,介绍基于Abaqus/CAE进行内核脚本和GUI 的程序开发,并阐述这两种开发方式的特点和相互关系.用双动拉深杯形件和汽车覆盖件两个实例说明Python和Abaqus GUI Toolkit在Abaqus/CAE二次开发中的应用;通过二次开发实现将CFD计算得到的热边界条件向实体单元网格模型表面映射的功能.对开发过程和程序流程进行的详细描述可为用户进行Abaqus/CAE二次开发提供参考.关键词: Abaqus/CAE;二次开发;有限元;前处理;后处理; Python中图分类号: TB115.1; TP391.7文献标志码: BSecondary development functions and applications ofAbaqus/CAEHUANG Lin(Shanghai Office, DS SIMULIA Co., Shanghai 200120, China)Abstract: To implement complex finite element pre-processing and post-processing functions, the program development of kernel script and GUI based on Abaqus/CAE is introduced with their characteristics and correlation. The application of Python and Abaqus GUI Toolkit in secondary development of Abaqus/CAE is described by the samples of double-action deep drawing cup-shaped parts and automotive panel; the function of mapping thermal boundary conditions obtained by CFD software calculation to surface of solid element mesh model is implemented by secondary development. The detailed introduction of development process and programming flow can provide reference for user’s secondary development based on Abaqus/CAE.Key words: Abaqus/CAE; secondary development; finite element; pre-processing; post-processing; Python0引言Abaqus是国际上先进的大型通用有限元软件之一,具有丰富的、可模拟任意几何形状的单元库及各种类型的材料模型库,能解决结构、传热、热-固耦合、质量扩散、热-电耦合、声学、岩土力学和压电介质等的线性与非线性复杂问题.Abaqus/CAE作为Abaqus自带的有限元前、后处理程序,全面支持其分析功能,为用户提供图形化的建模、分析和后处理等人机交互平台.同时,Abaqus/CAE建立在开放、可拓展的平台上,用户可以将成熟的工作流程通过多种途径的二次开发,形成命令脚本和图形化用户操作界面,实现有限元分析前、后处理的流程化和自动化处理.基于Python的Abaqus自动化前、后处理二次开发已应用于诸多领域,如钣金成形[1-2],复合材料构件设计与工艺仿真[3-5]以及其他自动化建模分析应用[6-9].Abaqus/CAE的前、后处理二次开发功能基于Python语言实现.Python是功能强大的面向对象、直译式程序设计语言,具有语法简洁清晰、内置模块库丰富、可扩展性强以及跨平台移植性好等优点.此外,由于对C/C++的良好支持,Python也可作为一种“胶水语言”(glue language)使用,即使用C++或FORTRAN编写执行性能要求高的程序,并使用Python进行集成和封装.该优点对需作大规模数据处理的有限元前、后处理应用显得尤为可贵.[9]1Abaqus/CAE二次开发基础介绍Abaqus/CAE的前、后处理二次开发包含内核脚本程序(Scripting)开发和GUI程序开发2种方式.1.1Abaqus/CAE内核脚本程序开发Abaqus/CAE会将用户在Abaqus/CAE图形界面中进行的各种操作转化成内核命令解释执行,因此可将需要多次重复执行的一系列繁杂的前、后处理操作过程编写成Abaqus/CAE内核脚本程序,用户只需执行该脚本并设定相应参数,就能快捷、方便地完成同一前、后处理流程的多次重复操作.Abaqus/CAE内核脚本采用Python语言.针对Abaqus的具体应用,对Python进行扩展,增加500多个新的类模型.这些类模型关系复杂,总体上可分为mdb,odb和session等3大类,分别对应于分析模型数据库、计算结果数据库和图形显示界面元素,见图1.内核脚本程序的执行最终以完成对Abaqus对象的各种操作来实现各种前、后处理功能.程序开发Abaqus/CAE GUI程序开发为用户提供一个交互式的图形操作界面,方便用户进行相关操作,其最终目的仍是通过执行Abaqus/CAE内核命令实现复杂的有限元前、后处理流程.Abaqus/CAE GUI界面与内核命令之间的交互方式见图2.Abaqus/CAE的图形界面库是在FOX Toolkit的基础上扩充形成的.在编写Abaqus/CAE GUI 程序时,以FX开头命名的类是FOX Toolkit自身包含的类,以AFX开头命名的类是Abaqus 扩充的类.2Abaqus/CAE二次开发实例2.1钣金成形切边线逆求插件在应用Abaqus/Explicit进行钣金成形仿真分析后,常需要进行切边回弹分析并将成形过程引入的残余应力、塑性应变和厚度减薄等应用于结构分析.处理这两类问题的难点在于:(1)钣金零件成形后需要切边,会使零件外形发生变化.但是,切边线与用于成形仿真的网格通常相互交叉,因此需精确地确定出切边后零件的外形轮廓并进行网格重新划分,同时将成形仿真结果映射到新的网格单元上.(2)用于结构分析的单元尺寸通常比用于成形仿真的单元尺寸大许多,因此也涉及网格重新划分和计算结果映射的问题.针对以上2点,可采用如图3所示的流程进行分析.其中,步骤1和4均为常规建模仿真技术,而步骤2和3所需的功能可通过Abaqus/CAE二次开发实现.采用Python与C++相结合的方式进行该插件的开发:Python与Abaqus/CAE二次开发接口相配合,实现模型数据的输入/输出和几何模型划分等操作;算法中涉及的映射搜索算法采用执行效率较高的C++代码实现;Pyhton与C++之间采用二进制临时数据文件进行大规模数据交换传递.插件的GUI界面见图4,用户需指定钣金成形仿真结果数据文件(odb文件)及其中的板料零件表面、板料原始几何模型、各条切边线及切边方向,软件即可根据成形过程逆求切边线,将逆求得到的切边线向板料原始几何模型映射,并使用映射所得曲线对毛料平面进行剖切.算例1双动拉深杯形件.如图5所示,使用所开发的插件分析处理某双动拉深杯形件.由成形后的零件、切边线以及初始毛料逆求出切边线在初始毛料上的位置和形状并剖切毛料,以便重新划分网格;然后,应用Abaqus/Standard的submodel技术加载边界条件并进行计算,以获得成形过程中在实际零件上形成的残余应力和厚度硬化等参数的分布情况,结果见图6,可知,经过切边、网格重新划分和重新加载计算后,实际零件上的应变、板厚分布均与成形计算结果一致.算例2某汽车覆盖件.在完成某汽车覆盖件冲压成形分析后,需将成形后的残余应力、塑性应变和厚度分布等映射到切边后的零件网格模型上.在对该零件进行切边线逆求时,需同时逆求零件上一些主要的特征线,保证在其后的网格划分中能在这些特征线上散布节点,以达到精确控制网格质量的目的.图7所示为逆求切边线/特征线以及采用submodel计算得到的零件形状与切边线/特征线的对比,可知,利用本文所开发的插件既可以精确逆求零件的切边线,又可以精确逆求几何特征线.图8为成形分析与切边重新计算后,零件上塑性应变、板料厚度分布的对比,二者的结果高度一致.2.2热边界条件映射插件在发动机排气歧管的热应力分析中,通常先采用CFD软件对排气歧管内流场进行分析,以获得排气歧管内壁上的温度分布和换热系数分布,然后将这些热边界条件加载于排气歧管内表面,即可计算得到排气管内部的温度分布和温差引起的热应力分布情况.某发动机厂商在使用AVL-Fire进行发动机排气歧管内流场分析后,由于AVL-Fire仅支持将热边界条件映射到壳单元,不能直接映射到排气歧管有限元网格模型的实体单元表面.因此,需要先将AVL-Fire的计算结果映射到与排气歧管内表面相一致的壳单元上,再进行大量的手动操作,以将壳单元上的温度和换热系数数据加载到相应的排气歧管实体单元模型内表面上,费时费力.仍然采用Python与C++相结合的方式,开发一套能将壳单元上的热边界条件映射到排气歧管实体单元模型内表面上的Abaqus/CAE插件.该插件的工作流程见图9.其中,前期的数据准备和最后的建模工作由Python结合Abaqus/CAE的二次开发接口实现,而对大量单元面片进行遍历搜索的计算由效率较高的C++代码完成.开发的用户图形界面及需要用户选取与设定的参数见图10.其中,用户可对最近单元搜索容差Mapping Tolerance进行设置,当设计人员对排气歧管的几何形状进行少量调整后,可将该容差设为一个较大值,但仍能使用之前CFD计算得到的热边界条件进行映射计算.采用某款排气歧管模型对本插件的功能及映射效率进行验证,见图11(a).该排气歧管模型采用四面体单元划分,内表面包含25 144个单元面片,与用于AVL-Fire进行热边界条件分析的表面相比略有修改.在某台普通PC机上应用该插件,仅用103s就完成整个排气歧管内表面温度、换热系数的映射.在映射结果基础上进行稳态传热分析,得到排气歧管温度分布,见图11(b).3结束语(1)对Abaqus/CAE的二次开发功能进行介绍,对于单一固定的功能可采用内核脚本程序形式进行开发;对于需要进行较多交互操作才能完成的功能,则采用GUI程序的形式进行开发.另外,对于需要进行大量数值运算的问题,可采用Python与C++和FORTRAN等编译执行语言相结合的形式进行开发,提高程序的执行效率.(2)结合开发实例对利用二次开发接口在Abaqus/CAE基础上详细介绍实现某些复杂的前、后处理功能,为用户进行Abaqus/CAE前、后处理功能二次开发提供参考.参考文献:[1]郭玲, 杨合, 邱晞, 等. 基于Python的Abaqus后处理研究开发及其在薄壁管数控弯曲中的应用[J]. 塑性工程学报, 2007, 14(5): 32-37.GUO Ling, YANG He, QIU Xi, et al. Study and development on the application of Abaqus post-process in thin-walled tube NC bending based on Python[J]. J Plasticity Eng, 2007, 14(5): 32-37.[2]石庆华, 曹正华, 丁立民. 基于Python复合材料多加筋整体构件Abaqus前处理二次开发[J]. 航空制造技术, 2009(S1): 36-39.SHI Qinghua, CAO Zhenghua, DING Limin. The secondary development of Abaqus pre-process for composites stiffened structures based on Python[J]. Aeronautical Manufacturing Technol, 2009(S1): 36-39.[3]宋岩新, 杨庆, 唐小微, 等. Abaqus后处理二次开发在海底管线稳定性分析中的应用[J]. 中国海洋平台, 2008, 23(4): 18-22.SONG Yanxin, YANG Qing, TANG Xiaowei, et al. The application of Abaqus post-process secondary development in the stability analysis of submarine pipelines[J]. China Offshore Platform, 2008, 23(4): 18-22.[4]吴向东, 刘志刚, 万敏, 等. 基于Python的Abaqus二次开发及在板料快速冲压成形模拟中的应用[J]. 塑性工程学报, 2009, 16(4): 68-72.WU Xiangdong, LIU Zhigang, WAN Min, et al. Study and development on the application of Abaqus in the sheet metal rapid forming simulation based on Python[J]. J Plasticity Eng, 2009,16(4): 68-72.[5]马野, 许希武, 宁晋建. 基于Abaqus裂纹自动扩展二次开发及分析[J]. 飞机设计, 2009, 29(1): 21-24.MA Ye, XU Xiwu, NING Jinjian. Second-developed program about crack growth simulation and analysis based on Abaqus[J]. Aircraft Des, 2009, 29(1): 21-24.[6]鲍荣浩, 卢文浩. Abaqus前处理程序二次开发在蜂窝材料中的应用[J]. 工程设计学报, 2003, 10(6): 330-333.BAO Ronghao, LU Wenhao. Application of second-developed Abaqus Pre-process on honeycomb[J]. J Eng Des, 2003, 10(6): 330-333.[7]王家林, 李平. Abaqus箱型桥梁的GUI二次开发[J]. 重庆交通大学学报: 自然科学版, 2009, 28(6): 1000-1004.WANG Jialin, LI Ping. Secondary development for GUI of box girder bridge based on Abaqus [J]. J Chongqing Jiaotong Univ: Nat Sci, 2009, 28(6): 1000-1004.[8]章继峰, 王振清, 周健生, 等. 基于Python-Abaqus复合材料代表性体积元的数值模型[J]. 宇航材料工艺, 2009, 39(3): 25-29.ZHANG Jifeng, WANG Zhenqing, ZHOU Jiansheng, et al. Numerical modeling of composite Representative Volume Element (RVE) based on Python-Abaqus[J]. Aerospace Mat & Technol, 2009, 39(3): 25-29.[9]LUTZ M, ASCHER D. Learning Python[M]. 2nd ed. Queensland: O’Reilly, 2003: 4-16.(编辑于杰)。
第9章 ABAQUS二次开发基础知识要点:;ABAQUS二次开发概述;ABAQUS用户子程序接口;ABAQUS用户子程序介绍;应用举例本章导读:本章主要介绍了大型有限元软件ABAQUS二次开发的基本情况,主要包括:ABAQUS二次开发概述、ABAQUS用户子程序接口、ABAQUS用户子程序介绍等,最后给出两个算例,介绍采用ABAQUS进行二次开发以及建立ABAQUS主程序与用户子程序之间口的基本过程。
9.1 ABAQUS二次开发概述随着计算技术和计算机的快速发展,有限元软件的发展速度迅速,功能日渐强大。
目前国际上被广泛采用的通用有限元软件有 ANSYS、MSC、ABAQUS 等。
利用商业软件进行计算现在已是科学研究中的一项重要手段。
由于工程问题的千差万别,不同的用户有不同的专业背景和发展方向,通用软件不免在具体的专业方面有所欠缺,针对这些不足,大部分的通用软件都提供了二次开发功能,以帮助用户减少重复性的编程工作、提高开发起点、缩短研发周期、降低开发成本,并能简化后期维护工作,给用户带来很多方便。
基于通用软件平台进行开发,是目前研究的一个重要发展方向。
ABAQUS 也提供了若干用户子程序(User Subroutines)接口,它是一个功能非常强大且适用的分析工具,与命令行的程序格式相比,用户子程序的限制少得多,从而使用更加灵活方便。
ABAQUS不仅提供标准的有限元分析程序,而且具有良好的开放性,可利用它提供的用户子程序接口生成非标准的分析程序来满足用户的需要,在实际工程中得到广泛应用。
ABAQUS 允许用户通过子程序以代码的形式来扩展主程序的功能,并给用户提供了强大而又灵活的用户子程序接口和应用程序接口(Utility Routine),ABAQUS共有42个用户子程序接口,15个应用程序接口,用户可以定义包括边界条件、荷载条件、接触条件、材料特性以及利用用户子程序和其它应用软件进行数值交换等等。
Abaqus 使用FQA:Q: abaqus的图形如何copy?A: file>print>file格式为png,可以用Acdsee打开。
Q: 用Abaqus能否计算[Dep]不对称的问题?A: 可以,并且在step里面的edit step对话框other里面的matrix solver有个选项。
Q: 弹塑性矩阵【D】与ddsdde有何联系?A: stress=D*stran;d(stress)=ddsdde*d(stran)。
Q: 在abaqus中,如果采用umat,利用自己的本构,如何让abaqus明白这种材料的弹塑性应变,也就是说,如何让程序返回弹性应变与塑性应变,好在output中输出,我曾想用最笨地方法,在uvarm中定义输出,利用getvrm获取材料点的值,但无法获取增量应力,材料常数等,研究了帮助中的例子,umatmst3.inp,umatmst3.for,他采用mises J2 流动理论,我在output history 显示他已进入塑性状态,但他的PE仍然为0!!?A: 用uvar( )勉强成功。
Q: 本人在用umat作本构模型时,*static,1,500,0.000001,0.1 此时要求的增量步很多,即每次增量要很小,*static1,500 时,在弹性向塑性过度时,出现错误,增量过大,出现尖点.?A: YOU CAN TRY AS FOLLOWS:*STEP,EXTRAPOLA TION=NO,INC=2000000*STA TIC0.001,500.0,0.00001,0.1。
Q: 模型中存在两个物体的接触,计算过程中报错,怎么回事?A: 接触问题不收敛有两个方面不妨试试:一、在*CONTACT PAIR 里调试ADJUST参数;二、调一些模型参数,比如FRICTION等。
Q: 在边界条件和加载时,总是有initial这个步,然后是我们自己定义的加载步,请问这个initial步,主要作用是什么?能不能去掉?A: 不能去掉,所有的分析都有,是默认的步。
ABAQUS(Python语言)二次开发人生苦短,我用Python作者:Fan ShengbaoPython2.72017年12月目录第一章Python程序基本语法 (1)1.1Python语法结构 (1)1.2Python元组 (1)1.3Python列表 (1)1.4Python字典 (2)1.5Python集合 (3)1.6Python字符串 (3)1.7Python分支语句 (4)1.8Python循环语句 (5)1.8.1for循环 (5)1.8.2while循环 (5)1.9Python定义函数 (5)1.10Python模块 (6)1.11Python包 (7)1.12Python文件和目录 (7)1.12.1目录操作 (7)1.12.2文件操作 (7)1.13Python异常处理 (8)第二章ABAQUS/Python二次开发 (9)2.1ABAQUS执行Python程序 (9)2.2编写ABAQUS/Python程序 (10)2.3ABAQUS录制Python程序 (10)2.4ABAQUS/Python对象介绍 (11)2.4.1 session对象 (11)2.4.2 mdb对象 (11)2.4.3 odb对象 (13)2.5ABAQUS完整二次开发示例 (14)2.6ABAQUS二次开发常用函数 (16)2.6.1 Part模块常用函数 (16)第一章Python程序基本语法1.1Python语法结构Python语言以缩进来约束每个程序块,编写程序时要特别注意每一行的缩进量,同一层次的语句应具有相同的缩进量。
下面是一段Python程序示例:#-*- coding:utf-8 -*-for i in range(1,10):for j in range(1,i+1):print str(j)+'x'+str(i)+' = '+str(i*j),print该段程序主要功能是实现乘法口诀表输出打印,其中“#-*- coding:utf-8 -*-”是约定文档的编码方式。
ABAQUS(Python语言)二次开发人生苦短,我用Python作者:Fan Shengbao2017年12月目录第一章 Python程序基本语法 (1)1.1 Python语法结构 (1)1.2 Python元组 (1)1.3 Python列表 (2)1.4 Python字典 (3)1.5 Python集合 (3)1.6 Python字符串 (4)1.7 Python分支语句 (5)1.8 Python循环语句 (5)1.8.1for循环51.8.2while循环51.9 Python定义函数 (6)1.10 Python模块 (7)1.11 Python包 (7)1.12 Python文件和目录 (7)1.12.1 目录操作 (7)1.12.2 文件操作 (8)1.13 Python异常处理 (8)第二章 ABAQUS/Python二次开发 (9)2.1 ABAQUS执行Python程序 (9)2.2 编写ABAQUS/Python程序 (10)2.3 ABAQUS录制Python程序 (10)2.4 ABAQUS/Python对象介绍 (11)2.4.1 session对象 (11)2.4.2 mdb对象 (11)2.4.3 odb对象 (13)2.5 ABAQUS完整二次开发示例 (14)2.6 ABAQUS二次开发常用函数 (16)。
2.6.1 Part模块常用函数 (16)3ABAQUS(Python语言)二次开发教程第一章 Python程序基本语法1.1Python语法结构Python语言以缩进来约束每个程序块,编写程序时要特别注意每一行的缩进量,同一层次的语句应具有相同的缩进量。
下面是一段Python程序示例:#-*- coding:utf-8 -*-for i in range(1,10):for j in range(1,i+1):print str(j)+'x'+str(i)+' = '+str(i*j),print该段程序主要功能是实现乘法口诀表输出打印,其中“#-*- coding:utf-8 -*-”是约定文档的编码方式。
Abaqus⼆次开发介绍ABAQUS提供了两种⼆次开发的接⼝,⼀是⼦程序接⼝(user subroutine),⼀种是脚本接⼝(Abaqus scripting interface),Abaqus的脚本语⾔是在python语⾔的基础上进⾏的定制开发,它扩充了python的对象模型和数据类型,使Abaqus脚本接⼝的功能更加强⼤,⼀般来说,Abaqus脚本接⼝可以实现以下功能①创建、修改ABAQUS模型中的属性,如部件、材料、荷载和分析步等②创建、修改和提交分析作业③读取和写⼊ABAQUS输出数据⽂件④查看分析结果Abaqus中python脚本的通信关系如下图所⽰从图中可以看出,ABAQUS可以通过三种⽅式运⾏脚本⽂件(1)GUI。
Abaqus在采⽤GUI进⾏建模的同时,会⽣成⼀个rpy格式的脚本⽂件。
当然,也可以通过macro管理器录制⼀段宏命令(2)命令⾏。
在abaqus CAE界⾯底端的命令⾏键⼊python命令,点击回车后即可⾃动运⾏。
(3)编辑脚本⽂件。
预先编辑好脚本⽂件,在start session 对话框或者file按钮⾥选择run script运⾏脚本。
也可以在ABAQUS command窗⼝中键⼊命令运⾏脚本Abaqus cae script=myscript.pyAbaqus cae startup=myscript.py启动CAE界⾯并运⾏脚本Abaqus viewer script=myscript.pyAbaqus viewer startup=myscript.py启动Viewer并运⾏脚本Abaqus cae noGUI=myscript.pyAbaqus viewer noGUI=myscript.py不启动CAE或者Viewer运⾏脚本此外,ABAQUS也提供了⼀个python编译器,可以通过file→abaqus pde运⾏详细的python命令,⼤家可以通过帮助⽂件中的Abaqus Scripting Reference Guide进⾏查看。
abaqus-python二次开发方法(超实用)基于的二次开发对于很多新手来说都是一个神秘的,感觉是高难度的问题,致使很多新手对二次开发的研究都处于初级了解阶段,或完全不感冒阶段。
其实二次开发很简单,某种意义上讲,常用的ABAQUS二次开发方式有两种,(1)直接修改inp文件,这种方式需要对inp文件中大量的节点和单元进行操作,一般不建议采用inp文件进行二次开发(除非有特殊的关键字或标识符,其实关键字也可以用python语言来进行二次开发,笔者亲证)。
采用inp文件进行二次开发数据量大,行数多,一旦发生问题难以检测错误原因(2)采用abaqus语言,自编脚本,简单容易,非常适合初学者。
这里主要介绍python入门python语言的开发远没有想象中的难,其实基于abaqus语言的二次开发更像是word或excel里的VBA,我们只要通过录制一段宏文件,就可以简单迅速的完成一个模型的建立,当我们人为的对这段宏文件进行修改,就可以完成对该模型的修改,非常适合有大量相同或类似模型的建立,防止用户一遍又一遍繁琐的建模操作。
简单的步骤如下:1.在建模前先打开file--Macro Manager,然后新建一个宏文件(在Home或Work都行,只要你最终能找到这个文件),此时会弹出Record Macro对话框,托至不碍事的地方2.进行正常的cae建模就行,至到建模完成3.点击Record Macro对话框的Stop Mecording,此时命令栏会显示“Macro "Macroname" has been added to "E:\Temp\Macroname.py"”,前期任务搞定4.此时用文本编辑器打开此py文件,py文件中有些文字是没有用的,把“def Macro1 ...import connectorBehavior”都可以删掉,每行字前的空格都要去掉(文本编辑器里一般有列模式,用列模式可以对整个文本的进行操作)5.复制你新生成的python文件,并对该文件中的参数进行修改,在提交给abaqus--cae就可以完成重复建模了,如此可以无限重复,其实python语言都是大白话,你能看懂的需要指出的是:1.可以结合其它编程语言如VB、VC 配合修改参数并生成py文件,使用更为灵活2.生成py文件可以直接在cae中选择file-run script,选择你生成的python文件3.可以用python文件直接生成cae模型文件,可在py文件最后添加"mdb.saveAs(pathName='" *** "')"4.可以通过cmd命令直接将py文件提交个abaqus内核,让abaqus进行运算,cmd命令为“Shell"C:\Windows\SysWOW64\cmd.exe /k abaqus cae noGUI=" **** ".py ", vbHide等待abaqus运算的py语言"myJob.submit(consistencyChecking=OFF, datacheckJob=True)"。
第33卷增刊2013年12月防灾减灾工程学报Journal of Disaster Prevention and Mitigation EngineeringVol.33Suppl.Dec.2013ABAQUS后处理二次开发在结构弹塑性分析中的应用*滕 军1,2,张 何3,李祚华2(1.福建工程学院,福州350108;2.哈尔滨工业大学深圳研究生院,广东深圳518055;3.中铁第四勘察设计研究院集团有限公司,武汉430063)摘要:在弹塑性分析的后处理阶段,通常需要依托大量的分析结果数据对结构进行抗震性能评价,而目前通用有限元软件ABAQUS的后处理功能无法详细提供结构设计过程中所需的数据。
为高效、准确的提高结构大震弹塑性分析的效率,节省工程人员在后处理分析时所花费的时间和精力,利用面向对象的脚本语言Python对有限元软件ABAQUS进行了二次开发,实现层间位移角和结构损伤指标的自动计算,并将计算结果以曲线方式输出。
文中讨论了ABAQUS自定义功能内核脚本的编写方法和图形用户界面开发的基本方法和流程,分析了插件程序开发中的问题及解决措施,并通过两个算例验证开发插件的正确性。
关键词:ABAQUS/CAE;GUI程序开发;后处理;结构损伤分析中图分类号:TU311.41 文献标识码:A 文章编号:1672-2132(2013)增刊-0009-06The Application of Secondary Development of Post-processingof ABAQUS in Structural Elastoplastic AnalysisTENG Jun1,2,ZHANG He3,LI Zuo-hua2(1.Fujian University of Technology,Fuzhou 350108,China;2.Shenzhen Graduate School Harbin Institute of Technology,Shenzhen 518055,China;3.China Railway Siyuan Survey and Design Group Co.Ltd,Wuhan 430063,China)Abstract:After calculation and analysis by ABAQUS,data such as inter-story drift angle anddamage index should be extracted to evaluate seismic performance of the structure.The basicpost-processing function of ABAQUS usually can not provide the result data for structure designin the elastoplastic analysis.In order to improve the accuracy and efficiency of elastoplastic analy-sis,this paper conducted secondary development based on ABAQUS using Python.The Python,the scripting language of ABAQUS,can realize the automatic processing of inter-story drift angleand structural damage value.Two basic methods for secondary development of ABAQUS and de-sign flow of plug-in program were introduced in this paper,and the correctness of the plug-inprogram for inter-story drift angle and structural damage evaluation was verified by two exact ex-amples.Key words:ABAQUS/CAE;GUI program development;post-processing;structural damageanalysis*收稿日期:2013-05-10;修回日期:2013-09-04基金项目:国家自然科学基金项目(50938001、51008048)资助作者简介:滕 军(1962-),男,教授,博导。