full EDIT:Fluid flow, heat transfer e Python
Darò qualche informazione in più sull'intero problema. Il progetto è in fase iniziale e la mia domanda riguarda in realtà solo una parte ristretta della cosa.
l'obiettivo finale:
Attualmente sto provando a simulare il flusso di aria calda attorno a un ostacolo rigido in Python. Ho un flusso costante di aria, il flusso nella massa è transitorio e turbolento. Lo scopo di tutto l'esercizio è quello di capire come
-la portata d'aria si comporta
-la ostacolo riscalda
-la aria si raffredda e l'aria-pressione scende
fatto finora:
Non molto, la cosa è nella fase iniziale. Ho un dominio rettangolare 2D e un ostacolo circolare. La mesh sta diventando più fine al confine tra la massa e l'ostacolo, poiché è lì che stanno accadendo cose interessanti. Attualmente considero solo il flusso d'aria, nessuna convezione o trasferimento di calore. Io uso la collezione di software FEniCS per risolvere l'equazione di Navier-Stokes. Fenics viene fornito con un esempio per un risolutore N-S che utilizza il metodo di proiezione Chorin, ho adattato questo esempio alle mie impostazioni. Io modifico il corpo rigido come un'area con condizione limite antiscivolo (cioè, ho impostato la velocità del flusso d'aria a zero). Il risolutore risolve ancora l'equazione N-S in quella zona, in particolare la pressione all'interno dell'ostacolo cambia nel tempo. Probabilmente è una buona idea evitare questo e limitare il solutore N-S alla maggior parte. Ma al momento non penso che questo influenzi molto la velocità.
problema:
La cosa scorre piuttosto lentamente. Non mi importa se le simulazioni finali richiedono alcuni giorni, ma attualmente è solo il flusso del fluido 2d attorno a un ostacolo e la mesh non è fine come voglio che sia alla fine. Speravo che fosse più veloce, perché diventerebbe molto più complicato quando entrerà in gioco il calore.
la mia domanda:
Si riduce a una sola domanda:
Che cosa è un algoritmo veloce o un metodo per risolvere l'equazione di Navier-Stokes in Python?
Sto perfettamente bene con la scrittura di un risolutore da zero, ma questo solleva la stessa domanda. Questa mattina mi è venuto in mente che il metodo di proiezione non è forse l'idea peggiore, perché disaccoppia l'aggiornamento di pressione e velocità, potrei provare ad assegnarlo a diversi kernel della CPU.
Si consiglia di provare anche http://physics.stackexchange.com/. –