Quali sono i metodi possibili per risolvere le equazioni di Eulero comprimibili


13

Vorrei scrivere il mio solutore per le equazioni di Eulero comprimibili e, soprattutto, voglio che funzioni in modo robusto in tutte le situazioni. Vorrei che fosse basato su FE (DG è ok). Quali sono i metodi possibili?

Sono consapevole di fare DG del 0 ° ordine (volumi finiti) e che dovrebbe funzionare in modo molto efficace. Ho implementato un solutore FVM di base e funziona benissimo, ma la convergenza è piuttosto lenta. Tuttavia, questa è sicuramente un'opzione.

Ho implementato un solutore FE (funziona per qualsiasi mesh e qualsiasi ordine polinomiale su qualsiasi elemento) per equazioni di Eulero linearizzate, ma sto ottenendo oscillazioni spurie (e alla fine esplode, quindi non posso usarlo per risolvere il mio problema) e Ho letto in letteratura che bisogna stabilizzarlo. Se implementassi un po 'di stabilizzazione, funzionerebbe in modo robusto per tutti i problemi (= condizioni al contorno e geometrie)? Quale sarà il tasso di convergenza?

Oltre a questo, esiste qualche altra metodologia solida per le equazioni di Eulero (ovvero DG di ordine superiore con una certa stabilizzazione)?

Sono consapevole che molte persone hanno provato molte cose diverse nei loro codici di ricerca, ma sono interessato a un metodo robusto che funzioni per tutte le geometrie e le condizioni al contorno (modifica: in 2D e 3D).

Risposte:


11

La principale difficoltà numerica nel risolvere un sistema non lineare di primo ordine di PDE iperbolici come le equazioni di Eulero (per flusso comprimibile e inviscido) è che le discontinuità (onde d'urto) compaiono nella soluzione dopo un tempo finito, anche se i dati iniziali sono uniformi. Per far fronte a questo, i codici più moderni usano entrambi

  • limitatori di pendenza (o flusso ) , che forniscono un modo per calcolare accuratamente i derivati ​​in prossimità di discontinuità senza introdurre oscillazioni spurie; e
  • Solutori approssimativi di Riemann , che localmente (su ciascun bordo / faccia della griglia) risolvono un problema di valore iniziale con dati iniziali costanti a tratti e una singola discontinuità.

Esistono discretizzazioni a differenza finita (FD), a volume finito (FV) e ad elementi finiti (FE) che incorporano limitatori e solutori di Riemann, e tutto può essere reso estremamente preciso, almeno lontano dagli shock. Quindi non ha senso dire categoricamente che i metodi FE convergono più velocemente dei metodi FV: saranno comparabili se si usano discretizzazioni di ordini comparabili.

Tra i metodi FE, i metodi discontinui di Galerkin sono i più adatti qui, poiché la soluzione sarà in realtà discontinua. Se vuoi implementare il tuo, ti suggerisco di leggere questo documento di recensione e ottenere una copia del testo di Hesthaven & Warburton per comprendere le basi. Quindi ci sono molti documenti su DG per il flusso comprimibile .

Se sei disposto a utilizzare il codice di qualcun altro e poiché so che usi Python, potresti dare un'occhiata al codice Hedge di Andreas Kloeckner , che ha un'interfaccia Python e può essere eseguito su GPU. Probabilmente ci sono altri buoni codici DG disponibili e molti buoni codici FV (come Clawpack , che ha anche un'interfaccia Python ).

Ci sono anche nuovi metodi di alto ordine come la differenza spettrale. Per una prospettiva recente, vedi Cheng & Shu 2009, High Order Scheme for CFD: A Review o Ekaterinaris 2005, Metodi di diffusione numerica accurati e di basso ordine per l'aerodinamica .


Grazie David, soprattutto per tutti i suggerimenti sui documenti. FV è solo DG zeroth, vero? O il FV di ordine superiore è in qualche modo diverso dallo stesso ordine DG? Voglio implementare qualcosa da solo, in modo da capire appieno cosa sta succedendo. Il codice di copertura sembra interessante.
Ondřej Čertík,

1
FE e FV sono spesso equivalenti per gli schemi del primo ordine. Gli schemi di ordine superiore sono generalmente diversi e nessuno dei due è un sottoinsieme dell'altro.
David Ketcheson,

1
È possibile unificarsi in una certa misura con "DG ricostruzione". FV normalmente utilizza funzioni di test costanti a tratti e ricostruisce usando i vicini per aumentare l'ordine. DG utilizza normalmente uno spazio di test corrispondente (Galerkin) e aumenta l'ordine interno. Si noti che DG ha ancora bisogno di limitatori per forti shock, e quindi non è più un metodo Galerkin. La DG Ricostruzione ti consente di fare entrambe le cose: aumentare l'ordine interno e ricostruire usando i vicini, quindi FV e DG convenzionali sono casi limitanti.
Jed Brown l'

Se sto modellando un sistema fisico che credo per ragioni empiriche non mostra le onde d'urto, allora qual è un buon metodo?
sigfpe,

@sigfpe sarebbe meglio per te inviare una nuova domanda, con maggiori informazioni.
David Ketcheson,
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.