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