treams.SMatrices

class treams.SMatrices(smats, **kwargs)

Collection of four S-matrices with a plane wave basis.

The S-matrix describes the scattering of incoming into outgoing modes using a plane wave basis, with functions treams.special.vsw_A(), treams.special.vsw_M(), and treams.special.vsw_N(). The primary direction of propagation is parallel or anti-parallel to the z-axis. The scattering object itself is infinitely extended in the x- and y-directions. The S-matrix is divided into four submatrices \(S_{\uparrow \uparrow}\), \(S_{\uparrow \downarrow}\), \(S_{\downarrow \uparrow}\), and \(S_{\downarrow \downarrow}\):

\[\begin{split}S = \begin{pmatrix} S_{\uparrow \uparrow} & S_{\uparrow \downarrow} \\ S_{\downarrow \uparrow} & S_{\downarrow \downarrow} \end{pmatrix}\,.\end{split}\]

These matrices describe the transmission of plane waves propagating into positive z-direction, reflection of plane waves into the positive z-direction, reflection of plane waves into negative z-direction, and the transmission of plane waves propagating in negative z-direction, respectively. Each of those for matrices contain different diffraction orders and different polarizations. The polarizations can be in either helicity of parity basis.

The wave number k0 and, if not vacuum, the material material are also required.

Parameters:
  • smats (SMatrix) – S-matrices.

  • k0 (float) – Wave number in vacuum.

  • basis (PlaneWaveBasisByComp) – The basis for the S-matrices.

  • material (tuple, Material, optional) – Material definition, if a tuple of length two is specified, this refers to the materials above and below the S-matrix.

  • poltype (str, optional) – Polarization type (Polarizations).

Attributes

changepoltype

permute

rotate

translate

Methods

__eq__(other)

Return self==value.

__ge__(value, /)

Return self>=value.

__getitem__(key)

__gt__(value, /)

Return self>value.

__le__(value, /)

Return self<=value.

__len__()

__lt__(value, /)

Return self<value.

__ne__(value, /)

Return self!=value.

__repr__()

Return repr(self).

__str__()

Return str(self).

add(sm)

Couple another S-matrix on top of the current one.

bands_kz(az)

Band structure calculation.

cd(illu)

Transmission and absorption circular dichroism.

double([n])

Double the S-matrix.

from_array(tm, basis)

S-matrix from an array of (cylindrical) T-matrices.

illuminate(illu[, illu2, smat])

Field coefficients above and below the S-matrix.

interface(basis, k0, materials[, poltype])

Planar interface between two media.

periodic()

Periodic repetition of the S-matrix.

propagation(r, basis, k0[, material, poltype])

S-matrix for the propagation along a distance.

slab(thickness, basis, k0, materials[, poltype])

Slab of material.

stack(items)

Stack of S-matrices.

tr(illu)

Transmittance and reflectance.

__le__(value, /)

Return self<=value.

__lt__(value, /)

Return self<value.

__str__()

Return str(self).

__ge__(value, /)

Return self>=value.

__ne__(value, /)

Return self!=value.

__gt__(value, /)

Return self>value.