Abaqus学习资料

当前位置:主页 > Abaqus > Abaqus学习资料 >

Abaqus有限元仿真分析中材料参数不为常数的3种处理方法

发布者:admin   发布时间: 2017-08-19 浏览次数:

1、目地

 在有限元计算中,可能会碰到材料参数(这里以线弹性材料弹性模量E为例)在模型中并不为常值的情况,例如,E与某一坐标相关。大家知道,Abaqus材料中材料是在*section对截面属性定义的时候对单元组进行赋值的。并且GUI中也没有提供变参数的接口(这里顺路提一下,载荷是可以通过函数给出变载荷的,GUI中有接口)。这就需要我们采取一些特殊的措施。Abaqus是一套功能强大的工程模拟有限元软件,其解决问题的范围从相对简单的线性分析到许多复杂的非线性问题。作为通用的模拟工具,Abaqus除了能解决大量结构问题,还可以模拟其他工程领域的许多问题,例如热传导、质量扩散、热电耦合分析、声学分析、岩土力学分析及压电介质分析。有限元科技本月开设Abaqus基础培训课程,详细讲解Abaqus软件操作步骤与每一步设置的原因和原理,并与学员们分享产品仿真实例,提高学员独立解决实际问题的能力。如需购买Abaqus或需要培训及咨询服务,请联系请联系电话:13632683051,咨询QQ:4006046636。今天,有限元科技小编针对Abaqus中材料参数不为常数给出3种行之有效的方法,它们分别是:(1)编辑inp文件,(2)使用Umat,(3)Python脚本

 2、方法


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

 同样是根据坐标确定材料参数,使用Umat时,可以直接通过abaqus用户子程序自带的子函数直接获得单元的节点坐标,进而通过坐标确定材料参数;而使用编辑inp的方法则需要首先通过编写程序对你已经生成的inp文件(包含节点、单元信息)进行读取,之后对每一个单元进行材料赋值,而python脚本可以直接通过命令来给每个单元赋材料。从这方面讲,对熟悉Umat和Python的用户而言,使用Umat或Python解决这个问题更为方便。上表中给出3两种方法的一些基本要求,编辑inp文件的方法要求更低,它通过直接编辑inp文件的方法来实现。而使用Umat和Python的方法要求更高,需要用户对子程序和Python有一定的了解,并且也需要会一门编程语言。

 3、编辑inp方法的简单实施过程

 以Fortran+VS为例,在编辑inp文件时,涉及到了单元节点信息的读取、计算单元(质心)坐标、计算弹性模量E、和输出这几个子程序。如图1所示,prereadnew为读取节点、单元信息子程序;processmat为通过单元坐标计算弹性模量子程序;writeabaqus为输出子程序,各个子程序的详细信息这里不再赘述。


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

图1项目及子程序


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

图2inp文件读取子程序(部分代码)


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

图3inp文件输出-材料部分(部分代码)

 通过以上叙述不难发现,通过编辑inp文件可以较好的解决材料参数不为常数的情况。但是,这需要用户具有一定的编程基础,对Abaqus的inp计算文件有一定的了解。同理,在其它软件进行有限元计算时,也可以通过编辑计算文件的方法来解决材料参数不为常值得情况。

 4、Umat方法的简单实施过程

 作为Abaqus提供的用户自定义子程序中的一种,Umat为用户自己定义一种新的材料提供了接口。UMAT子程序具有强大的功能,使用UMAT子程序:

 (1)可以定义材料的本构关系,对Abaqus材料库进行扩充;

 (2)几乎可以将任何本构关系运用到Abaqus中的任何单元中;

 但是,用户必须在UMAT中提供材料本构模型的雅可比(Jacobian)矩阵,即应力增量对应变增量的变化率,而实际上,这也是Umat子程序最主要的任务。

 承前所述,由于假定弹性模量与坐标相关,使用Umat子程序的首要任务就是找到弹性模量E和坐标之间的关系;之后,才是根据坐标得到弹性模量和泊松比之后对DDEDDS的编写。这里,依据Abaqus的帮助文档,给出了Umat子程序中一些变量的定义:


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

图4Abaqus提供的Umat函数接口


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

图5部分Umat变量定义


详细的参数介绍大家可以查看Abaqus帮助。不难发现其中并不包含有单元或者节点的坐标信息,但是却包含有单元的单元编号信息(NOEL)。而通过单元编号又可以关联起来单元的坐标。


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

图6线弹性材料的DDEDDS


 图6中EMOD=PROPS(1)*A(NOEL)/0.125就是根据单元NOEL的坐标确定其弹性模量的语句,不难看出这个弹性模量是INP文件中给定的值得A(NOEL)/0.125倍,其中A数组并不是自定义的数组,为单元的坐标值数组。

 5、imp和Umat算例

 对于如图8所示的4阶魔方结构,x轴左端面约束x方向自由度,x轴右端面加载位移。材料弹性模量由约束面到加载面分别为10、30、50、70GPa,而其对应的单元质心x轴坐标分别为0.125、0.375、0.625、0.875。图8中所示云图为单元应变E11。


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

图7(a)计算文件-材料部分-inp编辑方法


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

图7(b)计算文件-材料部分-Umat方法


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

图8算例结果

 6、Python脚本实现

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

 (1)模型

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

 

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

图1网格模型图

 (2)python脚本

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


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

 (3)结果

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

 

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

图2不同单元的材料

 

 

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

图3计算结果

7、总结

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


如有业务的需要请联系电话:13723451508,咨询QQ:215370757

本文出自深圳有限元科技有限公司cae软件专业网站:http://www.feaworks.org 转载请注明

 

 

如有CAE业务的需要请联系电话:13723451508,咨询QQ:215370757
本文出自深圳有限元科技有限公司cae软件专业网站:http://www.feaworks.org 转载请注明

分享到:
相关文章
降温?降雨?通通让道!有限元科技团建活动圆满举办! 降温?降雨?通通让道!有限元科技团建活动圆满举办!
ABAQUS有限元仿真分析软件中的质量缩放 【技术贴】螺栓预紧力,就是这么简单
Abaqus有限元软件反直观动力学行为的数值模拟 【技术贴】教你如何用Abaqus模拟金属切削