最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

ABAQUS-材料本构模型及编程(完整资料).doc

来源:动视网 责编:小OO 时间:2025-09-29 06:18:05
文档

ABAQUS-材料本构模型及编程(完整资料).doc

【最新整理,下载后即可编辑】材料本构模型及编程-ABAQUS-UMAT材料本构模型及编程实现:简介1、什么时候用用户定义材料(User-defined material, UMAT)?很简单,当ABAQUS没有提供我们需要的材料模型时。所以,在决定自己定义一种新的材料模型之前,最好对ABAQUS已经提供的模型心中有数,并且尽量使用现有的模型,因为这些模型已经经过详细的验证,并被广泛接受。2、好学吗?需要哪些基础知识?先看一下ABAQUS手册(ABAQUS Analysis User's Man
推荐度:
导读【最新整理,下载后即可编辑】材料本构模型及编程-ABAQUS-UMAT材料本构模型及编程实现:简介1、什么时候用用户定义材料(User-defined material, UMAT)?很简单,当ABAQUS没有提供我们需要的材料模型时。所以,在决定自己定义一种新的材料模型之前,最好对ABAQUS已经提供的模型心中有数,并且尽量使用现有的模型,因为这些模型已经经过详细的验证,并被广泛接受。2、好学吗?需要哪些基础知识?先看一下ABAQUS手册(ABAQUS Analysis User's Man
【最新整理,下载后即可编辑】

材料本构模型及编程-ABAQUS-UMAT

材料本构模型及编程实现:简介

1、什么时候用用户定义材料(User-defined material, UMAT)?

很简单,当ABAQUS没有提供我们需要的材料模型时。所以,在决定自己定义一种新的材料模型之前,最好对ABAQUS已经提供的模型心中有数,并且尽量使用现有的模型,因为这些模型已经经过详细的验证,并被广泛接受。

2、好学吗?需要哪些基础知识?

先看一下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 realistic constitutive model requires extensive development and testing. Initial testing on a single element model with prescribed traction loading is strongly recommended.

但这并不意味着非力学专业,或者力学基础知识不很丰富者就只能望洋兴叹,因为我们的任务不是开发一套完整的有限元软件,而只是提供一个描述材料力学性能的本构方程(Constitutive equation)而已。当然,最基本的一些概念和知识还是要具备的,比如

应力(stress),应变(strain)及其分量; volumetric part和deviatoric part;模量(modulus)、泊松比(Poisson’s ratio)、拉美常数(Lame constant);矩阵的加减乘除甚至求逆;还有一些高等数学知识如积分、微分等。

3、UMAT的基本任务?

 我们知道,有限元计算(增量方法)的基本问题是:

 已知第n步的结果(应力,应变等) ,; 然后给出一个应变增量, 计算新的应力 。 UMAT要完成这一计算,并要计算Jacobian矩阵DDSDDE(I,J) =。是应力增量矩阵(张量或许更合适), 是应变增量矩阵。DDSDDE(I,J) 定义了第J个应变分量的微小变化对第I 个应力分量带来的变化。该矩阵只影响收敛速度,不影响计算结果的准确性(当然,不收敛自然得不到结果)。

4、怎样建立自己的材料模型?

 本构方程就是描述材料应力应变(增量)关系的数学公式,不是凭空想象出来的,而是根据实验结果作出的合理归纳。比如对弹性材料,实验发现应力和应变同步线性增长,所以用一个简单的数学公式描述。为了解释弹塑性材料的实验现象,又提出了一些弹塑性模型,并用数学公式表示出来。

 对各向同性材料(Isotropic material),经常采用的办法是先研究材料单向应力-应变规律(如单向拉伸、压缩试验),并用一数学公式加以描述,然后把讲该规律推广到各应力分量。这叫做“泛化“(generalization)。

5、一个完整的例子及解释 

 下面这个UMAT取自ABAQUS手册,是一个用于大变形下的弹塑性材料模型。希望我的注释能帮助初学者理解。需要了解J2理论。

 SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,RPL,DDSDDT,

 1 DRPLDE,DRPLDT,STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,

 2 CMNAME,NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,

 3 PNEWDT,CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)

STRESS--应力矩阵,在增量步的开始,保存并作为已知量传入UMAT ;在增量步的结束应该保存更新的应力;

STRAN--当前应变,已知 。 

DSTRAN—应变增量,已知。

STATEV--状态变量矩阵,用来保存用户自己定义的一些变量,如累计塑性应变,粘弹性应变等等。增量步开始时作为已知量传入,增量步结束应该更新;

DDSDDE=。需要更新

DTIME—时间增量dt。已知。

NDI—正应力、应变个数,对三维问题、轴对称问题自然是3(11,22,33),平面问题是2(11,22);已知。

NSHR —剪应力、应变个数,三维问题时3(12,13,23),轴对称问题是1(12);已知。

NTENS=NTENS  NSHR,已知。

PROPS材料常数矩阵,如模量啊,粘度系数啊等等;作为已知量传入,已知。

DROT—对finite strain问题,应变应该排除旋转部分,该矩阵提供了旋转矩阵,详见下面的解释。已知。

PNEWDT—可用来控制时间步的变化。如果设置为小于1的数,则程序放弃当前计算,并用新的时间增量DTIME X PNEWDT作为新的时间增量计算;这对时间相关的材料如聚合物等有用;如果设为大余1的数,则下一个增量步加大DTIME为DTIME X PNEWDT。可以更新。

其他变量含义可参看手册,暂时用不到。

C

 INCLUDE 'ABA_PARAM.INC'

定义了一些参数,变量什么的,不用管

C

 CHARACTER*8 CMNAME

C

 DIMENSION STRESS(NTENS),STATEV(NSTATV),DDSDDE(NTENS,NTENS),

 1 DDSDDT(NTENS),DRPLDE(NTENS),STRAN(NTENS),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而不是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和EPLAS中; 

 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得到对应的屈服应力

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 如果Mises应力大余屈服应力,屈服发生,计算流动方向

 IF (SMISES.GT.(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

 END DO

C根据J2理论并应用Newton-Rampson方法求得等效塑性应变增量

C SOLVE FOR EQUIVALENT VON MISES STRESS

C AND EQUIVALENT PLASTIC STRAIN INCREMENT USING NEWTON ITERATION

C

 SYIELD=SYIEL0

 DEQPL=ZERO

 DO KEWTON=1,NEWTON

 RHS=SMISES-EG3*DEQPL-SYIELD

 DEQPL=DEQPL RHS/(EG3 HARD)

 CALL HARDSUB(SYIELD,HARD,EQPLAS DEQPL,PROPS(3),NVALUE)

 IF(ABS(RHS).LT.TOLER*SYIEL0) GOTO 10

 END DO

C

C WRITE WARNING MESSAGE TO THE .MSG FILE

C

 WRITE(7,2) NEWTON

 2 FORMAT(//,30X,'***WARNING - PLASTICITY ALGORITHM DID NOT ',

 1 'CONVERGE AFTER ',I3,' ITERATIONS')

 10 CONTINUE

C更新应力,应变分量

C UPDATE STRESS, ELASTIC AND PLASTIC STRAINS AND 

C EQUIVALENT PLASTIC STRAIN

C

 DO K1=1,NDI

 STRESS(K1)=FLOW(K1)*SYIELD SHYDRO

 EPLAS(K1)=EPLAS(K1) THREE/TWO*FLOW(K1)*DEQPL

 EELAS(K1)=EELAS(K1)-THREE/TWO*FLOW(K1)*DEQPL

 END DO

 DO K1=NDI 1,NTENS

 STRESS(K1)=FLOW(K1)*SYIELD

 EPLAS(K1)=EPLAS(K1) THREE*FLOW(K1)*DEQPL

 EELAS(K1)=EELAS(K1)-THREE*FLOW(K1)*DEQPL

 END DO

 EQPLAS=EQPLAS DEQPL

C

C CALCULATE PLASTIC DISSIPATION

C

 SPD=DEQPL*(SYIEL0 SYIELD)/TWO

C

C 计算塑性变形下的Jacobian矩阵 

 FORMULATE THE JACOBIAN (MATERIAL TANGENT)

C FIRST CALCULATE EFFECTIVE MODULI

C

 EFFG=EG*SYIELD/SMISES

 EFFG2=TWO*EFFG

 EFFG3=THREE/TWO*EFFG2

 EFFLAM=(EBULK3-EFFG2)/THREE

 EFFHRD=EG3*HARD/(EG3 HARD)-EFFG3

c...

 if (props(7).lt..001) go to 99

c...

 DO K1=1,NDI

 DO K2=1,NDI

 DDSDDE(K2,K1)=EFFLAM

 END DO

 DDSDDE(K1,K1)=EFFG2 EFFLAM

 END DO

 DO K1=NDI 1,NTENS

 DDSDDE(K1,K1)=EFFG

 END DO

 DO K1=1,NTENS

 DO K2=1,NTENS

 DDSDDE(K2,K1)=DDSDDE(K2,K1) EFFHRD*FLOW(K2)*FLOW(K1)

 END DO

 END DO

c...

 99 continue

c...

 ENDIF

C将弹性应变,塑性应变分量保存到状态变量中,并传到下一个增量步

C STORE ELASTIC AND (EQUIVALENT) PLASTIC STRAINS 

C IN STATE VARIABLE ARRAY

C

 DO K1=1,NTENS

 STATEV(K1)=EELAS(K1)

 STATEV(K1 NTENS)=EPLAS(K1)

 END DO

 STATEV(1 2*NTENS)=EQPLAS

C

 RETURN

 END

c...

c...子程序,根据等效塑性应变,利用插值的方法得到对应的屈服应力

 SUBROUTINE HARDSUB(SYIELD,HARD,EQPLAS,TABLE,NVALUE)

C

 INCLUDE 'ABA_PARAM.INC'

C

 DIMENSION TABLE(2,NVALUE)

C

 PARAMETER(ZERO=0.D0)

C

C SET YIELD STRESS TO LAST VALUE OF TABLE, HARDENING TO ZERO

C

 SYIELD=TABLE(1,NVALUE)

 HARD=ZERO

C IF MORE THAN ONE ENTRY, SEARCH TABLE

C

 IF(NVALUE.GT.1) THEN

 DO K1=1,NVALUE-1

 EQPL1=TABLE(2,K1 1)

 IF(EQPLAS.LT.EQPL1) THEN

 EQPL0=TABLE(2,K1)

 IF(EQPL1.LE.EQPL0) THEN

 WRITE(7,1)

 1 FORMAT(//,30X,'***ERROR - PLASTIC STRAIN MUST BE `,

 1 `ENTERED IN ASCENDING ORDER')

 CALL XIT

 ENDIF

C

C CURRENT YIELD STRESS AND HARDENING

C

 DEQPL=EQPL1-EQPL0

 SYIEL0=TABLE(1,K1)

 SYIEL1=TABLE(1,K1 1)

 DSYIEL=SYIEL1-SYIEL0

 HARD=DSYIEL/DEQPL

 SYIELD=SYIEL0 (EQPLAS-EQPL0)*HARD

 GOTO 10

 ENDIF

 END DO

 10 CONTINUE

 ENDIF

 RETURN

 END

文档

ABAQUS-材料本构模型及编程(完整资料).doc

【最新整理,下载后即可编辑】材料本构模型及编程-ABAQUS-UMAT材料本构模型及编程实现:简介1、什么时候用用户定义材料(User-defined material, UMAT)?很简单,当ABAQUS没有提供我们需要的材料模型时。所以,在决定自己定义一种新的材料模型之前,最好对ABAQUS已经提供的模型心中有数,并且尽量使用现有的模型,因为这些模型已经经过详细的验证,并被广泛接受。2、好学吗?需要哪些基础知识?先看一下ABAQUS手册(ABAQUS Analysis User's Man
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top