Below are some brief notes I've written up for my students and for use in my courses, especially 18.369 (Mathematical Methods in Nanophotonics) and 18.336 (Numerical Methods for PDEs).

For the most part, they are reviews and introductions to topics that appear in the literature, but may not have a compact pedagogical presentation that includes all of the information that I would like my students to be aware of. The references in the notes are by no means exhaustive (these are not formal review papers), but I try to give at least a pointer or two for more information.

- Notes on adjoint methods — adjoint methods provide ways to evaluate gradients
of complicated functions quickly, and are very important for
optimization and sensitivity analysis. Matlab code: schrodinger_fd_adj.m, schrodinger_fd_opt.m. You will also need the nonlinear conjugate-gradient code by H. B. Nielsen: conj_grad.m, linesearch.m.
- Notes on adjoint methods and sensitivity analysis for recurrence relations — an extension of the above notes to gradients of the solution of recurrence relations, since this example does not seem to be explicitly treated in any of the references I found (although I'm sure someone has done it).

- Notes on the algebraic
structure of wave equations — a few notes pointing out how all of
the common wave equations can be written in a particular
anti-Hermitian algebraic form, from which their properties can be
derived in a unified way. (In some sense, this is the
*definition*of a wave equation.) - Notes on total internal reflection and waveguides in "slow" media, describing an elementary variational proof of the existence of guided modes that is closely connected to analytical methods for localization of bound states in potential wells of quantum mechanics.
- Notes on Perfectly Matched Layers (PML) — discussion of various viewpoints on PML absorbing layers, and their properties and limitation, focusing on the fundamentals rather than on the detailed implementation in, for example, FDTD. (See also Notes on PML in Meep for the specific application of these ideas to our Meep Maxwell's equation FDTD solver.)
- Notes on coordinate
transformation and invariance in electromagnetism — a
concise derivation of a beautiful result by Ward & Pendry, showing
that any coordinate transformation of Maxwell's equations can be
absorbed into a change of materials ε and μ. (This proof
is also published as an appendix in a 2008 paper
by Kottke, Farjadpour, and Johnson in
*Physical Review E*.) - Notes on the convergence of trapezoidal-rule quadrature: the error rate of trapezoidal-rule quadrature, and by extension Clenshaw-Curtis quadrature, can be linked in an elementary way to the convergence rate of a Fourier series and hence to the smoothness of a function. A slightly more elementary version, using only cosine series and sticking with smooth functions, is my freshman-level lecture notes: Numerical integration and the redemption of the trapezoidal rule (with an accompanying handout on cosine series).
- When functions have no value(s):
Delta functions and distributions. A gentle introduction to what
delta functions
*really*are, weak derivatives, and other distribution concepts that replace the classical "function" notion, from my undergraduate PDE course. - A brief survey of
computational photonics, excerpted from a draft manuscript of the
upcoming
*Photonic Crystals: Molding the Flow of Light, second edition*(published in spring 2008 and available online in its entirety). - Saddle-point integration of
C
_{∞}"bump" functions (arXiv:1508.04376) — discussion of asymptotic Fourier analysis of the C_{∞}(infinitely differentiable) "bump" functions that often appear in analysis, using saddle-point methods (other common asymptotic methods fail here because of the essential singularity in the integrand). - Notes on a discontinuous f(x) satisfying f(x+y) = f(x)⋅f(y) — a relatively elementary discussion of how one can construct (though not explicitly) a non-exponential discontinuous function satisfying f(x+y) = f(x)⋅f(y), a simple real-analysis question that is surprisingly non-trivial to answer
- Notes on modified Cooley-Tukey algorithms based on a generalized-DFT framework, describing an interesting (and potentially useful) class of FFT algorithms, blending decimation in time and frequency Cooley-Tukey, that use generalized DFTs as subproblems rather than DFTs. (This algorithm is not published, as far as I know, at least not at this level of generality.)
- Notes on FFT-based (spectral) differentiation, which is often a source of confusion because of aliasing.
- Coupling of modes and adiabatic processes
in dynamic eigenproblems: An undergraduate-level introduction to
the adiabatic theorem and eigenvector expansions in linear ODEs of the
form ∂
**x**/∂t=A**x**where A(t) is matrix that varies slowly in time.