abaqus中UMAT二次开发:最多可以定义多少个状态变量

 

最开始设置了27个状态变量显示
There are insufficient data cards to define the 27 solution dependent variables for elset assembly_part-1-1_soil
后面减到了9个状态变量,依旧显示
There are insufficient data cards to define the 9 solution dependent variables for elset assembly_part-1-1_soil。
求大神指点一下这个怎么解决啊。

经本人研究,现已找到答案。

这个情况你要使用另外一个子程序SDVINI,用来定义你每个状态变量(可能与坐标相关)的初值。把以下FORTRAN代码写到你的.for文件里:

      SUBROUTINE SDVINI(STATEV,COORDS,NSTATV,NCRDS,NOEL,NPT,
     1 LAYER,KSPT)
C
      INCLUDE 'ABA_PARAM.INC'
C
      DIMENSION STATEV(NSTATV),COORDS(NCRDS)
C
      ! 用户定义STATEV(NSTATV),例如:
      STATEV(1) = 500d0
      STATEV(2) = .8d0
      STATEV(3) = 10d0
      ! ......
C
      RETURN
      END

然后主菜单打开Model→Edit Keywords,在第一个*step前面写一行:

*Initial Conditions, type=SOLUTION, USER

这样就可以完美克服这个迷之错误了。亲测有效。

如果在Edit Keywords里直接定义状态变量的值,就很容易发生这种超限的错误。如果用了子程序接口,你想定义多少就定义多少。

dat文件中显示只能读取5个变量?

我也是遇到了同样的问题,也不知道怎么解决;不知道Abaqus是不是可能有一个由用户自定义的状态变量的最大个数限制??