Как получить объем набора элементов в Abaqus ODB с помощью Python API?

Я использую Абакус 6.14-1.

Я хотел бы рассчитать объем набора элементов внутри детали из файла *.odb.

Я попробовал следующее,

# Extract element volumes from ODB
odbName = 'Ouput.odb'
odb = session.openOdb(odbName)
lastFrame = odb.steps['Step-1'].frames[-1]
volumeField = lastFrame.fieldOutputs['EVOL']
nucleus = odb.rootAssembly.instances['BOX-1'].elementSets['SPHERE']
volumeSet = volumeField.getSubset(region=nucleus, elementType='C3D10')
volumeFieldValues = volumeSet.values

volume = 0
for vol in volumeFieldValues:
    volume += vol

print volume
session.odbs[odbName].close()

Но оказывается, что «EVOL» больше не является допустимым выводом поля для 6.14.

Я удивлен, что нет очевидного способа сделать это. Я выполнил процедуру вручную и просмотрел файл *'rpy, чтобы узнать, какой метод использовал Abaqus, но его не было в списке, только сообщение о том, что я сделал.

Какие-либо предложения?


person DrBwts    schedule 05.05.2016    source источник
comment
EVOL — допустимый вывод поля для Abaqus 6.14, вам просто нужно запросить его при настройке модели.   -  person hgazibara    schedule 06.05.2016
comment
если вы поставите это как ответ, я приму это   -  person DrBwts    schedule 06.05.2016


Ответы (2)


Выходная переменная поля EVOL действительна для Abaqus 6.14; однако необходимо запросить его вручную.

Дополнительную информацию об этом выводе поля можно найти в Руководстве пользователя Abaqus Analysis, раздел 4.2.1, в разделе «Переменные всего элемента».

После завершения анализа вы сможете использовать скрипт, указанный в вашем вопросе.

person hgazibara    schedule 06.05.2016

В абакусе 2017 вместо

for vol in volumeFieldValues:
    volume += vol

Так должно быть:

for vol in volumeFieldValues:
    volume += vol.data

введите здесь описание изображения

person Tom    schedule 14.03.2018