本文主要讨论:
1. 软件界面设置2.更新场变量3. 变量辨析4.子程序接口5.变量说明
适用求解器:Abaqus/Standard 1.具体调用方法见下图
图1
编辑切换为居中 2.后处理z变量,用场输出中的sdv查看也可以
图2
1.场变量在调用用户子程序 USDFLD 之前,材料点处的场变量值通过节点处定义的值进行插值计算。而我们上次介绍的UFIELD子程序就是用来定义节点处的场变量的。USDFLD用户子程序中对场变量的任何更改都是仅仅材料点处会修改,节点处不受影响,节点场变量保持为为初始条件、预定义场变量或用户子程序 UFIELD 中的值。此程序中定义的场变量的值用于计算定义为依赖于场变量的材料属性值,并传递到在材料点调用的其他用户子程序。2.状态变量由于 USDFLD 中场变量的重新定义是基于当前增量,因此必须引入使用此子程序更新材料属性所需的任何历史相关性与用户定义的状态变量。状态变量可以在 USDFLD 中更新,然后传递到可以在该材料点调用的其他用户子程序,例如上面列出的那些。你指定此类状态变量的数量,如图1中的depvar。
SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT,
1 TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER,
2 KSPT,KSTEP,KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO,LACCFLA)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME,ORNAME
CHARACTER*3 FLGRAY(15)
DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),
1 T(3,3),TIME(2)
DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),COORD(*)
user coding to define FIELD and, if necessary, STATEV and PNEWDT
RETURN
END
要定义的变量
FIELD(NFIELD)
包含当前材料点处的场变量的数组。这些与从当前增量末尾的节点插值的值一起传入,如初始条件定义、预定义字段变量定义或用户子例程 UFIELD 所指定。更新后的值用于计算定义为依赖于场变量的材料属性值。
要更新的变量
STATEV(NSTATV)
包含解相关状态变量的数组。这些作为增量开始时的值传入。在所有情况下,都可以在此子程序中更新 STATEV,并将更新后的值传递到在此材料点调用的其他用户子程序(CREEP、HETVAL、UEXPAN、UMAT、UMATHT 和 UTRS)。与该物质点相关联的状态变量的数量定义方法前面已经介绍了。
传递信息的变量
DIRECT(3,3)
一个数组,包含根据全局坐标方向的材料的方向余弦。
CELENT单元特征长度。对于一阶元素,这是穿过元素的典型直线长度;对于二阶元素,它是相同典型长度的一半。对于梁和桁架,它是沿单元轴的特征长度。对于膜和壳,它是参考表面中的特征长度。对于轴对称元素,它只是 (r,z) ( r , z ) 平面中的特征长度。
NFIELD用户定义的场变量数。
KSTEP分析步号KINC增量步号
TIME(1) 分析步时间的当前值。TIME(2)当前总时间。
DTIME时间增量
CMNAME用户指定的材料名称
TEMP(NSECPT)
节点的当前温度。如果同时使用用户子程序 UTEMP 和 UFIELD,则用户子程序 UTEMP 在用户子程序 UFIELD 之前处理。
NSTATV
用户定义的依赖于解决方案的状态变量的数量(请参阅为依赖于解决方案的状态变量分配空间)。
NOEL
单元号
NPT
积分点编号。
LAYER
层数(对于复合壳和分层实体)。
KSPT
当前层内的剖面点编号。NDI直接应力分量数。NSHR剪应力分量数。
COORD
在这个物质点的坐标。
JMAC
必须传递到 GETVRM 实用程序以访问输出变量的变量。
JMATYP
必须传递到 GETVRM 实用程序以访问输出变量的变量。
MATLAYO
必须传递到 GETVRM 实用程序以访问输出变量的变量。
LACCFLA
必须传递到 GETVRM 实用程序以访问输出变量的变量。
案例主要是是用户子程序 USDFLD 的示例,仅仅是帮助读者理解用法,在这个例子中,一个桁架单元被受拉加载。引入了损伤的弹性模型:弹性模量随加载过程中拉伸应变而降低。最大拉伸应变存储为依赖于解的状态变量中。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删