当前位置:文档之家› 基于abaqus的压电材料裂缝数值模拟

基于abaqus的压电材料裂缝数值模拟

基于abaqus的压电材料裂缝数值模拟
基于abaqus的压电材料裂缝数值模拟

基于abaqus的压电材料裂缝数值模拟

摘要:压电材料为横观各向同性材料,有5个独立的弹性常数、3个独立的压电常数,2个独立的介电常数。不同于各向同性材料,压电材料需要在建模时指明材料方向。用abaqus建立4cm4cm的压电材料模型,中心有一个微小裂纹,利用mcci方法计算出在荷载作用下裂纹尖端的应变能释放率,与解析解相比较,发现结果吻合良好。

关键词:压电材料、常数、数据处理

引言

随着有限元法的发展,绝大多数工程问题都可以通过其得到令人满意的解答,abaqus作为通用有限元软件,强大的求解器能够很好的处理各种非线性问题。

压电材料是受到压力作用时会在两端面间出现电压的晶体材料。1880年,由法国物理学家P.居里和J.居里兄弟发现。把重物放在石英晶体上,晶体某些表面会产生电荷,电荷量与压力成比例。这一现象被称为压电效应。随即,居里兄弟又发现了逆压电效应,即在外电场作用下压电体会产生形变。利用压电材料的这些特性可实现机械振动(声波)和交流电的互相转换。因而压电材料广泛用于传感器元件中,例如地震传感器,力、速度和加速度的测量元件以及电声传感器等。这类材料被广泛运用,举一个很生活化的例子,打火机的火花即运用此技术。

压电材料本构关系

压电材料的本构方程有基于应力和基于应变两种形式,其在垂直于极化方向的平面上是各项同性的。Yang[1]的文献中基于应力给出本构方程如下:

其中为电位移分量,为压电常数,为介电常数,场强分量。

上述方程是以z轴方向为极化方向。本文的计算模型以y轴为极化方向,所以需要调整各系数矩阵中参数的位置。调整之后如下

mcci计算应变能释放率

ABAQUS中Fortran子程序调用方法

