Fourier sözde spektral yöntem ve sayısal yayılım


9

FFT kullanarak Fourier sözde spektral yöntemle (Orzag & Patterson, PRL, 1972) izotropik türbülansın doğrudan sayısal simülasyonunun gerçekleştirilmesi. Türbülans topluluğunda yaygın olarak kullanılan yöntemin arka planı için bu kursu görebilirsiniz: http://www.math.ualberta.ca/~bowman/m655/lab3d.pdf

Dealiasing için sözde kurallarını kullanarak starts burada zaman, dalga numarası, maksimum dalga sayısı ve hızın spektral genliğidir.2/3

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

Dealiasing sayısal bir dağıtım olarak mı işlev görür? Başka bir deyişle, sağırlaştırma nedeniyle bir enerji kaçağı var mı?


Sorunuzun ne sorduğu belli değil. Açıklığa kavuşturabilir misiniz?
Geoff Oxberry

şimdi ne olacak
ucsky

Yanıtlar:


6

Evrişimin sağırlaştırılması sayısal bir dağılma işlevi görmez. Aslında, enerji sadece takma adı terim ederseniz korunur.

FFT tabanlı kıvrımları etkisiz hale getirmenin arkasındaki fikir, FFT tarafından eklenen ekstra terimlerden kurtulmaktır. Bir evrişim sadece bir toplamdır ve sadece toplamı hesaplayarak hesaplayabilirsiniz. Bununla birlikte, bu gerçekten yavaştır, bu nedenle girişleri Fourier dönüştürmek ve sonucu çoğaltmak ve daha sonra evrişim teoremiyle evrişim ile aynı şey olan Fourier dönüşümünü tersine çevirmek daha iyidir.

Ancak evrişim teoremi yalnızca girdiler sonsuz uzunlukta olduğunda çalışır; sonlu uzunluk girişleri için fiziksel olmayan ekstra terimler (takma adlar) gösterilir. Dealiasing'in amacı, hesaplamayı hızlandırmak için FFT'leri kullanmanıza izin verirken, hesaplamaya çalıştığınız orijinal denklemi geri almaktır.


Malcolm, birlikte yazdığı FFTW ++ kütüphanesinden bahsetmedi, ancak yastığı dolaylı olarak (diğer şeylerin yanı sıra) kullanarak hızlı bir şekilde işten çıkarılmış kıvrımları gerçekleştirmenize yardımcı olur. Bkz. Fftwpp.sourceforge.net .
Matthew Emmett

Oh evet, teşekkürler Matt! FFTW ++ 'daki evrişim rutinleri, işten çıkarılan evrişimlerin hesaplanma maliyetini gerçekten azaltır. Sourceforge sayfasında bir referans var ve web sayfamda daha fazlası var. Bunları 3D türbülans laboratuarı OP'ye bağlı John Bowman ile çalıştım.
Malcolm

4

Dealiasing'in ne yaptığını anlamak, neden FFT'leri ilk etapta aldığınızı anlamayı gerektirir. Benim için, ağırlıklı artıklar yöntemi en basit çerçeveyi sağlar:

  1. Bir çözümü Fourier modlarının toplamı olarak genişletiyorsunuz ve Navier - Stokes denklemlerine bırakıyorsunuz. Test işlevleriniz de Fourier bazındadır.
  2. Deneme ve test işlevlerini bir araya getirip iç ürünü aldığınızda (örn. Uygun bir konjugasyonla bütünleştirdiğinizde), doğrusal olmadığı için değerlendiremeyeceğiniz bir integraliniz olduğunu görürsünüz.
  3. Bu integrali, üniform kollokasyon noktalarındaki değeri basitçe topladığınız tek tip bir kareleme şeması kullanarak tahmin edebilirsiniz.
  4. Fourier modlarına sahip olduğunuzdan dört kat fazla quadrature noktası kullanırsanız, kuadratuarınızın kuadratik doğrusal olmayanlık için kesin olduğuna dikkat edin. Bu üç yarı faktördür.
  5. Son olarak, dördün bir FFT olarak verimli bir şekilde hesaplanabileceğini unutmayın.

