FDTD++ is advanced, fully featured finite-difference time-domain (FDTD) software, with included C++ source code and a number of features not found in any other software.

FDTD++ is advanced, fully featured finite-difference time-domain (FDTD) software. The goal of FDTD++ is to provide the most comprehensive, accurate, and computationally efficient software based on the FDTD method. In addition, unlike other software, its C++ source code is included. This means that additional features/modifications are easy to implement, making it suitable for academic and government research. Some of the features of FDTD++ are highlighted below.

If there are any features that you would like to see in future versions, please visit the discussion forums or email support@fdtdxx.com. For more immediate/urgent issues, see here.


Fully Featured

FDTD++ is fully featured finite-difference time-domain (FDTD) software1 for solving Maxwell’s equations. All of the features that one would expect from a sophisticated code are implemented. Some of these include:

  • Numerical solutions to in 3D, and coming soon 2D and 1D (in the meantime, see jFDTD2D and the about page)
  • Solutions in the time and/or frequency domain
  • Multiple types of boundary conditions (BCs) are supported, such as convolution perfectly matched layers (CPML)2 for simulating isolated structures in “infinite” domains, periodic BCs for periodic structures, etc.
  • Powerful and flexible geometric modeling capabilities (see below and the FDTD++ wiki)
  • Flexible source and/or excitation specifications, e.g., the total-field/scattered-field (TF/SF) technique for incident fields
  • Full control over simulation parameters (see below)
  • Numerous data processing/post-processing tools


Maxwell's equations and Yee cell

symplectic integration FDTD

Advanced Features

FDTD++ also provides many advanced features for greater applicability, accuracy, and computational efficiency, relative to most other FDTD software. A description of these is coming soon.

Powerful and Flexible Geometric Modeling

FDTD++ contains powerful and flexible geometric modeling capabilities. It supports the import of computer-aided design (CAD) files or mesh files (e.g., tetrahedral meshes) , as well as the specification of geometries via a user-provided algorithm. The recommended approach is the former, and a variety of CAD and mesh file formats are supported. The image to the right, for example, shows a mesh being created with the recommended geometric modeling software, the open source software SALOME8

geometric modeling with SALOME

gold nonlocal permittivity
silver and gold permittivities


Sophisticated Material Models

FDTD++ includes a number of sophisticated material models that can be used to accurately describe the optical properties of any material1, ranging from dielectrics and conductors to dispersive materials to even those exhibiting nonlocality2,3. Not only these provide accurate fits, but they also correctly describe the physics behind the optical responses. The image to the immediate left shows the permittivities of silver and gold as a function of energy, fit to experimental data, using an accurate fit to a Drude model and two Lorentz poles. The image to the far right shows the permittivity of gold as a function of energy and wavevector, fit using a physical fit to a nonlocal hydrodynamic Drude model plus two Lorentz poles.

A database of predefined material models are included with FDTD++4, which provide the most accurate and physically-meaningful fits to experimental optical data than can be found anywhere else.



Simple User Interface

FDTD++ contains a simple and flexible user interface.

First of all, any computational domain or structure can be imported from CAD software, as was discussed above.

In addition, any material can be modeled (if not already found in the materials database) using a simple input file (see the image to the right, for example, as well as the FDTD++ wiki). In development is the ability to use experimental optical constants directly, with accurate fits to the data provided automatically provided.

Finally, all simulation (FDTD) parameters are adjustable using a simple input file (see the image to the far right, for example, as well as the FDTD++ wiki). Though, most of these are automatically optimized and calculated by FDTD++, for simplicity and robustness.

FDTD++ materials file
FDTD++ parameters file

gold film transmission spectra
gold nanowire cross sections

Data Processing / Post-processing

FDTD++ contains a number of advanced tools for data processing/post-processing the simulation data. First of all, the electromagentic fields are output (if desired) in the rich SILO format, as well as the time domain and/or frequency domain. Additionally, for isolated structures, cross sections (absorption, scattering, and extinction) can be calculated as a function of energy. For example, the image to the immediate left shows cross sections for gold nanowires of various sizes3. For periodic structures, transmission, reflection, and absorption spectra can be calculated, as shown, for example, in the image to the far left for thin gold films4.


FDTD++ has been designed from the ground up to be highly scalable, in order to take advantage of the speedup offered by high-performance computing. Based on the Message Passing Interface (MPI) system, FDTD++ is capable of performing simulations on systems ranging from personal computers to massively parallel systems. In fact, FDTD++ has been tested on a number of computing architectures, and is found to be stable even when performing simulations on 100K+ cores. An example of the Titan supercomputer is shown to the right. This means that there is no limit to the size of simulation that can be performed, in terms of time, memory, etc.


Titan supercomputer

Notes and References

  1. A. Taflove and S. C. Hagness, “Computational Electrodynamics: The Finite-Difference Time-Domain Method,” 3rd Edition, Artech House: 2005. ISBN 978-1580538329.
  2. J. A. Roden and S. D. Gedney, “Convolution PML (CPML): An efficient FDTD implementation of the CFS-PML for arbitrary media,” Microwave Opt. Tech. Lett. 27, 334-339 (2000).
  3. J. M. McMahon, S. K. Gray, and G. C. Schatz, “Nonlocal Optical Response of Metal Nanostructures with Arbitrary Shape,” Phys. Rev. Lett. 103, 097403 (2009).
  4. J. M. McMahon, S. K. Gray, and G. C. Schatz, “Calculating nonlocal optical properties of structures with arbitrary shape,” Phys. Rev. B 82, 035423 (2010).
  5. J. M. McMahon, S. K. Gray, and G. C. Schatz, “A discrete action principle for electrodynamics and the construction of explicit symplectic integrators for linear, non-dispersive media,” J. Comput. Phys. 228, 3421-3432 (2009).
  6. SALOME is not included with FDTD++. It is open source software though, and can be obtained here.
  7. Technically, the large user base is for jFDTD3D, but such users are encouraged to switch over to FDTD++.