Optical Elements

Optical Elements are entities capable of producing wavefields as a function of time.

class syris.opticalelements.OpticalElement

An optical element capable of producing a wavefield as a function of time.

get_next_time(t_0, distance)

Get next time at which the object will have traveled distance, the starting time is t_0.

transfer(shape, pixel_size, energy, exponent=False, offset=None, t=None, queue=None, out=None, check=True, block=False)

Transfer function of the element in real space on an image plane of size shape, use pixel_size, energy, offset is the physical spatial offset of the element as (y, x), transfer at time t. If exponent is true, compute the exponent of the transfer function without applying the wavenumber. Use queue for OpenCL computations and out pyopencl array. If block is True, wait for the kernel to finish. If check is True, the function is checked for aliasing artefacts.

transfer_fourier(shape, pixel_size, energy, t=None, queue=None, out=None, block=False)

Transfer function of the element in Fourier space of size shape, use pixel_size, energy and comput the function at time t. Use queue for OpenCL computations and out pyopencl array. If block is True, wait for the kernel to finish.