Scripted Mesh Generation Software

17

Я ищу программное обеспечение для генерации сетки, которое

  • является бесплатным и открытым исходным кодом,
  • предоставляет разумный интерфейс сценариев для спецификации домена,
  • работает для сложных геометрий,
  • может генерировать 2D и 3D сетки,

Какие варианты у меня есть?

Нико Шлёмер
источник

Ответы:

10

Я бы порекомендовал вам посмотреть на ГМШ . Он имеет как текстовый, так и CAD-подобный ввод, способный к 2D и 3D сеткам более высокого порядка. Он лицензирован по лицензии GPL, поэтому существуют некоторые ограничения на его интеграцию в программное обеспечение с закрытым исходным кодом, но в остальном он полностью бесплатный / с открытым исходным кодом.

Годрик Провидец
источник
К сожалению, язык сценариев безумен. ;)
Нико Шломер
В каком смысле? Вы ссылаетесь на ввод текстовых файлов или какой-то другой интерфейс?
Годрик Провидец
2
Я использовал gmsh только в геометрии простых людей, поскольку мои проблемы почти всегда осложняются другими факторами, помимо геометрии. Хотя я работал только над этими более простыми геометриями, я определенно нашел gmsh наиболее интуитивно понятным и простым в освоении. Я не буду спорить с вами о попытках сделать более сложные процедуры, так как у меня нет опыта с ними.
Годрик Провидец
5
Вы всегда можете писать свои скрипты на любом языке, который вам нравится, и просто создавать файлы в результате вашего скрипта, которые затем подаются как входные данные для gmsh.
Вольфганг Бангерт
1
@WolfgangBangerth Я фактически начал небольшой игрушечный проект на Python на github.com/nschloe/python4gmsh .
Нико Шлёмер
4

Я обычно использую tetgen для 3D (лицензия MIT для исследований / некоммерческих) и треугольник для 2D (пользовательские лицензии бесплатно для некоммерческих). Чтобы написать их, вы пишете входной файл и вызываете командную строку.

aterrel
источник
2
«Обратите внимание, что TetGen является бесплатным для исследовательских и некоммерческих целей. Для любого коммерческого использования коммерческая лицензия предоставляется по запросу». - Это не бесплатная лицензия с открытым исходным кодом (в соответствии с определением OSI или FSF), не говоря уже о лицензии MIT.
Джед Браун
Да, я только что прочитал первый бит файла лицензии. Большинство людей не так строги по своему значению Free, как OSI или FSF.
aterrel
Я собирался задать аналогичный вопрос. Совместим ли тетген с FEniCS?
СЕБ
@aterrel Прочтите файл LICENSE: «Это означает, что TetGen не является свободным программным обеспечением, но для частных, исследовательских и образовательных целей его можно использовать абсолютно бесплатно и без дополнительных договоренностей».
Джед Браун
1
Да, @JedBrown, я с тобой согласился и отредактировал ответ. Но для неспециалистов бесплатное обычно означает «я не должен платить за это», а не легализация RMS. Я также утверждаю, что GPL не является «бесплатной», но это, вероятно, неуместное обсуждение для этого форума.
aterrel
3

MeshPy можно использовать для получения треугольных и тетраэдрических сеток. Он обеспечивает простой способ генерации скриптовой сетки.

MeshPy предоставляет интерфейсы Python для Triangle и TetGen, упомянутых aterrel.

Subodh
источник
1

Я обнаружил, что Саломе очень гибкая, с намного лучшей средой, чем gmsh. ИМХО это гораздо более профессионально. Кроме того, он может генерировать также шестигранные сетки. Это действительно стоит попробовать!

FlatronL1917
источник
Мне не нравится тот факт, что ничто в геометрической модели не может быть отредактировано ни из пользовательского интерфейса, ни из консоли Python. В основном, если вы хотите внести изменения, вам нужно удалить и воссоздать. Это добавляет много накладных расходов во время проектирования
lurscher
Это верно, если вы импортируете геометрию, данную вам, например, в файле STEP. Но если я не ошибаюсь, это верно и для других программ, упомянутых здесь! Более того, если у вас есть файл HDF или сценарий дампа Python, вы, безусловно, можете изменить что угодно.
FlatronL1917
1

OpenSCAD подходит для всех точек, кроме объемной сетки. Он основан на входных скриптах и ​​генерирует поверхностные сетки STL.

Дон джо
источник
1

Почему не Блендер ? Это мощное, бесплатное программное обеспечение с открытым исходным кодом и поддержкой сценариев Python.

В Blender 2.79 вам нужно выбрать Scriptingкак Screen layout.

В верхнем левом углу Text Editorнажмите +, чтобы создать новый текстовый блок данных; запустите его, import bpyа затем вставьте команды python относительно каждой операции, которую вы можете выполнить из графического интерфейса, прочитав соответствующую команду, наведя указатель мыши на элемент графического интерфейса.

На прикрепленном скриншоте показаны команды для триангуляции круга, начиная со сцены по умолчанию с кубом:

введите описание изображения здесь

Таким образом, вы можете использовать Blender в режиме сценариев, без его графического интерфейса пользователя, для экспорта, например, выходного файла, запустив ваш скрипт Python в терминале:

blender --background --python myscript.py

Вот видеоурок на YouTube.

ура

Риккардо Вольпе
источник
Блендер может это сделать? Никогда не знал. Как бы я триангулировал, например, круг?
Нико Шломер
@ChristianClason: Как это не ответ? Это решает вопрос. Вы можете жаловаться на то, что в нем отсутствуют детали или даже что это неправильно, но для этого и нужны отрицательные голоса. Это, конечно, не комментарий.
Wrzlprmft
@Wrzlprmft Большое спасибо. Я думаю, что было бы хорошо, если бы я предоставил Нико Шлёмеру подробное видео-руководство, написав здесь необходимый код. Но в то же время я могу связать тему, написанную мной несколько раз назад на итальянском языке, с просьбой помочь экспортировать сетку с помощью сценариев Blender (этот веб-сайт был обновлен, для которого некоторые ресурсы более недоступны): blender. it / forums / topic / difetto-texture-file-obj-da-wrl Вот пример видео-урока на YouTube: youtube.com/watch?v=K0yb4sZ7B4g
Риккардо Вольпе,
Если у вас есть что добавить в свой вопрос, пожалуйста, отредактируйте его.
Wrzlprmft