ABAQUS中odb文件如何并行计算?

How to parallelize calculating with odb files in ABAQUS?

我计算所有积分点的体积总和,如

volume = f.steps['Step-1'].frames[-1].fieldOutputs['IVOL'].values

# CALCULATE TOTAL VOLUME AT INTEGRATION POINTS
V = 0
for i in range(len(volume)):
    V = V+volume[i].data

我的问题的体积长度大约是 27,000,000,所以这样做需要很长时间。 我尝试使用 python 中的多处理模块并行化此过程。 据我所知,数据应该被分成几个部分。 关于将 odb 文件中的数据拆分为多个部分或并行化该代码,您能给我一些建议吗?

您可以使用可用于字段输出对象的 bulkDataBlocks 命令。
使用 bulkDataBlocks,您可以将所有字段数据作为数组访问(实际上是 abaqus 数组,但 numpy 数组和 abaqus 数组在很大程度上是相同的)因此,操作变得非常容易。

例如:

# Accessing bulkDataBlocks object
ivolObj= f.steps['Step-1'].frames[-1].fieldOutputs['IVOL'].bulkDataBlocks

# Accessing data as array --> please note it is an Abaqus array type, not numpy array
ivolData = ivolObj[0].data

# now, you can sum it up
ivolSum = sum(ivolData )