openPMD/openPMD-viewer

New features for laser envelope

Opened this issue · 0 comments

PR openPMD/openPMD-standard#271 in the openPMD standard proposes a standard extension for a laser pulse envelope (the text below is based on the extension there). Additional features in the viewer would be a useful complement to the standard extension to analyze laser pulse envelope data. In particular the following capabilities (in decreasing order of priority, up for discussion) would be useful:

  • Get the amplitude of the laser field, maybe also the argument?
  • Unwrap the phase in the envelope
  • Get the local wavelength, as well as central wavelength (might differ from the wavelength used in the definition of the envelope)
  • Get spectrum of the laser pulse
  • Get energy of the laser pulse
  • Get pulse width and duration
  • Reconstruct the electric field. The grid on which the envelope is defined is probably too low-resolution (by design) to resolve the central frequency, so as a simple start the user could pass a new argument e.g. points_per_wavelength, and the new grid would be calculated using this and the frequency used in the definition of the envelope. This should probably be combined with slicing options, to avoid creating a high-resolution 3D grid if the user only wants a slice.

Should these features be added as parts of the corresponding functions in the lpa_diagnostics add-on (get_spectrum, etc.) or as a separate add-on? Or something else?