文档库 最新最全的文档下载
当前位置:文档库 › abaqus 关联问题:Abaqus 6.14-1 + Microsoft Visual Studio 2012 + Intel Parallel Studio XE

abaqus 关联问题:Abaqus 6.14-1 + Microsoft Visual Studio 2012 + Intel Parallel Studio XE

abaqus 关联问题:Abaqus 6.14-1 + Microsoft Visual Studio 2012 + Intel Parallel Studio XE
abaqus 关联问题:Abaqus 6.14-1 + Microsoft Visual Studio 2012 + Intel Parallel Studio XE

Abaqus6.14 subroutine 调用过程中与

VS2012+XE2013关联问题

针对最近使用abaqus调用子程序时出现如下图所示的错误,现将解决办法总结如下(‘ifort’不是内部或外部命令,也不是可运行的程序或批处理文件。Abaqus Error:Problem during compilation或者文件名、目录名或卷标语法不正确):

图1 abaqus调用子程序时出现错误

Abaqus 6.14-1 + Microsoft Visual Studio 2012 + Intel Parallel Studio XE 2013关于关联的问题:

1. 首先要正确安装Microsoft Visual Studio 2012 + Intel Parallel Studio XE 2013,其中,先安装VS2012,再安装XE2013,其次再安装abaqus,这步很重要。

2. Microsoft Visual Studio 2012 + Intel Parallel Studio XE 2013集成检验:

打开:开始所有程序->Intel Parallel Studio XE 2013 ->Command Prompt->Parallel Studio XE with Intel Compiler XE v13.1-> Intel 64 Visual Studio 2012 mode(如图2所示)

(a)Intel 64 Visual Studio 2012 mode路径图

(b)Intel 64 Visual Studio 2012 mode打开运行图

图2 Intel 64 Visual Studio 2012 mode

3. 在图2(b)中光标闪处输入-> %comspec% /k ""D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat"" x86_amd64(vcvarsall.bat的存放路径),然后Enter运行(运行结果如图3所示)。这样Microsoft Visual Studio 2012 + Intel Parallel Studio XE 2013集成成功。

图3 集成成功显示图

4. 找到abaqus 6.14-1安装路径下的abq6141.bat文件。例如:D:\SIMULIA\Abaqus\Commands\abq6141.bat;

5. 选中abq6141.bat文件,右键-> 编辑,打开(如图4所示)。

图4 abq6141.bat文件

6. 在图4中@echo前面加入调用VS2012和XE2013的语句,如下:

call "D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86_amd64

call "C:\Program Files (x86)\Intel\Composer XE 2013\bin\ifortvars.bat" intel64 vs2012

其中,所有字符需在英文状态下输入。(如图5所示)

7. Abaqus 6.14-1就可以成功调用子程序,并进行数值模拟。

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

扩展有限元简介

