scattering.ScatteringMatrix
Class scattering.ScatteringMatrix():
Stores the scattering matrix for a stack of layers.
The first layer in a stack is the "start" layer, and the last layer in the stack is the "end" layer.
The scattering matrix relates the forward-going and backward-going waves
on the two sides of a layer stack, which are labeled a
and b
respectively.
Note that forward going fields are defined at the start of a layer while backward-going fields are defined at the end of a layer, as depicted below. This is discussed near equation 4.1 in [1999 Whittaker].
| | | | |
| layer 0 | layer 1 | ... | layer N |
| start layer | | | end layer |
| | | | |
-> a_0 -> a_N
b_0 <- b_N <-
Following the convention of [1999 Whittaker], the terms a_N and b_0 are obtained from,
a_N = s11 @ a_0 + s12 @ b_N
b_0 = s21 @ a_0 + s22 @ b_N
Besides the actual scattering matrix element, the ScatteringMatrix
stores
information about the start and end layers, which are needed to extend the
scattering matrix to include more layers.
Args:
- s11: Relates forward-going fields at start to forward-going fields at end.
- s12: Relates backward-going fields at end to forward-going fields at end.
- s21: Relates forward-going fields at start to backward-going fields at start.
- s22: Relates backward-going fields at end to backward-going fields at start.
- start_layer_solve_result: The eigensolve result for the start layer.
- start_layer_thickness: The start layer thickness.
- end_layer_solve_result: The eigensolve result for the end layer.
- end_layer_thickness: The end layer thickness.