如何在ABAQUS Python中请求能量场输出

2024-10-01 11:20:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着在Abaqus的每个积分点提取能量。对于应力或应变,我可以做,但对于能量量我做不到。得到的错误是:“KeyError:'ELEN'”,但在Abaqus中它是good关键字…下面是我提取它的代码:

from odbAccess import *
import numpy as np

odb = openOdb(path='C:/Desktop/Fish1.odb')

# lastFrame = odb.steps['Step-2'].frames[-1]
lastFrame = odb.steps['Step-1'].frames[-1]

topCenter = \
odb.rootAssembly.instances['PART-1-1']
stressField = lastFrame.fieldOutputs['ELEN']


field = stressField.getSubset(region=topCenter,
position=INTEGRATION_POINT, elementType = 'CPS3')
fieldValues = field.values

sortie = open('C:/Users/tests.txt', 'w')
sortie.write('Eleme \t Integ \t\t PE11 \t\t\t PE22 \t\t\t PE12 \n')


for v in fieldValues:
    sortie.write('%-10.2f'% ( v.elementLabel))
    if v.integrationPoint:
        sortie.write('%-10.2f'% (v.integrationPoint))
        sortie.write('%-10.3f\t\t %-10.3f\t\t %-10.3f\t\t %-10.3f\t\t \n'% (v.data[0], v.data[1], v.data[2], v.data[3]))

sortie.close()

Tags: importfielddataframesstepstepswrite能量
1条回答
网友
1楼 · 发布于 2024-10-01 11:20:51

我想您已经在Abaqus查看器中检查了FieldOutput ELEN是否可用。在

ELEN是一个完整的元素变量,因此不能在集成点提取它,因为它在那里不可用。在

from odbAccess import *
import numpy as np

odb = openOdb(path='C:/Desktop/Fish1.odb')
lastFrame = odb.steps['Step-1'].frames[-1]

topCenter = odb.rootAssembly.instances['PART-1-1']
stressField = lastFrame.fieldOutputs['ELEN']

field = stressField.getSubset(region=topCenter, elementType = 'CPS3')
fieldValues = field.values

尽管这不是你所要求的解决办法,但我希望这会有所帮助。在

相关问题 更多 >