Доступ к отдельным значениям из Abaqus FieldValueArray с помощью Python - PullRequest
0 голосов
/ 07 января 2020

В настоящее время я пишу сценарий постобработки для подробного анализа моделирования Abaqus. Моя текущая проблема заключается в том, что я хотел бы получить доступ к некоторым данным Abaqus Field Object и значениям Change, которые ниже предельного значения. Например, если значения ниже 0 -> Изменить значение на 0. Я планирую выполнить эту задачу с помощью простого оператора if. Однако у меня есть некоторые проблемы для доступа к данным правильно. Я использую Python.

Мой код выглядит следующим образом:

strain_n = session.odbs[odbName].steps['Load'].frames[n].fieldOutputs['SDV2']
#SDV2 is a Scalar field, strain in y-direction from Abaqus UMAT

Насколько я правильно понял документацию abqus, я могу получить доступ к FieldData с помощью:

data = strain_n.values

К сожалению, я не понимаю, как мне поступить, я попробовал какую-то комбинацию с данными, но ничего не помогло. Я не могу получить доступ к данным в одной точке интеграции и не могу изменить значение. Команда len (data) сообщает мне 2304, что хорошо соответствует моим ожиданиям, поэтому я использую 576 элементов с 4 интеграциями. Точки = 2304.

Может кто-нибудь помочь мне? Любые советы приветствуются!

1 Ответ

0 голосов
/ 15 апреля 2020

вы можете попытаться распечатать данные:

for v in data:
    print '%d %6.4f' % (v.elementLabel, v.data)

ИЛИ вы можете записать данные в файл:

with open('test.csv', 'w') as f:
    for v in data:
        f.write('%d %6.4f' % (v.elementLabel, v.data) + '\n')
...