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. - Implementation of 1D FDTD in MATLAB
See every line of MATLAB code typed and explained. By the end, you will have developed a fully functional 1D FDTD simulation that calculates and displays reflectance and transmittance from a device and animates the field interacting with the device. This course only contains the codes and does not explain or derive the FDTD method.
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. - Implementation of Basic 2D FDTD with UPML
This course types and explains every line of code in MATLAB to implement a 2D FDTD algorithm that incorporates a UPML. The code is developed in six steps and includes graphical visualization of the fields being simulated. - Simulating Periodic Structures Using 2D FDTD in MATLAB
This course builds on the previous course to simulate periodic structures. A diffraction grating is used as the device example and the course describes how to calculate steady-state fields, calculate diffraction efficiencies, and reflectance and transmittance. The course ends by showing how to post-process the data and display the results in a professional plot.
Supplemental Information
- (Animation) Animation for justification of spacer regions before the PML
Topic 4 — Device Simulation Examples
- (PDF) (Video) Lecture 4a — Waveguide Circuit Analysis
- Lecture 4b — Grating Simulation Walkthrough
- Lecture 4c — Waveguide Simulation Walkthrough
MATLAB Implementation
- Simulating Periodic Structures Using 2D FDTD in MATLAB
This course builds on the previous course to simulate periodic structures. A diffraction grating is used as the device example and the course describes how to calculate steady-state fields, calculate diffraction efficiencies, and reflectance and transmittance. The course ends by showing how to post-process the data and display the results in a professional plot of reflectance and transmittance as a function of frequency.
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().