一起学习UMAT 的一些公式注释

合集下载

学习UMAT

学习UMAT

弹塑性模型的UMAT 子程序UMAT 主要功能:已 知第n 步的应力、应变,然后给出一个应变增量, 计算新的应力,并要计算雅克比矩阵—DDSDDE 。

UMAT 中经常使用的变量说明:DDSDDE (NTENS , NTEN):雅可比矩阵,表示应力增量/应变增量的偏导数STRESS (NTENS):应力张量矩阵STATEV:存储状态变量矩阵,需要不断更新 PROPS:材料常数矩阵,如弹性模量、泊松比 STRAN:应变矩阵 DSTRAN:应变增量矩阵 DTIME:增量步的时间增量NDI:直接应力分量个数,即正应力个数 NSHR:切应力个数 NTENS:总应力个数举例:弹塑性模型本构关系)1()1ln(1)(*0m n T C B A -⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+++=••εεεσ (1) 其中参数A 、B 、n 、C 、m 已知,STATEV 状态变量矩阵中包括六个弹性应变分量、六个塑性应变分量和一个等效塑性应变量。

UMAT子程序说明SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,1 RPL,DDSDDT,DRPLDE,DRPLDT,2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)CINCLUDE 'ABA_PARAM.INC'CCHARACTER*80 CMNAMEDIMENSION STRESS(NTENS),STATEV(NSTATV),1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3)(开头为固定格式,主要定义了刚度、应力、应变矩阵等变量)DIMENSION EELAS(6),EPLAS(6),FLOW(6),PARAMETER(ONE=1.0D0,TWO=2.0D0,THREE=3.0D0,SIX=6.0D0,HALF=0. 5D0)DATA NEWTON,TOLER/40,1.D-6/(用户自定义弹性应变、塑性应变、应变流、常量参数)定义各种参数C PROPS(1)-YANG'S MODULUS (杨氏模量) C PROPS(2)-POISSON RATIO (泊松比)C PROPS(3)-INELASTIC HEAT FRACTION (塑性耗散比) C PROPS(4)-AC PROPS(5)-B C PROPS(6)-nC PROPS(7)-CC PROPS(8)-m (以及公式1中的五个参数)定义拉梅常数EMOD=PROPS (1) ENU=PROPS (2)IF (ENU.GT.0.4999.AND.ENU.LT.0.5001) ENU=0.499) EBULK3=EMOD/ (ONE -TWO*ENU)) 即 μ21-EEG2=EMOD/ (ONE+ENU) 即μ+1EEG=EG2/TWO 拉梅常数)1(2μ+=EGEG3=THREE*EG 即)1(23μ+EELAM= (EBULK3-EG2)/THREE )1)(21(12131μμμμμλ+-=⎪⎪⎭⎫ ⎝⎛+--=E E E定义弹性刚度矩阵DO 20 K1=1, NTENS DO 10 K2=1, NTENSDDSDDE (K2, K1) = 0.0 10 CONTINUE20 CONTINUE (先将弹性矩阵清零)DO 40 K1=1, NDI DO 30 K2=1, NDIDDSDDE (K2, K1) =ELAM 即λ 30 CONTINUEDDSDDE (K1, K1) =EG2+ELAM 即G +λ 40 CONTINUEDO 50 K1=NDI+1, NTENSDDSDDE (K1, K1) =EG 即G 50 CONTINUE得出初始DDSDDE=⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡+++G GGGGG0000000000000200020002λλλλλλλλλDO 70 K1=1, NTENS DO 60 K2=1, NTENSSTRESS(K2)=STRESS(K2)+DDSDDE(K2,K1)*DSTRAN(K1) ({应力}=[弹性模量矩阵]{应变})60 CONTINU 70 CONTINUEDO 80 K1=1, NTENSEELAS (K1) = STATEV (K1) + DSTRAN (K1) EPLAS (K1) = STATEV (K1+NTENS) 80 CONTINUEEQPLAS=STATEV (1+2*NTENS) (给弹性和塑性应变矩阵赋值)IF (NPROPS.GT.5.AND.PROPS(4).GT.0.0)THENSMISES=(STRESS(1)-STRESS(2))*(STRESS(1)-STRESS(2))+ 1(STRESS(2)-STRESS(3))*(STRESS(2)-STRESS(3))+ 1(STRESS(3)-STRESS(1))*(STRESS(3)-STRESS(1)) DO 90 K1=NDI+1, NTENSSMISES=SMISES+SIX*STRESS (K1)*STRESS (K1) 90 CONTINUESMISES= SQRT (SMISES/TWO) (计算MISES 屈服应力)()[])(6)()(21231223212211332332222211σσσσσσσσδσ+++-+-+-=-CALL USERHARD (SYIEL0, HARD, EQPLAS , PROPS(4)) IF(SMISES.GT.(1.0+TOLER)*SYIEL0)THENSHYDRO=(STRESS(1)+STRESS(2)+STRESS(3))/THREE ONESY=ONE/SMISES DO 110 K1=1,NDIFLOW(K1)=ONESY*(STRESS(K1)-SHYDRO即3,2,1);3(1)(321=++-=-i i FLOW i σσσσσ110 CONTINUEDO 120 K1=NDI+1,NTENSFLOW(K1)=STRESS(K1)*ONESY 即6,5,4;3)(321=++=j j FLOW jjσσσσ120 CONTINUECA=PROPS(4) B=PROPS(5)EN=PROPS (6)C=PROPS (7) EM=PROPS(8) SYIELD=SYIEL0DEQPL=(SMISES -SYIELD)/EG3 DSTRES=TOLER*SYIEL0/EG3DEQMIN=HALF*DTIME*EXP(1.0D -4/C) DO 130 KEWTON=1,NEWTON DEQPL=MAX(DEQPL,DEQMIN)CALL USERHARD(SYIELD,HARD,EQPLAS+DEQPL,PROPS(4) TVP=C*LOG(DEQPL/DTIME) TVP1=TVP+ONEHARD1=HARD*TVP1+SYIELD*C/DEQPL SYIELD=SYIELD*TVP1RHS=SMISES -EG3*DEQPL -SYIELD DEQPL=DEQPL+RHS/(EG3+HARD1)IF(ABS(RHS/EG3).LE.DSTRES)GOTO 140 130 CONTINUE WRITE(6,2)NEWTON2 FORMAT(//,30X,'***W ARNING -PLASTICITY ALGORITHM DID N 1'CONVERGE AFTER',I3,'ITERATIONS') 140 CONTINUEEFFHRD=EG3*HARD1/(EG3+HARD1)增量迭代法,这一部分不清楚重新计算正应力、切应力,并更新塑性应变和弹性应变数据 DO 150 K1=1,NDISTRESS(K1)=FLOW(K1)*SYIELD+SHYDROEPLAS(K1)=EPLAS(K1)+THREE*FLOW(K1)*DEQPL/TWO EELAS(K1)=EELAS(K1)-THREE*FLOW(K1)*DEQPL/TWO 150 CONTINUEDO 160 K1=NDI+1,NTENSSTRESS(K1)=FLOW(K1)*SYIELDEPLAS(K1)=EPLAS(K1)+THREE*FLOW(K1)*DEQPL EELAS(K1)=EELAS(K1)-THREE*FLOW(K1)*DEQPL160 CONTINUEEQPLAS=EQPLAS+DEQPLSPD=DEQPL*(SYIEL0+SYIELD)/TWO RPL=PROPS(3)*SPD/DTIME计算雅克比矩阵DDSDDEEFFG=EG*SYIELD/SMISES-+σσμs )1(2EEFFG2=TWO*EFFG EFFG3=THREE*EFFG2/TW-+σμσ)1(23SEEFFLAM=(EBULK3-EFFG2)/THREE ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+---σμσμ)1(2131S E EDO 220 K1=1,NDIDO 210 K2=1,NDIDDSDDE(K2,K1)=EFFLAM 210 CONTINUEDDSDDE(K1,K1)=EFFG2+EFFLAM 220 CONTINUEDO 230 K1=NDI+1,NTENS DDSDDE(K1,K1)=EFFG 230 CONTINUEDO 250 K1=1,NTENS DO 240 K2=1,NTENSDDSDDE(K2,K1)=DDSDDE(K2,K1)+FLOW(K2)*FLOW(K1) 1*(EFFHRD -EFFG3) 240 CONTINUE 250 CONTINUE ENDIF ENDIF存储更新状态变量矩阵中的弹性应变、塑性应变、等效塑性应变的变量 DO 310 K1=1,NTENS STATEV(K1)=EELAS(K1)STATEV(K1+NTENS)=EPLAS(K1) 310 CONTINUESTATEV(1+2*NTENS)=EQPLAS计算屈服应力强度和硬化率SUBROUTINE USERHARD(SYIELD,HARD,EQPLAS,TABLE) INCLUDE'ABA_PARAM.IN DIMENSION TABLE(3) A=TABLE(1) B=TABLE(2) EN=TABLE(3)HARD=0.0 硬化率初始值设为0 IF(EQPLAS.EQ.0.0)THENSYIELD=A 如果等效塑性应变等于0,则屈服强度为材料常数 ELSEHARD=EN*B*EQPLAS**(EN -1) 否则1-⋅⋅n B n ε SYIELD=A+B*EQPLAS**EN n s B A εσ+= END IF RETURN END首先确定材料常数矩阵PROPS ,包括拉梅常数、模量、泊松比等。

一起学习umat

一起学习umat

一起学习UMATZHANG chunyu1、什么时候用用户定义材料(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);矩阵的加减乘除甚至求逆;还有一些高等数学知识如积分、微分等。

显式积分算法umat

显式积分算法umat

显式积分算法umat显式积分算法umat显式积分算法umat是一种数值积分算法,它可以运用于解决各种对数学积分求解的问题。

显式积分算法umat由吴钟贤于1999年开发,在数学领域中有着广泛的应用,特别在数值积分和求解微分方程等方面被广泛采用。

显式积分算法umat的应用显式积分算法umat主要应用于求解各种数学积分,如定积分,重积分,广义积分,不定积分等等。

无论是单变量积分还是多变量积分,显式积分算法umat都能解决。

另外,在求解微分方程等数学问题中,显式积分算法umat也能起到良好的作用。

显式积分算法umat的原理显式积分算法umat的原理主要基于牛顿-科茨公式(N-C公式)的思想,利用较低的次数的插值多项式近似函数,从而求得积分的近似值。

插值多项式过程中使用了拉格朗日插值和牛顿插值等数学方法,使得求解积分的精度能够得到较好的保证。

显式积分算法umat的步骤显式积分算法umat的步骤如下:1.选取积分区间[a,b]和积分点数n2.利用牛顿-科茨公式,选取适当的插值多项式的次数p3.根据插值多项式,计算出积分的近似值显式积分算法umat的优点1.精度高:由于显式积分算法umat采用牛顿-科茨公式得到插值多项式来近似函数值,精度相较于其他积分方法更高。

2.计算速度快:显式积分算法umat的计算过程简单、快速,不需要迭代和收敛操作。

3.算法适用性好:显式积分算法umat可以使用于各种数学积分问题,无论是定积分或不定积分,多元函数或单元函数,显式积分算法umat都适用。

显式积分算法umat的局限性1.适用范围受限:显式积分算法umat适用于可微的函数,如果函数不是可微的,如分段函数或其他非光滑函数,则显式积分算法umat的计算精度会受到影响。

2.插值多项式阶数不同:显式积分算法umat中,插值多项式的次数选择对于得到正确的积分值非常重要,但不同次数的多项式会给出不同的保护范德蒙德矩阵,可能导致评估结果不一致的情况。

ABAQUS-UMAT-自学知识整理贴

ABAQUS-UMAT-自学知识整理贴

各个楼层及内容索引2-------------------------------------什么是UMAT3-------------------------------------UMAT功能简介4-------------------------------------UMAT开始的变量声明5-------------------------------------UMAT中各个变量的详细解释6-------------------------------------关于沙漏和横向剪切刚度7-------------------------------------UMAT流程和参数表格实例展示8-------------------------------------FORTRAN语言中的接口程序Interface 9-------------------------------------关于UMAT是否可以用Fortran90编写的问题10-17--------------------------------Fortran77的一些有用的知识简介20-25\30-32-----------------------弹塑性力学相关知识简介34-37--------------------------------用户材料子程序实例JOhn-cook模型压缩包下载38-------------------------------------JOhn-cook模型本构简介图40-------------------------------------用户材料子程序实例JOhn-cook模型完整程序+david详细注解[欢迎大家来看看,并提供意见,完全是自己的diy的,不保证完全正确,希望共同探讨,以便更正,带"?"部分,还望各位大师\同仁指教]什么是UMAT程序,真正的定义材料的力学行为即属性,是用户自己编译的FORTRAN 程序来实现的!UMAT通过与ABAQUS主求解程序的接口实现与ABAQUS的数据交流UMAT功能简介[-摘自庄茁老师的书]UMAT子程序具有强大的功能,使用UMAT子程序:(1)可以定义材料的本构关系,使用ABAQUS材料库中没有包含的材料进行计算,扩充程序功能。

一起学习户定义材料(User-definedmaterial,UMAT)解 读

一起学习户定义材料(User-definedmaterial,UMAT)解    读

一起学习UMATZHANG chunyu1、什么时候用用户定义材料(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以及depvar整理

UMAT以及depvar整理

UMAT以及depvar整理by warmwormdk最近一直在论坛查资料,对自己感兴趣的一些问题专门进行了整理,希望对大家有所帮助,也希望能获得小小的奖励啊,哈哈1 UMAT的状态变量问题Q:用DEPVAR定义的状态变量个数假设为10个。

是不是说一个积分点的状态变量是10个,单元的积分点是4的话,那么单元的状态变量就是40个。

也就是自己要存储单元变量的话,就得按40个状态变量来。

是不是呢?A:有人说跟我说,DEPVAR定义的状态变量个数指每个积分点的状态变量个数。

abaqus会自动为每个单元的每个积分点开辟这样大小的状态变量数组,abaqus调用umat时能够自动根据单元好和积分点向umat提供状态变量,在此基础上umat修改状态变量。

2 umat里的STATEV变量怎么输出到odb文件中Q:比如我想知道statev(10)的odb文件,怎么输出?又怎么打开.statev(10)是我自己定义的damage变量,请各位赐教A 在element关键词中添加SDV,就像下面这样。

*Element Output, directions=YESALPHA, LE, PE, PEEQ, PEMAG, PS, S, STH,SE, SF, VE, VEEQ, VS, SDV3Q statev(?)请问这个状态变量()内的数字代表什么含义?对应的变量是不是固定的?各自对应着哪些变量?A:括号中的数代表这个变量矩阵的维数,这个值等于depvar的值。

4 umat中DEPVAR有几种定义方式?Q;UMAT中状态变量的定义方式,一般有两种形式,一是在inp文件中采用*initial conditions定义,二是特殊情况下可以采用SDVINI来定义; 目前的疑问是,是否还有其他定义状态变量的方式? 请专家针对上传的附件给于指点多谢! 附件中的例子来自ABAQUS HELP中的例子! 请问例子中INP文件中是如何定义状态变量的 THANKSA:初值可以采用SDVINI来定义程序运行中用以下代码更新DO 310 K1=1,NTENSSTATEV(K1)=EELAS(K1)STATEV(K1+NTENS)=EPLAS(K1)310 CONTINUESTATEV(1+2*NTENS)=EQPLASCRETURNEND5 umat子程序定义问题?Q: 在umat中定义的参数在材料中需不需再定义了?比如我umat 中已经给了密度了。

UMAT

UMAT

(1)非线性方程首先在节点上进行各种迭代,迭代求出节点位移增量,转换成积分点应变增量,这时候进入你的umat,用你学过的塑性理论进行应力和刚度的更新,如果你的umat计算顺利的话,插值到节点上,这样得到了单元节点上内力和单元刚度,所有单元一集成,整体迭代再次继续,一直满足迭代收敛。

OK一个增量步算完了。

(2)首先你要弄清楚Umat是在材料积分点上实现的,Umat的每个输入变量只对一个积分点有效,
因此单从Umat子程序本身的输入变量里,你是没有办法计算出变形梯度的,因为你要得到应变梯度,必须知道附近单元的应变,因此你每调用一次Umat,就要存储这个单元积分点的应变做为全局变量,这可以通过在Fortran本身实现,在每个增量步里,单元都调用好Umat之后,所有的应变就都存在了全局变量里面了,然后在下一个增量步,重新更新所存储的这些全局变量,这样你就可以在Umat里面使用所有单元的这些变量了,而不是只能使用你所运算的单元提供的变量。

最后,我不太喜欢这些梯度相关的本构,因为违反了连续介质力学的基本假设,虽然在微小尺度下连续介质力学本来就是不对的,但是这样得到的模型过于复杂,而且对于解决问题并没有太多好处。

(3)UMAT就是通过传入的积分点的应变,应用定义的本构求出相应的积分点的应力。

umat程序代码及注释

umat程序代码及注释

SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,1 RPL,DDSDDT,DRPLDE,DRPLDT,2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)CINCLUDE 'ABA_PARAM.INC'CCHARACTER*80 CMNAMEDIMENSION STRESS(NTENS),STATEV(NSTATV),1 DDSDDE(NTENS,NTENS),2 DDSDDT(NTENS),DRPLDE(NTENS),3 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),4 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3)CDIMENSION STRANT(6),CFULL(6,6),CDFULL(6,6),DCDDFV(6,6),1 DCDDMV(6,6),DCDDDV(6,6),DFFDE(6),DFMDE(6),DFDDE(6),2 TEMP1(6),TEMP2(6),TEMP3(6),TEMP4(6),TEMP5(6),TEMP6(6),3 TEMP7(6,6)PARAMETER (ZERO = 0.D0,ONE = 1.D0,TWO = 2.D0,THREE = 3.D0)C 输入材料弹性参数e1=props(1)e2=props(2)e3=props(3)u12=props(4)u13=props(5)u23=props(6)g12=props(7)g13=props(8)g23=props(9)C 输入材料的强度参数,用于失效判断。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一起学习UMAT的一些公式注释ZHANG chunyuherrliubs comments in formulas知识积累和储备在进行ABAQUS子程序UMAT的编写前,要弄清楚:ABAQUS调用UMAT子程序流程;要建立的材料模型的本构关系和屈服准则等;UMAT子程序中相关参数、以及矩阵的表达。

