Abaqus二次开发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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与Abaqus
2. Abaqus/Python结构
3.模型参数分析技巧
4.几个命令的体会
5.一个Abaqus/Python例子
#--------------------------------------------------------------------------------------------------
#===========================================================
1. Python与Abaqus
1.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 Manual
Abaqus Scripting Reference Manual