The theoretical study of integrated optical systems as wave guides, photonic crystals, etc. often needs to solve Maxwell equations. I have coded and used several different methods. The FDTD (Finite -Difference Time Domain) computes the time evolution of the electromagnetic field in a discretised space. The expansion in Bloch mode allows computing the band structure of a photonic crystal, that is, a medium where the optical properties are periodic in 1, 2 or 3 directions with a period that can be compared with visible wavelengths.

Example of band diagram of a 2D photonic crystal.