2011-11-02 11 views
7

Ho bisogno di un modulo/pacchetto Python che fornisce una mesh su cui posso fare scienza computazionale? Non sto facendo grafica, quindi non penso che il pacchetto blender sia quello che voglio.Generazione di mesh per scienza computazionale in Python

Qualcuno sa di un buon pacchetto?

+1

Una rete per cosa? Una regione planare? Una superficie? Un solido? Che tipo di calcolo intendi fare sulla mesh? – lhf

+0

Ho solo una mesh cartesiana 1+ D; vale a dire un sacco di scatole. Non sono sicuro di quale tipo di calcoli farò (ancora). Sto solo cercando di prepararmi quando farò i calcoli. – jlconlin

risposta

5

Se si sta tentando di risolvere equazioni di stile FE o CFD su una mesh, è possibile utilizzare MeshPy in 2 e 3 dimensioni. Meshpy è un bel wrapper attorno agli strumenti esistenti tetgen e triangle.

Se stai cercando più tipiche mesh in stile grafico, c'è stato un interessante discorso a PyCon 2011 "Algorithmic Generation of OpenGL Geometry", che descrive un approccio pragmatico alla generazione di mesh procedurali. Il codice della presentazione è disponibile online

Se siete interessati nella ricostruzione di superfici da dati, non si può andare oltre il Standford 3D Scanning Repository, sede della Stanford Bunny

Edit:

Un'alternativa senza dipendenza può essere quella di utilizzare qualcosa come gmsh, che è indipendente dalla piattaforma, e utilizza strumenti simili a meshpy nel suo back-end.

+0

Ho trovato il pacchetto MeshPy. Se capisco correttamente, usa il pacchetto Boost.Python. Speravo di evitare le dipendenze esterne; ma con un pacchetto complesso, suppongo che sarà difficile fare a meno delle dipendenze esterne. – jlconlin

+0

Su Linux, le dipendenze sono abbastanza facili da soddisfare. Su Windows, le cose potrebbero diventare un po 'più difficili perché dipenderete anche dalla versione di python. L'installazione di boost non è così male dalla fonte, richiede solo molto tempo, il programma di installazione di Windows può farti andare più veloce se questo aiuta http: //www.boostpro.it/download/ –

+0

In realtà ho bisogno di questo su un Mac. Le dipendenze sono cattive? – jlconlin

0

Si consiglia di utilizzare NumPy (soprattutto se si è già utilizzato MATLAB). Molti scienziati computazionali/ingegneri meccanici che lavorano in Python potrebbero essere d'accordo, ma io sono di parte perché ha trovato la strada per gran parte dell'ultimo anno della mia ricerca. Fa parte di SciPy: http://numpy.scipy.org/ Mi piaceva numpy.linspace (a, b, N) che crea un vettore di lunghezza N di valori equamente distanziati da a a b. È possibile utilizzare numpy.ndarray per creare una matrice N x M o se si desidera che gli array 2D utilizzino numpy.meshgrid.

4

I pacchetti più utili fuori ci sono forse

Ho creato a repo mostrando alcuni esempi.

(Disclaimer: Sono l'autore di pygmsh e frentos.)

Problemi correlati