pysrw.computations.propagateWfr

Contents

pysrw.computations.propagateWfr#

pysrw.computations.propagateWfr(wfr, opticalSystem, pol='TOT', groupSeq=['lens', 'drift'], saveWfrAt=[], saveIntAt=None, startPropAt=None, stopPropAt=None)[source]#

Propagate a wavefront through an optical system.

Parameters:
  • wfr – the wavefront instance of Wavefront:.

  • opticalSystem – dictionary defining the sequence of optical elements.

  • pol (optional) – one of the POL polarization states or an angle in degrees for any arbitrary linear polarization. Defaults to “TOT”.

  • groupSeq (optional) – list of elements to merge in the propagation. The propagation through a sequence is entirely performed at the SRW library level and the intermediate planes will not appear in the propData output. Use this option for faster and memory-efficient computation, as the same wavefront object is overridden at each propagation stage. Defaults to [“lens”, “drift”].

  • saveWfrAt (optional) – list of optical element keys where the wavefront should be stored in propData. If None, the wavefront is always stored. Defaults to [].

  • saveIntAt (optional) – list of optical element keys where the intensity should be stored in propData. If None, the intensity is always stored. Defaults to None.

  • startPropAt (optional) – start the propagation at a specific optical element key. If None, the propagaiton starts at the first element. Defaults to None.

  • stopPropAt (optional) – stop the propagation at a specific optical element key. If None, the propagaiton stops at the last element. Defaults to None.

Returns:

a dictionary containing the wavefronts and intensity data at the

requested propagation planes.

Return type:

dict