Как обновить узловое значение файла Abaqus odb с помощью скрипта Python?

Я хочу обновить узловые значения существующего файла Abaqus odb, используя скрипт Python. У меня уже есть новые узловые значения, но я не знаю, как поместить их в файл odb вместо предыдущих данных.

1 ответ

Решение

Я могу ошибаться по этому поводу, но нет способа вызвать какой-либо метод для замены существующих значений в odb. Однако вы можете создать новый шаг и фрейм (или просто фрейм в существующем шаге), а затем создать новый объект вывода поля с новыми значениями.

Если вы можете жить с этим подходом, проверьте документацию для FieldOutput объект. Вы, вероятно, сделали бы что-то вроде этого:

odb = session.odbs['yourOdbName']
instance = odb.rootAssembly.instances['nameOfYourInstance']

field_output = odb.steps['stepName'].frames[frameId].FieldOutput(
    name='DefineTheName', description='WhatItRepresents',
    type=SCALAR # or whatever other type you need
)

field.addData(
    position=NODAL, instance=instance, labels=your_node_labels,
    data=your_data
)

После того, как вы закончите с этим или, что еще лучше, попробуйте вызвать следующее:

odb = session.odbs['yourOdbName']
del odb.steps['stepWithResults'].frames[frameId].fieldOutputs['variableName']

Это дикое предположение, но это может сработать. Если это так, вы можете просто удалить существующий вывод поля, создать новый и затем сохранить odb.

Что бы вы ни выбрали, не открывайте odb в режиме только для чтения, сохраняйте odb и затем открывайте его, потому что, вероятно, ничего не будет видно в текущем сеансе.

Другие вопросы по тегам