Esiste un risolutore di CFD open source buono, facile da usare e di alta qualità?


17

La mia tesi è sullo sviluppo di metodi numerici per la riduzione del modello di combustione. Eseguo i miei metodi esclusivamente sulla parte chimica delle simulazioni di combustione e ho molti case study per simulazioni 0-D (nessun flusso). Quello che vorrei è eseguire simulazioni che hanno un flusso in esse, preferibilmente simulazioni 2D o 3D.

Queste simulazioni dovrebbero essere parallele, a causa degli elevati requisiti computazionali. Avrei anche bisogno di qualcosa che possa interfacciarsi con i risolutori di chimica come Chemkin o Cantera, per i quali ho il codice sorgente. (Chemkin è in Fortran 77 e Cantera è in C ++.)

Nel caso ideale, potrei specificare un modello di flusso usando le conoscenze di base della meccanica dei fluidi che ho dal mio programma di laurea e alcuni pacchetti CFD, aggiungere la chimica ed eseguirlo. Se devo, posso impostare le equazioni che governano il movimento fluido e la chimica per un semplice caso di studio basato su una configurazione sperimentale utilizzata da un ex collaboratore, ma preferirei di gran lunga non inserire il mio codice CFD a meno che non ci fossero un pacchetto o pacchetti che hanno reso estremamente facile farlo. Sarei disposto a trascorrere 2-3 settimane su di esso; Non so se questo requisito escluda PETSc o Trilinos. Se devo spendere più a lungo, preferirei rimandare a più tardi, perché ho un collaboratore che fornisce un codice CFD anche per casi di studio.

Qualcuno ha esperienza nell'uso di un pacchetto CFD o nella scrittura di codice CFD, e in tal caso, puoi consigliarne uno? Una cosa che so che mi piacerebbe usare è la divisione di Strang, ma non sono un esperto di CFD o PDE; Studio la chimica e i metodi numerici per la riduzione del modello. Inoltre, si prega di commentare il tempo impiegato per aggiornarsi utilizzando il software consigliato.

@FrenchKheldar sottolinea che dovrei menzionare le caratteristiche dei problemi che vorrei risolvere:

  • Gas ideale (perfetto), monofase
  • comprimibile
  • Il flusso laminare è essenziale; il flusso turbolento è un vantaggio. (Conosco un po 'di turbolenza dai precedenti lavori sui metodi numerici in CFD, ma non ho lavorato sui solutori di CFD; so solo un po' di fisica.)
  • La formulazione del numero zero-Mach va bene (non mi importa degli shock o del flusso supersonico)
  • Chimica della combustione, ignorando i flussi di Soret e Dufour e trattando la diffusione come Fickian
  • La geometria può essere qualcosa di semplice

Sono in grado di scrivere codice di interfacciamento, anche se meno devo scrivere, meglio è; @FrenchKheldar sottolinea inoltre che Cantera ha attacchi Fortran e Python. Uso i binding Cantera Python in questo momento per la prototipazione rapida, quindi mi sento a mio agio anche con quelli.


Cantera ha wrapper per Python e Fortran, in modo da ampliare un po 'la ricerca.
FrenchKheldar,

Vuoi modellare flussi laminari o flussi turbolenti? Comprimibile o incomprimibile? Gas perfetto? Monofase? Più dettagli puoi fornirci, più precisa sarà la risposta.
FrenchKheldar,

@FrenchKheldar: grazie per averlo sottolineato. Ho aggiunto alcuni dettagli.
Geoff Oxberry,

2
Un altro commento: se non ti interessa l'acustica o le onde, non dovresti essere in grado di usare un risolutore incomprimibile? Ciò
amplierà le

Permettimi di riformulare: non mi importa degli shock. Poiché la fase è un gas ideale e i gas ideali cambiano di densità quando la pressione cambia, il flusso dovrebbe essere comprimibile.
Geoff Oxberry,

Risposte:


11

