General tab
- DIMENSION: The dimension of the simulation region (2D or 3D).
- BACKGROUND INDEX: The refractive index of the surrounding, background medium in the simulation region.
- SIMULATION TIME: The maximum duration of the simulation to be performed. The actual simulation may be shorter if the autoshutoff criteria are satisfied before this maximum simulation time is exceeded.
- SIMULATION TEMPERATURE (K): The simulation temperature, for simulations that include temperature dependent objects.
Geometry tab
- X, Y, Z: The center position of the simulation region
- X MIN, X MAX: X min, X max position
- Y MIN, Y MAX: Y min, Y max position
- Z MIN, Z MAX: Z min, Z max position
- X SPAN, Y SPAN, Z SPAN: X, Y, Z span of the simulation region
Mesh settings tab
Mesh type
Three types of mesh generation algorithms are available, as described below
- Auto non-uniform (default):
A non-uniform mesh is automatically generated based on the mesh accuracy slider bar. It is strongly recommended to start with a mesh accuracy of 1-2 for initial simulations to make the simulations run quickly. Higher mesh accuracies can be used for convergence testing if necessary.
The MESH ACCURACY parameter is an integer from 1-8, where 1 is low accuracy, and 8 is high accuracy (smaller mesh). Many factors go into the meshing algorithm, including source wavelength, material properties and the structure geometry. The number of mesh points per wavelength (ppw) is a major considerations for the meshing algorithm. Accuracy 1 corresponds to a target of 6 ppw. Acc 2 ->10 ppw, Acc 3 ->14ppw, and so on, in increments of 4 ppw per point on the slider bar. It is important to remember that wavelength is inversely proportional to the refractive index. In high index materials, the effective wavelength is smaller, meaning that the meshing algorithm will use a smaller mesh in high index materials.
- Custom non-uniform:
This setting allows the user to additional options to customize how the non-uniform mesh is generated. If setting the mesh cells using wavelength, the default setting of 10 is sufficient in general, but may be reduced to 6-8 for coarse simulations.
The grading factor determines the maximum rate at which the mesh can be modified. For example, if dx(i+1) = a*dx(i), then 1/(GRADING FACTOR) <= a <= GRADING FACTOR. The grading factor should be between 1 and 2. The default setting is sqrt(2).
- Uniform:
A uniform mesh is applied to the entire simulation volume, regardless of any material properties. If a mesh override region is used in conjunction with this option, the override region will force the mesh size everywhere, not just within the override region (afterall, the mesh is uniform).
Mesh Refinement
Mesh Refinement: Mesh refinement can give sub-cell accuracy for a simulation. See the Mesh refinement options page for more information.
Time Step:
- DT STABILITY FACTOR: A setting which determines the size of the time step used during the simulation, defined as a fraction of the Courant numerical stability limit. A larger number will result in faster simulation times, and a smaller number will result in slower simulation times. The Courant stability condition requires that this setting must be less than 1 for the FDTD algorithm to remain numerically stable.
- DT: The time step of the FDTD/Propagator simulation. This is determined by the values of the spatial grid to ensure numerical stability and cannot be directly set by the user.
Minimum mesh step settings
Min Mesh Step: The MIN MESH STEP sets the absolute minimum mesh size for the entire solver region. This overrides all other mesh size settings, including mesh override regions.
Boundary conditions tab
Supported Boundary Conditions FDTD/MODE
Perfectly matched layer (PML)1 boundaries absorb electromagnetic waves incident upon them. They essentially model open (or reflectionless) boundaries. In FDTD and varFDTD simulation regions, the user can directly specify all the parameters that control their absorption properties including the number of layers. To facilitate the selection of PML parameters, a number of profiles (or predefined sets of parameters) are available under the boundary conditions tab. In most simulation scenarios, the user only needs to choose one of the predefined profiles and fine-tune the number of layers. PML boundaries perform best when the surrounding structures extend completely through the boundary condition region. This will be the default behavior of structures whether or not they were drawn to end inside or outside the PML region.
1 J. P. Berenger, Perfectly Matched Layer (PML) for Computational Electromagnetics. Morgan & Claypool Publishers, 2007.
Metal
Metal boundary conditions are used to specify boundaries that behave as a Perfect Electric Conductor (PEC). The component of the electric field parallel to a metal (PEC) boundary is zero; the component of the magnetic field H perpendicular to a metal (PEC) boundary is also zero. Metal boundaries are perfectly reflecting, allowing no energy to escape the simulation volume along that boundary. In the FDE solver, metal BC is the default setting.
PMC
Perfect Magnetic Conductor (PMC) boundary conditions are the magnetic equivalent of the metal (PEC) boundaries. The component of the magnetic field H parallel to a PMC boundary is zero; the component of the electric field perpendicular to a PMC boundary is also zero.
Periodic BC should be used when both the structures and EM fields are periodic. Periodic boundary conditions can be used in one or more directions (i.e. only in the x direction) to simulate a structure which is periodic in one direction but not necessarily other directions.
Bloch BC should be used when the structures and the EM fields are periodic, but a phase shift exists between each period. Bloch boundary conditions are used in FDTD and propagator simulations predominantly for the following two cases:
- Launching a plane wave at an angle to a periodic structure – in this situation, accurate reflection and transmission data can be measured at a single frequency point for a given simulation.
- Calculating the bandstructure of a periodic object – in this situation, a broadband pulse is injected via a dipole source into a periodic structure.
Note: if you choose BFAST plane wave source, the Bloch BCs will be automatically overridden and use its built-in boundary conditions. |
Symmetric / Anti-Symmetric
Symmetric/anti-symmetric boundary conditions are used when the user is interested in a problem that exhibits one or more planes of symmetry; both the structure and source must be symmetric. Symmetric boundaries are mirrors for the electric field and anti-mirrors for the magnetic field. On the other hand, anti-symmetric boundaries are anti-mirrors for the electric field, and mirrors for the magnetic field. Careful consideration must be given to whether symmetric or anti-symmetric boundary conditions are required, given the vector symmetry of the desired solution. For meaningful results, the sources used must have the same symmetry as the boundary conditions. Further information about symmetric and anti-symmetric boundary conditions can be found in Choosing between symmetric and anti-symmetric BCs.
ALLOW SYMMETRY ON ALL BOUNDARIES: Allows symmetric boundary conditions with periodic structures (this option is not available in the boundary condition tab of mode sources and mode expansion monitors).
Boundary condition options
- XMIN, XMAX, YMIN, YMAX, ZMIN, ZMAX BOUNDARIES: These fields describe the boundary conditions to be applied along the perimeter of the simulation region. Symmetric and asymmetric boundary conditions should be applied to the lower boundary conditions.
- ALLOW SYMMETRY ON ALL BOUNDARIES: By default, symmetric and anti-symmetric conditions can only be used on the lower boundaries (x min, y min and z min). This box allows you to also use symmetry and anti-symmetric conditions on the upper boundaries in order to simulate periodic structures that exhibit symmetry.
- SET BASED ON SOURCE ANGLE: Bloch boundary conditions are often used to inject plane waves on angles into periodic structures. This option will determine the values \(k_x\), \(k_y\) and \(k_z\) for you based on the source in your current simulation. Note that if more than one source is defined, all sources must require consistent Bloch settings. By default, this box is checked. If you uncheck the box, you should set \(k_x\), \(k_y\) and \(k_z\) directly.
- BLOCH UNITS: Two types of units are allowed for specifying the values of \(k_x\), \(k_y\) and \(k_z\):
- bandstructure: In these units \(k_{x,y,z}\) are defined in units of \(2\pi/a_{x,y,z}\) where \(a_{x,y,z}\) is the x,y or z span of the FDTD simulation region. These units are very convenient for bandstructure calculations.
- SI: In SI units, \(k_{x,y,z}\) are defined in units of m-1. This is generally more convenient for the injection of plane waves on angles.
- KX, KY, KZ: The wavevector setting in the x, y and z direction for the Bloch boundary in the units specified above.
- PML SETTINGS
- TYPE: Sets the type of PML boundary formulation to be used. The options are a PML based on a stretched coordinate formulation or a PML based on a uniaxial anisotropic material formulation (legacy option).
- SAME SETTINGS ON ALL BOUNDARIES: When unchecked, this option allows users to set different PML settings for the XMAX, YMIN, YMAX, ZMIN and ZMAX boundaries. When checked, the same PML settings are used for all boundaries.
- TABLE: Sets the PML profile to be used on each boundary. The section on PML boundary conditions provides a brief description of the intended use of each profile.
- EXTEND STRUCTURE THROUGH PML: see extending structures through PML.
- AUTO SCALE PML PARAMETERS: The PML default profiles ("standard", "steep angle", etc) are tuned to provide optimal absorption per layer of PML, which will converge as the mesh size (and therefore the time step) are reduced. In some cases, the time step becomes substantially smaller than expected, typically due to a different region of very fine mesh, or because of the use of reduced "dt stability factor". The autoscaling of the PML automatically adjusts the PML parameters to account for the variation in dt, and ensures that the optimal performance of PML is maintained.
Advanced options
WARNING: This tab includes options that should only be changed if you are quite familiar with the meshing algorithm and techniques used. |
Simulation bandwidth
- SET SIMULATION BANDWIDTH: By default, the simulation bandwidth is inherited from the source bandwidth. Enabling this option allows the simulation bandwidth to be set directly. Simulation bandwidth affects many aspects of the simulation including mesh generation, material fits, monitor frequency ranges, etc.
Mesh settings
- FORCE SYMMETRIC X, Y, Z MESH: This will force a symmetric mesh about the x, y or z axis. When this option is enabled, the meshing algorithm ONLY considers objects in the positive half of the simulation region. The mesh in the negative half is simply a copy of the positive half mesh. All physical structures and mesh override regions in the negative half will not be considered by the meshing algorithm. This option also forces a mesh point at the center of the simulation region. Forcing a symmetric mesh ensures that the mesh does not change when going from a simulation with symmetry to a simulation without symmetry.
- OVERRIDE SIMULATION BANDWIDTH FOR MESH GENERATION: This option allows the simulation mesh to be generated following a custom wavelength or frequency range, rather than the simulation bandwidth (which is inherited from the source by default).
- SNAP PEC TO YEE CELL BOUNDARY: This option forces any structures defined as PEC to have interfaces that are aligned with the Yee cell boundaries. This ensures that all electric field components at the PEC interface are tangential to the interface. This setting avoids complications that can result in some circumstances if normal electric field components are set to 0 at a PEC interface. To achieve this, the specified PEC interface may be shifted by as much as dx/2 when creating the simulation mesh, where dx is the size of the Yee cell.
Miscellaneous
- ALWAYS USE COMPLEX FIELDS: This checkbox forces the algorithm to use complex fields during simulation. This will result in slower simulation times and increased memory requirements and should only be used when necessary. By default, complex fields are only used when Bloch boundary conditions are present.
- Since 2024 R2, use complex fields is compatible with the FDTD GPU solver.
- If Bloch boundary conditions are selected; complex fields will be used whether "always use complex fields" is checked or not.
- MAX SOURCE TIME SIGNAL LENGTH: This is the maximum length of data used by sources to store the “time” and “time_signal” properties of sources. If a large number of sources are used and the simulation time is on the order of 100ps (which is very rare), advanced users may want to reduce this to save memory. However, since the “time” and “time_signal” properties of sources are important for calculating the sourcepower, sourcenorm, and the normalization for the transmission functions, care must be taken with source normalization. In particular, in most cases, nonorm option should be used.
Auto shutoff
- USE EARLY SHUTOFF: This will automatically end the simulation when most of the energy has left the simulation volume.
- AUTO SHUTOFF MIN: The simulation will end when the total energy in the simulation volume drops to this fraction of the maximum energy injected. The simulation data will automatically save.
- USE DIVERGENCE CHECKING: This will automatically end the simulation when the total energy in the simulation volume is this many times larger than maximum energy injected.
- AUTO SHUTOFF MAX: The simulation will end when the total energy in the simulation volume rises to this many times the maximum energy injected. The simulation data will automatically save.
- DOWN SAMPLE TIME: Check the auto shutoff conditions every down sample time number of dT time steps
Parallel engine options
- SET PROCESS GRID: The division of the simulation volume into sub-regions, which are then run as a separate process, can be manually set for more efficient computation. Better performance will be achieved when the regions are square e.g. for 20 regions, 5x2x2 is usually more efficient than 20x1x1.
- NX, NY, NZ: The process layout for parallel simulations.
- SET DEFAULTS: This can be used to reset the settings back to their original default settings.
Checkpoint options
- CHECKPOINT DURING SIMULATION: This will create a checkpoint during simulation at intervals specified by CHECKPOINT PERIOD.
- CHECKPOINT AT SHUTOFF: This will create a checkpoint any time the simulation ends except when Quit and Don't Save is selected.
BFAST settings
- BAFST ALPHA: It is the smallest dielectric refractive index in the simulation region, and should generally be 1. For example, if the background index is set to 1.33 of water in FDTD "General" tab, then 1.33 should be used here instead of the default of 1.
- DT MULTIPLIER: It is used to further reduce the time step "dt" in "Mesh settings" in addition to the "dt factor". Its largest value is 1, meaning no change for the dt factor. When it is smaller than 1, the actual time step dt becomes smaller, in some cases it can overcome some diverging problems impossible by modifying other settings.
Results returned
After the simulation has run the following results can be returned
Grid
- X, Y, Z: The mesh position vectors for the x, y and z directions.
Simulation status
- STATUS: Current status of the simulation, denoted by 0 for simulation in layout mode, 1 for run to full simulation time, 2 for run to autoshutoff, or 3 for diverged.
- AUTOSHUTOFF LEVEL: autoshutoff level vs simulation time/wall clock time
Simulation benchmark
- INITIALIZATION TIME: time to mesh and initialize in seconds
- SIMULATION RUN TIME: time to run FDTD simulation in seconds
- SIMULATION CHECKPOINT TIME: time to checkpoint simulation in seconds
- MISCELLANEOUS TIME: miscellaneous time in seconds
- SOLVER SPEED: FDTD solver speed on process 0 in Mnodes/s
- TOTAL SOLVER SPEED: total FDTD solver speed on all processes in Mnodes/s
- TOTAL PROCESSES: total number of processes
- TOTAL THREADS: total number of threads per process
- PEAK MEMORY: The maximum recorded memory usage for the completed simulation (not an estimate).
Note: These results can be copied to the script workspace using the function getresult with "FDTD" as the monitor name. For example: |
stat = getresult("FDTD","status");