FilmStack class¶
- class pySCATMECH.fresnel.FilmStack(films=[])¶
Bases:
Model
A class for handling stacks of films
- R(theta, wavelength, no, nt, type='12')¶
Return the reflectance.
- Parameters:
theta (float) – Incident angle in radians
wavelength (float) – Wavelength in vacuum
no (OpticalFunction) – Optical constants for the incident medium
nt (OpticalFunction) – Optical constants for the transmitted medium
type (str, optional) – If 12, then the incident medium is the medium above the substrate and theta is the incident angle, evaluated as if the radiation were in vacuum. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/lambda) If 21, then the incident medium is the substrate and theta is the incident angle evaluated is evaluated as if the radiation were in vacuum. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/lambda) If 12i, then the incident medium is the medium above the substrate and theta is the incident angle in that medium. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/no/lambda) If 21i, then the incident medium is the substrate and theta is the incident angle in the substrate. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/n0/lambda) (Default is 12)
- Returns:
refl – The Mueller matrix reflectance, which is the linear relationship between radiant fluxes.
- Return type:
- Rp(theta, wavelength, no, nt, type='12')¶
Return the reflectance for p-polarized radiation.
- Parameters:
theta (float) – Incident angle in radians
wavelength (float) – Wavelength in vacuum
no (OpticalFunction) – Optical constants for the incident medium
nt (OpticalFunction) – Optical constants for the transmitted medium
type (str, optional) – If 12, then the incident medium is the medium above the substrate and theta is the incident angle, evaluated as if the radiation were in vacuum. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/lambda) If 21, then the incident medium is the substrate and theta is the incident angle evaluated is evaluated as if the radiation were in vacuum. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/lambda) If 12i, then the incident medium is the medium above the substrate and theta is the incident angle in that medium. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/no/lambda) If 21i, then the incident medium is the substrate and theta is the incident angle in the substrate. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/n0/lambda) (Default is 12)
- Returns:
refl – The reflectance for p-polarization, which is the linear relationship between radiant fluxes.
- Return type:
float
- Rs(theta, wavelength, no, nt, type='12')¶
Return the reflectance for s-polarized radiation.
- Parameters:
theta (float) – Incident angle in radians
wavelength (float) – Wavelength in vacuum
no (OpticalFunction) – Optical constants for the incident medium
nt (OpticalFunction) – Optical constants for the transmitted medium
type (str, optional) – If 12, then the incident medium is the medium above the substrate and theta is the incident angle, evaluated as if the radiation were in vacuum. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/lambda) If 21, then the incident medium is the substrate and theta is the incident angle evaluated is evaluated as if the radiation were in vacuum. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/lambda) If 12i, then the incident medium is the medium above the substrate and theta is the incident angle in that medium. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/no/lambda) If 21i, then the incident medium is the substrate and theta is the incident angle in the substrate. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/n0/lambda) (Default is 12)
- Returns:
refl – The reflectance for s-polarization, which is the linear relationship between radiant fluxes.
- Return type:
float
- T(theta, wavelength, no, nt, type='12')¶
Return the transmittance.
- Parameters:
theta (float) – Incident angle in radians
wavelength (float) – Wavelength in vacuum
no (OpticalFunction) – Optical constants for the incident medium
nt (OpticalFunction) – Optical constants for the transmitted medium
type (str, optional) – If 12, then the incident medium is the medium above the substrate and theta is the incident angle, evaluated as if the radiation were in vacuum. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/lambda) If 21, then the incident medium is the substrate and theta is the incident angle evaluated is evaluated as if the radiation were in vacuum. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/lambda) If 12i, then the incident medium is the medium above the substrate and theta is the incident angle in that medium. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/no/lambda) If 21i, then the incident medium is the substrate and theta is the incident angle in the substrate. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/n0/lambda) (Default is 12)
- Returns:
refl – The Mueller matrix transmittance, which is the linear relationship between radiant fluxes.
- Return type:
- Tp(theta, wavelength, no, nt, type='12')¶
Return the transmittance for p-polarized radiation.
- Parameters:
theta (float) – Incident angle in radians
wavelength (float) – Wavelength in vacuum
no (OpticalFunction) – Optical constants for the incident medium
nt (OpticalFunction) – Optical constants for the transmitted medium
type (str, optional) – If 12, then the incident medium is the medium above the substrate and theta is the incident angle, evaluated as if the radiation were in vacuum. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/lambda) If 21, then the incident medium is the substrate and theta is the incident angle evaluated is evaluated as if the radiation were in vacuum. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/lambda) If 12i, then the incident medium is the medium above the substrate and theta is the incident angle in that medium. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/no/lambda) If 21i, then the incident medium is the substrate and theta is the incident angle in the substrate. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/n0/lambda) (Default is ‘12’)
- Returns:
refl – The transmittance for p-polarization, which is the linear relationship between radiant fluxes.
- Return type:
float
- Ts(theta, wavelength, no, nt, type='12')¶
Return the transmittance for s-polarized radiation.
- Parameters:
theta (float) – Incident angle in radians
wavelength (float) – Wavelength in vacuum
no (OpticalFunction) – Optical constants for the incident medium
nt (OpticalFunction) – Optical constants for the transmitted medium
type (str, optional) – If 12, then the incident medium is the medium above the substrate and theta is the incident angle, evaluated as if the radiation were in vacuum. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/lambda) If 21, then the incident medium is the substrate and theta is the incident angle evaluated is evaluated as if the radiation were in vacuum. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/lambda) If 12i, then the incident medium is the medium above the substrate and theta is the incident angle in that medium. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/no/lambda) If 21i, then the incident medium is the substrate and theta is the incident angle in the substrate. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/n0/lambda) (Default is 12)
- Returns:
refl – The transmittance for s-polarization, which is the linear relationship between radiant fluxes.
- Return type:
float
- clean()¶
Clear the stack of all films.
- getModelDict()¶
Return a Model parameter dictionary. Used primarily internally so that a FilmStack can be passed as a parameter to a Model for a stack.
- getStackCommand(wavelength)¶
Get the list of films suitable for a SCATMECH::Stack_StackModel
- Parameters:
wavelength (float) – The wavelength to evaluate the complex index at.
- Returns:
command – List of films suitable for a SCATMECH::Stack_StackModel
- Return type:
str
- reflectionCoefficient(theta, wavelength, no, nt, type='12')¶
Return the reflection coefficent.
- Parameters:
theta (float) – Incident angle in radians
wavelength (float) – Wavelength in vacuum
no (OpticalFunction) – Optical constants for the incident medium
nt (OpticalFunction) – Optical constants for the transmitted medium
type (str, optional) – If 12, then the incident medium is the medium above the substrate and theta is the incident angle, evaluated as if the radiation were in vacuum. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/lambda) If 21, then the incident medium is the substrate and theta is the incident angle evaluated is evaluated as if the radiation were in vacuum. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/lambda) If 12i, then the incident medium is the medium above the substrate and theta is the incident angle in that medium. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/no/lambda) If 21i, then the incident medium is the substrate and theta is the incident angle in the substrate. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/n0/lambda) (Default is 12)
- Returns:
coeff – The Jones matrix reflection coefficient, which is the linear relationship between the electric field amplitudes. coeff[0][0] is the s-polarized reflection coefficient. coeff[1][1] is the p-polarized reflection coefficient. coeff[1][0] = coeff[0][1] = 0
- Return type:
list of list of complex
- transmissionCoefficient(theta, wavelength, no, nt, type='12')¶
Return the transmission coefficient.
- Parameters:
theta (float) – Incident angle in radians
wavelength (float) – Wavelength in vacuum
no (OpticalFunction) – Optical constants for the incident medium
nt (OpticalFunction) – Optical constants for the transmitted medium
type (str, optional) – If 12, then the incident medium is the medium above the substrate and theta is the incident angle, evaluated as if the radiation were in vacuum. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/lambda) If 21, then the incident medium is the substrate and theta is the incident angle evaluated is evaluated as if the radiation were in vacuum. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/lambda) If 12i, then the incident medium is the medium above the substrate and theta is the incident angle in that medium. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/no/lambda) If 21i, then the incident medium is the substrate and theta is the incident angle in the substrate. (The component of the wavevector parallel to the surface is 2*pi*sin(theta)/n0/lambda) (Default is 12)
- Returns:
coeff – The Jones matrix transmission coefficient, which is the linear relationship between the electric field amplitudes. coeff[0][0] is the s-polarized transmission coefficient. coeff[1][1] is the p-polarized transmission coefficient. coeff[1][0] = coeff[0][1] = 0
- Return type:
list of list of complex