如何在 ABAQUS Python 脚本中请求节点应力输出
How to request nodal stress output in ABAQUS Python script
我需要 odb 中的节点应力。我知道我可以简单地在可视化模块中生成一个查询,因此可以获得平均节点应力(我认为这不会在分析后执行时有用,我不能在 odb 中这样做,因为没有节点应力信息)。我还可以编辑输入文件并在元素输出中使用 Position = NODES,然后 运行 通过调用输入文件作为源进行分析。它使用节点数据生成应力,然后每个节点都有对应于每个元素的多个应力值。我还在脚本中对这些值进行了平均,就像在可视化模块中所做的那样。
但现在我需要为多次模拟自动执行此脚本,而我唯一遇到困难的地方是请求下一次迭代的节点输出。我不知道输入文件中写入的 Position = NODES 的等效 python 命令是什么。我无法继续调用相同的输入文件,因为下一次模拟的节点位置与早期模型不同。
关于我该怎么做的任何想法?
下面是编写关键字编辑器脚本的示例。诀窍是您需要搜索现有关键字并在该关键字之前或之后插入新文本。
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
""")
将此作为 creating/submitting 工作之前的最后一件事。
我需要 odb 中的节点应力。我知道我可以简单地在可视化模块中生成一个查询,因此可以获得平均节点应力(我认为这不会在分析后执行时有用,我不能在 odb 中这样做,因为没有节点应力信息)。我还可以编辑输入文件并在元素输出中使用 Position = NODES,然后 运行 通过调用输入文件作为源进行分析。它使用节点数据生成应力,然后每个节点都有对应于每个元素的多个应力值。我还在脚本中对这些值进行了平均,就像在可视化模块中所做的那样。 但现在我需要为多次模拟自动执行此脚本,而我唯一遇到困难的地方是请求下一次迭代的节点输出。我不知道输入文件中写入的 Position = NODES 的等效 python 命令是什么。我无法继续调用相同的输入文件,因为下一次模拟的节点位置与早期模型不同。 关于我该怎么做的任何想法?
下面是编写关键字编辑器脚本的示例。诀窍是您需要搜索现有关键字并在该关键字之前或之后插入新文本。
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
""")
将此作为 creating/submitting 工作之前的最后一件事。