对于许多材料,Abaqus 读取输入文件非常慢
Abaqus read input file very slow for many materials
编辑*:毕竟事实证明这不是导致导入缓慢的原因。然而,给出的答案解释了一种用一个 material 实现不同密度的更好方法。所以我会让这个问题存在。 (缓慢导入是由于 运行 来自 abaqus PDE 的脚本而不是使用文件菜单中的 'Run script' 造成的。特别感谢 droooze 发现了问题)
我正在尝试优化某个 material 的孔隙率分布。因此,我在一个部分中使用 +-500 个不同的 material 执行 abaqus FEA 模拟。模拟本身只需要大约 40 秒,但读取输入文件需要 3 多分钟。 (我使用了 python 脚本来生成 inp 文件)
我正在使用这些命令在输入文件中生成我的 material:
*SOLID SECTION, ELSET = ES_Implant_MAT0 ,MATERIAL=Implant_material0
*ELSET, ELSET=ES_Implant_MAT336
6,52,356,376,782,1793,1954,1984,3072
*MATERIAL, NAME = Implant_material0
*DENSITY
4.43
*ELASTIC
110000, 0.3
知道为什么这么慢吗?有没有更有效的方法来减少加载输入文件的时间?
如果你的 ~500 material 都是同一类(例如,所有线弹性各向同性质量密度),那么你可以将它们全部折叠成一个 material 然后定义一个分布 table 将这些 material 直接分发到实例元素标签上。
语法:
(在 Part
定义中的某处,在 section
下)
*SOLID SECTION, ELSET = ES_Implant_MAT0 ,MATERIAL=Implant_material0
(在 Assembly
定义的某处;part=
应该引用上面部分的名称)
**
**
** ASSEMBLY
**
*Assembly, name=Assembly
**
*Instance, name=myinstance, part=mypart
*End Instance
**
*Elset, elset=ES_Implant_MAT0, instance=myinstance
1,2,...
(在 Materials
定义中的某处;有关关键字 *DISTRIBUTION TABLE
和 *DISTRIBUTION
,请参阅 Abaqus 关键字参考指南)
**
** MATERIALS
**
*DISTRIBUTION TABLE, NAME=IMPLANT_MATERIAL0_ELASTIC_TABLE
MODULUS,RATIO
*DISTRIBUTION, NAME=Implant_material0_elastic, LOCATION=element, TABLE=IMPLANT_MATERIAL0_ELASTIC_TABLE
,110000,0.3 # First line is some default value
myinstance.1,110000,0.3 # syntax: instance name [dot] instance element label
myinstance.2,110000,0.3 # these elements currently use the material properties assigned to `ELSET = ES_Implant_MAT0`. You can define the material properties belonging to other element sets in this same table, making sure you reference the element label correctly.
...
*DISTRIBUTION TABLE, NAME=IMPLANT_MATERIAL0_DENSITY_TABLE
DENSITY
*DISTRIBUTION, NAME=Implant_material0_density, LOCATION=element, TABLE=IMPLANT_MATERIAL0_DENSITY_TABLE
,4.43 # Default value
myinstance.1,4.43
myinstance.2,4.43
...
*Material, name=Implant_material0
*Elastic
Implant_material0_elastic # Distribution name
*Density
Implant_material0_density # Distribution name
编辑*:毕竟事实证明这不是导致导入缓慢的原因。然而,给出的答案解释了一种用一个 material 实现不同密度的更好方法。所以我会让这个问题存在。 (缓慢导入是由于 运行 来自 abaqus PDE 的脚本而不是使用文件菜单中的 'Run script' 造成的。特别感谢 droooze 发现了问题)
我正在尝试优化某个 material 的孔隙率分布。因此,我在一个部分中使用 +-500 个不同的 material 执行 abaqus FEA 模拟。模拟本身只需要大约 40 秒,但读取输入文件需要 3 多分钟。 (我使用了 python 脚本来生成 inp 文件)
我正在使用这些命令在输入文件中生成我的 material:
*SOLID SECTION, ELSET = ES_Implant_MAT0 ,MATERIAL=Implant_material0
*ELSET, ELSET=ES_Implant_MAT336
6,52,356,376,782,1793,1954,1984,3072
*MATERIAL, NAME = Implant_material0
*DENSITY
4.43
*ELASTIC
110000, 0.3
知道为什么这么慢吗?有没有更有效的方法来减少加载输入文件的时间?
如果你的 ~500 material 都是同一类(例如,所有线弹性各向同性质量密度),那么你可以将它们全部折叠成一个 material 然后定义一个分布 table 将这些 material 直接分发到实例元素标签上。
语法:
(在 Part
定义中的某处,在 section
下)
*SOLID SECTION, ELSET = ES_Implant_MAT0 ,MATERIAL=Implant_material0
(在 Assembly
定义的某处;part=
应该引用上面部分的名称)
**
**
** ASSEMBLY
**
*Assembly, name=Assembly
**
*Instance, name=myinstance, part=mypart
*End Instance
**
*Elset, elset=ES_Implant_MAT0, instance=myinstance
1,2,...
(在 Materials
定义中的某处;有关关键字 *DISTRIBUTION TABLE
和 *DISTRIBUTION
,请参阅 Abaqus 关键字参考指南)
**
** MATERIALS
**
*DISTRIBUTION TABLE, NAME=IMPLANT_MATERIAL0_ELASTIC_TABLE
MODULUS,RATIO
*DISTRIBUTION, NAME=Implant_material0_elastic, LOCATION=element, TABLE=IMPLANT_MATERIAL0_ELASTIC_TABLE
,110000,0.3 # First line is some default value
myinstance.1,110000,0.3 # syntax: instance name [dot] instance element label
myinstance.2,110000,0.3 # these elements currently use the material properties assigned to `ELSET = ES_Implant_MAT0`. You can define the material properties belonging to other element sets in this same table, making sure you reference the element label correctly.
...
*DISTRIBUTION TABLE, NAME=IMPLANT_MATERIAL0_DENSITY_TABLE
DENSITY
*DISTRIBUTION, NAME=Implant_material0_density, LOCATION=element, TABLE=IMPLANT_MATERIAL0_DENSITY_TABLE
,4.43 # Default value
myinstance.1,4.43
myinstance.2,4.43
...
*Material, name=Implant_material0
*Elastic
Implant_material0_elastic # Distribution name
*Density
Implant_material0_density # Distribution name