Tüm FFT büyüsü, kuadratik doğrusal olmayanlar için kesin olarak yapılabilen verimli, yaklaşık bir kareleme şeması olarak düşünülebilir. Diğer dealiasing varyantları, kuadratürü aynı doğrusal olmayanlık sınıfı için kesin yapmak için başka hileler oynar.

Yani, sorunuzu cevaplamak için, dealiasing hiçbir dağıtımı eklemiyor. Bu görülebilir çünkü prosedürdeki her adım kesindir.


1

@Malcolm, FFT tabanlı kıvrım toplamlarının azaltılması konusunda uzman bir açıklama yaptı. Ancak sezgim, bunun hala gerekli olan tam bir cevap olmadığını söylüyor, bu nedenle sayısal yöntemleri anlama mücadelemizi yansıtan birkaç cümle daha vereceğim.

Dealiasing sayısal bir dağılma işlevi görmez, ancak sayısal dağılma ile aynı şeyi yapar - simülasyonunuzun patlamasını önler.

Simülasyonunuz nasıl patlıyor?

Yüksek dengesiz dalga dalgalarına fiziksel olmayan bir enerji transferi vardır, bu da ilk önce dengesizliğe (genellikle bir simptome - 2h dalgaları, h-ızgara düğümü mesafesi, bir ızgarada temsil edilebilecek en küçük dalgaların ardından gelir) neden olur.

Bunun nedeni, yüksek dalga sayılarının ızgara tarafından temsil edilebilecek düşük dalga boylarıyla örtüşmesidir. Bu, "spektral blokaja" neden olur - yüksek dalga boylarının genliklerinin (okuma enerjisi) fiziksel olarak artması, temsil edilen dalga boylarının üst sınırına yaklaştıkça daha da kötüleşir.

İlk çözüm (Philips, 1959): Temsili dalga sayısı spektrumunun üst yarısını filtreleyin veya sıfıra eşit yapın.

İkinci çözüm (Orszag, 1971): Orszag'ın İki-Üç Kuralı olarak bilinen çözüm. Steven, "Dalga boylarının yarısını filtrelemek israftır, 2 / 3N'yi tutmalı ve sadece üst 1 / 3N'yi filtrelemeliyiz."

Sonuç.

Simülasyonlarımız bazen patlayabilir. İkinci sırada yaşıyorsanız, sonlu hacimli evren (bu satırların yazarı gibi) ve Spektral Yöntemler hakkında hiçbir şey bilmiyorsanız, size "Ah simülasyonunuz patlıyor mu? Merkezi şema veya harman yerine ilk sipariş rüzgarını kullanmayı deneyin. % 10'luk dalgalı düzeltme yaklaşımı ile merkezi şemanız dağılmış olur. merkezi şema ve Smagorinsky, en düşük ölçeklerde meydana gelen fiziksel dağılımı modelleyecek. " Spektral Yöntemler evreninde yaşıyorsanız, enerjinin fiziksel olmayan transferinin nasıl gerçekleştiğini öğrenirsiniz ve İki Üçte Bir Kuralı veya "dolgu" ile sağırlaştırmada çare bulursunuz.

Bu yazı için ilham kaynağım J. Boyd'un "Chebyshev ve Fourier Spektral Yöntemleri", bölüm 11'in harika bir kitabı.

Benim tavsiyem:

Fiziksel veya spektral olarak hareket edin, ama spektral olarak düşünün! (İyi bilinen "Küresel düşün, yerel hareket et."


1

Kendi başına "dealiasing" ile ilişkili enerji kaçağı yoktur, ancak her zaman dealiasing ile veya dealias olmadan yapılan kesilme ile ilişkili enerji kaçağı vardır . Açıklamama izin ver:

her ikisi de k moduna kadar spektral içeriğe sahip iki f ve g fonksiyonuna sahipseniz, fg ürünü 2k moduna kadar spektral içeriğe sahip olacaktır . Ancak, temsilinizin spektral içeriğinin her bir adımda iki katına çıkmasını istemezsiniz. Bu nedenle fg ürününü ilk k modlarına kesmek istiyorsunuz . Bunu yaparak k'dan daha yüksek modlarda bulunan enerjiyi kaybedersiniz .

Dealiasing (ya da anti-aliasing) ile modları kadar olmasını sağlar k temsilen doğru fg ama daha değil modları büyük k zaten onlar atılacak, çünkü.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.