pulsesuite.core.fftw¶
Attributes¶
Functions¶
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
API-compat stub: planning handled by SciPy/pyFFTW internally. |
|
API-compat stub: planning handled by SciPy/pyFFTW internally. |
|
|
|
|
|
|
|
|
|
Precompute Hankel transform matrix HT(Nr, Nr) from J0 zeros. |
|
Apply HT @ f in-place (f length must match HT dimension). |
|
If Z has shape (1, Nr, Nt), apply Hankel along r and FFT along t; else FFT3D. |
|
Inverse of Transform using ifft along t; Hankel is its own inverse for this discretization. |
Module Contents¶
- pulsesuite.core.fftw.fftw_initialize_2D(Z: numpy.typing.NDArray[_dc]) None¶
API-compat stub: planning handled by SciPy/pyFFTW internally.
- pulsesuite.core.fftw.fftw_initialize_3D(Z: numpy.typing.NDArray[_dc]) None¶
API-compat stub: planning handled by SciPy/pyFFTW internally.
- pulsesuite.core.fftw.CreateHT(Nr: int) None¶
Precompute Hankel transform matrix HT(Nr, Nr) from J0 zeros.
- Fortran reference:
HT(m,n) = (2/a(Nr+1)) * J0( a(m)*a(n) / a(Nr+1) ) / J1(a(n))**2, m,n=1..Nr
where a(:) are the first Nr+1 zeros of J0.
We store a length-(Nr+1) array and a (Nr,Nr) HT in double precision.
- pulsesuite.core.fftw.HankelTransform(f: numpy.typing.NDArray[_dc]) None¶
Apply HT @ f in-place (f length must match HT dimension).
- pulsesuite.core.fftw.Transform(Z: numpy.typing.NDArray[_dc]) None¶
If Z has shape (1, Nr, Nt), apply Hankel along r and FFT along t; else FFT3D.
- Fortran logic:
- if size(Z,1) == 1:
for k: HankelTransform(Z(1,:,k)) for j: FFT(Z(1,j,:))
- else:
FFT(Z)
- pulsesuite.core.fftw.iTransform(Z: numpy.typing.NDArray[_dc]) None¶
Inverse of Transform using ifft along t; Hankel is its own inverse for this discretization.
Fortran logic called HankelTransform both ways; we mirror that.
- pulsesuite.core.fftw.fft_1d¶
- pulsesuite.core.fftw.ifft_1d¶
- pulsesuite.core.fftw.fftc_1d¶
- pulsesuite.core.fftw.ifftc_1d¶
- pulsesuite.core.fftw.fft_2d¶
- pulsesuite.core.fftw.ifft_2d¶
- pulsesuite.core.fftw.fftc_2d¶
- pulsesuite.core.fftw.ifftc_2d¶
- pulsesuite.core.fftw.fft_3d¶
- pulsesuite.core.fftw.ifft_3d¶
- pulsesuite.core.fftw.fftc_3d¶
- pulsesuite.core.fftw.ifftc_3d¶