open source FDTD solver with GPU support
In many examples the calculation is run for a single wavelength, eg. 633 nm. This is fine if we want to study monochromatic light interaction with some structure. However, in many cases a spectral dependence of some quantity is needed.
If we use a database of optical constants, given wavelength by wavelength, still the most straightforward calculation is to run the solver for each wavelength separately. Even if there is at present no graphical user interface for running such calculations, GSvit works with simple text files and one can write a script for running it across multiple wavelengths relatively easily. This is how majority of spectral calculations in this documentation was obtained.
If we use no spectral dependence of optical constants at all, use optical models that are given by some functional dependence of dielectric properties, e.g. the metal models like Drude + critical points, or if we fit our optical constants to be in this form, we can run the calculations with broadband excitation, significantly shortening the computation time and not needing any script at all.
Broadband calculations in FDTD are based on use of a broadband excitation, so instead of feeding our source with a sine function we use something with wider spectrum, like Gaussian function. Then we analyze the results using Fourier transform to get the spectral dependence.
An example that can be used to benchmark such calculation can be the reflection on a thick gold metal layer, that should give the results comparable to reference values (refractiveindex.info).
Note that the disagreement between the model results and reference values is mostly caused by the Drude+2CP model itself - the dielectric properties used in the calculations are already an approximation.
There are several aspects to consider when setting up broadband calculations. The FFT result is discrete and the set of wavelengths that are computed depends on the length of the input data. As seen above, it is also non-linear, the most dense are the high frequencies (short wavelengths). The source itself has some spectral dependence and the result should be corrected for this (the source spectrum is automatically placed in xspectrum.txt file). A more detailed tutorial on these aspects will be available in future.
Sample parameter file: broadband calculation.
A thin stripe of material with periodic boundary conditions to simulate reflection on a metallic material using broadband excitation. Results of calculation are in rpoint_broadband_fft.txt (FFT processed values at point above the gold layer) and xspectrum.txt (source spectral dependence).