第一种方法: / o/ J5 @6 U/ ^- o$ 1. 建立工作目录/ ]" 2. 将Abaqus安装目录\6.4-pr11\site下的aba_param_dp.inc或aba_param_sp.inc拷贝到工作目录,并改名为aba_param.inc; # ~/ |0 I0 E6 {, @4 X3 q: W3. 将编译的fortran程序拷贝到工作目录; 4. 将.obj文件拷贝到工作目录; 5. 建立好输入文件.inp; 6. 运行abaqusjob=inp_name user=fortran name即可。 第二种方法: 在Job模块里,创建工作,在EditJob对话框中选择General选项卡,在Usersubroutine file中点击Select 按钮,从弹出对话框中选择你要调用的子程序文件(后缀为.for或.f)。 , D8 i7 d/r c6 @" | 以下是网上摘录的资料,供参考:. |$ t/ }$W7 Y6 m4 h6 D6 j 用户进行二次开发时,要在命令行窗口执行下面的命令: 4 O. R+ ^,@( ? abaqus job=job_name user=sub_name ABAQUS会把用户的源程序编译成obj文件,然后临时生成一个静态库standardU.lib和动态库standardU.dll,还有其它一些临时文件,而它的主程序(如standard.exe和explicit.exe等)则没有任何改变,由此看来ABAQUS是通过加载上述2个库文件来实现对用户程序的连接,而一旦运行结束则删除所有的临时文件。这种运行机制与ANSYS、LS-DYNA、marc等都不同。 : j6 g' R-o( {0 [* N2 J3 X这些生成的临时文件要到文件夹C:\Documentsand Settings\Administrator\Local Settings\Temp\中才能找到,这也是6楼所说的藏了一些工作吧,大家不妨试一下。 1子程序格式(程序后缀是.f; .f90; .for;.obj??) 答:我试过,.for格是应该是不可以的,至少6.2和6.3版本应该是不行,其他的没用过,没有发言权。在Abaqus中,运行abaqusj=jobname user=username时,默认的用户子程序后缀名是.for(.f,.f90应该都不行的,手册上也有讲过),只有在username.for文件没有找到的情况下,才会去搜索username.obj,如果两者都没有,就会报错误信息。 如果username包括扩展名for或obj,那么就根据各自的扩展名ABAQUS会自动选择进行操作。 2CAE中如何调用?Command下如何调用? 答:CAE中在creat job的jobmanager中的general中可以指定子程序; Command下用命令:abaqus j=jobnameuser=userfilename (无后缀); 3若有多个子程序同时存在,如何处理 答:将其写在一个文件中即可,然后用一个总的子程序调用(具体参见手册) 4我对VF不是很熟,是否可以用VC,C++编写子程序? A: 若要在vf中调试,那么应该根据需要把SITE文件夹中的ABA_PARAM_DP.INC(双精度)或ABA_PARAM_SP.INC(单精度)拷到相应的位置,并改名为ABA_PARAM.INC即可。 据说6.4的将可以,6.3的你可以尝试着将VC,C++程序编译为obj文件,没试过。在你的工作目录下应该已经存在ufield.obj和uvarm.obj这两个文件(这两个文件应该是你分别单独调试ufield.FOR和uvarm.FOR时自动编译生成的,你可以将他们删掉试试看),但是由于你的FOR文件中已经有了UV ARM 和UFIELD这两个subroutine,显然会造成重复定义,请查实。 用户子程序的使用 假设你的输入文件为:a.inp b.for 那么在ABAQUS Command 中的命令应该是这样的: abaqusjob=a user=b

ABAQUS平台的扩展有限元方法模拟裂纹实现

ABAQUS平台的扩展有限元方法模拟裂纹实现 1.1 扩展有限元方法(XFEM)在ABAQUS上的实现 ABAQUS中XFEM的实现,两个步骤最为关键: 1、选择模型中可能出现的裂纹区域,将其单元设为具有扩展有限元性质的enrichment element. 2、其次重要的是选择恰当的破坏准则,使单元在达到给定的条件破坏,裂纹扩展。 在ABAQUS中模拟裂纹扩展的操作中,需要注意的是: 1、在Property模块,添加损伤演化参数、破坏法则、损伤稳定性参数 2、在Interaction模块,主菜单Special中创建XFEM的enrichment element 对于固定的裂纹模型,采用ABAQUS/STANDARD中使用奇异渐进函数。针对移动的裂纹问题,在XFEM中,有一种方法基于traction-separation cohesive behavior,即使用虚拟节点连续片段法进行移动裂纹建模,ABAQUS/STANDAR D 中用于计算脆性或韧性材料的裂纹初始化和扩展过程的模拟。另外一种cohesive segments method (粘性片段方法)可用于bulk material中的任意路径的裂纹初始化模拟扩展过程,由于裂纹扩展不依赖于单元边界,在XFEM中,裂纹每扩展一次需要通过一个完整单元,避免尖端应力奇异性。除此之外,ABAQUS为拥护提供了自定义子程序,来满足不同建模的需要。ABAQUS/STANDARD中的任意力学本构模型均可用来模拟扩展裂纹的力学特性。 由于XFEM采用的形函数在求解过程中,很容易造成逼近线性相关,极大的增加了收敛难度,到目前为止,能够实现扩展有限元的商业软件只有ABAQUS,但是ABAQUS为了减少求解难度,做了大量简化,因此用ABAQUS 扩展有限元模拟裂纹扩展时,有一些局限[16]: 1.扩展单元内不能同时存在两条裂纹,所以ABAQUS不能模拟分叉裂 纹; 2.在裂纹扩展分析过程中,每一个增量步的裂纹转角不允许超过90度; 3.自适应的网格是不被支持的; 4.固定裂纹中,只有各向同性材料的裂纹尖端渐进场才被考虑。 1.2 数值算例

ABAQUS子程序

Home 浅谈ABAQUS用户子程序 李青清华大学工程力学系 摘要本文首先概要介绍了ABAQUS的用户子程序和应用程序,然后从参数,功能两方面详细论述了DLOAD, UEXTERNALDB, URDFIL三个用户子程序和GETENVVAR,POSFIL,DBFILE三个应用程序,并详细介绍了ABAQUS的结果文件(.FIL)存储格式。 关键字ABAQUS,用户子程序,应用程序,结果文件 一、前言: ABAQUS为用户提供了强大而又灵活的用户子程序接口(USER SUBROUTINE)和应用程序接口(UTILITY ROUTINE)。ABAQUS 6.2.5一共有42个用户子程序接口,13个应用程序接口,用户可以定义包括边界条件、荷载条件、接触条件、材料特性以及利用用户子程序和其它应用软件进行数据交换等等。这些用户子程序接口使用户解决一些问题时有很大的灵活性,同时大大的扩充了ABAQUS的功能。例如:如果荷载条件是时间的函数,这在ABAQUS/CAE 和INPUT 文件中是难以实现的,但在用户子程序DLOAD中就很容易实现。 二.在ABAQUS中使用用户子程序 ABAQUS的用户子程序是根据ABAQUS提供的相应接口,按照FORTRAN语法用户自己编写的代码。在一个算例中,用户可以用到多个用户子程序,但必须把它们放在一个以.FOR为扩展名的文件中。运行带有用户子程序的算例时有两种方法,一是在CAE中运行,在EDIT JOB菜单的GENERAL子菜单的USER SUBROUTINE FILE对话框中选择用户子程序所在的文件即可;另外是在ABABQUS COMMAND用运行,语法如下: ABAQUS JOB=[JOB] USER?[.FOR]?C 用户在编写用户子程序时,要注意以下几点: 1.用户子程序不能嵌套。即任何用户子程序都不能调用任何其他用户子程

abaqus简单umat子程序

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) include 'aba_param.inc' CHARACTER*8 CMNAME DIMENSION STRESS(NTENS),STATEV(NSTATV),DDSDDE(NTENS,NTENS), 1 DDSDDT(NTENS),DRPLDE(NTENS),STRAN(NTENS),DSTRAN(NTENS), 2 TIME(2),PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3),DROT(3,3), 3 DFGRD0(3,3),DFGRD1(3,3) C UMAT FOR ISOTROPIC ELASTICITY C CANNOT BE USE D FOR PLAN E STRESS C ---------------------------------------------------------------- C PROPS(1) - E C PROPS(2) - NU C ---------------------------------------------------------------- C IF (NDI.NE.3) THEN WRITE (*,*) 'THIS UMAT MAY ONLY BE USED FOR ELEMENTS 1 WITH THREE DIRECT STRESS COMPONENTS' CALL XIT ENDIF open(400,file='D:\test.txt') C ELASTIC PROPERTIES EMOD=PROPS(1) ENU=PROPS(2) EBULK3=EMOD/(1-2*ENU) EG2=EMOD/(1+ENU) EG=EG2/2 EG3=3*EG ELAM=(EBULK3-EG2)/3 write(400,*) 'temp=',temp C ELASTIC STIFFNESS C DO K1=1, NDI DO K2=1, NDI DDSDDE(K2, K1)=ELAM END DO DDSDDE(K1, K1)=EG2+ELAM