主要求解过程:每一个增量步开始,ABAQUS主程序在单元积分点上调用UMAT 子程序,并转入应变增量、时间步长及荷载增量,同时也传入当前已知的状态的应力、应变及其他求解过程相关的变量;UMAT子程序根据本构方程求解应力增量及其他相关的变量,提供Jacobian矩阵给ABAQUS主程序以形成整体刚度矩阵;主程序结合当前荷载增量求解位移增量,继而进行平衡校核;如果不满足指定的误差,ABAQUS将进行迭代直到收敛,然后进行下一增量步的求解。

弹性力学相关知识(基本)仿真论坛(/forum.php ... &highlight=UMAT)ABAQUS二次开发版块这个人帖子结合例子,列出了弹性力学的基本公式。

UMAT变量含义UMAT中可以得到的量增量步开始时刻的,应力(Stress),应变(Strain), 状态变量(Solution-dependent state variables (SDVs))增量步开始时刻的,应变增量(Strain increment),转角增量(Rotation increment),变形梯度(Deformation gradient)时间总值及增量(Total and incremental values of time),温度(Temperature),用户定义场变量材料常数,材料点的位置,特征单元长度当前分析步,增量步必须定义的变量应力,状态变量,材料Jacobian矩阵(本构关系)可以定义的变量应变能,塑性耗能,蠕变耗能新建议的时间增量变量分类UMAT中可以直接调用(Call ……)的子程序或子函数SINV(STRESS,SINV1,SINV2,NDI,NSHR)——用于计算应力不变量。

