Course Paperwork
Homework
Assignments
- Homework 1 — Dartboard
- Homework 2 — Derivations
- Homework 3 — Transfer Matrix Method
- Homework 4 — star() and cascn()
- Homework 5 — TMM Parameter Sweeps
- Homework 6 — calcpml2d() and yeeder()
- Homework 7 — Build Grating for 2D FDFD
- Homework 8 — Implement 2D FDFD
- Homework 9 — FDFD Parameter Sweeps
- Homework 10 — convmat() and PWEM
- Homework 11 — RCWA Implementation
Help
Final Project
Course Topics
Topic 0 -- Course Introduction
Topic 1 -- Preliminary Topics
Lectures & Notes
- (PDF) (Video) Lecture 1a – Maxwell’s Equations
- (PDF) (Video) Lecture 1b — Electromagnetic Waves
- (PDF) (Video) Lecture 1c — Wave Parameters
- (PDF) (Video) Lecture 1d — Dispersion Relation
- (PDF) (Video) Lecture 1d — EM Wave Polarization
- (PDF) (Video) Lecture 1e – Preliminary Topics in Computational Electromagnetics
Summaries
Supplemental Information
Topic 2 -- Transfer Matrix Method (TMM)
Lectures & Notes
- (PDF) (Video) Lecture 2a – Transfer Matrix Method
- (PDF) (Video) – Lecture 2b – Scattering Matricies for Semi-Analytical Methods
- (PDF) (Video) Lecture 2c – Transfer Matrix Method Using Scattering Matrices
Summaries
Supplemental Information
- (PDF) Lecture 2d – Transfer Matrix Method Extras
Topic 3 -- Concepts for 2D and 3D Simulations
Lectures & Notes
- (PDF) (Video) Lecture 3a – Solid State Electromagnetics
- (PDF) (Video) Lecture 3b – Diffraction Gratings and Plane Wave Spectrum
- (PDF) (Video) Lecture 3c – Perfectly Matched Layer
Animations from the Notes
- Diffraction Orders from Ruled Gratings – Normal Incidence
- Diffraction Orders from Ruled Gratings – Oblique Incidence
- Diffraction Orders from Ruled Gratings – Angle Sweep
- Diffraction Orders from Crossed Gratings – Normal Incidence
- Diffraction Orders from Crossed Gratings – Oblique Incidence
- Diffraction Orders from Crossed Gratings – Angle Sweep
Topic 4 -- Finite-Difference Frequency-Domain (FDFD)
Lectures & Notes
- (PDF) (Video) Lecture 4a – Finite Difference Method
- (PDF) (Video) Lecture 4b – Maxwell’s Equations On A Yee Grid
- (PDF) (Video) Lecture 4c – Maxwell’s Equations in Matrix Form
- (PDF) (Video) Lecture 4d – Finite Difference Analysis of Waveguides
- (PDF) (Video) Lecture 4e – Finite Difference Frequency Domain (FDFD) Formulation
- (PDF) (Video) Lecture 4f – Finite Difference Frequency Domain (FDFD) Implementation
Supplemental Information
Topic 5 -- Other Methods Based on Finite Differences
Topic 6 -- Plane Wave Expansion Method (PWEM)
Lectures & Notes
- (PDF) (Video) Lecture 6a – Maxwell’s Equations In Fourier Space
- (PDF) (Video) Lecture 6b – Plane Wave Expansion Method
MATLAB Sessions
- (Video) – MATLAB Session – Plane Wave Expansion Method (Photonic Band Diagrams)
- (Video) – MATLAB Session – Plane Wave Expansion Method (Isofrequency Contours)
Supplemental Information
- (PDF) Lecture 6c – Plane Wave Expansion Method Extras
Topic 7 -- Rigorous Coupled-Wave Analysis (RCWA)
Topic 8 -- Other Slicing and Semi-Analytical Methods
Topic 9 -- Variational Methods
Topic 10 -- Other Numerical Methods
Resources
Animations and Visualizations
- Animated Visualization of a Grating Vector
- Stereo image of a 3D Yee cell. Adjust the image size until it is just under 10 cm wide.
- Animation for justification of spacer regions before the PML
- Animation of construction of a band diagram for a 3D lattice
- Animation of construction of a band diagram for a 2D lattice
- Animation of construction of a full band diagram for a 2D lattice
MATLAB Resources
- See MATLAB section in Computational Methods in EE
- Download .zip file of MATLAB codes
-
-
- test_star.p — In Homework #5, you are required to write the function star() which combines two scattering matrices. The test_star.p file is a MATLAB program that tests and verifies your star() function to ensure that all features are working properly. See Homework #4 for details.
- test_cascn.p — In Homework #5, you are required to write the function cascn() which cascades an arbitary number of scattering matrices. The test_cascn.p file is a MATLAB program that tests and verifies your cascn() function to ensure that all features are working properly. See Homework #4 for details.
- test_yeeder.p — In Homework #6, you are required to write the function yeeder() which builds the derivative matrices. The test_yeeder.p file is a MATLAB program that tests and verifies your yeeder() function to ensure that all features are working properly. See Homework #5 for details.
- little_yeeder.p — This function works just like yeeder() from Homework #6 to construct derivative matrices, but limits the size of the matrices can be be constructed. It is intended only to help you troubleshoot your yeeder() function by providing the correct matrices. See Homework #6 for details on yeeder().
- test_calcpml2d.p — In Homework #6, you are required to write the function calcpml2d() which calculates the PML functions sx and sy. The test_calcpml2d.p file is a MATLAB program that tests and verifies your calcpml2d() function to ensure that all features are working properly. See Homework #6 for details.
- test_convmat.p — In Homework #8, you are required to write the function convmat() which constructs convolution matrices. The test_convmat.p file is a MATLAB program that tests and verifies your convmat() function to ensure that all features are working properly. 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.