SimWorks FDTD is a powerful tool for researchers and engineers to simulate various nano-photonic problems. We will briefly introduce the physical principles, key features, and simulation process of the FDTD solver.

FDTD Solver Physics

FDTD samples data from the continuous electromagnetic fields within a certain volume and over a period of time, which intuitively reproduces the physical process of electromagnetics in the numerical space and time domain. Therefore, FDTD is the most fundamental and complete numerical simulation for electromagnetic issues in various application fields. Although FDTD computes time solutions of Maxwell's equations, the frequency response of devices in the broadband can be achieved by one FDTD simulation by exploiting Fourier transforms. The basic principles of FDTD are outlined as follows:
For the non-magnetic materials, Maxwell's curl equations can be given by:

×H=J+Dt(1)\tag{1} \nabla \times \mathbf {H} =\mathbf {J} +{\cfrac {\partial \mathbf {D} }{\partial t}}

×E=Jmμ0Ht(2)\tag{2} \nabla \times \mathbf {E} =-\mathbf {J}_m -{\mu_0}{\cfrac {\partial \mathbf {H} }{\partial t}}

D(ω)=ε0εr(ω)E(ω)\mathbf{D(\omega)}={\varepsilon_0}{\varepsilon_r(\omega)}\mathbf{E(\omega)}

Maxwell's curl equations are discretized by the Yee algorithm.

  • Use second-order central difference to approximate the both the spatial and temporal derivatives that appear in Maxwell's equations.

f(x,y,z,t)xx=iΔxfn(i+1/2,j,k)fn(i1/2,j,k)Δxf(x,y,z,t)tt=nΔtfn+1/2(i,j,k)fn1/2(i,j,k)Δt\begin{matrix}\cfrac {\partial f(x, y, z, t) } {\partial x} |_{x=i\Delta x } \approx \cfrac {f^n(i+1/2, j, k) - f^n(i-1/2, j, k)}{\Delta x} \\ \\ \cfrac {\partial f(x, y, z, t) } {\partial t} |_{t=n\Delta t } \approx \cfrac {f^{n+1/2}(i, j, k) - f^{n-1/2}(i, j, k)}{\Delta t} \end{matrix}

  • Discretize space in Yee grids so that the electric and magnetic fields are staggered in space (See the below left figure).

    The electric fields are located at the center of grid ridges while the magnetic fields are located at the center of grid surfaces. Each electric component surrounded by four circulating magnetic components, which are vertical with the electric counterpart, meets Maxwell's curl equations (vice versa).

  • Discretize time so that the electric and magnetic fields are staggered in time (See the below center figure).

    FDTD is a leapfrog scheme using the explicit updates to find the recursive solutions.

  • The materials in FDTD are discretized based on 'Yee cell' grids (See the below right figure).

    A smaller mesh can represent the device more accurately, however, the memory and simulation time will increase greatly. Since the mesh affects the simulation speed and accuracy, the advanced features such as auto non-uniform mesh and various conformal mesh are offered to users, more details can be seen in mesh.

    1. According to the mesh settings, the grids (called mesh) are generated based on the Cartesian coordinates;
    2. The material in each point of Yee grids is determined based on the structure at this point, so that the material distribution is discretized in Yee grids.

Thus, the 3D field update equations can be expressed as:

Exi,j,kn+1/2=CAExi,j,kn1/2+CB[Hzi,j,knHzi,j1,knΔyHyi,j,knHyi,j,k1nΔz]CA=1σdt2ϵ1+σdt2ϵi,j,k,CB=11+σdt2ϵi,j,kHxi,j,kn+1=Hxi,jkn+dtμ0[Ezi,j+1,kn+1/2Ezi,j,kn+1/2ΔyEyi,j,k+1n+1/2Eyi,j,kn+1/2Δz]\begin{matrix} \mathbf {E}_x|_{i,j,k}^{n+1/2} = CA \cdot \mathbf {E}_x|_{i,j,k}^{n-1/2} + CB \cdot \bigg[\frac{\mathbf{H} _z|_{i, j, k}^{n} - \mathbf{H} _z|_{i,j-1,k}^{n} }{\Delta y} - \frac{\mathbf{H} _y|_{i,j,k}^{n} - \mathbf{H} _y|_{i, j, k-1}^{n} }{\Delta z} \bigg]\\ CA=\frac{1- \frac{\sigma*dt}{2\epsilon}}{1+\frac{\sigma*dt}{2\epsilon}}|_{i,j,k}, CB=\frac{1}{1+\frac{\sigma*dt}{2\epsilon}}|_{i,j,k}\\ \mathbf {H}_x|_{i,j,k}^{n+1} = \mathbf {H}_x|_{i, j k}^{n} + \frac{dt}{\mu_0} \cdot \bigg[\frac{\mathbf{E} _z|_{i,j+1,k}^{n+1/2} - \mathbf{E} _z|_{i,j,k}^{n+1/2} }{\Delta y} - \frac{\mathbf{E} _y|_{i,j,k+1}^{n+1/2} - \mathbf{E} _y|_{i,j,k}^{n+1/2} }{\Delta z} \bigg] \\ \end{matrix}

