reflec_transm
- class cemd_metasurf.reflec_transm.reflec_transm.ReTr[source]
- calc_rt_kxky(my_bloch=None, ind_ini=0, n=0, m=0)[source]
Calculates the reflectance (R) and transmitance (T) for a transverse electric (TE) or transverse magnetic (TM) incoming plane wave at all Bloch waves stored in array_k_gb.
If a my_bloch is given, R and T will be calculated over this values, by calculating first the depolarization Green function (gb). Consider that in this case, the value of ind_ini is set to the size of the previous self.array_k_gb.shape, in order of only calculating R and T for the given my_bloch. Also, clear.array_k_rt() and clear.array_k_gb() are called at the end if my_bloch is given.
- The values are stored in “array_k_rt”, with dimension along “axis = 1” (columns) are:
k
kx
ky
n
m
r_tm
r_te
t_tm
t_te
- Parameters:
my_bloch (classes.BlochWavevector) – The object with the information of the wavevectos. By default it is not needed, using the wavevetors stored in self.array_k_gb. If a my_bloch is used, R and T would be calculated over these values.
ind_ini (Int) – From which value of the stored gb start to calculate R and T (try to generilized to a range). Only used is “my_bloch = None”.
n (Int) – Diffractive order along x-axis.
m (Int) – Diffractive order along the other axis defined by the lattice.
- clean_array_k_rt()[source]
Clean the stored reflectance and transmitance. Remove repeted rows and sort by k -> kx -> ky -> n -> m.
- get_rt()[source]
Return reflectance and transmitance. For konwing “(k, kx, ky)” and “(n, m)” look self.array_k_rt.
- Returns:
tuple with R and T
- calc_rt_complex_kxky(my_bloch=None, ind_ini=0)[source]
Calculates the complex specular reflection (r) and transmissio (t) for a transverse electric (TE) or transverse magnetic (TM) incoming plane wave at all Bloch waves stored in array_k_gb.
If a my_bloch is given, r and t will be calculated over this values, by calculating first the depolarization Green function (gb). Consider that in this case, the value of ind_ini is set to the size of the previous self.array_k_gb.shape, in order of only calculating r and t for the given my_bloch. Also, clear.array_k_rt_complex() and clear.array_k_gb() are called at the end if my_bloch is given.
- The values are stored in “array_k_rt_complex”, with dimension along “axis = 1” (columns) are:
k
kx
ky
r_tm
r_te
t_tm
t_te
- Parameters:
my_bloch (classes.BlochWavevector) – The object with the information of the wavevectos. By default it is not needed, using the wavevetors stored in self.array_k_gb. If a my_bloch is used, R and T would be calculated over these values.
ind_ini (Int) – From which value of the stored gb start to calculate R and T (try to generilized to a range). Only used is “my_bloch = None”.
n – Diffractive order along x-axis.
- clean_array_k_rt_complex()[source]
Clean the stored reflectance and transmitance. Remove repeted rows and sort by k -> kx -> ky.
- get_rt_complex()[source]
Return reflectance and transmitance. For konwing “(k, kx, ky)” look self.array_k_rt_complex.
- Returns:
tuple with r and t
- calc_rt_pol_kxky(my_bloch=None, ind_ini=0, pol_tm=1, pol_te=1j, n=0, m=0)[source]
Calculates the de reflectance (R) and transmitance (T) at all Bloch waves stored in array_k_gb for a incoming plane wave with polarization defiend by the parameters pol_tm and pol_te:
\(\phi_{0} = \phi_{TM}\mathrm{pol_tm} + \phi_{TE}\mathr{pol_te}\).
Thus, by default the incident is a circular polarized wave (pol_tm = 1, pol_te = 1j).
If a my_bloch is given, R and T will be calculated over this values, by calculating first the depolarization Green function (gb). Consider that in this case, the value of ind_ini is set to the size of the previous self.array_k_gb.shape, in order of only calculating R and T for the given my_bloch. Also, clear.array_k_rt_pol() and clear.array_k_gb() are called at the end if my_bloch is given.
- The values are stored in “array_k_rt”, with dimension along “axis = 1” (columns) are:
k
kx
ky
pol_tm
pot_te
n
m
r_pol
t_pol
- Parameters:
my_bloch (classes.BlochWavevector) – The object with the information of the wavevectos. By default it is not needed, using the wavevetors stored in self.array_k_gb. If a my_bloch is used, R and T would be calculated over these values.
ind_ini (Int) – From which value of the stored gb start to calculate R and T (try to generilized to a range). Only used is “my_bloch = None”.
pol_tm (complex) – TM amplitude.
pol_te (complex) – TE amplitude.
n (Int) – Diffractive order along x-axis.
m (Int) – Diffractive order along the other axis defined by lattice.
Sub-functions
The file rt_functions.py contain all the functions needed to calculate the reflection and tranmision.
- List of functions:
calc_rt_complex (reflectivity and transmitivity for TE and TM waves)
calc_rt (reflectance and transmitance for TE and TM waves)
calc_rt_pol (reflectance and transmitance for a given polarization)
- cemd_metasurf.reflec_transm.rt_functions.calc_rt_complex(my_metasurface)[source]
Function that calculates complex amplitude specular reflection and transmission (r and t) for TE and TM incidence waves.
- Parameters:
my_metasurface (classes.Metasurface) – Vacuum wavevector.
- Returns:
array with complex amplitude specular reflection and transmissionat both polarizations
- cemd_metasurf.reflec_transm.rt_functions.calc_rt(my_metasurface, n=0, m=0)[source]
Function that calculates reflectance and transmitance (R and T) for TE and TM incidence waves at different diffractive orders.
- Parameters:
my_metasurface (classes.Metasurface) – Vacuum wavevector.
n (int) – Diffractive order along x-axis.
m (int) – Diffractive order along the other axis (y-axis for rectangular arrays).
- Returns:
array with the reflectance and transmitance at both polarizations.
- cemd_metasurf.reflec_transm.rt_functions.calc_rt_pol(my_metasurface, pol_tm=1, pol_te=1j, n=0, m=0)[source]
Function that calculates reflectance and transmitance (R and T) for a given incidence wave at different diffractive orders. By default is a circular polarized wave.
- Parameters:
my_metasurface (classes.Metasurface) – Vacuum wavevector.
pol_tm (complex) – TM amplitude.
pol_te (complex) – TE amplitude.
n (int) – Diffractive order along x-axis.
m (int) – Diffractive order along the other axis (y-axis for rectangular arrays).
- Returns:
array with the reflectance and transmitance.