Skip to content

Conversation

em-archer
Copy link
Contributor

@em-archer em-archer commented Aug 28, 2025

Have rewritten lasy > utils > mode_decomposition.py to do modal decomposition of arbitrary beams. This works for both a Hermite- and Laguerre-Gaussian basis, and there is a Jupyter notebook tutorial called 'modal_composition.ipynb' which shows how this works. Beams are constructed by specifying the modal coefficients. These beams are then deconstructed to retrieve the original modal coefficients.

The modal coefficients are passed and stored as a dictionary of complex values as follows:

# Modal coefficients used to construct the beam modes = {} modes[(0,0)] = 1 -0.2j modes[(0,1)] = -.4 -.2j modes[(1,0)] = 0.5 + 1j modes[(2,2)] = -.05 + .1j

Future updates:

  • A separate PR which does the Gerchberg-Saxon using this modal decomposition
  • Example to show modal decomposition of experimental data > addressed with update to denoised laser
  • Spot size fitting so that the beam waists do not need to be passed?

Part of a larger PR to implement Gerchberg-Saxon with modal decomposition
@em-archer em-archer requested a review from MaxThevenet August 28, 2025 18:22
@em-archer em-archer changed the title Implementing modal decomposition Implementing multibasis modal decomposition Aug 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant