Metode pseudo-spektral Fourier dan disipasi numerik

9

Melakukan simulasi numerik langsung turbulensi isotropik dengan metode pseudo-spektral Fourier (Orzag & Patterson, PRL, 1972) menggunakan FFT. Untuk latar belakang metode ini, yang banyak digunakan dalam komunitas turbulensi, Anda dapat melihat kursus ini: http://www.math.ualberta.ca/~bowman/m655/lab3d.pdf

Menggunakan disebut aturan untuk dealiasing yang terdiri dari melakukan u ( k , t ) = 0 i f k > 22/3 di manatadalah waktu,kadalah jumlah gelombang,kMAXadalah jumlah gelombang maksimum dan u adalah amplitudo spektral kecepatan.

u^(k,t)=0              if   k>23kMAX
tkkMAXu^

Apakah dealiasing bertindak sebagai pembuangan numerik? Dengan kata lain, apakah ada kebocoran energi akibat dealiasing?

ucsky
sumber
Tidak jelas apa pertanyaan Anda. Bisakah Anda mengklarifikasi?
Geoff Oxberry
bagaimana dengan sekarang ?
ucsky

Jawaban:

6

Penghapusan konvolusi tidak bertindak sebagai disipasi numerik. Faktanya, energi dikonservasi hanya jika Anda meniadakan ketentuan yang disebutkan sebelumnya.

Gagasan di balik penghapusan konvolusi berbasis FFT adalah untuk menyingkirkan istilah tambahan yang ditambahkan oleh FFT. Konvolusi hanyalah jumlah, dan Anda dapat menghitungnya hanya dengan menghitung jumlahnya. Namun, ini benar-benar lambat, jadi lebih baik untuk Fourier-mentransformasikan input dan mengalikan hasilnya dan kemudian membalikkan Fourier transform, yang, oleh teorema konvolusi, adalah hal yang sama dengan konvolusi.

Tetapi teorema konvolusi hanya berfungsi ketika inputnya memiliki panjang tak terhingga; untuk input panjang terbatas, istilah tambahan (alias) muncul yang bukan fisik. Inti dari dealiasing adalah untuk mendapatkan kembali persamaan asli yang Anda coba hitung, sambil tetap memungkinkan Anda untuk menggunakan FFT untuk mempercepat perhitungan.

Malcolm
sumber
Malcolm tidak menyebutkan pustaka FFTW ++ yang ia tulis bersama, tetapi ini membantu Anda melakukan konvolusi yang dihilangkan dengan cepat dengan menangani padding secara implisit (antara lain). Lihat fftwpp.sourceforge.net .
Matthew Emmett
Oh ya, terima kasih Matt! Rutin konvolusi dalam FFTW ++ benar-benar mengurangi biaya komputasi konvolusi dealiased. Ada referensi di halaman sourceforge dan lebih banyak di halaman web saya. Saya mengerjakan ini dengan John Bowman, yang lab turbulensi 3D-nya terhubung di OP.
Malcolm
4

Memahami apa yang dilakukan dealiasing memerlukan pemahaman mengapa Anda menggunakan FFT sejak awal. Bagi saya, metode pendekatan residu tertimbang memberikan kerangka kerja paling sederhana:

  1. Anda memperluas solusi sebagai penjumlahan dari mode Fourier dan memasukkannya ke dalam persamaan Navier - Stokes. Fungsi pengujian Anda juga merupakan basis Fourier.
  2. Ketika Anda melipatgandakan fungsi percobaan dan pengujian bersama-sama dan mengambil produk dalam (yaitu mengintegrasikan dengan konjugasi yang sesuai), Anda akan melihat bahwa Anda memiliki satu integral yang tidak dapat Anda evaluasi hanya karena nonlinier.
  3. Anda dapat memperkirakan integral itu menggunakan skema kuadratur seragam tempat Anda menjumlahkan nilainya pada titik kolokasi seragam.
  4. Perhatikan quadrature Anda tepat untuk nonlinier kuadratik jika Anda menggunakan poin kuadratur 1,5 kali lebih banyak daripada mode Fourier. Ini adalah faktor tiga bagian.
  5. Akhirnya, perhatikan quadrature dapat dihitung secara efisien sebagai FFT.

Semua sihir FFT dapat dianggap sebagai skema kuadratur yang efisien dan perkiraan yang dapat dibuat tepat untuk nonlinier kuadratik. Varian dealiasing lainnya memainkan trik lain untuk membuat kuadratur tepat untuk kelas nonlinier yang sama.

