Как запросить вывод узлового напряжения в скрипте ABAQUS Python
Мне нужны узловые напряжения в ODB. Мне известно, что я могу просто сгенерировать запрос в модуле визуализации и, следовательно, получить усредненное узловое напряжение (которое, я не думаю, будет полезным, так как оно выполняется после анализа, и я не могу сделать это в odb, поскольку нет узлового информация для стрессов). Я также могу отредактировать входной файл и использовать Position = NODES в выводе элемента, а затем запустить анализ, вызвав входной файл как источник. Он генерирует напряжения с узловыми данными, а затем каждый узел имеет несколько значений напряжения, соответствующих каждому элементу. Я также усреднил эти значения в скрипте, как это сделано в модуле визуализации. Но теперь мне нужно автоматизировать этот скрипт для нескольких симуляций, и единственное место, где я застрял, это запрос узлового вывода для следующей итерации. Я не знаю, какова эквивалентная команда python для Position = NODES, которая записана во входном файле. Я не могу продолжать вызывать один и тот же входной файл, так как моя узловая позиция для следующей симуляции отличается от предыдущей модели. Есть мысли о том, как мне это сделать?
1 ответ
Вот пример сценария редактора ключевых слов. Хитрость заключается в том, что вам нужно найти существующее ключевое слово и вставить новый текст до или после этого.
model.keywordBlock.synchVersions()
def GetBlockPosition(model,blockPrefix):
pos = 0
for block in model.keywordBlock.sieBlocks:
if string.lower(block[0:len(blockPrefix)])==string.lower(blockPrefix):return pos
pos=pos+1
return -1
model.keywordBlock.insert(GetBlockPosition(model,'*Restart')-1, """
*EL FILE,POSITION=AVERAGED AT NODES
S
""")
Сделайте это как последнюю вещь перед созданием / отправкой работы.