ABAQUS非线性用户单元的开发郭永进庄茁清华大学工程力学系北京99年11月8日ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系ABAQUS的用户子程序ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系用户子程序用户子程序为分析提供了一个非常强大、灵活的工具。用户子程序:可以提高几个ABAQUS选项的功能,仅用数据行的方式使用这些选项可能太过严格;用FORTRAN语言写成;在某些情况下可以利用ABAQUS的功能程序。ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系ABAQUS中的用户子程序:CREEP-定义时间相关的粘塑性行为(蠕变和膨胀)的用户子程序DFLOW-在压实分析中定义非均匀孔隙流体速度的用户子程序DFLUX-在热传导或质量扩散分析中定义非均匀分布流的用户子程序DISP-定义边界条件的用户子程序ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系DLOAD-定义非均匀分布载荷的用户子程序FILM-在热传导分析中定义非均匀膜系数和相关的下沉温度的用户子程序FLOW-在压实分析中定义非均匀渗流系数和相关的下沉孔隙压力的用户子程序FRIC-定义接触面摩擦行为的用户子程序GAPCON-在温度-位移耦合或者纯热传导分析中定义接触面或节点之间的热传导系数的用户子程序ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系GAPELECTR-在热-电耦合分析中定义表面间导电系数的用户子程序HARDINI-定义初始等效塑性应变和初始背应力张量的用户子程序HETVAL-在热传导分析中定义内部热产生的用户子程序MPC-定义多点约束的用户子程序ORIENT-为运动耦合约束定义局部方向或者定义局部材料取向的用户子程序ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系RSURFU-定义刚性表面的用户子程序SDVINI-定义依赖于解的状态变量场初始值的用户子程序SIGINI-定义初应力场的用户子程序UCORR-定义随机响应载荷的交叉-相关属性的用户子程序UEL-定义单元的用户子程序ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系非线性用户单元的开发动机定义用户单元UEL接口例:具有非线性截面行为的平面梁单元例:新开发的两种用户单元ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系概要ABAQUS/Standard提供接口,允许用户实现线性和非线性有限单元。非线性有限单元在用户子程序UEL中实现。接口允许定义任意复杂的单元。如果编写适当,用户单元可以在ABAQUS/Standard的大部分程序中应用。可以在一个UEL子程序中实现多个用户单元,这些单元可以同时使用。这里只讨论非线性用户单元的实现,并采用实例说明。ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系动机ABAQUS/Standard是一个功能强大的分析工具,拥有一个大单元库,有500多种单元-可以进行绝大部分复杂结构问题的分析。然而,在有些情况下需要开发用户单元来补充ABAQUS的单元库:所需的单元几何信息与ABAQUS已有的单元不同模拟与结构行为耦合的非结构物理过程施加依赖于解的载荷模拟主动控制机理ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系在分析程序如ABAQUS中开发用户单元而不是编写一个完全的分析程序的优点是很明显的:ABAQUS提供大量的结构单元、分析程序和建模工具。ABAQUS提供前处理和后处理。–许多第三方软件提供带有ABAQUS接口的前后处理器。维护和移植子程序比维护和移植一个完全的有限元程序容易的多。ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系定义用户单元用户单元的主要特征在编写UEL子程序前,必须先定义单元的以下主要特征:单元的节点数节点的坐标数每一个节点处的自由度数ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系其它重要的单元性质另外,必须定义下面的单元性质:需要在UEL外定义的单元性质数目每一个单元需要存储的依赖于解的状态变量数目(SDVs)可能会作用于单元上的(分布)载荷类型数目这些数目不必立即定义:它们可以很容易地在完成基本的UEL子程序后加入。ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系定义用户单元行为在一般的分析步中单元对模型的主要贡献是提供作用于节点上的“力”FN-依赖于节点的自由度uN的值。如果自由度是位移,那么相关的“力”为节点力。类似地,旋转对应于转矩,温度对应于热流。在非线性用户单元中“力”常常依赖于自由度的增量uN和内部状态变量H。–状态变量必须在用户子程序中进行更新。ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系在一般分析步中求解(非线性)方程组需要你定义单元的刚度矩阵:刚度矩阵应包含FN对uN所有的直接和间接的依赖性,例如在一般分析步中刚度矩阵定义的越精确,收敛性就越好。刚度矩阵确定线性扰动分析步的解,所以其定义必须精确。–刚度矩阵可以为对称或非对称。MNNMdudFKMNuHHFABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系用户单元的复杂程度可以变化很大。在由常规单元构成的分析中可以采用简单的用户单元来达到“控制”和“反馈”的功能。复杂的非线性结构单元的编制常常需要很大的工作量。如果单元由非线性材料构成,你最好用单独的子程序描述材料行为。如果材料模型是在子程序UMAT中实现的,那么可以在UEL中包含对UMAT的调用。前面对UMAT中积分的讨论同样适用于UEL中的材料模型。ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系UEL接口ABAQUS选项用户单元是用*USERELEMENT选项定义的。在输入文件中这个选项必须出现在引用用户单元的*ELEMENT选项的前面。输入文件中用于UEL的语法如下:*USERELEMENT,TYPE=Un,NODES=,COORDINATES=,PROPERTIES=,IPROPERTIES=,VARIABLES=,UNSYMMDatalines(s)*ELEMENT,TYPE=Un,ELSET=UELDataline(s)*UELPROPERTY,ELSET=UELDataline(s)*USERSUBROUTINE,(INPUT=file_name)*USERSUBROUTINE选项在ABAQUS6.1版本中将不再用。ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系UEL接口用户子程序UEL的接口如下:SUBROUTINEUEL(RHS,AMATRX,SVARS,ENERGY,NDOFEL,NRHS,NSVARS,1PROPS,NPROPS,COORDS,MCRD,NNODE,U,DU,V,A,JTYPE,TIME,DTIME,2KSTEP,KINC,JELEM,PARAMS,NDLOAD,JDLTYP,ADLMAG,PREDEF,3NPREDF,LFLAGS,MLVARX,DDLMAG,MDLOAD,PNEWDT,JPROPS,NJPROP,4PERIOD)CINCLUDE'ABA_PARAM.INC'CDIMENSIONRHS(MLVARX,*),AMATRX(NDOFEL,NDOFEL),1SVARS(NSVARS),ENERGY(8),PROPS(*),COORDS(MCRD,NNODE),2U(NDOFEL),DU(MLVARX,*),V(NDOFEL),A(NDOFEL),TIME(2),3PARAMS(3),JDLTYP(MDLOAD,*),ADLMAG(MDLOAD,*),4DDLMAG(MDLOAD,*),PREDEF(2,NPREDF,NNODE),LFLAGS(*),JPROPS(*)“INCLUDE”声明语句为浮点变量设置合适的精度(大部分机器上为REAL*8)。ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系UEL变量ABAQUS为用户单元UEL提供下面的变量:坐标、位移、增量位移,对于动态,还有速度和加速度增量开始时刻的状态变量SDVs总时间和增量时间、温度以及用户定义的场变量用户单元性质载荷类型及当前总载荷值和载荷增量值单元类型和用户定义的单元号分析类型标志,对于动态,积分算子值当前所在的分析步数和增量步数ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系必须定义下面的变量:右手端矢量(节点流或力)刚度矩阵依赖于解的状态变量可以定义下面的变量:单元的能量(应变能、塑性耗散、动能等)建议的新时间增量所有参数的详细描述请参见ABAQUS/Standard用户手册的第6.2.18节。ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系编写和测试UEL编写ABAQUS用户子程序的基本规则:遵从FORTRAN77或C的语法。确保所有的变量都定义和初始化过。为状态变量分配足够的存储空间。ABAQUS5.8-10版本要求FORTRAN编译器的版本为5.0;从ABAQUS5.8-14开始,要求FORTRAN编译器的版本为6.0。ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系复杂的UELs可能会存在很多潜在的问题,调试一个不收敛的包含UEL的大模型会带来不必要的困难。用只有一个单元的输入文件验证UEL:首先,用一般分析步进行测试-将所有的解变量都赋值,用来验证总流(力)。其次,用线性扰动步进行测试-将所有的载荷都赋值,用来验证单元的刚度矩阵。最后,用一般分析步进行测试-将所有的载荷都赋值,用来验证刚度矩阵和流矢量的匹配。逐渐增大测试问题的复杂程度。如果可能,与标准ABAQUS单元的结果进行比较。ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系例1:具有非线性截面行为的平面梁单元目标分析一个平面混凝土框架结构。这个框架所受载荷很大,混凝土内已有明显的非线性,但位移仍然很小,可以不考虑几何非线性。建立一个模型:直接用轴向力和弯矩描述非线性截面行为。–这与选项*BEAMSECTION,SECTION=NONLINEARGENERAL类似,但是允许轴向和弯曲项之间的耦合。忽略横向剪切变形。ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系编程要求单元采用数值积分;因此,需要在UEL中定义下面的量:单元[B]矩阵,用于联系轴向应变、曲率与单元位移{ue}:本构律矩阵[D],用于联系轴向力F、弯矩M与轴向应变、曲率:euBDMFABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系单元刚度矩阵:单元力矢量:采用数值积分:其中n为积分点数,li为与积分点i相关联的长度。dlBDBKlTe0dlMFBFlTe0niiillAAdl10ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系评论这个UEL所采用的描述和简单的B23单元用于几何线性分析时所采用的描述基本相同。这个程序可以和*TRANSFORM一起使用。这个程序可以比较简单地推广到三维分析。–将这个程序发展应用于几何非线性分析要复杂的多。即使是线性分析,每一个增量步至少调用这个程序两次(对于每一个单元):一次用于组集,一次用于恢复。然后,每一次迭代至少调用一次:组集和恢复同时进行。ABAQUS6.1版本发布会暨99中国地区用户会议清华大学工程力学系EPZ单元界面单元,用于裂纹自主扩展–起裂、加速、减速、止裂都是计算的结果ABAQUS6.1版本发布会暨99中国