子程序手册 1.1.49 USDFLD: User subroutine to redefine field variables at a material point.
Product: Abaqus/Standard 参考文献
? Section 2.1.6,在Abaqus/Standard分析中获得积分点信息(Obtaining material point information in an Abaqus/Standard analysis)
? Abaqus用户分析手册中Section 21.1.2,积分点数据定义(Material data definition) ? 用户定义场(* USER DEFINED FIELD) ? Abaqus例子手册中Section 1.1.14,层状复合板的损伤与失效(Damage and failure of a laminated composite plate) ? Abaqus验证手册中Section 4.1.24,USDFLD 概述
用户子程序USDFLD:
? 允许你在积分点定义场变量作为事件或列在输出变量标识表中积分点变量的函数(Abaqus用户分析手册Section 4.2.1,Abaqus/Standard output variable identifiers),除了用户定义的输出变量UVARM与UVARMn ? 使用它来引进解相关材料属性,既然能够轻易定义这些属性为场变量的函数
? 对于积分点包含用户定义场变量的单元来说,在其所有积分点上都能够调用子程序 ? 必须调用实用程序GETVRM来访问积分点数据 ? 能够使用并更新场变量
? 能够与用户子程序UFIELD一起使用来规定预定义场变量
明确的解依赖性
既然子程序只能在增量开始时访问积分点数据,以这种方式介绍的解依赖是明确的:在增量步中获得的结果不会影响给定增量下的材料性能。因此,结果的精度依赖于时间增量步的大小。因而,你可以通过变量PNEWDT来控制子程序中时间增量。
定义场变量
在调用用户子程序USDFLD之前,通过定义在节点上值差值方式来计算积分点上场变量的值。在用户子程序中场变量的任何改变局限于积分点:节点场变量保持最初状态、预定义场变量或在用户子程序USDFLD中的值。定义在子程序中场变量的值经常用来计算依赖于场变量的材料属性值,将它传递到能在物质点上调用的其他用户子程序中去,例如: ? CREEP ? HETVAL ? UEXPAN ? UHARD ? UHYPEL ? UMAT ? UMATHT ? UTRS
使用单元积分点输出变量FV来获得在材料点处用户定义场变量的输出(详见,Abaqus用户手册Section 4.2.1,Abaqus/Standard output variable identifiers)
访问材料点数据
在增量开始(或一个线性摄动分析步的基本状态中)通过实用子程序GETVRM来访问材料点数据(详见Section 2.1.6,Obtaining material point information in an Abaqus/Standard analysis)。通过以合适输出变量关键来调用GETVRM来获得材料点数值。以数组来恢复材料点数值,ARRAY, JARRAY ,and FLGRAY,分别代表浮点、整数与特征数。你并不能获得在增量开始时未定义的一些材料点值,例如:ER。 状态变量
既然在USDFLD中重新定义的场变量局限在当前增量步(将场变量恢复到每个增量开始时从节点差值得到的值),必须介绍通过使用这个子程序来更新材料属性的历史依赖性。
在USDFLD中能够更新状态变量,然后被传到能够在这个材料点调用的其他用户子程序中去,例如上面列举的子程序。你可以指定这些状态变量的数目,在本章末尾的例子中有说明(详见,用户分析手册Section 18.1.1,“Allocating space‖ in ―User subroutines: overview,‖)。
用户子程序界面
定义的变量
FIELD (NFIELD)
一个数组包含在当前材料点的场变量。用当前增量结束时从节点的差值来传递这些场变量,通过最初条件定义、预定义场变量定义,或用户子程序UFIELD。使用与温度差值相同的差值方法:对于线性单元使用平均值;对于二次单元使用近似线性变量(可以参考: Abaqus Analysis User‘s Manual,Section 28.1.1“Solid (continuum) elements‖)。使用更新数值来计算材料属性值,其材料属性依赖于场变量并被传递到在材料点调用的其他用户子程序(CREEP, HETVAL , UEXPAN , UHARD, UHYPEL , UMAT, UMATHT ,and UTRS)。
能够更新的变量
STATEV (NSTATV)
一个数组包含解相关变量。这些都是在增量开始时以数值传入的。在所有情况下,在子程序中能够更新STATEV,然后更新后的数值被传递到能够在材料点调用的其他用户子程序中去(CREEP, HETVAL , UEXPAN , UHARD, UHYPEL , UMAT, UMATHT ,and UTRS)。定义了与材料点相关的状态变量的数目,详见Abaqus用户分析手册Section
18.1.1 User subroutines: overview。
PNEWDT
PNEWDT指的是建议新的时间增量与所使用时间增量间的比例(DTIME,如下)。此变量能够允许你在Abaqus/Standard中对自动时间增量提供输入(假如选择了自动时间增量的话)。 在每次调用USDFLD之前,将PNEWDT设定为一个大数值
如果PNEWDT被重新定义为小于1.0的数,Abaqus/Standard必须舍弃时间增量,用一个更小时间增量再次尝试。提供给自动时间积分算法的建议新的时间增量是PNEWDT × DTIME,其中PNEWDT是允许迭代中重新定义PNEWDT的所有调用用户子程序中最小值。
如果PNEWDT是调用用户子程序中一个给定大于1.0的值,Abaqus/Standard可能会增加时间增量。提供给自动时间积分算法的建议新的时间增量是PNEWDT × DTIME,其中PNEWDT是允许迭代中重新定义PNEWDT的所有调用用户子程序中最小值。
如果在分析程序中没有选择自动时间增量,将忽略大于1.0的PNEWDT,小于1.0的PNEWDT会造成任务停止。
传递信息的变量 DIRECT (3,3)
包含物质点关于全局方向的方向余弦的数组。DIRECT(1,1) , DIRECT(2,1) , DIRECT(3,1) 给出了第一材料方向上的(1, 2, 3)分量;DIRECT(1,2) , DIRECT(2,2) , DIRECT(3,2) 给出了第二材料方向,等等。对于壳单元与膜单元来说,前两个方向是在单元面内,第三个方向是法向。对于梁单元来说,这些都是不可用的。 T (3,3)
包含相对于单元基本方向的材料方向分量的方向余弦的数组。它定义了材料方向(DIRECT)关于单元基本方向的方向。对于连续单元来说,T与DIRECT是完全一致的。对于壳单元与膜单元,T 1,1 =????????,T 1,2 =?sinθ,T 2,1 =????????,T 2,2 =????????,T 3,3 =1.0,其余分量为0,其中??为法向矢量逆时针旋转角度。如果没有使用方形,那么T是单位矩阵。方向并不适用于梁单元。
CELENT
特征单元长度。对于一阶单元来说,是沿单元一条线的长度;对于二阶单元来说,是同样典型长度的一半。对于梁与桁架,是沿单元轴的特征长度。对于膜与壳单元,它是参考面的特征长度。对于轴对称单元,它只是(r,z)平面内的特征长度。
TIME (1):在当前增量步开始时的分析步时间值 TIME (2):在当前增量步开始时总的时间值 DTIME:时间增量
CMNAME:用户指定的材料名称,左对齐 ORNAME:用户指定的局部方向名称,左对齐
NFIELD:定义在材料点的场变量的数目
NSTATV:用户定义的解依赖的状态变量(详见Abaqus用户分析手册Section 18.1.1 “Allocating space‖ in ―User subroutines: overview) NOEL:单元数目 NPT:积分点数目
LAYER:层数(对于复合壳体与分层固体) KSPT:当前层内截面点的数目 KSTEP:步数 KINC:增量数
NDI:此点法向应力分量的数目 NSHR:此点切向应力分量的数目 COORD:在材料点的坐标
JMAC:必须将变量传到GETVRM实用程序来访问输出变量 JMATYP:必须将变量传到GETVRM实用程序来访问输出变量 MATLAYO:必须将变量传到GETVRM实用程序来访问输出变量 LACCFLA:必须将变量传到GETVRM实用程序来访问输出变量
实例:损伤弹性模型
下面介绍一个用户子程序USDFLD的例子。在例子中,桁架单元承受拉应力。介绍了损伤弹性模型:模量随在加载历史中发生的最大拉应变的函数而减少。最大拉应变存储为解依赖的状态变量,详见Abaqus Analysis User‘s Manual Section 33.6.1,“Defining solution-dependent field variables‖ in ―Predefined fields‖
子程序手册 2.1.6 Obtaining material point information in an Abaqus/Standard analysis
在Abaqus/Standard分析中获得物质点信息
Product: Abaqus/Standard 参考文献
? “UVARM,‖ Section 1.1.53 ? “USDFLD,‖ Section 1.1.49 ? “UDMGINI,‖ Section 1.1.25
? “Damage and failure of a laminated composite plate,‖ Section 1.1.14 of the Abaqus Example Problems Manual ? “ USDFLD ,‖ Section 4.1.24 of the Abaqus Verification Manual ? “ UVARM,‖ Section 4.1.26 of the Abaqus Verification Manual