Sono un grande utente di OpenFOAM , quindi naturalmente lo consiglierei. Ha una grande quantità di funzioni tra cui i modelli di combustione (anche se non necessariamente quello di cui hai bisogno) ed è stato usato insieme a Canterra da altre persone. Se hai bisogno di un solutore per un'equazione specifica che non è ancora stata implementata, puoi praticamente scrivere letteralmente le tue equazioni . Non so cosa sia lo splang-splitting (non lavoro sulla combustione da solo), ma altre persone l'hanno usato in OpenFOAM .

C'è un numero limitato di tutorial. Quelli documentati nella guida per l'utente non includono la chimica. Ci sono alcuni casi di esempio per i risolutori di reazioni che puoi dare un'occhiata. La soluzione migliore è consultare il sito web del corso di laurea specialistica OS-CFD presso Chalmers (il link è per il 2011, ma contiene un link alle pagine degli anni precedenti). Gli studenti lì spesso documentano i solutori a cui stanno lavorando, ad esempio qui .

Informazioni sullo sforzo di apprenderlo: se si ottiene utilizzando uno dei modelli predefiniti, è abbastanza semplice da usare e dovresti essere in grado di ottenere risultati in poche settimane. Se devi scendere al di sotto del livello superiore (ad esempio per aggiungere un nuovo risolutore ODE), le cose possono diventare più difficili abbastanza velocemente e apprezzerai conoscere il C ++.


Grazie per la raccomandazione! Ho sentito cose positive su OpenFOAM e mi piacerebbe usarlo in futuro. Nella tua esperienza, è stato facile imparare l'API? Esistono buoni tutorial o esempi che utilizzano OpenFOAM, preferibilmente con la chimica?
Geoff Oxberry,

Ho aggiornato la mia risposta
akid

1
Inizia presto a studiare C ++. :) Godspeed.
tmaric,

2

Potresti usare PyClaw , un'estensione parallela di Clawpack (nota: sono uno dei principali sviluppatori di PyClaw). Include solutori 2D e 3D per le equazioni di Eulero inviscide (flusso comprimibile) di un gas ideale. Ha anche la suddivisione Strang integrata, ma devi aggiungere tu stesso la valutazione dei termini viscosi e della chimica. Dovrebbe essere semplice interfacciarsi con Chemkin e Cantera, poiché PyClaw è scritto in Python e include già sia il codice Fortran 77 che C.

PyClaw è relativamente nuovo (anche se il codice Clawpack sottostante è abbastanza vecchio) e quindi non è così consolidato come qualcosa come OpenFOAM.


Grazie! Dovrò verificarlo, anche se potrebbe volerci un po 'per arrivarci. Quando cercherò di usarlo, ti farò sapere come va.
Geoff Oxberry,

2

Fire Dynamics Simulator (FDS) di NIST suona come quello che vuoi. FDS è un risolutore di flussi a basso numero di Mach. La densità può cambiare, ma gli effetti acustici e gli shock vengono trascurati.

FDS è abbastanza ben documentato, tuttavia, ammetto di non aver guardato nelle routine principali del risolutore di flussi. Inoltre non so molto su come FDS gestisce la chimica della combustione.

Suggerisco di scaricare l'ultimo codice dal sito Google Code di FDS .


0

Ce ne sono molti laggiù!

OpenFOAM è il migliore, IMHO, ma altri sono a questo link ,


Si prega di non dare risposte "solo link", poiché i collegamenti potrebbero essere interrotti.
gennaio

Non volevo presentare tutte le opzioni qui menzionate come "mie". Tecnicamente, potrei copiare e incollare tutti i contenuti, ma non sono quella persona. Quindi, ho messo il link direttamente per dare credito agli autori originali
T3rmInAt0r

1
Tutto a posto. Ad esempio, si potrebbe dire che la cattedra di fluidodinamica computazionale e meccanica delle turbolenze dell'Università di Manchester ha compilato un elenco di software open source per ingegneri. In tal caso, gli altri visitatori possono comunque effettuare ricerche su Internet nel caso in cui il collegamento non sia attivo.
gennaio

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.