2011-11-02 37 views
7

¿Necesito un módulo/paquete Python que proporcione una malla sobre la que pueda hacer ciencia computacional? No estoy haciendo gráficos, así que no creo que el paquete de blender sea lo que quiero.Generación de malla para ciencia computacional en Python

¿Alguien sabe de un buen paquete?

+1

A mesh para what? Una región planar? ¿Una superficie? ¿Un sólido? ¿Qué tipo de cálculo pretendes hacer en la malla? – lhf

+0

Sólo una malla cartesiana 1+ D; es decir, muchas cajas. No estoy seguro de qué tipo de cálculos voy a hacer (todavía). Solo estoy tratando de prepararme cuando haré cálculos. – jlconlin

Respuesta

5

Si está tratando de resolver las ecuaciones de estilo FE o CFD en una malla, puede usar MeshPy en 2 y 3 dimensiones. Meshpy es una buena envoltura alrededor de las herramientas existentes tetgen y triangle.

Si está buscando mallas de gráficos más típicas, hubo una charla interesante en PyCon 2011 "Algorithmic Generation of OpenGL Geometry", que describía un enfoque pragmático de la generación de mallas de procedimiento. El código de la presentación está disponible online

Si usted está interesado en la reconstrucción de las superficies de los datos, no se puede ir más allá de la Standford 3D Scanning Repository, sede de la Stanford conejito

Editar:

Una alternativa libre de dependencia puede ser usar algo como gmsh, que es independiente de la plataforma, y ​​utiliza herramientas similares a meshp en su back-end.

+0

Encontré el paquete MeshPy. Si lo entiendo correctamente, usa el paquete Boost.Python. Esperaba evitar dependencias externas; pero con un paquete complejo, supongo que será difícil hacerlo sin dependencias externas. – jlconlin

+0

En Linux, las dependencias son bastante fáciles de satisfacer. En Windows, las cosas podrían ser un poco más difíciles porque también dependerás de la versión de python. La instalación del refuerzo no es tan mala desde la fuente, solo lleva mucho tiempo, el instalador de Windows puede ayudarlo a avanzar más rápido si eso ayuda con http: //www.boostpro.com/download/ –

+0

Realmente necesito esto en una Mac. ¿Son malas las dependencias? – jlconlin

0

Recomiendo usar NumPy (especialmente si ha usado MATLAB anteriormente). Muchos científicos computacionales/ingenieros mecánicos que trabajan en Python podrían estar de acuerdo, pero estoy predispuesto ya que descubrí que fue durante gran parte del último año de mi investigación. Es parte de SciPy: http://numpy.scipy.org/ Me gustaba numpy.linspace (a, b, N) que hace un vector de longitud N de valores equiespaciados de aa b. Puede usar numpy.ndarray para hacer una matriz N x M, o si desea matrices 2D use numpy.meshgrid.

4

Los paquetes más útiles que hay son quizás

He creado a repo mostrando una serie de ejemplos.

(Descargo de responsabilidad: soy el autor de pygmsh y frentos.)

Cuestiones relacionadas