Abaqus中材料参数不为常数的Python处理方法

2017-07-04  by:CAE仿真在线  来源:互联网

在有限元计算中,可能会碰到材料参数(这里以线弹性材料弹性模量E为例)在模型中并不为常值的情况,例如,E与某一坐标相关。大家知道,abaqus材料中材料是在*section对截面属性定义的时候对单元组进行赋值的。并且GUI中也没有提供变参数的接口(这里顺路提一下,载荷是可以通过函数给出变载荷的,GUI中有接口)。这就需要我们采取一些特殊的措施。在CAE-lab前文《Abaqus中计材料参数不为常数的两种处理方法》中, 给大家介绍了‘编辑inp文件’和‘使用Umat’两种方法,这里就给大家介绍一下用python脚本实现的方法。


方法

要求

难度

编辑inp

会一门编程语言,能够完成对文本文件的读取和写入

4星

使用Umat

会使用abaqus的Umat用户子程序,计算文件中不需要使用其它的用户子程序

3星(如果对abaqus用户子程序不熟悉,则为5星)

Python脚本

会python基础,对python编写abaqus脚本了解

3星(如果对python脚本不熟悉,则为5星)


Python大法在abaqus前后处理中具有举足轻重地位和天然的优势,通过python给单元赋材料属性非常简单,本例中,假设每个单元的弹性模量不一样,并且是一个函数,我们的思路就是遍历所有的单元,给每一个单元定义一种材料。具体实现如下:


1.模型

以简单的Cube模型为例,如图1,注意由于我们是遍历单元赋材料,Abaqus中模型必须在划分好网格后在进行赋材料属性。

Abaqus中材料参数不为常数的Python处理方法abaqus有限元培训资料图片1

图1 网格模型图

2. python脚本

下面的代码较为简单,注释也比较清楚,本例中的E的变化是贴主随意给的,实际中E可能是各种形式,具体案例具体分析。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mymodel=mdb.models['Cube']# 获取模型
mypart=mdb.models['Cube'].parts['Cube']#获取part
forele_indexinmypart.elements:#单元循环
ele=ele_index.label#单元编号
node=ele_index.getNodes()#单元节点坐标
Matname='Steel'+str(ele)#材料名
mySteel=mymodel.Material(name=Matname)#创建材料
EE=ele*1000+100.E3# 变化的材料参数 可以是坐标的函数 或者其他
elasticProperties=(EE,0.3)
mySteel.Elastic(table=(elasticProperties, ) )#设置材料参数
sectionname='CubeSec'+str(ele)
mySection=mymodel.HomogeneousSolidSection(name=sectionname,material=Matname,
thickness=1.0)#创建section
elements=mypart.elements[0]
setname='set'+str(ele)
region=mypart.Set(elements=mypart.elements[ele-1:ele], name=setname)
# 这里elements要为A sequence of MeshElement objects 即类型为tuple
mypart.SectionAssignment(region=region, sectionName=sectionname)#赋材料属性

3.结果

赋材料后,以材料区分来显示模型,可见每个单元的材料都不一样,在模型树菜单也可以看到,python脚本建立了125种材料(共125个单元)

Abaqus中材料参数不为常数的Python处理方法abaqus有限元培训资料图片2
Abaqus中材料参数不为常数的Python处理方法abaqus有限元培训资料图片3

图2 不同单元的材料

Abaqus中材料参数不为常数的Python处理方法abaqus有限元技术图片4

图3 计算结果


4.总结

我们介绍的三种方法都能很好的解决材料参数不为常数的问题,编辑inp和python对单元较少时运行效率较高,但是单元较多时,Umat用起来可能更方便,大家可以都尝试一下。



开放分享:优质有限元技术文章,助你自学成才

相关标签搜索:Abaqus中材料参数不为常数的Python处理方法 abaqus分析培训 abaqus技术教程 abaqus岩土分析 钢筋混凝土仿真 abaqus分析理论 abaqus软件下载 abaqus umat用户子程序编程 Abaqus代做 Abaqus基础知识 Fluent、CFX流体分析 HFSS电磁分析 Ansys培训 

编辑
在线报名:
  • 客服在线请直接联系我们的客服,您也可以通过下面的方式进行在线报名,我们会及时给您回复电话,谢谢!
验证码

全国服务热线

1358-032-9919

广州公司:
广州市环市中路306号金鹰大厦3800
电话:13580329919
          135-8032-9919
培训QQ咨询:点击咨询 点击咨询
项目QQ咨询:点击咨询
email:kf@1cae.com