ABAQUS用户子程序

当用到某个用户子程序时,用户所关心的主要有两方面:一是ABAQUS提供的用户子程序的接口参数。有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINE DLOAD中的KSTEP,KINC,COORDS;有些是需要用户自己定义的,例如F。二是ABAQUS何时调用该用户子程序,对于不同的用户子程序ABAQUS调用的时间是不同的。有些是在每个STEP的开始,有的是STEP结尾,有的是在每个INCREMENT的开始等等。当ABAQUS 调用用户子程序是,都会把当前的STEP和INCREMENT利用用户子程序的两个实参KSTEP和KINC传给用户子程序,用户可编个小程序把它们输出到外部文件中,这样对ABAQUS何时调用该用户子程序就会有更深的了解。 (子程序中很重要的就是要知道由abaqus提供的那些参量的意义,如下) 首先介绍几个子程序: 一.SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, JLTYP,SNAME) 参数: 1.F为用户定义的是每个积分点所作用的荷载的大小; 2.KSTEP,KINC为ABAQUS传到用户子程序当前的STEP和INCREMENT值;3.TIME(1),TIME(2)为当前STEP TIME和INCREMENT TIME的值;4.NOEL,NPT为积分点所在单元的编号和积分点的编号; 5.COORDS为当前积分点的坐标; 6.除F外,所有参数的值都是ABAQUS传到用户子程序中的。 功能: 1.荷载可以被定义为积分点坐标、时间、单元编号和单元节点编号的函数。 2.用户可以从其他程序的结果文件中进行相关操作来定义积分点F的大小。 例1:这个例子在每个积分点施加的荷载不仅是坐标的函数,而且是随STEP变化而变化的。SUBROUTINE DLOAD(P,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, 1 JLTYP,SNAME) INCLUDE 'ABA_PARAM.INC' C DIMENSION TIME(2),COORDS(3) CHARACTER*80 SNAME PARAMETER (PLOAD=100.E4) IF (KSTEP.EQ.1) THEN !当STEP=1时的荷载大小 P=PLOAD ELSE IF (KSTEP.EQ.2) THEN !当STEP=2时的荷载大小 P=COORDS(1)*PLOAD !施加在积分点的荷载P是坐标的函数 ELSE IF (KSTEP.EQ.3) THEN !当STEP=3时的荷载大小 P=COORDS(1)**2*PLOAD ELSE IF (KSTEP.EQ.4) THEN !当STEP=4时的荷载大小 P=COORDS(1)**3*PLOAD ELSE IF (KSTEP.EQ.5) THEN !当STEP=5时的荷载大小 P=COORDS(1)**4*PLOAD END IF RETURN END UMAT 子程序具有强大的功能,使用UMAT 子程序: (1) 可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计算,扩

Abaqus材料用户子程序UMAT基础知识与手册例子完整解释

