Skip to content

hughmor/transfer-matrix-method

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

transfer-matrix-method

Nanophotonics Transfer Matrix Solver

ELEC 856 Nanophotonics Assignment 1
Hugh Morison

Description

This script builds the transfer matrix for the light incident on a multi-material slab and plots the reflection and transmission as a function of wavelength and incident angle for both TE and TM polarizations.

Materials can be supplied to the sweep function in main.py or are supplied through the file material_input.txt, where each line is of the form “[name],[thickness],[index]” where name and thickness are required, and index is only required for materials not listed in materials.INDICES. You can always supply a value for the refractive index to use a constant value (real or complex) across all wavelengths that will override the default for that material.

If a Material is either “gold” or “silver”, the first line of material_input.txt must be of the form “model=[model]” where model is the name of the model to use for the optical properties of the material and must be one of the following:

  • Drude
  • Johnson
  • Palik

The “Drude” model is a semi-analytical model for the permittivity, while the ”Johnson” and “Palik” models use complex refractive index values interpolated from the values in the books by (i) Johnson & Christy and (ii) Palik.

Example

Drude Model

image1

Johnson Christy Model

image2

Palik Model

image3

The images above are plots of transmittance (left) and reflectance (right) for a slab consisting of:

  1. 50nm of Ag
  2. 100nm of Si
  3. 50nm of Au
  4. 100nm of Ag
  5. 50nm of SiO2

These can be compared to results for the same stack generated by an online application from Filmetrics:

image3

About

Nanophotonics Transfer Matrix Solver

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages