wofryimpl.propagator.propagators2D.integral
Integral2D — 2-D Kirchhoff-Fresnel integral propagator (direct numerical integration; slow).
Classes
- class wofryimpl.propagator.propagators2D.integral.Integral2D[source]
- HANDLER_NAME = 'INTEGRAL_2D'
- do_specific_progation(wavefront, propagation_distance, parameters, element_index=None)[source]
Propagate a 2-D wavefront by numerical evaluation of the Kirchhoff-Fresnel integral.
This propagator is experimental and far slower than the FFT-based methods; use it only for validation purposes.
- Parameters:
wavefront (GenericWavefront2D) – Input wavefront.
propagation_distance (float) – Propagation distance [m].
parameters (PropagationParameters) –
Propagation parameter container. Recognised keys:
shuffle_interval(float, default 0) — randomly perturb source coordinates by this amount to suppress replica diffraction spots (a value of ~1e5 is typical; introduces noise).calculate_grid_only(bool, default True) — compute only the horizontal and vertical cross-sections and set all other pixels to zero (much faster for large arrays).magnification_x,magnification_y(float, default 1.0).
element_index (int, optional) – Index of the beamline element being propagated through.
- Returns:
Propagated wavefront.
- Return type:
GenericWavefront2D
- do_specific_progation_after(wavefront, propagation_distance, parameters, element_index=None)[source]
- do_specific_progation_before(wavefront, propagation_distance, parameters, element_index=None)[source]
- classmethod propagate_complex_amplitude_from_arrays(amplitude_flatten, X_flatten, Y_flatten, det_X_flatten=None, det_Y_flatten=None, wavelength=1e-10, propagation_distance=100)[source]