Abaqus子程序:Uvarm子程序——自定义云图

概述

  • 在包含用户定义输出变量规范的材料定义中,会在所有的元素材料计算点上调用该子程序;

  • 因为Abaqus/Standard迭代到收敛解,可能会在每个增量中的每个材料点上多次调用;

  • 会在每个步骤的每个增量中调用;

  • 允许您定义作为任何可用积分点数量的函数的输出量,这些数量在“使用Abaqus/Standard输出变量标识符”表中列出;

  • 允许您将材料方向定义为输出变量;

  • 可以用于垫片元素;

  • 可以调用实用程序GETVRM以访问材料点数据;

  • 除了静态扰动过程外,不能与线性扰动程序一起使用;

  • 在具有多个负载情况的静态扰动过程中,每个负载情况只会调用一次;并且

  • 在零增量中不能更新。

子程序使用注意

  • 在Abaqus/Standard分析中,可以通过实用程序GETVRM获得材料点数量的值。在非线性分析中,返回的值将对应于当前解的迭代,仅在每个增量的最后一次迭代时代表收敛解。在静态扰动过程中,只能访问计算扰动值的那些数量。材料点数据的值以浮点数、整数和字符数据分别恢复到数组ARRAY、JARRAY和FLGRAY中。浮点数数据以双精度数据恢复。

  • 在Abaqus/Standard中,用户自定义输出量的输出标识符是UVARM。每个分量可以通过UVARMn进行访问,其中n的范围为1到NUVARM。对于给定的材料,您需要指定用户定义输出变量的数量NUVARM,以便在每个材料计算点为每个变量分配空间。这些用户定义的输出变量可用于打印输出和结果文件输出,并写入输出数据库和重启文件,以便在Abaqus/CAE中进行等值线、打印和X-Y绘图。您可以根据需要使用任意数量的用户定义输出变量。

  • 这些数据以双精度提供,可用于向数据(.dat)和结果(.fil)文件输出,并以单精度形式写入输出数据库(.odb)文件中。由于用户提供的UVARM输出变量是双精度的,因此在将输出结果写入输出数据库文件时,即使没有在UVARM中发生溢出错误,也可能会出现与单精度表示容量不足相关的数值溢出错误。

子程序使用

调用界面

1. Material 模块设置

2. Step 模块设置

用户子程序接口


      SUBROUTINE UVARM(UVAR,DIRECT,T,TIME,DTIME,CMNAME,ORNAME,
     1 NUVARM,NOEL,NPT,LAYER,KSPT,KSTEP,KINC,NDI,NSHR,COORD,
     2 JMAC,JMATYP,MATLAYO,LACCFLA)
      INCLUDE 'ABA_PARAM.INC'
C
      CHARACTER*80 CMNAME,ORNAME
      CHARACTER*3 FLGRAY(15)
      DIMENSION UVAR(NUVARM),DIRECT(3,3),T(3,3),TIME(2)
      DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),COORD(*)

C     The dimensions of the variables FLGRAY, ARRAY and JARRAY
C     must be set equal to or greater than 15.


      user coding to define UVAR


      RETURN
      END

子程序变量

1. 要定义的变量

UVAR(NUVARM)

一个包含用户定义输出变量的数组。这些值在增量开始时作为输入传入,并且必须在增量结束时作为输出返回

2. 传递信息的变量

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) = cosθ, T(1,2) = -sinθ, T(2,1) = sinθ, T(2,2) = cosθ, T(3,3) = 1.0,所有其他分量都为零。其中θ是绕法向量逆时针旋转来定义取向的角度。如果没有使用取向,T就是一个单位矩阵。梁和桁架元素不支持取向参数。

其他

TIME(1):当前增量结束时的步长时间值。

TIME(2):当前增量结束时的总时间值。

DTIME:时间增量。

CMNAME:用户指定的材料名称,左对齐。

ORNAME:用户指定的局部取向名称,左对齐。

NUVARM:用户指定的用户定义输出变量数量。

NOEL:单元编号。

NPT:积分点编号。

LAYER:层编号(用于复合壳体和分层固体)。

KSPT:当前层中的截面点编号。

KSTEP:步骤编号。

KINC:增量编号。

NDI:该点应力分量的个数。

NSHR:该点剪切应力分量的个数。

COORD:该材料点的坐标。

JMAC:必须传递给GETVRM实用程序以访问输出变量的变量。

JMATYP:必须传递给GETVRM实用程序以访问输出变量的变量。

MATLAYO:必须传递给GETVRM实用程序以访问输出变量的变量。

LACCFLA:必须传递给GETVRM实用程序以访问输出变量的变量。

案例介绍

下面是一个名为UVARM的用户子程序的示例。该子程序通过从应力张量σ中减去运动硬化塑性模型中的运动偏移张量α,计算当前状态应力相对于屈服面中心的位置。


      SUBROUTINE UVARM(UVAR,DIRECT,T,TIME,DTIME,CMNAME,ORNAME,
     1 NUVARM,NOEL,NPT,LAYER,KSPT,KSTEP,KINC,NDI,NSHR,COORD,
     2 JMAC,JMATYP,MATLAYO,LACCFLA) 
C
      INCLUDE 'ABA_PARAM.INC'
C
      CHARACTER*80 CMNAME,ORNAME
      CHARACTER*3 FLGRAY(15)
      DIMENSION UVAR(NUVARM),DIRECT(3,3),T(3,3),TIME(2) 
      DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),COORD(*)
C
C Error counter:
      JERROR = 0
C Stress tensor:
      CALL GETVRM('S',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,
     1 MATLAYO,LACCFLA)
      JERROR = JERROR + JRCD
      UVAR(1) = ARRAY(1)
      UVAR(2) = ARRAY(2)
      UVAR(3) = ARRAY(3)
      UVAR(4) = ARRAY(4)
      UVAR(5) = ARRAY(5)
      UVAR(6) = ARRAY(6)
C Kinematic shift tensor:
      CALL GETVRM('ALPHA',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,
     1 MATLAYO,LACCFLA)
      JERROR = JERROR + JRCD
C Calculate the position relative to the center of the
C yield surface:
      UVAR(1) = UVAR(1) - ARRAY(1)
      UVAR(2) = UVAR(2) - ARRAY(2)
      UVAR(3) = UVAR(3) - ARRAY(3)
      UVAR(4) = UVAR(4) - ARRAY(4)
      UVAR(5) = UVAR(5) - ARRAY(5)
      UVAR(6) = UVAR(6) - ARRAY(6)
C If error, write comment to .DAT file:
      IF(JERROR.NE.0)THEN
        WRITE(6,*) 'REQUEST ERROR IN UVARM FOR ELEMENT NUMBER ',
     1      NOEL,'INTEGRATION POINT NUMBER ',NPT
      ENDIF
      RETURN
      END

结语

今天分享一个用于自定义场输出的子程序,例如自定义云图等,公众号冬生亦东生后台回复 Uvarm子程序

获取更多案例。如果觉得有用请分享让更多人看到,觉得有不当之处欢迎指正交流。好看的话,下次再看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冬生亦东生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值