1

虽然很容易获得当前步数或增量数(变量 KSTEP 和 KINC),但在子程序 UMAT 中我找不到一个简单的方法来知道迭代数。

我知道下面的“if 子句”会告诉我我是否在第一步的第一个增量的第一次迭代中:

IF((KINC.EQ.1).AND.(SUM(STRAN+DSTRAN).EQ.0.0D0)) THEN

而且我也知道我可以将迭代号写入外部文件。但是,是否可以仅在 UMAT 子例程中执行此操作?

4

1 回答 1

2

从来没有真正的理由需要知道 UMAT 中的迭代次数。如果你认为你需要知道它,这通常表明你有更好的方法来实现你想知道的。

您可以使用一个公共块来跟踪您输入 umat 的频率,以及您正在进行的迭代。但我真的建议不要这样做。没有充分的理由知道迭代次数。除非你的算法是完美的,否则它会给你带来更多的问题而不是它的价值。

同样在您的代码中检查第一个增量 - 这不会告诉您何时处于真正的迭代中,它最有可能发生在 PRE 中。

于 2015-08-26T22:02:36.423 回答