Я хочу суммировать все значения плотности энергии деформации (ELSE) каждого режима (кадры из модального анализа) моего odb и сохранить его в новом кадре.
Мой код отлично работает со смещением 'U' и типом = VECTOR
Но когда я изменяю его на «ELSE» и набираю = TENSOR_3D_FULL, я получаю следующую ошибку:
Traceback (most recent call last): File "..\Python\modaldata.py", line 62, in <module>
newField.addData(field=strechtMode1) OdbError: Fields are not compatible. They are either associated with different structural models or have incompatible attributes.
Нужно ли использовать другой метод для манипулирования тензорными данными? Я нашел что-то с позицией = ELEMENT_NODAL, но с совершенно разным подходом, получив определенные скалярные значения напряжений определенных наборов узлов. Мне нужен целый ELSE Tensor для каждой точки интеграции каждого элемента в виде нового фрейма.
Вот мой код:
#-ODB OEFFNEN------------------------------------------------------------------------#
odb = openOdb(odbName)
#-DIE MODEN EINZELN ABSPEICHERN UM SIE VERRECHNEN ZU KOENNEN-------------------------#
nmoden=len(odb.steps['Modalanalyse'].frames)
#------------------------------------------------------------------------------------#
#-FIELD VARIABLE ZIEHEN UND VERRECHNEN-----------------------------------------------#
#------------------------------------------------------------------------------------#
field='U' # ''ELSE' # U oder E oder ELSE oder whatever...
type=VECTOR #TENSOR_3D_FULL # muss an das field angepasst werden.
Modes_field=[]
for i in range(nmoden):
Modes_field.insert(i,odb.steps['Modalanalyse'].frames[i].fieldOutputs[field])
#-FIELD VARIABLE ALLER MODEN UEBERLAGERN---------------------------------------------#
sumAllModes_field = Modes_field[0]
for i in range(nmoden):
sumAllModes_field = sumAllModes_field + Modes_field[i]
#-NEUE FIELD VARIABLE MODE ABSPEICHERN-----------------------------------------------#
newFrame = odb.steps['Modalanalyse'].Frame(incrementNumber=0, frameValue=0.0)
newField = newFrame.FieldOutput(name=field, description='sum of ELSE of all modes', type=type)
newField.addData(field=sumAllModes_field)
#-ODB ABSPEICHERN--------------------------------------------------------------------#
odb.save()