扩展有限元 有限元是将一个物理实体模型离散成一组有限的相互连接的单元组合体, 该方法在考虑物体内部存在缺陷时间,单元边界与几何界面一致,会造成局部网格加密,其余区域稀疏的非均匀网格分布,在网格单元中最小的尺寸会增加计算成本,再者裂纹的扩展路径必须预先给定只能沿着单元边界发展。 1999年,美国西北大学Beleytachko 提出了扩展有限法,该方法是对传统有限元法进行了重大改进。扩展有限元法的核心思想是用扩充带有不连续性质的形函数来代表计算区域内的间断,在计算过程中,不连续场的描述完全独立于网格边界,在处理断裂问题有较好的优越性。利用扩展有限元,可以方便的模拟裂纹的任意路径,还可以模拟带有孔洞和夹杂的非均质材料。 扩展有限元是以标准有限元的理论为框架,保留传统有限元的优点,目前商业软件中如Abaqus 等都加入扩展有限元的分析模块。 扩展有限元以有限元为基本框架,主要针对不连续问题进行研究,相对于传统有限元方法,它克服了裂纹扩展问题的不足。其采用节点扩展函数,其中包括2个函数:裂纹尖端附近渐进函数表示裂纹尖端附近的应力奇异性;间断函数表示裂纹面处位移跳跃性。整体划分位移函数表示为 αααI =I I I =∑∑++=b x F a x H u x N x u N i )(])()[()('41 1 式中:)(x N I 为常用的节点位移函数;I u 为常规形状函数节点自由度,适用于模型中的所有节点;)(x H 为沿裂纹面间断跳跃函数;I a 为节点扩展自由度向量,这项只对形函数被裂纹切开的单元节点有效;)(x F α为裂纹尖端应力渐进函数;αI b 为节点扩展自由度向量,这项只对形函数被裂纹尖端切开的单元节点有效。 沿裂纹面间断跳跃函数)(x H 表达式为: otherwise n x x if x H 0)(11)(*≥-???-= 式中:x 为样本点;*x 距x 最近点;n 为单位外法线向量。 各向同性材料的裂纹尖端渐进函数)(x F α表达式为: ????? ?=2cos sin ,2sin sin ,2cos ,2sin )(θθθθθθαr r r r x F 裂纹尖端的渐进函数并不局限于各向同性弹性材料的裂纹建模。可用于弹塑性指数硬化材料,不同的裂纹尖端渐进函数的形式与裂纹位置、非线性材料变形程度有关。

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版本XFEM扩展元例子的详细图解

A B A Q U S6.9版本X F E M(扩展有限元)例子的详细图解 一、part模块中的操作: 二、 1.生成一个新的part,取名为plate,本part选取3Ddeformablesolidextrusion类型(如图1) 三、 2.通过Rectangle工具画出一长3,高6的矩形。考虑使用工具栏add-dimension和editdimension 来画出精确长度的模型。强烈建议此矩形的左上角坐标为(0,3),右下角坐标为(3,-3)(如图2) 四、 3.完成后拉伸此矩形,深度为1.(如图3) 五、图1,图2,图3, 4.生成一个新的part,取名为crack,本part选取3Ddeformableshellextrusion类型(如图4)

5.生成一条线,此线的左端点坐标为(0,0.08),右端点坐标为(1.5,0.08) 6.完成后拉伸此线,深度为1.(如图6) 7.保存此模型为XFEMtutor(如图7),以后经常保存模型,不再累述。 8.在partPlate中分别创建4个集合,分别为:all,bottom,top和fixZ,各部分的内容如图8~11所示。

二、Material模块中的操作: 1.创建材料elsa,其弹性参数为E=210GPa,泊松比为0.3(如图12) 最大主应力失效准则作为损伤起始的判据,最大主应力为84.4MPa(如图13)

损伤演化选取基于能量的、线性软化的、混合模式的指数损伤演化规律,有关参数为 G1C=G2C=G3C=42200N/m, =1.(如图14) 2.创建一个SolidHomogeneous的section,名为solid(如图15),此section与材料elsa相联(如图16),并将此section赋给platepart(也就是集合all)(如图17) 3.赋予材料取向,分别如图18~21所示。

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扩展有限元(xfem)例子(裂缝发展) ()

Abaqus扩展有限元(XFEM)例子(裂缝发展) part模块中的操作: 1. 生成一个新的part,取名为plate,本part选取3D deformable solid extrusion类型(如图1) 2.通过Rectangle工具画出一长3,高6的矩形。考虑使用工具栏add-dimension和edit dimension来画出精确长度的模型。强烈建议此矩形的左上角坐标为(0,3),右下角坐标为(3,-3)(如图2) 3. 完成后拉伸此矩形,深度为1.(如图3) 4. 生成一个新的part,取名为crack,本part选取3D deformable shell extrusion类型(如图4)

5.生成一条线,此线的左端点坐标为(0,0.08),右端点坐标为(1.5,0.08) 6 . 完成后拉伸此线,深度为1.(如图6) 7.保存此模型为XFEMtutor(如图7),以后经常保存模型,不再累述。 8. 在part Plate中分别创建4个集合,分别为:all,bottom,top和fixZ,各部分的内容如图

8~11所示 Material模块中的操作: 1 创建材料elsa,其弹性参数为E=210GPa,泊松比为0.3(如图12) 2 最大主应力失效准则作为损伤起始的判据,最大主应力为84.4MPa(如图13)

3.损伤演化选取基于能量的、线性软化的、混合模式的指数损伤演化规律,有关参数为G1C= G2C= G3C=42200N/m,a=1.(如图14) 4.创建一个Solid Homogeneous 的section,名为solid(如图15),此section与材料elsa相

abaqus中xfem扩展有限元教程

abaqus 中xfem扩展有限 元教程

part 模块中的操作: 1. 生成一个新的 part ,取名为 plate ,本 part 选取 3D deformable solid extrusion 类型 (如图1) 2. 通过Rectangle 工具画出一长 3,高6的矩形。考虑使用工具栏 add-dimension 和edit dimension 来画出精确长度的模型。强烈建议此矩形的左上角坐标为( 0, 3),右下角坐标 为(3,-3)(如图2) 3.完成后拉伸此矩形,深度为 1.(如图3 )3D '、2D Planw I ' Axisymmetric Tyre Options ” Di scr^te ri gi >1 f'■ Analytical ri

4.生成一个新的 part ,取名为 crack ,本 part 选取 3D deformable shell extrusion 类型 (如图4) 叩刊网扌 rr Ack M ud-el L iLg. Spa-j-e (*) 3D { ' 29 Pl war ( ) Ajci symmetri c Typ? @ H 栏 £oir.ahle: :;Di 5?r ?tc ari gi d Cj An>lytic41 rigid ■.. j Euler i an Opti QKS None available Q hl 迥 ⑥*1】 ■:.\ Wire (.Poiitt Base Feature Type Planar Ez trusi on Rezolution Swsep Xppr^MiTatt =it e Cine el 5.生成一条线,此线的左端点坐标为( 0, 0.08 ),右端点坐标为(1.5 , 0.08 )

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平台的扩展有限元方法模拟裂纹实现

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中扩展有限元(XFEM)功能简介

ABAQUS中扩展有限元(XFEM)功能简介 扩展有限元(Extended Finite Element Method)是一种解决断裂力学问题的新的有限元方法,其理论最早于1999年,由美国西北大学的教授Belyschko和Black首次提出,主要是采用独立于网格剖分的思想解决有限元中的裂纹扩展问题,在保留传统有限元所有优点的同时,并不需要对结构内部存在的裂纹等缺陷进行网格划分。 ABAQUS基于在非线性方面的突出优势,在其6.9的版本中开始加入了扩展有限元功能,到6.13做了一些修正,加入了一些可以被CAE支持的关键字。目前为止,除了手动编程,能够实现扩展有限元常用的商业软件只有ABAQUS,今天,我们就来谈谈ABAQUS 中如何实现扩展有限元。 1. XFEM理论 在XFEM理论出现之前,所有对裂纹的静态模拟(断裂)都基本上是采用预留裂缝缺角,通过细化网格仿真裂缝的轮廓。而动态的模拟(损伤)基本上都是基于统计原理的Paris 方法。然而,断裂和损伤的结合问题却一直没有得到有效的解决,究其原因,在于断裂力学认可裂纹尖端的应力奇异现象(就是在靠近裂尖的区域应力值会变无穷大),并且尽可能的绕开这个区域。而损伤力学又没有办法回避这个问题(裂纹都是从尖端开裂的)。 从理论上讲,其实单元内部的位移函数(形函数)可以是任意形状的,但大多数的计算软件都采用了多项式或者插值多项式作为手段来描述单元内部的位移场,这是因为采用这种方法更加便于在编程中进行处理。但是这种方法的缺点就是,由于形函数的连续性,导致单元内部不可能存在间断。直到Belytschko提出采用水平集函数作为手段,其基本形式为 和 上面左边的等式描述了单元内裂缝的位置,右边的等式描述了裂尖的位置。与之对应的形函数便是

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.wendangku.net/doc/4718088044.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子程序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精选本FEM扩展元例子的详细图解

版本X F E M(扩展有限元)例子的详细图解 一、part模块中的操作: 二、 1.生成一个新的part,取名为plate,本part选取3Ddeformablesolidextrusion类型(如图1) 三、 2.通过Rectangle工具画出一长3,高6的矩形。考虑使用工具栏add-dimension和 editdimension来画出精确长度的模型。强烈建议此矩形的左上角坐标为(0,3),右下角坐标为(3,-3)(如图2) 四、 3.完成后拉伸此矩形,深度为1.(如图3) 五、图1,图2,图3, 4.生成一个新的part,取名为crack,本part选取3Ddeformableshellextrusion类型(如图4)

5.生成一条线,此线的左端点坐标为(0,),右端点坐标为(,) 6.完成后拉伸此线,深度为1.(如图6) 7.保存此模型为XFEMtutor(如图7),以后经常保存模型,不再累述。 8.在partPlate中分别创建4个集合,分别为:all,bottom,top和fixZ,各部分的内容如图8~11所示。

二、Material模块中的操作: 1.创建材料elsa,其弹性参数为E=210GPa,泊松比为(如图12) 最大主应力失效准则作为损伤起始的判据,最大主应力为(如图13)

损伤演化选取基于能量的、线性软化的、混合模式的指数损伤演化规律,有关参数为 G1C=G2C=G3C=42200N/m,=1.(如图14) 2.创建一个SolidHomogeneous的section,名为solid(如图15),此section与材料elsa相联(如图16),并将此section赋给platepart(也就是集合all)(如图17) 3.赋予材料取向,分别如图18~21所示。

abaqus6.8和6.9的新功能

ABAQUS6.9新功能 一、扩展有限元(XFEM)的引入 我认为ABAQUS将扩展有限元引入是其最大亮点,也非常有市场前景。该方法可以认为是有限元方法处理不连续问题的革命性变革。据我所知,这是第一个将XFEM商用化的软件。我厂在生产过程中可能遇到的裂纹问题,夹杂问题,气孔,复合材料问题(复合材料的纤维相当于夹杂)都可以通过这种方法解决。虽然我对该方法的理论不胜了解,但是在此我想就我所知对该方法多做些介绍。+ u! _2 v# n& O& M* P 固体力学中存在两类典型的不连续问题,一类是因材料特性突变引起的弱不连续问题,这类问题以双材料问题和夹杂问题为代表,其复杂性由物理界面处的应变不连续性引起;另一类是因物体内部几何突变引起的强不连续问题,这类问题以裂纹问题为代表,其复杂性由几何界面处的位移不连续性和端部的奇异性引起.物体内部物理界面的脱粘或起裂,是上述两类问题的混合.另外,在复杂流体、复杂传热、物质微结构演化等复杂问题中,也存在许多不连续力学问题。* e4 o5 F2 K4 n& g n3 {4 U 数值方法,如有限元、边界元、无单元法等,一直是处理不连续问题的主要途径.有限元法具有其它数值方法无可比拟的优点,即适用于任意几何形状和边界条件、材料和几何非线性问题、各向异性问题、容易编程等,因而成为数值分析裂纹等不连续问题的主要手段。更为重要的是有限元方法的商业化程度和推广程度都很高,对于我们这样的企业已经有一大批熟悉有限元技术的工程师。因此通过有限元方法来解决这一问题是成本低效率高的途径。但是传统的有限元方法在处理裂纹,夹杂,空隙这些不连续问题时困难非常大。) t, Z- t8 ?2 J+ ~3 f: Q 常规有限元法(CFEM)采用连续函数作为形状(插值)函数,要求在单元内部形状函数连续且材料性能不能跳跃,在处理像裂纹这样的强不连续(位移不连续)问题时,必须将裂纹面设置为单元的边、裂尖设置为单元的结点、在裂尖附近的高应力区需要令人难以接受的网格密度,同时在模拟裂纹生长时还需要对网格进行重新剖分。现在绝大多数商业软件在模拟裂纹扩展问题时都需要预设裂纹的扩展方向,而且在裂纹扩展过程中不断的从新划分网格,效率极低甚至无能为力。在处理多裂纹问题时,其求解规模之大、网格剖分之难是不可想象的。处理夹杂问题时,要求单元的边必须位于夹杂与基体的界面处,即使对于网格自动化程度很高的二维问题这也不容易,更何况拓扑结构更复杂的三维问题。 1999年以来,在有限元框架内发展起来的扩展有限元法,以解决不连续问题为着眼点,对常规有限元法在求解裂纹问题时所遇到的困难提出了近乎完美的解决方案。' G, ]4 z! c/ i$ d2 T 1999年,以美国西北大学Belytschko教授为代表的研究组首先提出扩展有限元思想,20 00年,他们正式使用扩展有限元法(XFEM)这一术语即。XFEM是迄今为止求解不连续力学问题最有效的数值方法,它在标准有限元框架内研究问题,保留了CFEM的所有优点,但并不需要对结构内存在的几何或物理界面进行网格剖分。XFEM与CFEM的最根本区别在于所使用的网格与结构内部的几何或物理界面无关,从而克服了在诸如裂纹尖端等高应力和变形集中区进行高密度网格剖分所带来的困难,当模拟裂纹扩展时也无需对网格进行重新剖分。 也就是说在裂纹的扩展过程中裂纹可以穿透单元扩展。就其理论我们可以简单的理解为在单元内部有很多的潜在节点,当需要时这些节点被激活实现裂纹穿透单元扩展。在宣讲会上ABAQUS业务代表现场展示了其用XFEM完成的II裂纹扩展模拟,裂纹面沿70°方向穿透单元扩展 我有个师兄也在从事XFEM方面的研究工作。他在研究中遇到的主要问题是材料中有大小随机的夹杂的时候可能会出现一个单元将一个或多个夹杂完全包围在其中的情况。处理这种

第5章+在ABAQUS中构造有限元模型的若干问题-

第五章 构造有限元模型的若干问题 第三章所述的岩土工程中常用的本构模型可用于以下四种类型的单元中: 1. 平面应变单元 2. 广义平面应变单元 3. 轴对称单元 4. 三维单元 在应用平面应变单元时,只能用子午线作为线性的Drucker-Prager 模型。 考虑非线性变形的轴对称单元具有如下功能:初始变形是轴对称的,在进入非线性变形后,允许产生非轴对称变形,这个功能是十分有用的,比如桩基承受轴向力、水平力和弯矩时,它在r-z 平面上采用标准的插值函数,在与θ有关的方向上采用Fourier 级数插值函数,这类单元可以充分考虑不同方位上变形的差异,其计算结果更接近实际。 考虑流体在多孔介质中的作用时,需采用位移——孔隙压力耦合单元,耦合单元可应用于平面应变单元、轴对称/反对称单元、三维单元。此时,位移与孔隙压力的插值函数可以不同,孔隙压力通常采用线性插值已经足够,位移则可选择线性插值或二次插值。 有限元与无限元相结合来求解考虑这个问题是一个有效的方法。 5-1 广义平面单元 所谓广义平面单元是指位于两个受约束的平面之间的区域,这两个受约束的平面可以如同刚体一般绕轴相互转动,这个转动会导致沿厚度方向上的应变。假定这个应变在厚度方向上与位置无关,则两个平面的相对移动仅仅在厚度方向上引起应变。这样引起的应变以及一阶与二阶变量由下式定义: 设P 0(x 0,y 0)为受约束平面上的一个固定点,P 0到另一个受约束平面的距离为z u t ?+0,其中t 0是初始距离,z u ?是变形过程中产生的位移,z u ?为广义平面元节点自由度的一阶变量。对于用广义平面元进行连结的某一区域而言,只有一个广义平面元节点自由度。不同的连结区域可以有不同的广义平面应变节点,因此两个受约束的平面之间的这个区域可视为一个刚体,该区域中任何其它点(x ,y )的纤维长度为: y x z Z x Y y u t t φ???φ??+?+=)()(000 (5-1-1) 其中 10)(|)(x x x φ?+φ?=φ? (5-1-2) 10)(|)(y y y φ?+φ?=φ? (5-1-3)

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在材料中的定义过程可参考下面:

相关文档
相关文档 最新文档