其中:SINV1=第一应力不变量;SINV2=第二应力不变量。

SPRINC(S,PS,LSTR,NDI,NSHR)——用于计算主应力或应变值。

其中:S=应力或应变张量;PS(I),I=1,2,3, 主应力或应变值;LSTR=标识,1表示S为应力张量,2表示S为应变张量。

SPRIND(S,PS,AN,LSTR,NDI,NSHR)——用于计算主应力或应变的方向。

其中:AN(K1,I),I=1,2,3,表示PS(K1)的法向的方向余弦。

ROTSIG(S,R,SPRIME,LSTR,NDI,NSHR)——用于复原已旋转的张量。

其中:R=转角矩阵;SPRIME=已旋转的应力或应变张量。

XIT——用于停止分析,并关闭所有与分析相关的文件。

Variables DefineSTRESS(NTENS)该增量步开始之前的应力向量,在增量步结束之后,必须进行更新。

如果指定了初始应力,则该向量在分析开始始将保持初始应力。

真实Cauchy 应力。

需要定义的变量,在所有分析情况下均适用。

STATEV(NSTATV)求解过程中的状态变量的存贮向量。

在该增量步开始时,用来传递状态变量,除非进行了更新(采用USDEFL或UEXPAN)。

在增量步结束时,STATEV更新为结束时刻的状态变量值。

