【问题标题】:How to request nodal stress output in ABAQUS Python script如何在 ABAQUS Python 脚本中请求节点应力输出
【发布时间】:2016-02-23 08:50:58
【问题描述】:

我需要 odb 中的节点应力。我知道我可以简单地在可视化模块中生成一个查询,因此可以获得平均节点应力(我认为它不会在分析后执行,我不能在 odb 中这样做,因为没有节点压力信息)。我还可以编辑输入文件并在元素输出中使用 Position = NODES,然后通过调用输入文件作为源来运行分析。它使用节点数据生成应力,然后每个节点都有对应于每个元素的多个应力值。我还对脚本中的这些值进行了平均,就像在可视化模块中所做的那样。 但是现在我需要为多个模拟自动化这个脚本,我唯一卡住的地方是为下一次迭代请求节点输出。我不知道写在输入文件中的 Position = NODES 的等效 python 命令是什么。我不能一直调用相同的输入文件,因为下一次模拟的节点位置与早期模型不同。 关于我该如何去做的任何想法?

【问题讨论】:

  • 恐怕这是 CAE 不支持的事情之一。在这种情况下,您可以通过关键字编辑器进行更改。您可以编写该过程的脚本。
  • 感谢您的回复。是的,同意,但我不确定如何在用 python 编写的脚本中更改关键字编辑器。

标签: python scripting abaqus stress


【解决方案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
""")

这是在创建/提交作业之前的最后一件事。

【讨论】:

  • 感谢您的示例。现在它可以按我的预期工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多