当前位置:文档之家› Abaqus二次开发

Abaqus二次开发

Abaqus二次开发——Abaqus/python入门体会入门实例#===========================================================自己的论文要用到有限元进行数值模拟分析,以前都用ansys计算,可ansys中岩土的本构模型只有D-P模型,无法准确的反映土的硬化/软化性质,模拟计算出的结果因此也和实际差别很大。

Abaqus有着丰富的材料模型,超强的非线性分析能力,岩土的模型也很多,因此才转学Abaqus。

Abaqus的cae建模功能还是很好的,但科研课题一般都要进行参数分析,采用cae的建模方法有些不切实际,学了没几天就放弃cae开始学习inp,也是学了一阵子才知道inp不能建立实体模型,只能直接建节点和单元。

复杂的模型inp也无法建立,但采用Python建模就可以解决这个问题。

由于Abaqus的学习资料不多,过了好些日子才知道Abaqus也可以采用Python语言进行建模计算,只是比Ansys的Apdl语言复杂得多,并且除了手册上的Script资料之外,没有较为系统的教程,刚一接触真是让人头痛。

通过查看Simwe论坛上关于Python的帖子,和论坛朋友的帮助,自己在慢慢积累,现在对Python有了一点点了解,算是入了个门。

接触Abaqus也没多久,对python更是一知半解,绝大多数地方根本都不清楚,抽空写一点认识体会主要是给像自己一样刚学习Abqus Python的朋友,能少走一些弯路,节约一些时间。

同时希望大家批评指正、共同讨论、补充。

#--------------------------------------------------------------------------------------------------学习Abaqus/Python基础:Abaqus的cae建模有比较全面的认识;了解一些Python语法知识(大家都不会有太多时间单独学习Python语言本身,只需要有概念了解即可,不懂的地方可以随时查询Python script手册)Abaqus/Python学会使用不太难,可要精通应用还是要付出一定的劳动。

大家所分析的课题专业不同,方向也千差万别,所用到的Abaqus的功能也就有很大的差别,能对自己的工作领域熟练应用就算成功。

Abaqus毕竟只是软件,如何考虑专业知识成功建模才是最困难的。

#--------------------------------------------------------------------------------------------------1. Python与Abaqus2. Abaqus/Python结构3.模型参数分析技巧4.几个命令的体会5.一个Abaqus/Python例子#--------------------------------------------------------------------------------------------------#===========================================================1. Python与Abaqus1.1 Python简介Python是面向对象的语言。

面向对象的语言自己的理解为:语言本身已经定义了许多固定模块,如数学函数、对显示模式的控制、一些对话框的编写等等程序模块,只需要按照程序的指定格式填空即可完成既定任务,格式相对比较固定,因此语言格式看起来非常繁琐,但方便实用能够大量节约程序员的时间。

面向对象语言的使用方式可以比喻为:一棵树分为树干、树枝、细枝和树叶等部分,你要是想得到一个确定位置的树叶(且具大小等属性)只有一个路径可以走即树干-树枝-细枝-树叶,换成面向对象的格式为树干.树枝.细枝.树叶(树叶片数或大小等属性)。

以下是abaqus中Python的一般格式,这些格式都是固定的,我们只需要改变其中的参数即可:mdb.models['Model-1'].ConstrainedSketch(name='__profile__', sheetSize=0.3)s = mdb.models['Model-1'].ConstrainedSketch(name='__profile__', sheetSize=0.3) s.sketchOptions.setValues(decimalPlaces=3, viewStyle=AXISYM)s.setPrimaryObject(option=STANDALONE)s.ConstructionLine(point1=(0.0, -100.0), point2=(0.0, 100.0))Python有着较强的逻辑控制语句如if、for、while等,可以通过循环或条件等语句把复杂且重复的操作变得简单易于操作,也是用参数化编程较cae的最大优势。