STATEV的维数(NSTATV)由*DEPVAR决定。

DDSDDE(NTENS,NTENS) Jacobian矩阵,即本构关系矩阵。

?σ/?ε。

除非声明采用非对称方程求解,否则均为对称矩阵DDSDDE(i, j)。

S SE、SPD、SCD 弹性应变能、塑性耗能、徐(蠕)变耗能。

在该增量步结束时进行更新,并在下一增量步开始时进行传递。

这些能量参数对于求解结果不起作用,除非结果采用能量形式输出。

RPL 该增量步结束时,由于材料的力学作工而产生的体积发热量。

只用于完全耦合的温度-应力分析DDSDDT(NTENS)与温度想对应的应力增量的变化量DRPLDE(NTENS)与应变增量相对应的体积发热量(RPL)的变化量DRPLDT(NTENS)与温度相对应的体积发热量(RPL)的变化量STRAIN(NTENS)该增量步开始之前的总应变向量。

如果考虑了热膨胀效应,那么STRAIN仅为力学应变(即已经在总应变中减去了热膨胀得到的温度应变)。

这些应变在输出结果中以“弹性”应变给出。

信息传递变量DSTRAIN(NTENS)应变增量向量。

如果考虑了热膨胀应变,则仅表示力学应变增量。

TIME(1)TIME(2)当前分析步开始时刻的,时间步的值。

