Apa metode yang mungkin untuk menyelesaikan persamaan Euler yang dapat dikompres

13

Saya ingin menulis solver saya sendiri untuk persamaan Euler yang dapat dikompres, dan yang paling penting saya ingin itu bekerja dengan kuat dalam semua situasi. Saya ingin ini berbasis FE (DG tidak apa-apa). Apa metode yang mungkin?

Saya sadar melakukan urutan ke-0 DG (volume terbatas) dan itu harus bekerja sangat kuat. Saya telah mengimplementasikan pemecah FVM dasar dan ini bekerja dengan baik, tetapi konvergensinya cukup lambat. Namun, ini jelas merupakan salah satu opsi.

Saya telah menerapkan pemecah FE (berfungsi untuk semua mesh dan urutan polinomial pada elemen apa pun) untuk persamaan Euler yang dilinearisasi, tetapi saya mendapatkan osilasi palsu (dan akhirnya meledak, jadi saya tidak dapat menggunakannya sehingga menyelesaikan masalah saya) dan Saya telah membaca dalam literatur bahwa seseorang perlu menstabilkannya. Jika saya menerapkan beberapa stabilisasi, apakah itu akan bekerja dengan baik untuk semua masalah (= kondisi batas dan geometri)? Apa yang akan menjadi tingkat konvergensi?

Selain itu, apakah ada metodologi kuat lainnya untuk persamaan Euler (yaitu DG tingkat tinggi dengan beberapa stabilisasi)?

Saya menyadari bahwa banyak orang mencoba banyak hal yang berbeda dalam kode penelitian mereka, tetapi saya tertarik pada metode yang kuat yang bekerja untuk semua geometri dan kondisi batas (edit: dalam 2D ​​dan 3D).

Ondřej Čertík
sumber

Jawaban:

11

Kesulitan numerik utama dalam menyelesaikan sistem orde pertama nonlinear dari hiperbolik PDE seperti persamaan Euler (untuk aliran yang kompresibel dan tidak terlihat) adalah bahwa diskontinuitas (gelombang kejut) muncul dalam solusi setelah waktu yang terbatas, bahkan jika data awal lancar. Untuk mengatasi ini, sebagian besar kode modern menggunakan keduanya

  • pembatas kemiringan (atau fluks ) , yang menyediakan cara menghitung turunan secara akurat di dekat diskontinuitas tanpa memperkenalkan osilasi palsu; dan
  • Perkiraan pemecah Riemann , yang secara lokal (pada setiap tepi / muka kisi) menyelesaikan masalah nilai awal dengan data awal yang konstan masing-masing dan satu diskontinuitas.

Ada diskritisasi finite difference (FD), finite volume (FV), dan finite element (FE) yang menggabungkan pembatas dan pemecah Riemann, dan semuanya dapat dibuat sangat akurat, setidaknya jauh dari guncangan. Jadi tidak masuk akal untuk mengatakan secara kategoris bahwa metode FE konvergen lebih cepat daripada metode FV - mereka akan sebanding jika diskritisasi pesanan yang sebanding digunakan.

Di antara metode FE, metode Galerkin terputus adalah yang paling cocok di sini, karena solusi sebenarnya akan terputus. Jika Anda ingin menerapkan sendiri, saya sarankan Anda membaca makalah ulasan ini dan mendapatkan salinan teks Hesthaven & Warburton untuk memahami dasar-dasarnya. Lalu ada banyak kertas di DG untuk aliran kompresif .

Jika Anda bersedia menggunakan kode orang lain, dan karena saya tahu Anda menggunakan Python, Anda mungkin melihat kode Hedge Andreas Kloeckner , yang memiliki antarmuka Python dan dapat berjalan pada GPU. Mungkin ada kode DG yang bagus lainnya yang tersedia, dan banyak kode FV yang bagus (seperti Clawpack , yang juga memiliki antarmuka Python ).

Ada juga metode tingkat tinggi yang lebih baru seperti perbedaan spektral. Untuk perspektif terbaru, lihat Cheng & Shu 2009, Skema Orde Tinggi untuk CFD: Tinjauan atau Ekaterinaris 2005, metode difusi numerik akurat, orde tinggi untuk aerodinamika .

David Ketcheson
sumber
Terima kasih David, terutama untuk semua petunjuk tentang makalah. FV hanyalah perintah nol, bukan? Atau apakah urutan tinggi FV berbeda dengan urutan yang sama dengan DG? Saya ingin mengimplementasikan sesuatu sendiri, sehingga saya benar-benar mengerti apa yang sedang terjadi. Kode lindung nilai terlihat keren.
Ondřej Čertík
1
FE dan FV seringkali setara untuk skema urutan pertama. Skema urutan yang lebih tinggi umumnya berbeda, dan tidak ada yang merupakan bagian dari yang lain.
David Ketcheson
1
Anda dapat menyatukan sampai batas tertentu dengan "DG rekonstruksi". FV biasanya menggunakan fungsi tes konstan piecewise dan merekonstruksi menggunakan tetangga untuk menaikkan urutan. DG biasanya menggunakan ruang uji pencocokan (Galerkin) dan meningkatkan urutan internal. Perhatikan bahwa DG masih membutuhkan pembatas untuk guncangan yang kuat, dan kemudian itu bukan lagi metode Galerkin. Rekonstruksi DG memungkinkan Anda melakukan keduanya: meningkatkan ketertiban internal dan merekonstruksi menggunakan tetangga, sehingga FV dan DG konvensional membatasi kasus.
Jed Brown
Jika saya memodelkan sistem fisik yang saya yakini karena alasan empiris tidak menampilkan gelombang kejut, lalu apa metode yang baik?
sigfpe
@sigfpe sebaiknya Anda mengirim pertanyaan baru, dengan informasi lebih lanjut.
David Ketcheson