2011-01-22 12 views
5

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.

+1

Si consiglia di provare anche http://physics.stackexchange.com/. –

risposta

6

Python sarebbe davvero una buona scelta se stessimo scrivendo tutto da zero. Ma avrai bisogno di MOLTO background per farlo da zero.

Una soluzione accoppiata è un problema difficile.

Mi è stato fatto notare che stai usando un pacchetto: FEniCS (grazie, Sven). La mia risposta originale ha bisogno di qualche emendamento. Inizierò con alcune domande sulla fisica, quindi mi rivolgerò al pacchetto.

Incompleto Navier Stokes si applica a un gas come l'aria se il numero di Mach per l'aria a quella temperatura è inferiore a 0,1. È questo il caso del tuo problema? Probabilmente è vero, ma ho pensato di chiederlo.

Navier Stokes NON si applica all'ostacolo solido. Se modellate il tutto con una mesh, come descrivete il solido? È un fluido ad alta viscosità? Ciò potrebbe rendere il sistema di equazioni mal condizionato e difficile da risolvere.Avrebbe anche effetto sulla dimensione del passo temporale stabile se stai usando l'integrazione esplicita.

È un flusso costante o un transitorio? (costante è più facile) Il flusso è laminare o turbolento? (laminare è più semplice)

È il trasferimento di calore di conduzione nel tuo solido ostacolo e conduzione/convezione nel tuo fluido. Il fluido avrà degli strati limite di moto e termica lungo l'ostacolo solido della superficie che la mesh dovrà risolvere. Ecco dove sta avvenendo l'importante trasferimento di calore tra il solido e il fluido. Ciò richiederà una maglia fine locale alla superficie solida per risolvere la transizione dalla condizione al contorno alla velocità e alla temperatura del campo lontano. L'hai tenuto in considerazione nella tua mesh?

Mi sembra che FEniCS stia usando elementi finiti, ma non vedo nulla nei documenti che mi dice come si dovrebbero accoppiare le equazioni di moto ed energia.

Dovrai dire molto di più per ottenere un consiglio decente qui. Esiste un metodo numerico nella fisica Stackoverflow? Ne avrai bisogno.

+1

L'OP ha dichiarato che sta usando [FEniCS] (http://www.fenicsproject.org/), quindi non sta codificando tutto da zero. Potresti dare un'occhiata a FEniCS se non hai familiarità con esso - Mi piace davvero :) –

+0

Non familiare (ovviamente) - grazie per averlo fatto notare. Ho appena fatto un rapido sguardo - sarei preoccupato per la documentazione. Sono abbozzati, non per principianti o principianti. – duffymo

+0

Grazie per la risposta. Ho una condizione di limite antiscivolo all'ostacolo. Il numero di Mach è inferiore a 0,1, sì. Hai sollevato diverse domande che mi hanno già interessato. Attualmente il tutto è nelle prime fasi, quindi non posso dire molto su come apparirà la mesh e soprattutto su come ottengo il trasferimento di calore nell'intero progetto. Al momento guardo solo il flusso del fluido, la convezione seguirà più tardi. Il mio attuale problema è che il solutore di Navier-Stokes è così lento che non oso inserire altro. Quindi sto cercando alternative più veloci per il problema dei fluidi. –