1、为何需要使用用户材料子程序(User-Defined Material, UMAT )? 很简单,当ABAQUS 没有提供我们需要的材料模型时。所以,在决定自己定义一种新的材料模型之前,最好对ABAQUS 已经提供的模型心中有数,并且尽量使用现有的模型,因为这些模型已经经过详细的验证,并被广泛接受。 UMAT 子程序具有强大的功能,使用UMAT 子程序: (1)可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计算,扩充程序功能。 (2) 几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予ABAQU S 中的任何单元。 (3) 必须在UMAT 中提供材料本构模型的雅可比(Jacobian )矩阵,即应力增量对应变增量的变化率。 (4) 可以和用户子程序“USDFLD ”联合使用,通过“USDFLD ”重新定义单元每一物质点上传递到UMAT 中场变量的数值。 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 eleme nt model with prescribed traction loading (指定拉伸载荷) is strongly recommended. 但这并不意味着非力学专业,或者力学基础知识不很丰富者就只能望洋兴叹,因为我们的任务不是开发一套完整的有限元软件,而只是提供一个描述材料力学性能的本构方程(Constitutive equation )而已。当然,最基本的一些概念和知识还是要具备的,比如: 应力(stress),应变(strain )及其分量; volumetric part 和deviatoric part ;模量(modul us )、泊松比(Poisson’s ratio)、拉梅常数(Lame constant);矩阵的加减乘除甚至求逆;还有一些高等数学知识如积分、微分等。 3、UMAT 的基本任务? 我们知道,有限元计算(增量方法)的基本问题是: 已知第n 步的结果(应力,应变等)n σ,n ε,然后给出一个应变增量1+n d ε,计算新的应力1+n σ。UMAT 要完成这一计算,并要计算Jacobian 矩阵DDSDDE(I,J) =εσΔ?Δ?/。σΔ是应力增量矩阵(张量或许更合适),εΔ是应变增量矩阵。DDSDDE(I,J) 定义了第J 个应变分量的微小变化对

裂纹扩展的扩展有限元(xfem)模拟实例详解

基于ABAQUS 扩展有限元的裂纹模拟 化工过程机械622080706010 李建 1 引言 1.1 ABAQUS 断裂力学问题模拟方法 在abaqus中求解断裂问题有两种方法(途径):一种是基于经典断裂力学的模型;一种是基于损伤力学的模型。 断裂力学模型就是基于线弹性断裂力学及其基础上发展的弹塑性断裂力学等。如果不考虑裂纹的扩展,abaqus可采用seam型裂纹来分析(也可以不建seam,如notch型裂纹),这就是基于断裂力学的方法。这种方法可以计算裂纹的应力强度因子,J积分及T-应力等。 损伤力学模型是指基于损伤力学发展而来的方法,单元在达到失效的条件后,刚度不断折减,并可能达到完全失效,最后形成断裂带。这两个模型是为解决不同的问题而提出来的,当然他们所处理的问题也有交叉的地方。 1.2 ABAQUS 裂纹扩展数值模拟方法 考虑模拟裂纹扩展,目前abaqus有两种技术:一种是基于debond的技术(包括VCCT);一种是基于cohesive技术。 debond即节点松绑,或者称为节点释放,当满足一定得释放条件后(COD 等,目前abaqus提供了5种断裂准则),节点释放即裂纹扩展,采用这种方法时也可以计算出围线积分。 cohesive有人把它译为粘聚区模型,或带屈曲模型,多用于模拟film、裂纹扩展及复合材料层间开裂等。cohesive模型属于损伤力学模型,最先由Barenblatt 引入,使用拉伸-张开法则(traction-separation law)来模拟原子晶格的减聚力。这样就避免了裂纹尖端的奇异性。Cohesive 模型与有限元方法结合首先被用于混凝土计算和模拟,后来也被引入金属及复合材料。Cohesive界面单元要服从cohesive 分离法则,法则范围可包括粘塑性、粘弹性、破裂、纤维断裂、动力学失效及循环载荷失效等行为。 此外,从abaqus6.9版本开始还引入了扩展有限元法(XFEM),它既可以模拟静态裂纹,计算应力强度因子和J积分等参量,也可以模拟裂纹的开裂过程。被誉为最具有前途的裂纹数值模拟方法。本文将利用abaqus6.9版本中的扩展有限元法功能模拟常见的Ⅰ型裂纹的扩展。 2 Ⅰ型裂纹的扩展有限元分析 本文针对断裂力学中的平面Ⅰ型裂纹扩展问题用abaqus中的扩展有限元方法进行数值模拟,获得了裂纹扩展的整个过程,裂尖单元的应力变化曲线,以及裂纹尖端塑性区的形状。在此基础上绘制裂纹扩展的能量历史曲线变化趋势图。

ABAQUS用户子程序

