Finite-difference time-domain (FDTD) is a method for solving Maxwell’s Equations, which describe classical Electrodynamics. It is a general method that can give both the full time dynamics of the electromagnetic fields or the steady state behavior. As it is a general and reliable method, it is the most commonly used tool for simulating electromagnetic devices.
The first step of FDTD is discretizing the spatial and temporal dimensions on a regular, rectangular grid. In this formalism, the derivative operations in Maxwell’s equations may be approximated using “finite differences”. The FDTD algorithm then solves E(t) and H(t) one after another starting from t=0 and terminating when a final condition is met, for example when there are very little fields present in the system.
First, one must specify the global simulation parameters, such as the size, discretization characteristics, and boundary conditions. These parameters define the context of the device and the discretization can be used as a knob to balance accuracy with speed.
Next, the device must be defined by specifying all of the geometries and material properties of the structures within the domain. After this, the user must define the excitation that injects electromagnetic energy into this system. This can be done by directly specifying a current source, such as a point dipole, or a desired field pattern, such as a plane wave, from which a current source distribution can be defined.
Finally, the user may define the quantities of interest to be measured from the simulation. For example, one might want to measure the time dynamics of a field component at a point within the simulation domain or the flux through a plane. Definingthese “monitors” up front means that less information will need to be stored and many of these quantities can be computed during the run, saving time.
Once all of these details are specified, the simulation is set up, run for a series of time steps, and the data requested by the monitors is returned for post processing or analysis.
Flexcompute has put together a series of tutorial videos to explain the basics of FDTD and the knowledge and insight needed to successfully model your devices using the method.
Tidy3D is Flexcompute’s python-based FDTD solver, which makes it simple to define and run FDTD simulations. For examples on using FDTD for many problems, see the Tidy3d Documentation.
For those interested in leaning more about the implementation of FDTD, EMPossible’s course on FDTD is very useful and clear reference.
For the definitive guide to the method and all of the details, Taflove FDTD is the main reference for the FDTD method and is an excellent resource.