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 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:
Maxwell's curl equations are discretized by the Yee algorithm.
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.
- According to the mesh settings, the grids (called mesh) are generated based on the Cartesian coordinates;
- 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:
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).
3D CAD interface and rich structure library
Mesh technology
Boundary conditions
Various sources
Material
Post process
Sweep and optimization
Script control
Computing power
Ultra-high computational accuracy
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
[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).