Transfer Matrix Optics

This module calculates transfer matrix optics. Basic usages look like this:

# Setup the layers
layers = ['Air', 'SiO2_2', 'TiO2_2', 'GaAs_2']

# Assign the thickness to each layer. 
# Assuimg the first and the last layers are infinite.
thicknesses = [0, 170, 135, 300]

tm_layer = TMLayers(layers, thicknesses, 
wl_range=np.arange(400, 1099, 1))

R, T = tm_layer.get_RT()

plt.plot(tm_layer.wl_range, R, label='R')
plt.plot(tm_layer.wl_range, T, label='T')

References:

Leif A. A. Pettersson, Lucimara S. Roman, and Olle Inganäs, Modeling photocurrent action spectra of photovoltaic devices based on organic thin films, Journal of Applied Physics, vol. 86, pp. 487 (1999). DOI: 10.1063/1.370757 <http://dx.doi.org/10.1063/1.370757>_

APIs

class pypvcell.transfer_matrix_optics.TMLayers(layers: typing.List, thicknesses: typing.List, wl_range=None)[source]
__init__(layers: typing.List, thicknesses: typing.List, wl_range=None)[source]

Initialize the multi-layer system

Parameters:
  • layers – list. The name of the layers. The layer name should be in the folder matdata/.
  • thicknesses – The thickness of the layers.
  • wl_range – ndarray. The reference wavelength range.
get_RT()[source]

Calculate the reflection and transmission

Returns:Tuple: (Reflection array, Transmission array)
get_RT_fast()[source]

Calculate the reflection and transmission

Returns:Tuple: (Reflection array, Transmission array)