我有一個真實數據的3D數組,我想用一個軸上的DST或DCT和另外兩個軸上的常規DFT進行轉換。結果應該是一個包含這個轉換系數的3D複數組。自定義3D(並行)FFTW轉換可能嗎?
你知道FFTW3軟件包是否提供了這樣一個例程 - 可能並行 - 開箱即用? FFTW3爲所有三個方向上的簡單3D DFT提供了這樣的程序。
如果不是,你可能會對如何在C/C++中實現它的最佳方式有所暗示嗎?
我天真的想法:DST/DCT的組裝,然後在一些包裝程序中沿着第一個軸進行2D實 - 復變換。然後,可以想到一維分解來實現並行性。二維將更好,但更多的工作。
PS: 該變換用於求解Navier-Stokes方程的譜方法。
你看過[FFTPACK](http://www.netlib.org/fftpack/)(注意這是一箇舊的Fortran庫,足夠老,我認爲它仍然是FORTRAN ....) –
謝謝您的幫助。是的,我確實這麼做了。但是,FFTPACK比FFTW慢一點。此外,FFTW已經爲所需的轉換提供了所有構建模塊,因此它只是如何組裝它的問題。 – mrdy
@DavidBowling你是什麼意思到老了? http://www.2decomp.org/,https://github.com/sdsc/p3dfft,... –