wpspecdev.TmmDriver¶
- class wpspecdev.TmmDriver(args)[source]¶
- Collects methods for computing the reflectivity, absorptivity/emissivity, and transmissivity
of multilayer structures using the Transfer Matrix Method.
- Variables
~TmmDriver.number_of_layers (int) – the number of layers in the multilayer
~TmmDriver.number_of_wavelengths (int) – the number of wavelengths in the wavelength_array
~TmmDriver.thickness_array (1 x number_of_layers numpy array of floats) – the thickness of each layer
~TmmDriver.material_array (1 x number_of_layers numpy array of str) – the materia of each layer
~TmmDriver.wavelength_array (numpy array of floats) – the array of wavelengths in meters over which you will compute the spectra
~TmmDriver.incident_angle (float) – the incident angle of light relative to the normal to the multilayer (0 = normal incidence!)
~TmmDriver.polarization (str) – indicates if incident light is ‘s’ or ‘p’ polarized
~TmmDriver.reflectivity_array (1 x number_of_wavelengths numpy array of floats) – the reflection spectrum
~TmmDriver.transmissivity_array (1 x number_of_wavelengths numpy array of floats) – the transmission spectrum
~TmmDriver.emissivity_array (1 x number_of_wavelengths numpy array of floats) – the absorptivity / emissivity spectrum
~TmmDriver._refractive_index_array (number_of_layers x number_of_wavelengths numpy array of complex floats) – the array of refractive index values corresponding to wavelength_array
~TmmDriver._tm (2 x 2 x number_of_wavelengths numpy array of complex floats) – the transfer matrix for each wavelength
~TmmDriver._kz_array (1 x number_lf_layers x number_of_wavelengths numpy array of complex floats) – the z-component of the wavevector in each layer of the multilayer for each wavelength
~TmmDriver._k0_array (1 x number_of_wavelengths numpy array of floats) – the wavevector magnitude in the incident layer for each wavelength
~TmmDriver._kx_array (1 x number_of_wavelengths numpy array of floats) – the x-component of the wavevector for each wavelength (conserved throughout layers)
~TmmDriver._pm (2 x 2 x (number_of_layers-2) x number_of_wavelengths numpy array of complex floats) – the P matrix for each of the finite-thickness layers for each wavelength
~TmmDriver._dm (2 x 2 x number_of_layers x number_of_wavelengths numpy array of complex floats) – the D matrix for each of the layers for each wavelength
~TmmDriver._dim (2 x 2 x number_of_layers x number_of_wavelengts numpy array of complex floats) – the inverse of the D matrix for each of the layers for each wavelength
- Return type
None
- __init__(args)[source]¶
constructor for the TmmDriver class Assign values for attributes thickness_array, material_array then call compute_spectrum to compute values for attributes reflectivity_array, transmissivity_array, and emissivity_array
Methods
__init__
(args)constructor for the TmmDriver class Assign values for attributes thickness_array, material_array then call compute_spectrum to compute values for attributes reflectivity_array, transmissivity_array, and emissivity_array
compute_cooling
()Method to compute the radiative cooling figures of merit
compute_cooling_gradient
()compute_explicit_angle_spectrum
()computes the following attributes: :ivar ~TmmDriver.compute_explicit_angle_spectrum.reflectivity_array_s: the reflectivity spectrum vs wavelength and angle with s-polarization :vartype ~TmmDriver.compute_explicit_angle_spectrum.reflectivity_array_s: N_deg x number_of_wavelengths numpy array of floats :ivar ~TmmDriver.compute_explicit_angle_spectrum.reflectivity_array_p: the reflectivity spectrum vs wavelength and angle with p-polarization
compute_explicit_angle_spectrum_gradient
()computes the following attributes: :ivar ~TmmDriver.compute_explicit_angle_spectrum_gradient.reflectivity_gradient_array_s: the gradient of the s-polarized reflectivity spectrum vs angle
compute_spectrum
()computes the following attributes: :ivar ~TmmDriver.compute_spectrum.reflectivity_array: the reflectivity spectrum :vartype ~TmmDriver.compute_spectrum.reflectivity_array: 1 x number_of_wavelengths numpy array of floats :ivar ~TmmDriver.compute_spectrum.transmissivity_array: the transmissivity spectrum :vartype ~TmmDriver.compute_spectrum.transmissivity_array: 1 x number_of_wavelengths numpy array of floats :ivar ~TmmDriver.compute_spectrum.emissivity_array: the absorptivity / emissivity spectrum :vartype ~TmmDriver.compute_spectrum.emissivity_array: 1 x number_of_wavelengths numpy array of floats
compute_spectrum_gradient
()computes the following attributes: :ivar ~TmmDriver.compute_spectrum_gradient.reflectivity_gradient_array: the reflectivity spectrum :vartype ~TmmDriver.compute_spectrum_gradient.reflectivity_gradient_array: number_of_wavelengths x len(gradient_list) numpy array of floats :ivar ~TmmDriver.compute_spectrum_gradient.transmissivity_gradient_array: the transmissivity spectrum :vartype ~TmmDriver.compute_spectrum_gradient.transmissivity_gradient_array: number_of_wavelengths x len(gradient_list) numpy array of floats :ivar ~TmmDriver.compute_spectrum_gradient.emissivity_gradient_array: the absorptivity / emissivity spectrum :vartype ~TmmDriver.compute_spectrum_gradient.emissivity_gradient_array: number_of_wavelengths x len(gradient_list) numpy array of floats
compute_stpv
()compute the figures of merit for STPV applications, including
compute_stpv_gradient
()insert_layer
(layer_number, layer_thickness)insert an air layer between layer_number-1 and layer_number e.g.
material_Ag
(layer_number[, ...])material_Air
(layer_number)defines the refractive index layer of layer_number to be air assuming static refractive index of n = 1.0 + 0j
material_Al
(layer_number)material_Al2O3
(layer_number)material_AlN
(layer_number[, ...])material_Au
(layer_number[, ...])material_H2O
(layer_number)defines the refractive index layer of layer_number to be water assuming static refractive index of n = 1.33 + 0j
material_HfO2
(layer_number)material_Pb
(layer_number[, ...])material_Pt
(layer_number)material_Re
(layer_number[, ...])material_Rh
(layer_number)material_Ru
(layer_number)material_Si
(layer_number[, ...])material_SiO2
(layer_number)material_Ta2O5
(layer_number[, ...])material_TiN
(layer_number)material_TiO2
(layer_number)material_W
(layer_number[, wavelength_range, ...])material_from_file
(layer_number, file_name)material_polystyrene
(layer_number)material_static_refractive_index
(...)parse_input
(args)method to parse the user inputs and define structures / simulation :rtype: None
remove_layer
(layer_number)remove layer number layer_number from your stack.
render_color
(string[, colorblindness])set_refractive_index_array
()once materials are specified, define the refractive_index_array values