当前分析步开始时刻的,总时间的值。

DTIME 该增量步的时间增量TEMP 当前增量步开始时刻的温度DTEMP 该增量步的温度增量PREDEF 在当前增量步开始时刻的,预定义的场变量(基于读入的节点值)的内插值向量。

DPRED 预定义的场变量的增量向量CMNAME 用户定义的材料名。

由于ABAQUS内部的一些给定材料是以“ABQ_”作为材料名,因此应尽量不采用“ABQ_”作为CMNAME的名称。

NDI 该点的直接应力分量的个数NSHR 该点的工程剪应力分量的个数NTENS 应力或应变向量的维数,等于NDI +NSHR。

NSTATV 求解过程中的状态变量的个数,与材料类型匹配。

PROPS(NPROPS)用户定义的材料常数NPROPS 用户定义的材料常数的个数COORDS 该点的坐标向量。

如果在当前分析步中没有考虑几何非线性,COORDS 就等于当前坐标系下的向量。

否则,COORDS为最开始的坐标向量信息传递变量DROT(3,3)转角增量矩阵。

代表了刚体的基本坐标系中的转角增量(该基本坐标系就是应力、应变向量存储时的坐标系)。

用于用户定义子程序中的向量或矢量状态变量的转角处理,而应力及应变向量在UMAT调用之前已经进行了转角处理。

