Recent Releases of FDTDX: High-Performance Open-Source FDTD Simulation with Automatic Differentiation
FDTDX: High-Performance Open-Source FDTD Simulation with Automatic Differentiation - v0.5.0
(published on 02.12.2025). This release contains:
Added
- separate repository for notebooks rendered in docs: https://github.com/ymahlau/fdtdx-notebooks
- dependabot / codecov integration for better monitoring of repository
- A lot of test cases (@renaissancenerd)
- Json import / export of simulation objects. This will be necessary and helpful for the ongoing GUI development.
- added plot_material function. This function plots the material distribution at a specific slice in the simulation.
Changed
- moved docs to readthedocs using sphinx instead of mkdocs. This looks much nicer now.
- fixed eta0 scaling for lossy material (@rachsmith1)
- PML boundary layer refactoring (@rachsmith1)
- refactored plot_setup. (@renaissancenerd)
- refactored place_objects API. This is a breaking change since now a list of simulation objects needs to be included as an attribute to the function.
Removed
- lossy material example. Going forward, examples will be included in the notebooks repository (https://github.com/ymahlau/fdtdx-notebooks) and rendered in the documentation.
- Python
Published by ymahlau 6 months ago
FDTDX: High-Performance Open-Source FDTD Simulation with Automatic Differentiation - v0.4.3
(published 18.07.2025) This release contains:
- Separation of CPU, CUDA, AMD, and TPU installation. Install fdtdx
- for CPU with pip install fdtdx.
- for CUDA GPU with pip install fdtdx[cuda12].
- for AMD GPU with pip install fdtdx[rocm].
- for TPU with pip install fdtdx[tpu].
- bugfixes in mode computation
- Python
Published by ymahlau 11 months ago
FDTDX: High-Performance Open-Source FDTD Simulation with Automatic Differentiation - v0.4.2
(published 10.07.25) This release contains: - various bugfixes - Better documentation (including links between classes within docs) - More test cases
- Python
Published by ymahlau 11 months ago
FDTDX: High-Performance Open-Source FDTD Simulation with Automatic Differentiation - v0.4.1 (23.06.2025)
This release includes the following improvements: - Simpler Names for Base class: now the base class for all objects is called fdtdx.TreeClass. It includes a lot of nice functionality for JAX and would probably also be useful to people in other projects - Added more functionality to the TreeClass which makes life a lot easier when working with JAX transformations. Check out the tutorial: https://ymahlau.github.io/fdtdx/tutorials/jax_introduction/ - ExtendedPolygon Object. See #30
- Python
Published by ymahlau 12 months ago
FDTDX: High-Performance Open-Source FDTD Simulation with Automatic Differentiation - v0.4.0
This release includes the following improvements: - Vastly simplified import paths. For example, simply import fdtdx and write fdtdx.EnergyDetector - New Mode Overlap Detector (thanks @msimicphysics) - Refactored API for Parameter Mapping. The new API makes it much easier to chain transformations for inverse design. Check out the ceviche corner inverse design example - New SubpixelSmoothedProjection and TanhProjection (thanks to @smartAlecH). Check out their paper - Minor bugfixes
Breaking changes:
- Removed Wavelength and Substrate class to avoid confusion. These classes only changed the color anyways. Please use fdtdx.UniformMaterialObject instead.
- Python
Published by ymahlau about 1 year ago
FDTDX: High-Performance Open-Source FDTD Simulation with Automatic Differentiation - v0.3.3
This release includes a hotfix for an issue of matplotlib with multiprocessing. With the default matplotlib backend, the combination of matplotlib and multiprocessing can cause the entire user system to freeze. See #56
- Python
Published by ymahlau about 1 year ago
FDTDX: High-Performance Open-Source FDTD Simulation with Automatic Differentiation - v0.3.2
Hotfix: There was a breaking bug in getairname, which prevented execution entirely.
Enhancements: Previously, a device always assumed the background material was air. Now custom materials are also supported
- Python
Published by ymahlau about 1 year ago
FDTDX: High-Performance Open-Source FDTD Simulation with Automatic Differentiation - v0.3.1
This release includes an Implementation of TFSF Mode Source. Previously, the Mode source emitted light in both directions, which is fixed now. Additionally, the mode source now supports metallic materials and propagation in any axis (previously only propagation in x-axis was supported).
- Python
Published by ymahlau about 1 year ago
FDTDX: High-Performance Open-Source FDTD Simulation with Automatic Differentiation - v0.3.0
This release includes the following enhancements to FDTDX: - Implementation of Conductivity model. An electric conductivity can be specified corresponding to the imaginary part of permittivity and a magnetic conductivity for permeability respectively. The implementation also works in reverse time stepping using a specific gain term. This enables memory efficient gradient computation. - Memory Improvements: If all objects in simulation scene are non-magnetic, the permeability array is not realized and a single scalar is used - OnOffSwitch makes it easy to specifcy at which time detectors and sources are on or off - A wrapper function runfdtd combines the functionality of checkpointedfdtd and reversiblefdtd, making it easier for new users. - Instead of a mean, detectors can now also plot a slice through their detection volume - PhasorDetector now records with proper amplitude scaling - New "Sphere" object shape - Detectors record with exactinterpolation=True by default
- Python
Published by ymahlau about 1 year ago
FDTDX: High-Performance Open-Source FDTD Simulation with Automatic Differentiation - FDTDX v0.2.0
This release includes a major refactoring of the FDTDX API. It includes: - Better (shorter, more sensible) import paths for many objects and functions - Clean split between objects and material, enabling easy development of future materials (for example conductive or dispersive material) - Uniform interface for discrete and continous devices - Wave characteristic, for example in sources, can now be specified with a "WaveCharacteristic", using either with frequency, period or wavelength
Since this release changes a lot of import paths and breaking backwards compatibility, the minor version number is increased from v0.1 to v0.2.
- Python
Published by ymahlau about 1 year ago