- 积分
- 0
- 注册时间
- 2009-4-11
- 仿真币
-
- 最后登录
- 1970-1-1
|
我们知道UMAT中状态变量只有在增量步结束后才会进行更新,但是子程序是每个迭代步都调用,那么在迭代步是在进行怎样的计算过程那?迭代步中状态变量不会更新吗?如果不更新,那迭代步岂不是在作无用功?
例如,我们一个问题一共需要5个增量步,每个增量步需要3个迭代步,状态变量的更新是这样的语句:
statev(1)=statev(1)+dstran(1), 即,每次调用子程序后,状态变量会增加。
但是经过我验证,在每个迭代步调用子程序时,状态变量statev,和应变增量dstran都是相等,都等于该增量步初始时刻的statev值和dstran值。也就是说,假如当第3个增量步开始时statev(1)=3,dstrain(1)=3,那么在第一个迭代步调用子程序时,这两个值都是3,再第二个迭代步调用时这两个迭代步的值也都是3,第三个迭代步也是,那既然是这样,那迭代步的调用有什么意义啊?
或者是迭代步过程中abaqus会在后台更新这些值,只是只在每个增量步结束后才将更新的值赋予变量?如果是这样的话,我们如何能得到每次迭代步中的状态变量值?
下面这个帖子进行过类似的讨论,供参考。
http://forum.simwe.com/viewthread.php?tid=830786
希望得到版主和各位大侠的帮助。 |
|