在小位移分析中,该矩阵是一个单位矩阵;在大位移分析中,如果该材料点的基本坐标系随着材料坐标系转动(如壳单元或采用了局部转角坐标时),该矩阵亦是一个单位矩阵。

PNEWDT 建议的新时间增量与原时间增量(DTIME)之间的比值大小。

该变量允许用户在ABAQUS/Standard中输入自动时间增量的计算法则(如果设置了自动时间增量)。

对于ABAQUS/Standard的准静态分析中的自动时间增量(基于标准蠕变率积分技术),不允许在UMAT中控制。

在每一次调用UMAT前,PNEWDT被设置为一个足够大的值。

如果没有选择自动时间增量方法,大于1.0的PNEWDT值将被忽略,而起作用的仅是当小于1.0的PNEWDT值时。

能够更新的变量CELENT 特征单元长度。

信息传递变量DFGRD0(3,3)该增量步开始时刻的变形梯度向量。

DFGRD1(3,3)该增量步结束时刻的变形梯度向量。

如果在分析步中未考虑几何非线性,则该向量为零。

NOEL 单元的个数NPT 积分点的个数信息传递变量LAYER 层的个数(用于复合材料的壳单元,及层结构固体单元)KSPT 当前层的截面点的个数KSTEP 分析步的个数KINC 增量步的个数UMAT程序编写相对于材料本构关系的推导验证,子程序的编写是相对简单的,在理清了ABAQUS-UMAT变量的含义和材料的本构关系的前提下,再多看几个UAMT例子,就可以试着自己写UMAT了。

