add Generalised Laguerre Implementation
Creates Generalized Laguerre Modes. The azimuthial mode should be positive for the time being. I should also add and delete some comments. The initialization is made by filling 3 different vectors: all_rad_modes, all_azi_modes, all_amp_modes and the number of the modes: num_modes.
Example: We want one simple Gaussian mode with amplitude 1.2 and one mode with radial number 1, azimuthial number 3 and amplitude 0.8. We should add:
namespace generalisedlaguerreBeam
{
const int num_modes = 2;
PMACC_CONST_VECTOR(int, num_modes, all_rad_modes , 0 , 1);
PMACC_CONST_VECTOR(int, num_modes, all_azi_modes , 0 , 3);
PMACC_CONST_VECTOR(double, num_modes, all_amp_modes, 1.2, 0.8);
}
inside laserProfiles namespace at laser.param
(Edit by @sbastrakov , fixed code formatting)
@gerompampastrumf Just for a future update of the code, there are some style issues like end of line white spaces etc. - the travis-ci tells you what is missing: https://travis-ci.org/github/ComputationalRadiationPhysics/picongpu/jobs/729972515
@PrometheusPi Is this PR still required. We refactored the laser in the past, we do not use namespaces anymore should we keep this PR or close it?
I would go for keeping it since we most likely need this feature. Perhaps @BeyondEspresso can comment on this, since he supervised @gerompampastrumf project.
@BeyondEspresso @PrometheusPi is this still required now that #3992 is merged?
That is still required, but currently does not have a high degree of urgency.
@BeyondEspresso Who should maintain this branch to keep it compatible with dev (or even merge it)?
Well, actually we should close this PR. As it would need to be implemented as incident field now in order to go mainline.
We can instead open an issue that we want this feature, link this old PR as a reference, mark it as good first issue and assign @BeyondEspresso or me.
As suggested by @steindev, I will close this pull request. An issue is open.