incident_effective#
- optika.rulings.incident_effective(wavelength, direction, index_refraction, normal, diffraction_order, spacing_rulings, normal_rulings)[source]#
The effective propagation direction of some rays incident on a diffraction grating.
- Parameters:
wavelength (Quantity | AbstractScalar) – The wavelength of the incident light in vacuum.
direction (AbstractCartesian3dVectorArray) – The propagation direction of the incident light.
index_refraction (float | AbstractScalar) – The index of refraction of the current medium.
normal (AbstractCartesian3dVectorArray) – A unit vector perpendicular to the surface on which the rulings are inscribed.
diffraction_order (int) – The diffraction order of the reflected or transmitted rays.
spacing_rulings (Quantity | AbstractScalar) – The distance between the parallel planes defining the rulings.
normal_rulings (AbstractCartesian3dVectorArray) – A unit vector perpendicular to the parallel planes defining the rulings.
- Return type:
Notes
Our goal is to find the effective propagation direction of a light ray incident on a diffraction grating. This effective, incident ray can be used in Snell’s law to find the direction of the diffracted rays. To start, consider the Dirichlet boundary conditions given in Equation (3) of the
snells_law()notes.\[A_1 \exp\left[i \mathbf{k}_1 \cdot (x \hat{\mathbf{x}} + y \hat{\mathbf{y}}) \right] = A_2 \exp\left[i \mathbf{k}_2 \cdot (x \hat{\mathbf{x}} + y \hat{\mathbf{y}}) \right]\]To include the ruling pattern, we model it as a phase shift of the wave at the interface,
(1)#\[\phi(x, y) = i \boldsymbol{\kappa} \cdot (x \hat{\mathbf{x}} + y \hat{\mathbf{y}})\]where
\[\boldsymbol{\kappa} = -\frac{2 \pi m}{d} \hat{\boldsymbol{\kappa}},\]\(m\) is the diffraction order, \(d\) is the groove spacing, and \(\hat{\boldsymbol{\kappa}}\) is a unit vector normal to the planes of the rulings.
With the inclusion of Equation (1), Equation (3) becomes:
(2)#\[ A_1 \exp\left[i (\mathbf{k}_1 + \boldsymbol{\kappa}) \cdot (x \hat{\mathbf{x}} + y \hat{\mathbf{y}}) \right] = A_2 \exp\left[i \mathbf{k}_2 \cdot (x \hat{\mathbf{x}} + y \hat{\mathbf{y}}) \right].\]By following a similar procedure to the one described in the notes of
snells_law(), we find that everything is exactly the same if we replace every instance of \(\mathbf{k}_1\) with an effective incident wavevector:\[\boxed{\mathbf{k}_\text{e} = \hat{\mathbf{k}}_1 + \boldsymbol{\kappa} / k_1}.\]References to
optika.rulings.incident_effective