Jadi, untuk menjawab pertanyaan Anda, dealiasing tidak menambahkan disipasi. Ini bisa dilihat karena setiap langkah dalam prosedur itu tepat.

Rhys Ulerich
sumber
1

@ Malcolm memberikan penjelasan ahli tentang penghilangan jumlah konvolusi berbasis FFT. Intuisi saya mengatakan kepada saya bahwa ini masih bukan jawaban lengkap yang dibutuhkan @abberation, jadi saya akan memberikan beberapa kalimat lagi yang mencerminkan perjuangan saya sendiri untuk memahami metode numerik.

Dealiasing tidak bertindak sebagai disipasi numerik, tetapi melakukan hal yang sama dengan disipasi numerik - ini mencegah simulasi Anda meledak.

Bagaimana simulasi Anda meledak?

Ada transfer energi secara fisik dari gelombang tinggi ke gelombang rendah yang menyebabkan, pertama ketidakstabilan (sering diikuti oleh simptome - gelombang 2 jam, jarak h-grid node, gelombang terkecil yang dapat direpresentasikan pada grid).

Alasan di balik ini adalah aliasing dari bilangan gelombang tinggi ke bilangan gelombang rendah yang dapat diwakili oleh grid. Hal ini menyebabkan "pemblokiran spektral" - peningkatan amplitudo (energi baca) yang tidak fisik dari gelombang tinggi, yang semakin buruk ketika Anda mendekati batas atas dari gelombang gelombang yang diwakili.

Obat pertama (Philips, 1959): Menyaring, atau menyamai nol, bagian atas dari spektrum bilangan gelombang yang diwakili.

Obat kedua (Orszag, 1971): Obat yang dikenal sebagai aturan Two-Thirds Orszag. Steven berkata, "Memfilter setengah dari wavenumbers adalah sia-sia, kita harus menyimpan 2 / 3N dan menyaring hanya 1 / 3N atas."

Kesimpulannya.

Simulasi kami terkadang cenderung meledak. Jika Anda hidup di urutan kedua, volume alam semesta berhingga (seperti yang dilakukan oleh penulis garis-garis ini), dan tidak tahu apa-apa tentang Metode Spektral, mereka memberi tahu Anda "Oh simulasi Anda meledak? Coba gunakan urutan pertama melawan arah angin alih-alih skema pusat, atau perpaduan Skema pusat Anda dengan 10% arah angin dalam pendekatan koreksi deffered. Itu akan menambah disipasi tetapi akan mencegah simulasi Anda meledak! Oh Anda melakukan LES? Maka Anda tidak boleh menggunakan angin melawan angin, kecuali jika Anda melakukan ILES, gunakan saja skema pusat dan Smagorinsky akan memodelkan disipasi fisik yang terjadi pada skala terendah. " Jika Anda tinggal di alam semesta Metode Spektral, Anda belajar bagaimana transfer energi secara tidakfisik terjadi, dan Anda menemukan obatnya dalam menghilangkannya dengan Aturan Dua-Tiga atau "bantalan".

Inspirasi saya untuk posting ini adalah buku yang luar biasa oleh J. Boyd "Chebyshev and Fourier Spectral Methods", bagian 11.

Saran saya adalah:

Bertindak secara fisik atau spektral, tetapi berpikir secara spektral! (Mengutip terkenal "Berpikir global, bertindak secara lokal.")

Johntra Volta
sumber
1

Tidak ada kebocoran energi yang terkait dengan "dealiasing" per se, tetapi ada kebocoran energi yang terkait dengan pemotongan yang selalu dilakukan dengan atau tanpa dealiasing. Biarkan saya jelaskan:

jika Anda memiliki dua fungsi f dan g , keduanya memiliki konten spektral hingga mode k , produk fg akan memiliki konten spektral hingga mode 2k . Namun, Anda tidak ingin konten spektral representasi Anda menggandakan pada setiap langkah waktu. Karenanya, Anda ingin memotong produk fg ke mode k pertama . Dengan melakukan ini, Anda kehilangan energi yang terkandung dalam mode yang lebih tinggi dari k .

Dealiasing (atau anti-aliasing) memastikan bahwa mode hingga k benar dalam representasi fg , tetapi bukan mode yang lebih besar dari k , karena bagaimanapun mereka akan dibuang.

nat chouf
sumber