ABAQUS用户子程序 转自https://www.doczj.com/doc/2715444288.html, 当用到某个用户子程序时,用户所关心的主要有两方面:一是ABAQUS提供的用户子程序的接口参数。有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINE DLOAD中的KSTEP,KINC,COORDS;有些是需要用户自己定义的,例如F。二是ABAQUS何时调用该用户子程序,对于不同的用户子程序ABAQUS调用的时间是不同的。有些是在每个STEP的开始,有的是STEP结尾,有的是在每个INCREMENT的开始等等。当ABAQUS调用用户子程序是,都会把当前的STEP和INCREMENT利用用户子程序的两个实参KSTEP和KINC传给用户子程序,用户可编个小程序把它们输出到外部文件中,这样对ABAQUS何时调用该用户子程序就会有更深的了解。 (子程序中很重要的就是要知道由abaqus提供的那些参量的意义,如下) 首先介绍几个子程序: 一.SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, JLTYP,SNAME) 参数: 1. F为用户定义的是每个积分点所作用的荷载的大小; 2. KSTEP,KINC为ABAQUS传到用户子程序当前的STEP和INCREMENT值; 3. TIME(1),TIME(2)为当前STEP TIME和INCREMENT TIME的值; 4. NOEL,NPT为积分点所在单元的编号和积分点的编号; 5. COORDS为当前积分点的坐标; 6.除F外,所有参数的值都是ABAQUS传到用户子程序中的。 功能: 1.荷载可以被定义为积分点坐标、时间、单元编号和单元节点编号的函数。 2.用户可以从其他程序的结果文件中进行相关操作来定义积分点F的大小。 例1:这个例子在每个积分点施加的荷载不仅是坐标的函数,而且是随STEP变化而变化的。SUBROUTINE DLOAD(P,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, 1 JLTYP,SNAME) INCLUDE 'ABA_PARAM.INC' C DIMENSION TIME(2),COORDS(3) CHARACTER80 SNAME PARAMETER (PLOAD=100.E4) IF (KSTEP.EQ.1) THEN !当STEP=1时的荷载大小 P=PLOAD ELSE IF (KSTEP.EQ.2) THEN !当STEP=2时的荷载大小 P=COORDS(1)PLOAD !施加在积分点的荷载P是坐标的函数 ELSE IF (KSTEP.EQ.3) THEN !当STEP=3时的荷载大小 P=COORDS(1)2PLOAD ELSE IF (KSTEP.EQ.4) THEN !当STEP=4时的荷载大小 P=COORDS(1)3PLOAD ELSE IF (KSTEP.EQ.5) THEN !当STEP=5时的荷载大小 P=COORDS(1)4PLOAD

ABAQUS中Cohesive单元建模方法讲解

复合材料模型建模与分析 1. Cohesive单元建模方法 1.1 几何模型 使用内聚力模型(cohesive zone)模拟裂纹的产生和扩展,需要在预计产生裂纹的区域加入cohesive层。建立cohesive层的方法主要有: 方法一、建立完整的结构(如图1(a)所示),然后在上面切割出一个薄层来模拟cohesive 单元,用这种方法建立的cohesive单元与其他单元公用节点,并以此传递力和位移。 方法二、分别建立cohesive层和其他结构部件的实体模型,通过“tie”绑定约束,使得cohesive单元两侧的单元位移和应力协调,如图1(b)所示。 (a)cohesive单元与其他单元公用节点(b)独立的网格通过“tie”绑定 图1.建模方法 上述两种方法都可以用来模拟复合材料的分层失效,第一种方法划分网格比较复杂;第二种方法赋材料属性简单,划分网格也方便,但是装配及“tie”很繁琐;因此在实际建模中我们应根据实际结构选取较简单的方法。 1.2 材料属性 应用cohesive单元模拟复合材料失效,包括两种模型:一种是基于traction-separation 描述;另一种是基于连续体描述。其中基于traction-separation描述的方法应用更加广泛。 而在基于traction-separation描述的方法中,最常用的本构模型为图2所示的双线性本构模型。它给出了材料达到强度极限前的线弹性段和材料达到强度极限后的刚度线性降低软化阶段。注意图中纵坐标为应力,而横坐标为位移,因此线弹性段的斜率代表的实际是cohesive单元的刚度。曲线下的面积即为材料断裂时的能量释放率。因此在定义cohesive的力学性能时,实际就是要确定上述本构模型的具体形状:包括刚度、极限强度、以及临界断裂能量释放率,或者最终失效时单元的位移。常用的定义方法是给定上述参数中的前三项,也就确定了cohesive的本构模型。Cohesive单元可理解为一种准二维单元,可以将它看作被一个厚度隔开的两个面,这两个面分别和其他实体单元连接。Cohesive单元只考虑面外的力,包括法向的正应力以及XZ,YZ两个方向的剪应力。 下文对cohesive单元的参数进行阐述,并介绍参数的选择方法。

ABAQUS子程序UMAT的应用

A B A Q U S子程序U M A T 的应用 This model paper was revised by the Standardization Office on December 10, 2020

目录