我的经验是一定要把流程图画出来,根据材料的本构关系的推导公式来写UMAT程序。

程序的验证需要耐心,用简单的模型验证,多看.dat和.msg文件。

即使UMAT程序没有问题,也可能出错,这时就要认真看本构推导公式,并和程序中的变量一一对应。

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 步的结果(应力,应变等) n σ ,n ε; 然后给出一个应变增量1n ε+d , 计算新的应力 1n σ+ 。

UMAT 要完成这一计算,并要计算Jacobian 矩阵DDSDDE(I,J) =∂Δσ/∂Δε。

Δσ是应力增量矩阵(张量或许更合适),Δε是应变增量矩阵。

DDSDDE(I,J) 定义了第J 个应变分量的微小变化对第I 个应力分量带来的变化。

该矩阵只影响收敛速度,不影响计算结果的准确性(当然,不收敛自然得不到结果)。

4、怎样建立自己的材料模型?本构方程就是描述材料应力应变(增量)关系的数学公式,不是凭空想象出来的,而是根据实验结果作出的合理归纳。

比如对弹性材料,实验发现应力和应变同步线性增长,所以用一个简单的数学公式描述。

为了解释弹塑性材料的实验现象,又提出了一些弹塑性模型,并用数学公式表示出来。

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

相关文档
最新文档