关于vusdfld中 call vgetvrm的问题
在call vgetvrm( 'S', rData, jData, cData, jStatus )这个调用函数中为什么rData(maxblk*nrData)是定义为一维的数组呢?它和每个单元的应力是如何对应的? 过了好多年了,我也来说一下我的理解,欢迎探讨。在fortran里面,数组虽然可以定义成多维的,但其实他储存方式为一维储存的。就是说rdata在读取的时候可以是以一维形式读取 而在使用子程序 setfield时,又重新对rdata定义了尺寸(nblock,nrData) 只要总体长度是一样的,应该是都可以的。 希望能够有大牛解决这个问题 对照一下usersub manual 里的vgetvrm 顺序和standard稍有不同 嗯,我也有相同的疑惑我看了manual(Abaqus User Subroutines Reference Manual 1.2.19)里面的example,在vusdfld中又调用了一个子程序setField(.....)
对应了一下参数发现rData对应的是strain是一个二维数组,我不是很了解fortran,但是我觉得似乎rData是个二维数组更符合我们的需求啊
我后来自己做了一个例子就直接把rData声明成为一个二维数组。。居然也能算。。
我也有个关于vgetvrm的疑惑:我使用vgetvrm提取应力,那么stress(1)应该对应着S11?但是为什么在odb中却不相等
Tao_Tony 发表于 2018-5-24 15:16
我也有个关于vgetvrm的疑惑:我使用vgetvrm提取应力,那么stress(1)应该对应着S11?但是为什么在odb中却 ...
stress(1)是积分点的应力,,在odb不知道你看的是不是节点的
页:
[1]