摘要 ABAQUS软件功能强大,特别是能够模拟复杂的非线性问题,它包括了多种材料本构关系及失效准则模型,并具有良好的开放性,提供了若干个用户子程序接口,允许用户以代码的形式来扩展主程序的功能。 本文主要研究了ABAQUS用户子程序UMAT的开发方法,采用FORTRAN语言编制了各向同性硬化材料模型的接口程序,研究该类材料的弹塑性本构关系极其实现方法。 本文紧紧围绕UMAT的二次开发技术,首先对其接口原理做了详细介绍,然后针 对非线性有限元增量理论中的常刚度法和切线刚度法的算法理论做了深入的剖析,推导出了常刚度法和切线刚度法的算法理论的具体表达式,然后分别编制了两种算法的UMAT程序,最后建立了一个具体的验算模型,通过与ABAQUS自带弹塑性本构关系的计算结果相比较,验证两者的正确性。 本文还对常刚度法和切线刚度法得算法效率做了对比,得出了在非线性程度较高 时切线刚度法效率高于常刚度法的结论。 关键字: ABAQUS、UMAT、有限元、材料非线性、FORTRAN、切线刚度 ABSTRACT ABAQUS software powerful, especially to simulate complex non-linear problem, which includes a wide range of material constitutive model and failure criteria, and has a good open, providing a number of user subroutine interface that allows users to code form to expand the functions of the main program.

abaqus裂纹模拟心得

abaqus裂纹模拟心得 baqus裂纹模拟心得(Contour Integral不是XFEM) 最近由于项目需要,做了一些裂纹相关的模拟,在此把一些心得体会贴到论坛上与大家分享,如有不当之处,欢迎大家指正! 本帖主要侧重于介绍裂纹定义过程中各个选项的意义,具体的操作过程论坛里已经有高手做了很好的教程,至于断裂力学理论推荐大家看一下沈成康写的《断裂力学》一书。裂纹的定义和输出需要用到interaction模块和step模块: 一、Interaction模块 1.1 预制裂纹(步骤:菜单/special/crack/assign seam) 注意:并不是作裂纹分析都要定义seam,如果你的裂纹不是一条缝,而是一个缺口,则不需要assign seam,直接走下一步(定义裂纹)就行。 1.2 创建裂纹(步骤:菜单/special/crack/create,type:contour integral) —crack front:crack front是用来定义第一围线积分的区域,2D下我们可以选择包围裂尖点的面,3D则选择包围裂尖线的面;另外还有一种定义crack front的方法,就是直接选择裂尖点(2D)或裂尖线3D),用这个方法定义crack front不需要再定义下一步的crack tip/line,比较简便,两种方法算出的结果没有明显的差别,其实只是影响积分路线的问题,但是J积分值是路径无关的,看个人喜好吧 —crack tip/line:这个比较好理解就是裂尖点(2D)或线(3D),如果我们在上一步中用方法二定义crack front,这一步就直接跳过了 —crack extension direction(定义裂纹扩展方向):这里定义的其实是一个虚拟的裂纹扩展方向,定义了这个参考方向后,我们才能通过输出的角度判断裂纹扩展方向,可以通过两种方法: o q vector:输入一个方向,用来作为计算裂纹的扩展方向的参考方向; o normal to crack plane:crack plane表示裂纹的对称面(当裂纹在一个平面内时,可能需要分开定义多个裂纹),这种方法下我们只需定义裂纹面的法线方向,通过(t表示裂纹尖端的切线), 会在每个节点得出一个q方向(如下图); o 注意:q的方向对输出的应力强度因子,J积分等都会有影响,一般情况下,q最好在裂纹平面内,且垂直于裂尖线的切线,否则算出的应力强度因子,J积分值等等在不同围线积分中会差别较大。 二、step模块 定义好了裂纹相关参数后,我们需要返回step模块定义输出变量: 步骤:菜单/output/history output requests/create,domain:crack,可以输出的值包括:J-integral,Ct-integral,stress intensity factor,T-stress —J-integral :用于应变率无关材料的准静态分析过程,包括线弹性,非线性弹性,弹塑性材料(单调加载工况)的静态分析。J-integral的优点是和积分路径无关,从而可以避开尖端塑性区的

abaqus有限元分析报告开裂梁要点

Abaqus梁的开裂模拟计算报告 1.问题描述 利用ABAQUS有限元软件分析如图1.1所示的钢筋混凝土梁的裂缝开展。参考文献Brena et al.(2003)得到梁的基本数据: 图1.1 Brena et al.(2003)中梁C尺寸 几何尺寸:跨度3000mm,截面宽203mm,高406mm的钢筋混凝土梁 由文献Chen et al. 2011得材料特性: 1.混凝土:抗压强度f c’=35.1MPa,抗拉强度f t= 2.721MPa,泊松比ν=0.2,弹性模量 E c=28020MPa; 2.钢筋:弹性模量为E c=200GPa,屈服强度f ys=f yc=440MPa,f yv=596MPa 3.混凝土垫块:弹性模量为E c=28020MPa,泊松比ν=0.2 2.建模过程 1)Part 打开ABAQUS使用功能模块,弹出窗口Create Part,参数为:Name:beam;Modeling Space:2D;Type:Deformable;Base Feature─Shell;Approximate size:2000。点击Continue 进入Sketch二维绘图区。由于该梁关于Y轴对称,建模的时候取沿X轴的一半作为模拟对象。 使用功能模块,分别键入独立点(0,0),(1600,0),(1600,406),(406,0),(0,0)并按下下方提 示区的Done,完成草图。 图2.1 beam 部件二维几何模型

