独特节点应力的计算
首先,您必须考虑您不希望承受的压力值。 (整个张量的最大唯一节点应力,Mises,MaxPrincipal,...)
例如,如果您不需要唯一的节点米塞斯应力,您可以计算每个外推应力张量的米塞斯应力,然后计算唯一的节点应力,反之亦然。您还可以在 Abaqus CAE Gui 中找到该选项。
在这个答案中,我将展示如何计算整个独特节点应力张量的最大应力值。
首先获取应力值。
如果您安装了 Abaqus Python 6.13 或更高版本,请使用 FieldBulkData 方法获取数据。它比agentp的答案中显示的值方法要快得多。例如:
Field=odb.steps[Steps[0]].frames[1].fieldOutputs['S']
Field = Field.getSubset(position = ELEMENT_NODAL)
Values=Field.bulkDataBlocks[0].data
NodeLabels=Field.bulkDataBlocks[0].nodeLabels
现在我们有了推断的应力值。唯一值的计算复制自:与所有唯一行对应的所有行的平均值
NodeLabels_unique, unq_idx = np.unique(NodeLabels, return_inverse=True)
Values_Averaged=np.zeros((NodeLabels_unique.size,Values.shape[1]))
unq_counts = np.bincount(unq_idx)
for i in xrange(0,Values.shape[1]):
unq_sum = np.bincount(unq_idx, weights=Values[:,i])
Values_Averaged[:,i] = unq_sum / unq_counts
#Index of max stress value
max_ind=np.unravel_index(np.argmax(Values_Averaged),Values_Averaged.shape)
#Print the results
print("The max stress is at NodeLabel "+str(NodeLabels_unique[max_ind[0]])+ " its value is "+ str(Values_Averaged[max_ind]) +" MPa.")
在我的笔记本上,对于 17,000,000 个 Element_Nodal 值,整个平均过程大约需要 9 秒。