Python语言在ABAQUS中的应用

时间:2022-08-25 05:07:10

Python语言在ABAQUS中的应用

【摘 要】采用python脚本语言二次开发ABAQUS,通过开发python脚本程序处理ABAQUS重复工作,提高了工作效率。

【关键词】Python;ABAQUS;交换输入;函数

引言

ABAQUS是大型通用的有限元分析软件,可以模拟绝大部分工程材料的线性和非线,获得了广大用户的认可,在建筑结构分析领域应用广泛。

Python是一种面向对象的脚本语言,,该语言已经诞生20余年,它的简洁性和易用性使程序的开发过程变得简单,特别适用于快速应用开发。在此介绍一下编写脚本快速建模。

编写Python脚本快速建立模型是ABAQUS高级用户经常使用的功能之一。例如,在Abaqus/CAE中建模时需要反复输入各种参数和设置多个对话框,编写脚本只需要几条语句就可以实现。如果经常建立相同或类似模型,还可以编写独立的模块,还可以编写脚本创建材料库,运行Python脚本后Material Manager将自动出现定义的材料。在此介绍3种最常用的快速建立模型的方法,包括交互式输入、创建材料库。

1.交互式输入

交互式输入直接指定模型参数,而无需在Abaqus/CAE下选择多个菜单、多个按钮,可以节省许多建模时间。Abaqus脚本接口提供3种交互式输入函数,分别是:getInput()函数、getInputs()函数和getWarningReply ( )函数,详细介绍参见Abaqus 6.10帮助手册《Abaqus Scripting User’s Manual》第6.7节“Prompting the user for input”和

GetInput()函数

脚本getInput.py将调用getInput()函数自定义输入参数,开平方根运算后输出计算结果。程序测试代码如下:

from abaqus import *

from math import sqrt

input=getInput('please enter a number ','9')

number=float(input)

print sqrt(number)

GetInputs()函数

脚本getInputs.py将调用getInputs()函数自定义输入并输出数据信息,代码如下:

from abaqus import *

x=getInputs((('please enter the first number ','2'),

('please enter the second number','5'),

('please enter the third number','8')))

print x

GetWarningReply ( ) 函数

脚本getWarningReply.py将调用get Warning Reply ( ) 函数来创建警告对话框。代码如下:

from abaqus import *

from abaqusConstants import *

reply = get Warning Reply (message =' Would you like to close the window?', buttons=(YES,NO))

if reply == YES:

print ' clicked YES'

elif reply == NO:

print ' clicked NO'

2.创建材料库

采用Abaqus进行动力弹塑性分析的过程中,每个几何模型都要重复输入某些参数,因此采用python创建材料库后,使用时只需导入该模块即可。虽然Python脚本功能强大,但它的缺点是代码行较长。如果手工编写Python脚本将非常困难,利用Abaqus生成的各种文件来修改或添加代码是编写脚本的常用方法。如下为自定义材料库脚本:material_library.py:

from abaqus import *

from abaqusConstants import *

def add_SI_Materials():

"""

Add Steel, Copper, Aluminum in SI units

"""

import material

name = getInput('Enter model name',mdb. models.keys()[-1])

if not name in mdb.models.keys():

raise ValueError, 'mdb.models[%s] not found'%repr(name)

m = mdb.models[name].Material('Steel')

m.Elastic(table=((200.0E9, 0.3), ))

m.Plastic(table=((400.E6, 0.0), (420.E6, 0.02),

(500.E6, 0.2), (600.E6, 0.5)))

m.Density(table=((7800.0, ), ))

m=mdb.models[name].Material('Copper')

m.Elastic(table=((110e9,.3),))

m.Plastic(table=((314e6,0),))

m.Density(table=((8970,),))

m=mdb.models[name].Material('Aluminum')

m.Elastic(table=((70.0E9, 0.35), ))

m.Plastic(temperatureDependency=ON, table=((270e6,0,0),

(300e6,1.0,0),(243e6,0,300),(270e6,1.0,300)))

m.Density(table=((2700,), ))

add_SI_Materials()

3.结束语

通过本文分析,主要得到以下结论:

(1) 提出对ABAQUS的二次开发,利用ABAQUS脚本和Python语言,进行快速建模,提高ABAQUS分析问题能力。

(2)通过使用编制的Python脚本程序可以更快更有效的建立结构计算模型。

参考文献

[1]曹金凤 王旭春 孔亮:《Python语言在Abaqus中的应用》, 机械工业出版社;

[2]石亦平:《ABAQUS有限元分析实例详解》,机械工业出版社;

[3]Abaqus6.10HTMLDocumentation/Documentation/Documentation/AbaqusScriptingUser’ sManual

上一篇:高层建筑新材料的选择及其在节能设计中的应用 下一篇:浅谈施工企业预算和报价技巧