Создание сетки для вычислительной науки в Python - PullRequest
7 голосов
/ 02 ноября 2011

Мне нужен модуль / пакет Python, который обеспечивает сетку, на которой я могу заниматься вычислительной наукой?Я не занимаюсь графикой, поэтому я не думаю, что пакет blender - это то, что я хочу.

Кто-нибудь знает о хорошей упаковке?

Ответы [ 3 ]

5 голосов
/ 13 июня 2016

Самые полезные пакеты, возможно,

Я создал репо , демонстрирующий несколько примеров.

Кроме того, есть optimesh для улучшения качества любой сетки.

(Отказ от ответственности: я автор pygmsh, pygalmesh, dmsh и optimesh.)

5 голосов
/ 02 ноября 2011

Если вы пытаетесь решить уравнения стиля FE или CFD на сетке, вы можете использовать MeshPy в 2 и 3 измерениях. Meshpy - хорошая оболочка для существующих инструментов tetgen и triangle .

Если вы ищете более типичные сетки в графическом стиле, на PyCon 2011 "Алгоритмическая генерация геометрии OpenGL" , в которой описан прагматический подход к генерации процедурной сетки, был интересный доклад. Код из презентации доступен онлайн

Если вы заинтересованы в восстановлении поверхностей по данным, вы не можете пройти мимо Standford 3D Scanning Repository , дома Стэнфордского кролика

Edit:

Альтернативой без зависимости может быть использование чего-то вроде gmsh , который не зависит от платформы и использует аналогичные инструменты для meshpy в его бэкэнде.

1 голос
/ 07 апреля 2012

Я рекомендую использовать NumPy (особенно, если вы уже использовали MATLAB).Многие учёные в области вычислительной техники / инженеры-механики, работающие в Python, могут с этим согласиться, но я предвзят, так как это нашло свое отражение в большей части прошлого года моих исследований.Это часть SciPy: http://numpy.scipy.org/ Мне нравилось numpy.linspace (a, b, N) , что делает вектор длиной N равных расстояний от a до b.Вы можете использовать numpy.ndarray , чтобы создать матрицу N x M, или, если вы хотите, чтобы двумерные массивы использовали numpy.meshgrid .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...