**EM Lab**

500 West University Ave.

El Paso, TX 79968

Twitter: @UTEPEMLab

E-Mail: rcrumpf@utep.edu

COMPUTATIONAL ELECTROMAGNETICS

- Homework 1 -- Dartboard
- Homework 2 -- Wave Derivations
- Homework 3 -- Transfer Matrix Method
- Homework 4 -- Parameter Sweeps
- Homework 5 -- star() and cascn() Functions
- Homework 6 -- PML and Yee grid
- Homework 7 -- 2D Finite-Difference Frequency-Domain
- Homework 8 -- Parameter Sweeps with FDFD
- Homework 9 -- convmat() and PWEM
- Homework 10 -- RCWA Implementation
- Homework 11 -- RCWA Parameter Sweeps
- Final Project
- Benchmarking Aid for TMM
- Benchmarking Aid for yeeder()
- Benchmarking Aid for PWEM
- Benchmarking Aid for RCWA 1x1
- Benchmarking Aid for RCWA 3x3
- Benchmarking Aid for RCWA 3x3 with oblique incidence

- Lecture 0 -- Rules and Procedures
- Lecture 1 -- Introduction to CEM
- Lecture 2 -- Maxwell's Equations
- Lecture 3 -- Preliminary Topics in CEM
- Lecture 4 -- Transfer Matrix Method
- Lecture 5 -- TMM Using Scattering Matrices
- Lecture 6 -- TMM Extras
- Lecture 7 -- Periodic Structures (Lecture 7 from EM21)
- Lecture 8 -- Diffraction Gratings and the Plane Wave Spectrum
- Lecture 9 -- Perfectly Matched Layer
- Lecture 10 -- Finite Difference Method
- Lecture 11 -- Maxwell's Equations on a Yee Grid
- Lecture 12 -- Finite-Difference Analysis of Waveguides
- Lecture 13 -- FDFD Formulation
- Lecture 14 -- FDFD Implementation
- Lecture 15 -- FDFD Extras
- Lecture 16 -- Finite-Difference Time-Domain
- Lecture 17 -- Beam Propagation Method
- Lecture 18 -- Maxwell's Equations in Fourier Space
- Lecture 19 -- Plane Wave Expansion Method
- Lecture 20 -- PWEM Extras
- Lecture 21 -- RCWA Formulation
- Lecture 22 -- RCWA Implementation
- Lecture 23 -- RCWA Extras
- Lecture 24 -- Method of Lines
- Lecture 25 -- Slice Absorption Method
- Lecture 26 -- Introduction to Variational Methods
- Lecture 27 -- Finite Element Method
- Lecture 28 -- Method of Moments for Thin Wires
- Lecture 29 -- Method of Moments with RWG Edge Elements
- Lecture 30 -- Spectral Domain Method
- Lecture 31 -- Optimization
- Lecture 32 -- Surface Propagation Methods

- Lecture 1 -- Introduction to CEM
- Lecture 2 -- Maxwell's Equations
- Lecture 3 -- Electromagnetic Principles
- Lecture 4 -- Transfer Matrix Method
- Lecture 5 -- TMM Using Scattering Matrices
- Lecture 6 -- Periodic Structures
- Lecture 7 -- Diffraction Gratings and the Plane Wave Spectrum
- Lecture 8 -- Perfectly Matched Layer
- Lecture 9 -- Finite-Difference Method
- Lecture 10 -- Maxwell's Equations on a Yee Grid
- Lecture 11 -- Finite-Difference Analysis of Waveguides
- Lecture 12 -- Formulation of Finite-Difference Frequency-Domain
- Lecture 13 -- Implementation of Finite-Difference Frequency-Domain
- Lecture 14 -- Examples of Finite-Difference Frequency-Domain
- Lecture 15 -- Finite-Difference Time-Domain
- Lecture 16 -- Beam Propagation Method
- Lecture 17 -- Maxwell's Equations in Fourier Space
- Lecture 18 -- Plane Wave Expansion Method
- Lecture 19 -- Formulation of Rigorous Coupled-Wave Analysis
- Lecture 20 -- Implementation of Rigorous Coupled-Wave Analysis
- Lecture 21 -- RCWA Extras
- Lecture 22 -- Method of Lines
- Lecture 23 -- Slice Absorption Method
- Lecture 24 -- Introduction to Variational Methods
- Lecture 27 -- Optimization

- Stereo image of a 3D Yee cell
- Animation for justification of spacer regions before the PML
- 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.