I am interested in modeling some nonlinear laser beam propagation in time and space. For this, I need a lot of Fourier transforms to account for dispersion/diffraction.

I could do this with by using a 2D matrix for the beam, but my interest is limited to azimuthically symmetric beams ( E = E(r) and not E = E(r,θ) or E = E(x,y) ), so in principle I could describe the beam in 1D. I expect this would help with computational performance.

However, the Hankel transform routines I have found so far are comparable in speed to FFT routines for 2D cartesian coordinates.

May anyone recommend a good Hankel transform routine? Or perhaps some kind of workaround I am not aware of? I mostly work in Matlab, but I could also switch to Python for this task, or perhaps even code the number-crunching parts of the modeling process in some more "serious" language.

Similar questions and discussions