顶部banner
Logo 折叠
全网首发仿真工程师项目实训
下载app
返回旧版
首页 成长助手 小邻学院 社区 发现
职业认证 企业服务 行业会议

登录解锁更多功能

还没有账号?立即注册

技术邻
技术引领职场价值
电话
0571-86682823
商务合作
service@jishulink.com
  • 全部  > 
  • CAE仿真

Abaqus用户子程序USDFLD调用GETVRM 怎么返回值为0?

浏览: 4653 回答: 2

看到之前帖子发布的3维蔡吴失效USDFLD子程序,里面调用

      CALL GETVRM('S',ARRAY,JARRAY,FLGRAY,jrcd,

     $     jmac, jmtyp, matlayo, laccflg)

但是输出的数组ARRAY始终为0,请问各位大神们知不知道是什么原因?以下为源代码:

      SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT,TIME,DTIME,

     1 CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER,KSPT,KSTEP,KINC,

     2 NDI,nshr,coord,jmac,jmtyp,matlayo,laccflg)

C

      INCLUDE 'ABA_PARAM.INC'

C

C STRENGTH PARAMETERS

      PARAMETER(Xc=1378.0,Xt=1803,Yc=268.0,Yt=46,

     $    Zc=268.0,Zt=46,S12=110,S13=110,S23=100)

C

      CHARACTER*80 CMNAME,ORNAME

      CHARACTER*3  FLGRAY(15)

      DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),T(3,3),TIME(2)

      DIMENSION ARRAY(15),JARRAY(15),coord(*),jmac(*),jmtyp(*)

C 

C CALCULATE COEFFICIENT OF TSAI-WU

      F1 = 1/Xt-1/Xc

      F2 = 1/Yt-1/Yc

      F3 = 1/Zt-1/Zc

      F11 = 1/(Xt*Xc)

      F22 = 1/(Yt*Yc)

      F33 = 1/(Zt*Zc)

      F44 = 1/S23**2

      F55 = 1/S13**2

      F66 = 1/S12**2

      F12 = -0.5/(Xt*Xc*Yt*Yc)**0.5

      F23 = -0.5/(Yt*Yc*Zt*Zc)**0.5

      F31 = -0.5/(Zt*Zc*Xt*Xc)**0.5

C

C INITIALIZE FAILURE FLAGS FROM STATEV. 

      CR11 = STATEV(1)

      CR22 = STATEV(2)

      CR33 = STATEV(3)

      CR12 = STATEV(4) 

      CR13 = STATEV(5)

      CR23 = STATEV(6)            

C

C GET STRESSES FROM PREVIOUS INCREMENT

      CALL GETVRM('S',ARRAY,JARRAY,FLGRAY,jrcd,

     $     jmac, jmtyp, matlayo, laccflg)

      ST11 = ARRAY(1)

      ST22 = ARRAY(2)

      ST33 = ARRAY(3)

      ST12 = ARRAY(4)

      ST13 = ARRAY(5)

      ST23 = ARRAY(6)

      !S11=ARRAY(1)

      !S22=ARRAY(2)

      !S12=ARRAY(4)

      !Print *, S11

      !Print *, S

      Print *, ST11

C

C  TSAI-WU CRITERION

      CR = F1*ST11 +F2*ST22 + F3*ST33 + F11*ST11**2 + F22*ST22**2 +

     1      F33*ST33**2 + 2*F12*ST11*ST22 + 2*F23*ST22*ST33 + 

     2      2*F31*ST33*ST11 + F44*ST23**2 + F55*ST13**2 + F66*ST12**2

C

C FAILURE TYPE

      IF (CR>=1) THEN

          IF (CR11<1) THEN

              IF (ST11>=Xt .or. ST11<=-Xc) THEN

                  CR11=1

              ELSE

                  CR11=0

              ENDIF

           ENDIF

           IF (CR22<1) THEN

              IF (ST22>=Yt .or. ST22<=-Yc) THEN

                  CR22=1

              ELSE

                  CR22=0

              ENDIF

           ENDIF

           IF (CR33<1) THEN

              IF (ST33>=Zt .or. ST33<=-Zc) THEN

                  CR33=1

              ELSE

                  CR33=0

              ENDIF

           ENDIF

           IF (CR12<1) THEN

              IF (ABS(ST12)>=S12) THEN

                  CR12=1

              ELSE

                  CR12=0

              ENDIF

           ENDIF

           IF (CR13<1) THEN

              IF (ABS(ST13)>=S13) THEN

                  CR13=1

              ELSE

                  CR13=0

              ENDIF

           ENDIF

           IF (CR23<1) THEN

              IF (ABS(ST23)>=S23) THEN

                  CR23=1

              ELSE

                  CR23=0  

              ENDIF

           ENDIF

      ENDIF      

C

C     UPDATE STATEV            

      STATEV(1) = CR11 

      STATEV(2) = CR22

      STATEV(3) = CR33

      STATEV(4) = CR12

      STATEV(5) = CR13

      STATEV(6) = CR23      

C

