EMP-5304
Electromagnetic Analysis Using Finite-Difference Time Domain
This course will teach students how to implement the finite-difference time-domain (FDTD) method in MATLAB. Students will apply the tools to analyze a number of common devices and configurations like waveguides, thin film optical filters, gratings, frequency selective surfaces, and more.
Course Paperwork
- (PDF) Syllabus
Course Assignments
Homework
Final Project
- (PDF) Final Project
Lecture Notes (PDF)
Topic 1 — Preliminary Topics
Topic 2 — One-Dimensional FDTD
Lectures & Notes
- (PDF) (Video) Lecture 2a — Formulation Of 1D FDTD
- (PDF) (Video) Lecture 2b — Implementation Of 1D FDTD
- (PDF) (Video) Lecture 2c — Learning From 1D FDTD
- (PDF) (Video) Lecture 2d — Review and Walkthrough Of 1D FDTD
- (PDF) (Video) Lecture 2e — Examples Of 1D FDTD
- (PDF) (Video) Lecture 2f — Enhancing 1D FDTD
MATLAB Implementation
- One-Dimensional FDTD with MATLAB
Having trouble getting started? Here is a complete online course intended for the complete beginner. It covers every detail of FDTD in simple terms and with high quality visualizations. In addition, all of the code is presented and explained to implement the FDTD method in MATLAB.
Topic 3 — Two-Dimensional FDTD
Lectures & Notes
- (PDF) (Video) Lecture 3a — Formulation Of 2D FDTD Without PML
- (PDF) (Video) Lecture 3b — Windowing and Grid Techniques
- (PDF) (Video) Lecture 3c — The Perfectly Matched Layer
- (PDF) (Video) Lecture 3d — 3D Update Equations With PML
- (PDF) (Video) Lecture 3e — Implementation Of 2D FDTD
- (PDF) (Video) Lecture 3f — Gratings and The Plane Wave Spectrum
- (PDF) (Video) Lecture 3g — Power Flow and PML Placement
- (PDF) (Video) Lecture 3h — Metals and Alternative Grids
- (PDF) (Video) Lecture 3i — Periodic Structures in FDTD
MATLAB Implementation
- Two-Dimensional FDTD with MATLAB
Having trouble getting started? Here is a complete online course intended for the complete beginner. It is a follow-on to the prerequisite course 1D-FDTD and covers every detail of FDTD in simple terms and with high quality visualizations. In addition, all of the code is presented and explained to implement the FDTD method in MATLAB.
Supplemental Information
- (Animation) Animation for justification of spacer regions before the PML
Topic 4 — Device Simulation Examples
Topic 5 — Advanced Topics in FDTD
Topic 6 — Final Notes
- (PDF) Lecture 6a — Final Lecture
Other Resources
- (Web) Getting Started with MATLAB
- Stereo image of a 3D Yee cell. Adjust the image size until it is just under 10 cm wide.
- (Web) Understanding the Finite-Difference Time-Domain Method (E-Book)
- (Web) Electromagnetic and Photonic Simulation for the Beginner: Finite-Difference Frequency-Domain in MATLAB
- (Zip) FDTD MATLAB Files
- draw1d.p — This function is used in one-dimensional FDTD to efficiently visualize the electric and magnetic field superimposed onto the materials across the entire grid.
- draw2d.p — This function is used in two-dimensional FDTD to efficiently visualize the field superimposed onto the materials across the entire grid.
- polyfill.p — This function creates arbitrary polygons on a 2D array given the list of vertices around the perimeter of the polygon.
- polyfill_demo.m — This MATLAB program demonstrates the use of polyfill() to create an arbitrary polygon on a 2D grid.
- flagcmap.m — This function creates colormaps for the country flags of the members of the EM Lab.
- test_hw8_prob1.p — This function is used in Homework #8 to test the values assigned to the PML conductivity terms. See Homework #8 for details.
- test_hw8_prob2.p — This function is used in Homework #8 to test the values calculated in the update coefficients. See Homework #8 for details.
- Note: The above items are protected function files and have a “.p” extension. They work just like “.m” files, but they cannot be opened to view the code inside them.
- (PDF) Help headers for draw1d(), draw2d() and polyfill().