A minimal FDTD proof of concept (FDTDPoC). The aim of the project is to implement a simple FDTD solver in python3, and use it to help people familiriarize with the workings of the algorithm. To this aim, the solver should work in 2D (for TE and/or TM polarisations) and allow for easy configuration of a TFSF plane wave source as well as simple geometries. A real time animation could also have a good teaching impact.
It has the following features:
- Additive dipolar sources can be added at arbitrary positions
- An independent
pulse
component representing the time dependence of the source
- An independent
- Reflective boundaries through perfect electric conductor (PEC)
- Absorptive (i.e. open system) boundaries through absorbing boundary conditions (ABC)
The code has been written on Linux (Ubuntu 17.10) using python3. Packages required:
numpy
Packages required to run the test driver:
matplotlib
List of desired features for the FDTD solver
- Working 2D solver (TE/
TM) - Boundaries
- Absorbing boundaries (
ABC/PML) Reflecting boundaries (PEC)
- Absorbing boundaries (
- Sources
Dipolar additive source- TFSF box
- Materials
- Dielectrics (arbitrary
n
) - Metals (Drude model)
- Two level system (?)
- Dielectrics (arbitrary
- ...
and the GUI and data analysis/presentation
- Real time field animation
- Easy geometry definition
- Real time (?) DFT/FFT
- Real time envelope extraction (Hilbert transform)
- ...
This looks ambitious!