I was wondering if there is a formula/reference available for PIConGPU's Laguerre-Gaussian beam.
For comparison, in fbpic's docs I found this.
Hello @berceanu . Unfortunately I don't think we have a reference. But here is actual implementation (there are other polarization cases below that). I assume you are aware of the discussion in #3470

Comparing the implementation with Siegman's formula above, I'm not sure I understand where the summation over modes, ie this for loop comes from.
Please take the following with a big grain of salt. I am really not an expert and suggesting merely based on #3470 and how the PDEs I know work generally.
From the text you attached it seems these terms (64) together for all polynomial degrees form a basis of the solutions (functional) space. And so a solution is a sum of those with some coefficients. In our implementation a user defines the finite amount of terms to use and the corresponding coefficients with MODENUMBER and LAGUERVECTOR variables in a .param files.
cc @PrometheusPi @BeyondEspresso
@berceanu The answer by @sbastrakov is totally correct Siegman's equation 64 is the (p,m) mode. You need to sum over all. We do this automatically over the PMAC_CONST_VECTOR https://github.com/ComputationalRadiationPhysics/picongpu/blob/a54b6665623a4355205eff2c38932776fdfadf44/share/picongpu/examples/LaserWakefield/include/picongpu/param/laser.param#L68-L75
In fbpic you have to tweak it a bit and generate a list of all mode-inits.
@berceanu Did the above answers solve your issue? If so, please close it.
Most helpful comment
@berceanu Did the above answers solve your issue? If so, please close it.