-
材料本构模型及编程
-ABAQUS-UMAT
材料本构模型及编程实现:简介
1<
/p>
、什么时候用用户定义材料(
User-defined
material, UMAT
)?
很简单,
当
ABAQUS
没有提供我们
需要的材料模型时。
所以,
在决定自己定义一种新的材料模型之
前,
最好对
ABAQUS
已经提供的模
型心中有数,
并且尽量使用现有的模型,因为这些模型已经经过详细的验证,并被广泛接
受。
2
、好学吗?需要哪些基础知识?
<
/p>
先看一下
ABAQUS
手册(
ABAQUS Analysis User's Manual
)里的一段话:
Warning: The use of this option
generally requires considerable expertise. The
user is cautioned that the implementation of any
realis
tic constitutive model requires
extensive development and testing. Initial testing
on a single element model with prescribed traction
l
oading is strongly recommended.
但这并不意味着非力学专业,或者力学基础知识不很丰富者就只能望洋兴叹,因为我们的任务不是开发
一套完整的有限元软件,而只是提供一个描
述材料力学性能的本构方程(
Constitutive equation
)而已。当然,最基本的一些概
念和知识还是要具备的,比如
应力
(
stress),
应变
(
strain
)
及其分量;
volumetric
part
和
deviatoric part
< br>;
模量
(
modulus
)
、
泊松比
(Poi
sson
’
s
ratio)
、
拉美常数
(Lame
constant)
;
矩阵的加减乘除甚至求逆;还有一些高等
数学知识如积分、微分等。
3
、
p>
UMAT
的基本任务?
我们知道,有限元计算(增量方法)的基本问题是:
已知第
n
步
的结果
(应力,
应变等)
,
;
然后给出一个应变增量
,
计算新的应力
。
UMAT
要完成这一计算,
并要计算
Jacobian
矩阵
DDSDDE(I,J) =
。
是应力增量矩阵(张
量或许更合适),
是应变增量矩阵。
DDSDDE(I,J)
< br>定义了第
J
个应变分量的微小变化对第
< br>I
个应力分量带来的变化。该矩阵只
影响收敛速度,不
影响计算结果的准确性(当然,不收敛自然得不到结果)。
4
、怎样建立自己的材料模型?
本构方程就是描述材料应力应变(增量)关系的数学公式,不
是凭空想象出来的,而是根据实验结果作出的合理归纳。比如对弹性材料,实验发现
应力
和应变同步线性增长,
所以用一个简单的数学公式描述。
为了解
释弹塑性材料的实验现象,
又提出了一些弹塑性模型,
并用数学
公式表示出来。
对各向同性材料(
Isotropic material
p>
)
,
经常采用的办法是先研究材料单向应力
-
应变规律(如单向拉伸、压缩试验),并用一数学公式加以描
述,
然后把讲该规律推广到各应力分量。这叫做“泛化“
(ge
neralization)
。
5
、一个完整的例子及解释
下面这个
UMAT
< br>取自
ABAQUS
手册,是一个用于大变形下的弹塑性材
料模型。希望我的注释能帮助初学者理解。需要了解
J2
理论。
SUBROUTINE
UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,RPL,DDSDDT,
1 DRPLDE,DRPLDT,STRAN,DSTRAN,TIME,DTIM
E,TEMP,DTEMP,PREDEF,DPRED,
2 CMNAME,ND
I,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,
3 PNEWDT,CELENT,DFGRD0,DFGRD1,NOEL,NPT
,LAYER,KSPT,KSTEP,KINC)
STRESS--
应力矩阵,在增量步的开始,保存并作为已知量传入
UMAT
;在增量步的结束应该保存更新的应力;
STRAN--
当前应变,已知
。
DSTRAN
—应变增量,已知。
<
/p>
STATEV--
状态变量矩阵,用来保存用户自己定义的一些变
量,如累计塑性应变,粘弹性应变等等。增量步开始时作为已知量传入,增量步结束应
该
更新;
DDSDDE=
。需要更新
DTIME
—时间增量
dt
。已知。
NDI
—正应力、应变
个数
,
对三维问题、轴对称问题自然是
3
(
11,22,33
),平面问题是
2(11,22)
;已知。
NSHR
—剪应力、应变个数,三维问题时
< br>3(12,13,23)
,轴对称问题是
1(12)
p>
;已知。
NTENS=NTENS
NSHR
,已知。
PROPS
材料常数矩阵,如模量啊,粘度系数啊等等;作为已知量传入,已知
。
DROT
—对
finite stra
in
问题,应变应该排除旋转部分,该矩阵提供了旋转矩阵,详见下面的解释。已知。<
/p>
PNEWDT
—可用来控制时间步的变
化。如果设置为小于
1
的数,则程序放弃当前计算,并用新的时
间增量
DTIME X PNEWDT
作为新的时间增量
计算;这对时间相关的材料如聚合物等有用;如果设为大余
1
的数,则下一个增量步加大
DTIME
为
DTIME X PNEWDT
。可以更新。
其他变量含义可参看手册,暂时用不到。
C
INCLUDE 'ABA_'
定义了一些参数,变量什么的,不用管
C
CHARACTER*8 CMNAME
C
DIMENSION
STRESS(NTENS),STATEV(NSTATV),DDSDDE(NTENS,NTENS),
1 DDSDDT(NTENS),DRPLDE(NTENS),STRAN(NT
ENS),DSTRAN(NTENS),
2 PREDEF(1),DPRED(
1),PROPS(NPROPS),COORDS(3),DROT(3,3),
3 DFGRD0(3,3),DFGRD1(3,3)
矩阵的尺寸声明
C
C LOCAL ARRAYS
C -----------
--------------------------------------------------
---
C EELAS - ELASTIC STRAINS
C EPLAS - PLASTIC STRAINS
C
FLOW - DIRECTION OF PLASTIC FLOW
C ----
--------------------------------------------------
----------
C
局部变量,用来暂时保存弹性应变、塑性应变分量以及流动方向
DIMENSION EELAS(6),EPLAS(6),FLOW(6)
C
PARAMETER(ZERO=0.D0,ONE=1
.D0,TWO=2.D0,THREE=3.D0,SIX=6.D0,
1
ENUMAX=.4999D0,NEWTON=10,TOLER=1.0D-6)
C
C ------------------------
----------------------------------------
C UMAT FOR ISOTROPIC ELASTICITY AND
ISOTROPIC MISES PLASTICITY
C CANNOT BE
USED FOR PLANE STRESS
C ---------------
-------------------------------------------------
C PROPS(1) - E
C PROPS(2) -
NU
C PROPS(3..) - SYIELD AN HARDENING
DATA
C CALLS HARDSUB FOR CURVE OF YIELD
STRESS VS. PLASTIC STRAIN
C -----------
--------------------------------------------------
---
C
C ELASTIC PROPERTIES
C
获取杨氏模量,泊松比,作为已
知量由
PROPS
向量传入
EMOD=PROPS(1) E
ENU=PROPS(2)
ν
EBULK3=EMOD/(ONE-TWO*ENU) 3K
EG2=EMOD/(ONE ENU) 2G
EG=EG2/TWO G
EG3=THREE*EG 3G
ELAM=(EBULK3-EG2)/THREE
λ
DO K1=1,NTENS
DO
K2=1,NTENS
DDSDDE(K1,K2)=ZERO
END DO
END DO
弹
性部分,
Jacobian
矩阵很容易计算
注意,在
ABAQUS
中,剪切
应变采用工程剪切应变的定义,所以剪切部分模量是
G
而不是<
/p>
2G!
C
C ELASTIC
STIFFNESS
C
DO K1=1,NDI
DO K2=1,NDI
DDSDDE(K2,K1)=ELAM
END DO
DDSDDE(K1,K1)=EG2 ELAM
END DO
DO K1=NDI 1,NTENS
DDSDDE(K1,K1)=EG
END DO
C
C RECOVER ELASTIC AND PLASTIC STRAINS
AND ROTATE FORWARD
C ALSO RECOVER
EQUIVALENT PLASTIC STRAIN
C
读取弹性应变分量,塑性应变分量,并旋转(调用了
ROTSIG
),分别保存在
EELAS
和
EPL
AS
中;
CALL
ROTSIG(STATEV( 1),DROT,EELAS,2,NDI,NSHR)
CALL ROTSIG(STATEV(NTENS
1),DROT,EPLAS,2,NDI,NSHR)
读取等效塑性应变
EQPLAS=STATEV(1 2*NTENS)
先假设没有发生塑性流动,按完全弹性变形计算试算应力
C
C CALCULATE PREDICTOR
STRESS AND ELASTIC STRAIN
C
DO K1=1,NTENS
DO K2=1,NTENS
STRESS(K2)=STRESS(K2)
DDSDDE(K2,K1)*DSTRAN(K1)
END DO
EELAS(K1)=EELAS(K1) DSTRAN(K1)
END DO
C
计算
Mises
应力
C
CALCULATE EQUIVALENT VON MISES STRESS
C
SMISES=(STRESS(1)-STRESS(2))**2
(STRESS(2)-STRESS(3))**2
1
(STRESS(3)-STRESS(1))**2
DO K1=NDI
1,NTENS
SMISES=SMISES
SIX*STRESS(K1)**2
END DO
SMISES=SQRT(SMISES/TWO)
C
根据
当前等效塑性应变,调用
HARDSUB
得到对应的屈服应力<
/p>
C GET YIELD STRESS FROM THE
SPECIFIED HARDENING CURVE
C
NVALUE=NPROPS/2-1
CALL
HARDSUB(SYIEL0,HARD,EQPLAS,PROPS(3),NVALUE)
C
C DETERMINE IF ACTIVELY
YIELDING
C
如果
Mise
s
应力大余屈服应力,屈服发生,计算流动方向
IF (.(ONE TOLER)*SYIEL0) THEN
C
C ACTIVELY YIELDING
C SEPARATE THE HYDROSTATIC FROM THE
DEVIATORIC STRESS
C CALCULATE THE FLOW
DIRECTION
C
SHYDRO=(STRESS(1) STRESS(2) STRESS(3))/THREE
DO K1=1,NDI
FLOW(K1)=(STRESS(K1)-SHYDRO)/SMISES
END DO
DO K1=NDI 1,NTENS
FLOW(K1)=STRESS(K1)/SMISES
-
-
-
-
-
-
-
-
-
上一篇:2015广东高考英语试题及答案解析(word)版
下一篇:通信系统模型