### Jupyter notebooks:

Basics:

• Plotting functions ( Download notebook)

Lecture 2:

• Numerical demonstration of Cauchy's theorem ( Download notebook)
• Numerical demonstration of the expansion of a plane wave into a sum of Bessel functions ( Download notebook)

Lecture 3:

• Animations of the scalar and vector Green functions ( Download notebook)
• Wave propagation/reflectivity from a Salisbury screen ( Download notebook)

Lecture 4:

• Pulse propagation in dispersive and non-dispersive materials ( Download notebook)
• Numerical demonstration of the Kramers-Kronig relations ( Download notebook)

Lecture 5:

• Plots and animations of the Gaussian beam and the Airy beam ( Download notebook)
• Plots and animations of the Poisson-Arago spot ( Download notebook)
• Justifying an approximation to an integral involving a Gaussian and a Bessel function ( Download notebook)

Lecture 6:

• Continuity of power flow for a wave incident onto an interface ( Download notebook)
• The field of a wave incident onto a perfectly reflecting surface with a hole in it ( Download notebook)

Lecture 7:

• Calculating scattering from an arbitrary object using the Born approximation ( Download notebook, data file)
• Rayleigh scattering and the color of the sky ( Download notebook, data file)

Lecture 8:

• Visualizing the reciprocal lattice in 2D ( Download notebook)
• Wave propagation through a 1D lattice of delta function scatterers ( Download notebook)
• Transfer matrices and the reflection from and transmission through an N period medium ( Download notebook)

Lecture 9:

• The dispersion relation of an empty unit cell ( Download notebook)
• Degenerate perturbation theory applied to a hexagonal lattice of point scatterers ( Download notebook)
• Plane wave expansion for propagation in arbitrary media ( Download notebook)

Lecture 10:

• Ray tracing through 2D index profiles ( Download notebook)
• The WKB approximation in slowly changing refractive index profiles ( Download notebook)
• Conformal mapping and the 2D Helmholtz equation ( Download notebook)

Extras:

• Numerical solution of the 1D Helmholtz equation in an inhomogeneous medium ( Download notebook)
• An example of using FENICS to write your own finite element solver for the Helmholtz equation ( Download notebook)
• If you must use COMSOL then you might want to analyse the output with python ( Download notebook, data file 1, data file 2)

Note: if you're not using linux then the animations might not work. This is because Jupyter uses ffmpeg to make the files. Ian knows how to fix this.

Back