1.2 如何学abaqus Python 命令Abaqus 是采用Python语言编制而成,在cae中所有的操作都可以通过Python脚本命令完成(注:好像Python并不能完全取代inp文件,一些材料属性的参数好像要用inp才能赋值)。

☆学会用python reader程序Abaqus cae可以自动生成python文件,存放在工作目录的 abaqus.rpy 文件中,每一步c ae操作都会产生相应的python命令。

可以通过simwe网友ck436ck436 编写的python rea der程序实时读取产生的命令,反复揣摩、领会每个命令,很快就会有所提高,对python 的命令有所领悟。

与cae建模相同,Python建模也分为:part、property、assembly、step、ineraction、l oad、mesh、job等模块,具体每个模块中的建模命令可参考Python reader读取的命令学习,我们只需去记忆常用的Python命令。

以下是python reader程序下载地址。

/viewthread.php?tid=808007&highlight=Python/group/ck436goooglemail/files☆通过修改abaqus.rpy建立自己的脚本文件是一条捷径1.3 Abaqus/Python学习资料关于Python的学习资料非常多,如Swaroop, C.H.著沈洁元译的《简明 Python 教程》就是很好的参考资料。

王纯业的《Python学习笔记》也不错,simwe论坛可以下载到。

另外就是Abaqus手册:Abaqus Scripting User's ManualAbaqus Scripting Reference ManualGetting Started with Abaqus: Interactive EditionAbaqus手册真是冗长,只能是根据自己的课题有选择的查阅。

#===========================================================2. Abaqus/Python结构Abaqus的object model分为session、mdb和odb三个objects,session为视图模块、md b为模型数据模块、odb为数据输入输出模块。

每个object下面又有很多命令分支,直到执行到所需要的具体命令。

以下各图选自Abaqus Scripting User's Manual,更多书面的的解释可以参考abaqus手册。

每个object都像一棵树,要执行某个命令就需要按照python的面向对象的格式进行。

例如:cell4 = mdb.models['block'].parts['crankcase'].cells[4],要把part模块中编号为4的体赋值给cell4,就需通过路径mdb→models→part→cells(4号体属性),其中'block'、'crankcase'、分别是model和part的名字。

在草图Sketch中画线:s = mdb.models[' block '].ConstrainedSketch(name='grid',sheetSize=3.0)s.Line(point1=(-1.275, 0.0), point2=(-1.125, 0.0))s.Line(point1=(1.125, 0.0), point2=(1.275, 0.0))执行任何一条命令都必须按照结构树的格式进行操作。

我们所看到的python脚本繁杂的语句就是这样形成的。

这样大量的命令不能在短时间内掌握,我们只需要根据自己的需要边建立模型边学习就可以了。

a = mdb.models['Model-1'].rootAssemblys = a.instances['Mount-1'].edgesside1Edges = s.findAt(((0.0475, 0.0, 0.0), ))以上三行与下面的句子是等同的,即把findat找到的edges赋值给side1Edges。

分开来写简单明了,大大缩短了语句的长度。

side1Edges = mdb.models['Model-1'].rootAssembly. instances['Mount-1'].edges. fi ndAt(((0.0475, 0.0, 0.0), ))a.Surface(side1Edges=side1Edges, name='Bottom'),这行语句设置side1Edges所对应的edge为名称'Bottom'的surface的set。

#===========================================================3.模型参数分析技巧Python脚本建模的好处就是可以进行参数分析,即改变我们要分析模型的几何尺寸、材料属性等可变参数,对数值模型进行求解计算,从而对所分析的对象有更全面的了解。

1.对自己要进行参数分析的参数赋值:如几何尺寸或材料属性等a1=20,b1=30,c1=40,命名要符合python规则。

2.cae与Python混合建模,不会的命令就利用cae自动生成,用Python reader记录命令然后进行修改,可以弥补不熟悉Python的缺点;3.逐句修改Python脚本,可以去掉一些不必要的语句并在cae中逐句进行验证。

相关主题