Abaqus читает входной файл очень медленно для многих материалов
РЕДАКТИРОВАТЬ *: В конце концов оказалось, что это не вызывает медленный импорт. Тем не менее, данный ответ объясняет лучший способ реализации различных плотностей с одним материалом. Поэтому я позволю этому вопросу существовать. (Медленный импорт был вызван запуском сценариев из abaqus PDE и отсутствием "Выполнить сценарий" из меню "Файл". Отдельное спасибо droooze за обнаружение проблемы)
Я пытаюсь оптимизировать распределение пористости определенного материала. Для этого я выполняю abaqus FEA моделирования с +-500 различных материалов в одной части. Само моделирование занимает всего около 40 секунд, но чтение входного файла занимает более 3 минут. (Я использовал скрипт Python для генерации INP-файла)
Я использую эти команды для генерации моих материалов во входном файле:
*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
Любая идея, почему это так медленно и есть ли более эффективный способ сделать это, чтобы уменьшить время загрузки входного файла?
1 ответ
Если ваши ~500 материалов одного и того же вида (например, все линейные упругие изотропные плотности массы), вы можете свернуть все это в один материал, а затем определить таблицу распределения, которая распределяет эти материалы непосредственно на метку элемента экземпляра.
Синтаксис:
(где-то в 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
определение; см. Abaqus Ключевые слова для ключевых слов *DISTRIBUTION TABLE
а также *DISTRIBUTION
)
**
** 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