相同的方法建立混凝土垫块: 图2.2 plate 部件二维几何模型 所选用的点有(0,0),(40,0),(40,10),(0,10) 受压区钢筋: 在选择钢筋的base feature的时候选择wire,即线模型。 图2.3 compression bar 部件二维几何模型 选取的点(0,0),(1575,0) 受拉区钢筋: 图2.4 tension bar 部件二维几何模型 选取的点(0,0),(1575,0) 箍筋: 图2.5 stirrup 部件二维几何模型 选取的点为(0,0),(0,330) 另外,此文里面为了作对比,部分的模型输入尺寸的时候为m,下面无特别说明尺寸都为mm。

ABAQUS子程序USDFLD

Abaqus/CAE User's Manual 12.8.5 Defining field variables at a material point (在一个材料点定义场变量) In Abaqus/Standard you can introduce dependence on solution variables with user subroutine USDFLD. This subroutine allows you to define field variables at a material point as functions of time, of any of the available material point quantities listed in “Abaqus/Standard output variable identifiers,” Section 4.2.1 of the Abaqus Analysis User's Manual, and of material directions. Material properties defined as functions of these field variables may, thus, be dependent on the solution. User subroutine USDFLD is called at each point for which the material definition includes a reference to the user subroutine. (在ABAQUS里面,你能够用子程序USDFLD来求解变量。USDFLD允许你将一个材料点上的场变量定义为时间函数,能够使用到的材料点在用户使用手册4.2.1节中“abaqus输出变量的标识码”中被提及到。材料的特性被定义作为场变量的函数,因此依赖于求解方法。) (在每个被定义材料性能的点USDFLD能够被调用) To include a reference to user subroutine USDFLD in a material definition: 1.From the menu bar in the Edit Material dialog box, select General User Defined Field. (For information on displaying the Edit Material dialog box, see “Creating or editing a material,” Section 12.7.1.) 2.Click OK to close the Edit Material dialog box. Alternatively, you can select another material behavior to define from the menus in the Edit Material dialog box (see “Browsing and modifying material behaviors,” Section 12.7.2, for more information). Abaqus/CAE User's Manual (子程序USDFLD在材料中的定义过程可参考下面:

Abaqus裂纹模拟心得(Contour Integral不是XFEM)

Abaqus裂纹模拟心得(Contour Integral不是XFEM) 最近由于项目需要,做了一些裂纹相关的模拟,在此把一些心得体会贴到论坛上与大家分享,如有不当之处,欢迎大家指正! 本帖主要侧重于介绍裂纹定义过程中各个选项的意义,具体的操作过程论坛里已经有高手做了很好的教程,至于断裂力学理论推荐大家看一下沈成康写的《断裂力学》一书。 裂纹的定义和输出需要用到interaction模块和step模块: 一、Interaction模块 1.1 预制裂纹(步骤:菜单/special/crack/assign seam) 注意:并不是作裂纹分析都要定义seam,如果你的裂纹不是一条缝,而是一个缺口,则不需要assign seam,直接走下一步(定义裂纹)就行。 1.2 创建裂纹(步骤:菜单/special/crack/create,type:contour integral) —crack front:crack front是用来定义第一围线积分的区域,2D下我们可以选择包围裂尖点的面,3D则选择包围裂尖线的面;另外还有一种定义crack front的方法,就是直接选择裂尖点(2D)或裂尖线3D),用这个方法定义crack front不需要再定义下一步的crack tip/line,比较简便,两种方法算出的结果没有明显的差别,其实只是影响积分路线的问题,但是J 积分值是路径无关的,看个人喜好吧 —crack tip/line:这个比较好理解就是裂尖点(2D)或线(3D),如果我们在上一步中用方法二定义crack front,这一步就直接跳过了 —crack extension direction(定义裂纹扩展方向):这里定义的其实是一个虚拟的裂纹扩展方向,定义了这个参考方向后,我们才能通过输出的角度判断裂纹扩展方向,可以通过两种方法: o q vector:输入一个方向,用来作为计算裂纹的扩展方向的参考方向; o normal to crack plane:crack plane表示裂纹的对称面(当裂纹在一个平面内时,可能需要分开定义多个裂纹),这种方法下我们只需定义裂纹面的法线方向,通过(t表示裂纹尖端的切线), 会在每个节点得出一个q方向(如下图); o 注意:q的方向对输出的应力强度因子,J积分等都会有影响,一般情况下,q最好在裂纹平面内,且垂直于裂尖线的切线,否则算出的应力强度因子,J积分值等等在不同围线积分中会差别较大。

ABAQUS(Explict)混凝土开裂模型翻译