The formulas for other 3D directions are similar to the above formula, more details can be found in the reference [1,2].

In our software, the real-time evolution of electromagnetic fields can be recorded. After the FDTD simulation is completed successfully, the results of each mesh point, such as material index, electric/magnetic field, power, transmittivity/reflectivity, and other parameters, can be directly obtained (See below figure).

Key Features of the FDTD Solver

3D CAD interface and rich structure library

  • Multi-view 3D CAD platform helps model construction.
  • Built-in structure library, including polygons and surfaces, aids in building the geometry of various complex structures.
  • Allow to directly import GDS files to adjust the complicated structures in the process.

Mesh technology

  • Support the auto non-uniform mesh and custom mesh to complete simulations efficiently.
  • Support the advanced techniques of conformal mesh to get more accurate results, including: Volume-average polarized effective permittivity (VPEP), Volume average (VEP), Yu-Mittra 1, Yu-Mittra 2.

Boundary conditions

  • Offer various boundary conditions, for example, perfectly-matched layer (PML), periodic, Bloch, symmetric or anti-symmetric, perfect electrical conductor (PEC) or perfect magnetic conductor (PMC).

Various sources

  • Offer multiple types of sources, such as dipoles, plane wave, Gaussian, Mode, total-field/scatter-field (TFSF), and import source.
  • Satisfy the requirements for sources with narrowband/broadband, different injection angles, and complex polarizations.
  • Extract the S-parameter at the defined input mode through "Ports" object. S-parameters vary with the input/output modes.

Material

  • The accurate polynomial model for dispersive materials can be compatible with multiple types of materials, e.g., Drude, Debye, Lorentz, nk material, etc.
  • The imported sample data of materials can be automatically fitted to a built-in polynomial model.
  • Support 2D materials, e.g., graphene material, RLC lumped elements, and surface conductivity.
  • Provide diagonally anisotropic materials and nonlinear materials (χ2\chi_2, Raman, Kerr).

Post process

  • Rich analysis libraries can post-process the results, including far-field radiations, calculation of band structures, Quality-factor of resonators, etc.
  • The analysis group with functional modules has a convenient interactive window for editing scripts, allowing users to flexibly customize analysis groups.

Sweep and optimization

  • Offer functionalities of sweep, optimization, S-matrix sweep, and nested sweep. The built-in algorithm can automatically optimize the design of devices.

Script control

  • Enable user to control each step in the simulation by scripts to complete the parametric operations.
  • The complete function libraries basically meet all the needs of mathematical calculations, and the custom functions are allowed too.

Computing power

  • The computing power and speed are improved dramatically with the help of OpenMP, CUDA, MPI, AVX and other parallel computing technologies.
  • Provide cloud computing services where simulation process can be checked in real-time, no longer limited to the local computing resources.

Ultra-high computational accuracy

  • The software can achieve the ultra-high precision calculation results in different structural parameter projects. For example, in the Bragg grating shown in the figure below, the simulation results remain completely consistent with the data in the literature regardless of the presence of defects.

The Simulation Process of FDTD Solver

After the solver is selected, performing a simulations for any devices in FDTD Solver is straightforward, even for a freshman. The simple process of performing a simulation typically includes the following steps shown in the below figure. After the simulation, the results can be plotted or exported to other related software for further analysis.

flowchart TB StructureLibrary( Structure library ) Material( Material library ) SettingTimeSpatial( Time spatial ) SettingMesh( Mesh ) SettingBoundary( Boundary ) Source(Configure Source) Monitor(Configure Monitor) Run(Run solver) End[/End\] DataVisualizer[(Data Visualizer)] isSweep{Sweep or optimization?} Sweep[[Sweep or optimization]] isPostProcess{Post-process?} PostProcess[[Analysis]] subgraph obj_sub [Configure object] direction TB StructureLibrary Material end subgraph sim_sub [Configure solver] direction TB SettingTimeSpatial SettingMesh SettingBoundary end subgraph sm_sub [source and monitor] direction TB Source Monitor end subgraph FDTDSolver[FDTD solver] direction TB Run End end sim_sub --> obj_sub obj_sub --> sm_sub sm_sub --> FDTDSolver Run --> End FDTDSolver --> DataVisualizer FDTDSolver --> isSweep FDTDSolver --> isPostProcess subgraph post_sub[Post-process] isSweep --yes--> Sweep isPostProcess --yes--> PostProcess end PostProcess --> DataVisualizer Sweep -->DataVisualizer

References

[1] Allen Taflove, "Computational Electromagnetics: The Finite-Difference Time-Domain Method", Boston:Artech House, (2005).
[2] John B. Schneider, "Understanding the Finite-Difference Time-Domain Method", www.eecs.wsu.edu/~schneidj/ufdtd, (2010).