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
Другие вопросы по тегам