You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Abaqus 2022中通过VUMAT子程序获取积分点编号

在Abaqus 2022 VUMAT中直接获取积分点编号的方案

从Abaqus 2020版本开始,确实可以通过jInfoArray直接获取积分点的局部编号,无需再依赖vumatXtrArg(...)子程序,具体实现方式如下:

  • 核心用法:jInfoArray是VUMAT的输入参数之一,其中第3个元素(Fortran 1-based索引)对应当前调用所针对的单元内积分点局部编号,同时第1个元素是单元编号,可配对使用。
  • 代码示例:
subroutine VUMAT(STATEV, DDSDDE, SSE, SPD, SCD, RPL, DDSDDT, DRPLDE, DRPLDT, &
    STRAN, DSTRAN, TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED, CMNAME, NDI, NSHR, &
    NTENS, NSTATV, PROPS, NPROPS, COORDS, DROT, PNEWDT, CELENT, DFGRD0, DFGRD1, &
    NOEL, NPT, LAYER, KSPT, KSTEP, KINC, JELEM, PARAMS, NDLOAD, JTYPE, &
    LDLOAD, JARRAY, NJARRAY, jInfoArray, nJInfoArray)
    implicit none
    ! 省略其他参数声明
    integer, intent(in) :: jInfoArray(*)
    integer :: elem_id, integ_pt_id

    ! 获取单元编号和积分点局部编号
    elem_id = jInfoArray(1)
    integ_pt_id = jInfoArray(3)

    ! 此处添加你的业务逻辑,例如记录积分点数据等
end subroutine VUMAT
  • 补充说明:
    1. 如果需要全局唯一的积分点ID,需自行计算:假设当前单元类型的积分点总数为n_integ_pts,则全局ID可通过 (elem_id - 1)*n_integ_pts + integ_pt_id 得到,注意需确保同类型单元的积分点数量一致,不同单元类型需单独处理。
    2. 旧版本的vumatXtrArg(...)在2022版本中依然兼容,但使用jInfoArray更高效直接,无需额外调用子程序。

内容的提问来源于stack exchange,提问作者Berntsson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 11:55:21