The Stack

class stack.Layer

Parrent class of Meta- and NonMetaLayer, contains information about which symmetry opperations will be applied.

class stack.MetaLayer(s_mat, cladding, substrate)

Class to describe a Meta-Surface in the Stack.

Parameters:
  • s_mat (L x 4 x 4 numpy Array) – the Lx4x4 S-Matrix of the Meta-Layer, externally simulated/measured
  • cladding (vector) – containing the refraction indices of the cladding.
  • substrate (vector) – containing the refraction indices of the substrate.
class stack.NonMetaLayer(*n_vec, height)

Class to describe a homogenous isotropic or anisotropic Layer.

Parameters:
  • height (height in (μm)) –
  • n_vec (one or two vactors containing the diffraction indeces.) – If only one vector is given homogenous behavior will be assumed.
class stack.Stack(layer_list, wav_vec, cladding, substrate)

Class to describe the whole Stack, contains information about the layers, cladding, substrate and further options.

Parameters:
  • layer_list (list of Layer objects) –
  • wav_vec (vector) – The target wavelengths where the Meta-Surfaces were simulated/ measured
  • cladding (vector) – The refrectiv indeces of the cladding.
  • substrate (vector) – The refractiv indeces of the substrate. The first material to be hit by light.
build()

Builds all the propagation and interface matrices and multiplies them.

Returns:s_mat – S-matrix describing the behavior of the whole stack. The dimension is HxLx4x4 when a height vector was given
Return type:Lx4x4 or HxLx4x4 numpy array
build_geo(order)

A version of build using star_product_cascaded_geo(), change this doc_str

Returns:s_mat – S-matrix describing the behavior of the whole stack. The dimension is HxLx4x4 when a height vector was given
Return type:Lx4x4 or HxLx4x4 numpy array
create_interface(l_2, l_1)

Creates the interface S-Matrix for the transmission between two Layers

Parameters:
Returns:

s_mat – interface S-Matrix

Return type:

L x 4 x 4 numpy array

create_interface_rot(l_2, l_1)

Creates the interface S-Matrix for the transmission between two Layers in case of rotation, uses create_interface

Parameters:
Returns:

s_mat

Return type:

Lx4x4 S-Matrix

create_propagator(layer)

Creates the propagator S-Matrix

Parameters:layer (NonMetaLayer or MetaLayer object) –
Returns:s_mat – propagation S-Matrix
Return type:H x L x 4 x 4 numpy array
order(order)

Returns the nth order S-Matrix of the starproduct developt via the geometric series.

Parameters:order (int) –
Returns:s_out – S-Matrix of the order’th series developt
Return type:H x L x 4 x 4 numpy Array
order_up_to(order)

Builds a list of S-matrices up to the target order.

Parameters:order (int) –
Returns:s_list
Return type:list of HxLx4x4 numpy Arrays