混凝土开裂模型 适用模块:Abaqus/Explicit Abaqus/CAE 参考 ●“Material library: overview,” Section 18.1.1 ●“Inelastic behavior,” Section 20.1.1 ●*BRITTLE CRACKING ●*BRITTLE FAILURE ●*BRITTLE SHEAR ●“Defining brittle cracking” in “Defining other mechanical models,” Section 12.9.4 of the Abaqus/CAE User's Manual 概述 Abaqus/Explicit模块中脆性断裂模型: ●提供一种通用模型来模拟包括梁单元、桁架单元、壳单元以及实体单元在内的所有单元 形式; ●也可以用来模拟诸如陶瓷及脆性岩石的其他材料; ●用于模拟受拉开裂占主导地位的材料本构行为; ●假设受压行为是线弹性的; ●必须与线弹性模型(“Linear elastic behavior,” Section 19.2.1)同时使用,它也 定义了材料开裂前的本构行为; ●用于模拟脆性行为占主导地位的本构关系是十分准确的,基于此,假设受压行为是线弹 性的是合理的; ●该模型主要是用于钢筋混凝土结构的分析,同时也适用于素混凝土; ●基于脆性失效准则,将失效单元删除; 关于失效单元删除的内容详见“A cracking model for concrete and other brittle materials,” Section 4.5.3 of the Abaqus Theory Manual. 关于ABAQUS中可用混凝土本构模型的相关讨论参见“Inelastic behavior,” Section 20.1.1。 钢筋 ABAQUS中,混凝土结构中的钢筋是通过指定Rebar单元实现的。Rebar单元是一维应变理论单元(杆单元),既可以单独定义,也可以镶嵌在有向曲面上。关于Rebar单元的相关讨论参见“Defining rebar as an element property,” Section 2.2.4。Rebar单元特别地用来模拟钢筋的弹塑性行为,并且可叠加在用于模拟素混凝土标准单元的网格上。基于这种模拟方法,混凝土的开裂行为与Rebar是没有关系的。混凝土和钢筋之间的相互作用,例如粘结滑移、销栓作用,可以引入拉神硬化(强化)的概念来近似模拟混凝土裂缝处荷载向钢筋转移的特点。 开裂 Abaqus/Explicit中使用弥散裂缝模型来表征混凝土脆性行为的非连续性。这种方法并不关注于单个宏观裂缝,相反地,只是独立地计算有限元模型质点处的本构关系。裂缝的存在对于计算的影响在于:裂缝的存在影响质点处的应力和材料刚度。 为简化本部分讨论内容,“开裂”一词实质上代表的是一个方向——所考虑单个质点处裂缝的方向,与其最相近的物理解释为:在一个质点附近出现一系列连续的微裂缝,其方向

abaqus材料子程序

各向同性材料损伤本构模型 SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD, + RPL,DDSDDT,DRPLDE,DRPLDT, + STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME, + NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT, + CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC) INCLUDE 'ABA_PARAM.INC' CHARACTER*80 CMNAME DIMENSION STRESS(NTENS),STATEV(NSTATV), + DDSDDE(NTENS,NTENS),DDSDDT(NTENS), + DRPLDE(NTENS),STRAN(NTENS),DSTRAN(NTENS), + TIME(2),PREDEF(1),DPRED(1),PROPS(NPROPS), + COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3) DIMENSION STRANT(6),TSTRANT(4),PT(1) DIMENSION OLD_STRESS(6) DIMENSION DOLD_STRESS(6),D_STRESS(6) DIMENSION C(6,6),CD(6,6),DSTRESS(6),BSTRESS(6),ROOT(3), + DFMNDE(6),DDMDE(6),DCDDM(6,6),ATEMP1(6), ATEMP2(6) PARAMETER (ZERO=0.D0,ONE=1.D0,TWO=2.D0,FOUR=4.D0,HALF = 0.5D0) C start C IF (NPROPS.LT.2) THEN C WRITE(7,*) '** ERROR: UMAT REQUIRES *NPROPS=2' C STOP C EN D IF E11 =PROPS(1) V12 =PROPS(2) G12 =PROPS(1)/TWO/(ONE+PROPS(2)) C Critical values of stresses XT=PROPS(3) XC=PROPS(4) XS=PROPS(5) GX=PROPS(6) !Fracture energy in matrix ETA=0.001 C Current strain DO I = 1, NTENS STRANT(I) = STRAN(I) + DSTRAN(I) END DO C Stiffness DO I = 1, 6 DO J = 1, 6 C(I,J)=ZERO END DO END DO ATEMP = (1+V12)*(1-TWO*V12) C(1,1) = E11*(1-V12)/ATEMP C(2,2) = E11*(1-V12)/ATEMP C(3,3) = E11*(1-V12)/ATEMP C(1,2) = E11*V12/ATEMP

相关主题
文本预览
相关文档 最新文档