如何通过Python获取Abaqus ODB中某类material元素的体积
How to get the volume of elements with certain type of material in Abaqus ODB by means of Python
我需要计算某种material类型元素的总体积,然后计算其中某些UVARM变量大于1的部分,然后定义这些体积之间的比率。
问题是我无法找到如何准确地按 material 的名称过滤出元素,而不是按部分、部分实例或元素集,因为感兴趣的元素均匀分布在这些部分中,套等
谢谢
看来您需要遍历每个元素并查看每个元素的 sectionCategory:
element.sectionCategory.name
'solid < materialname >'
所以你建立了一个完整的列表,类似于:
steelels = [ el.label for el in instance.elements if el.sectionCategory.name == 'solid < steel >']
这里真正首选的方法是在构建模型时创建适当的元素集。
如果您在将 .inp 文件写入 'do not use parts and assemblies in input files' 和 运行 使用此输入进行模拟之前编辑模型属性,您在访问 odb 时可能不会遇到任何问题。
part_instance = odb.rootAssembly.instances['PART-1-1']
elLabels = [ v.label for v in part_instance.elements if v.sectionCategory.name == 'solid < DUMMY_MATERIAL >']
我需要计算某种material类型元素的总体积,然后计算其中某些UVARM变量大于1的部分,然后定义这些体积之间的比率。
问题是我无法找到如何准确地按 material 的名称过滤出元素,而不是按部分、部分实例或元素集,因为感兴趣的元素均匀分布在这些部分中,套等
谢谢
看来您需要遍历每个元素并查看每个元素的 sectionCategory:
element.sectionCategory.name
'solid < materialname >'
所以你建立了一个完整的列表,类似于:
steelels = [ el.label for el in instance.elements if el.sectionCategory.name == 'solid < steel >']
这里真正首选的方法是在构建模型时创建适当的元素集。
如果您在将 .inp 文件写入 'do not use parts and assemblies in input files' 和 运行 使用此输入进行模拟之前编辑模型属性,您在访问 odb 时可能不会遇到任何问题。
part_instance = odb.rootAssembly.instances['PART-1-1']
elLabels = [ v.label for v in part_instance.elements if v.sectionCategory.name == 'solid < DUMMY_MATERIAL >']