C     UPDATE FIELD VARIABLES       

      IF (CR11>0) FIELD(1) = 1

      IF (CR22>0) FIELD(2) = 1

      IF (CR33>0) FIELD(3) = 1

      IF (CR12>0) FIELD(4) = 1

      IF (CR13>0) FIELD(5) = 1

      IF (CR23>0) FIELD(6) = 1

      

      RETURN

      END


ABAQUS二次开发 USDFLD

全部回答 (3)

默认 最新
桀桀子 2023年6月28日
laccflg改成laccfla试试
2023年6月28日
评论 点赞 1
Mr Ray 2021年3月24日
感觉程序没问题,你的属性里面状态变量设置为6,对应的材料基本参数设置检查下
2021年3月24日
评论 点赞 1
用户_40726 2024年3月22日
看看step里初始增量步是不是1,是1的话直接1步算完就没有返回值了
2024年3月22日
评论 点赞

相似问题

查看全部
  • abaqus子程序usdfld getvrm的值一直是零? 2个回答

    SDEG的云图是有值的 但是getvrm得到的一直是零 麻烦各位大佬帮忙看看有什么问题 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

  • 请问GETVRM中ARRAY返回值一直为0是什么原因呢? 暂无回答

    代码如下: CALL GETVRM('THE',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP, 1 MATLAYO,LACCFLA) STATEV(1)= ARRAY(1) C C Reading instantaneous elastic x axial strain C Storing the thermal strain in state variable C N

  • abaqus有关裂纹扩展的问题? 1个回答

    模拟xfem裂纹扩展,在deepseek里面编辑了有关裂纹损伤准则的子程序,然后结合黄永刚老师的umat进行运行。上面的图是我预设裂纹一开始的图,下面的图是我运行之后产生的裂纹扩展的图。请问为什么我的裂纹每次扩展碰到我的网格边界就会出现这种报错?请问这种应该怎么解决,是不是编译的子程序(子程序在下面)出现了问题?感谢 以下是我结合deepseekb编写的用户损伤子程序 SUBROUTINE UDM

推荐阅读

COMSOL中实现煤层瓦斯运移系列课程

COMSOL中实现煤层瓦斯运移系列课程

康康学长 康康学长
¥199
ABAQUS热切割数值模拟

ABAQUS热切割数值模拟

hitliuyong hitliuyong
¥99
Altair SimSolid 求解精度控制和对标网络研讨会

Altair SimSolid 求解精度控制和对标网络研讨会

ALTAIR ALTAIR
免费
HBK声学测量基础

HBK声学测量基础

HBK声学与振动 HBK声学与振动
免费
Mathcad基本操作

Mathcad基本操作

HYT HYT
¥89
新四化浪潮下,传统汽车人如何积极转型

新四化浪潮下,传统汽车人如何积极转型

夸克 夸克
免费
Cadence Fidelity 水泵水轮机CFD模拟解决方案和应用

Cadence Fidelity 水泵水轮机CFD模拟解决方案和应用

Cadence楷登 Cadence楷登
免费
abaqus_python提取odb中的最大值结果3

abaqus_python提取odb中的最大值结果3

tanquery tanquery
免费
ANSYS新版本功能速递: HFSS微放电仿真

ANSYS新版本功能速递: HFSS微放电仿真

Ansys中国 Ansys中国
免费
0#块箱梁托架法施工结构模拟

0#块箱梁托架法施工结构模拟

yudachuan1105 yudachuan1105
¥200
基于Hypermesh与ABAQUS联合仿真的摄像头模组跌落分析——工作创建以及检查

基于Hypermesh与ABAQUS联合仿真的摄像头模组跌落分析——工作创建以及检查

北鲲 北鲲
¥99
ABAQUS钢管混凝土柱温度场及耐火性能分析(未完)

ABAQUS钢管混凝土柱温度场及耐火性能分析(未完)

地下结构设计
¥40
5G终端天线仿真设计方法及其应用

5G终端天线仿真设计方法及其应用

Ansys中国 Ansys中国
免费
abaqus三维切削数值模拟(sph法)

abaqus三维切削数值模拟(sph法)

abaquser abaquser
¥30
Python面向对象的有限元编程

Python面向对象的有限元编程

weilai00 weilai00
¥60
基于ABAQUS和ANSYS接触分析

基于ABAQUS和ANSYS接触分析

宁博士CAE团队 宁博士CAE团队
免费
前沿技术!大数据分析及人工智能在优化软件中的应用

前沿技术!大数据分析及人工智能在优化软件中的应用

IDAJ中国 IDAJ中国
¥9.99
新一代智能头灯的动态设计评估与仿真

新一代智能头灯的动态设计评估与仿真

Ansys中国 Ansys中国
免费
UG培训第九课:自由曲面构造法

UG培训第九课:自由曲面构造法

luffy8610 luffy8610
¥20
应用ANSYS瞬态动力学法模拟啮合齿轮的高速转动

应用ANSYS瞬态动力学法模拟啮合齿轮的高速转动

夏日星空 夏日星空
¥35