rayoptics.oprops.doe module
Module for diffractive/holographic optical elements
Classes that implement diffractive optics capabilities must implement the function phase() for use by the ray trace engine.
The
DiffractiveElementandHolographicElementimplementations are patterned after Wang, et al, Ray tracing and wave aberration calculation for diffractive optical elements
- radial_phase_fct(pt, coefficients)[source]
Evaluate the phase and slopes at pt
- Parameters:
pt – 3d point of incidence in
Interfacecoordinatescoefficients – list of even power radial phase coefficients, e.g. r**2, r**4, …
- Returns:
(dW, dWdX, dWdY)
dW: phase added by diffractive interaction
dWdX: slope in x direction
dWdY: slope in y direction
- class DiffractionGrating(label='', order=1, grating_normal=None, grating_freq_um=1.0, grating_lpmm=None, interact_mode='transmit')[source]
Bases:
objectLinear (ruled) diffraction grating.
The phase calculation is patterned after Ludwig, Generalized grating ray-tracing equations.
- grating_normal
grating generation surface normal (G)
- grating_lpmm
the grating frequency in lines/mm
- grating_freq_um
grating frequency in lines per micrometer
- order
integer diffraction order used in phase calculation
- interact_mode
‘transmit’|’reflect’
- label
string description
- property grating_lpmm
the grating spacing in lines/mm.
- property grating_freq_um
- class DiffractiveElement(label='', coefficients=None, ref_wl=550.0, order=1, phase_fct=None)[source]
Bases:
objectContainer class for a phase fct driven diffractive optical element
- phase_fct
fct the takes an input pt and returns phase and slope
- coefficients
list of coeficients for phase function
- ref_wl
wavelength in nm for phase measurement
- order
which diffracted order to calculate the phase for
- label
optical labeling for listing
- phase(pt, in_dir, srf_nrml, ifc_cntxt)[source]
Returns a diffracted ray and phase increment.
- Parameters:
pt – point of incidence in
Interfacecoordinatesin_dir – incoming direction cosine of incident ray
srf_nrml –
Interfacesurface normal at ptz_dir – -1 if after an odd # of reflections, +1 otherwise
wl – wavelength in nm for ray, defaults to ref_wl
n_in – refractive index preceding the interface
n_out – refractive index following the interface
- Returns:
(out_dir, dW)
out_dir: direction cosine of the out going ray
dW: phase added by diffractive interaction