找回密码
 注册
Simdroid-非首页
查看: 128|回复: 2

[子程序] 关于一个umat里有多个材料的问题

[复制链接]
发表于 2019-12-5 20:20:11 | 显示全部楼层 |阅读模式 来自 上海
我在做的东西需要涉及到两种自定义材料,我把两种材料写到同一个Umat里,按照help文档里给的例子,用材料名称进行区别并进行调用。调用后能算,但是算得结果明显不对。而把每种材料的内容独自写成Umat再调用,结果却是正确的。因此推测材料内容没有问题,但是按名称调用的时候有问题。以下是按名称调用的子程序,有大佬能帮忙看看嘛,感激不尽
      SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
     1 RPL,DDSDDT,DRPLDE,DRPLDT,STRAN,DSTRAN,
     2 TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,MATERL,NDI,NSHR,NTENS,
     3 NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,CELENT,
     4 DFGRD0,DFGRD1,NOEL,NPT,KSLAY,KSPT,KSTEP,KINC)
C
      INCLUDE 'ABA_PARAM.INC'
C
      CHARACTER*80 CMNAME
      DIMENSION STRESS(NTENS),STATEV(NSTATV),
     1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),
     2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),
     3 PROPS(NPROPS),COORDS(3),DROT(3,3),
     4 DFGRD0(3,3),DFGRD1(3,3)
C
C  Call different material——Mat_1 and Mat_2
C
      if (CMNAME(1:5).EQ.'Mat_1') then
         call Umat_1(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
     * RPL,DDSDDT,DRPLDE,DRPLDT,STRAN,DSTRAN,
     * TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,MATERL,NDI,NSHR,NTENS,
     * NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,CELENT,
     * DFGRD0,DFGRD1,NOEL,NPT,KSLAY,KSPT,KSTEP,KINC)
C
      else if (CMNAME(1:5).EQ.'Mat_2') then
         call Umat_2(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
     * RPL,DDSDDT,DRPLDE,DRPLDT,STRAN,DSTRAN,
     * TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,MATERL,NDI,NSHR,NTENS,
     * NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,CELENT,
     * DFGRD0,DFGRD1,NOEL,NPT,KSLAY,KSPT,KSTEP,KINC)
C
      end if
C
      RETURN
      END

 楼主| 发表于 2019-12-6 09:19:39 | 显示全部楼层 来自 上海
Simdroid开发平台
:'(:'(:'(:'(
回复 不支持

使用道具 举报

发表于 2020-9-14 08:57:15 | 显示全部楼层 来自 江苏
楼主好,我现在也在写多相材料的umat子程序,想请教您是怎样将材料属性赋予到不同相的? 如果方便可以加个微信么 zifeng1826
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-25 19:37 , Processed in 0.028907 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表