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