AbstractMultilayerMirror#

class optika.materials.AbstractMultilayerMirror[source]#

Bases: AbstractMultilayerMaterial, AbstractMirror

A generalized multilayer mirror coating.

Attributes

is_mirror

flag controlling whether this material reflects or transmits light

layers

A sequence of layers representing the multilayer stack.

shape

The array shape of this object.

substrate

A layer representing the substrate supporting the reflective surface.

transformation

the coordinate transformation between the global coordinate system and this object's local coordinate system

Methods

__init__()

attenuation(rays)

the attenuation coefficient of the given rays

efficiency(rays, normal)

Compute the efficiency of this multilayer film using optika.materials.multilayer_efficiency().

index_refraction(rays)

the index of refraction of this material for the given input rays

plot_layers([width, ax, thickness_substrate])

Plot the multilayer stack using optika.materials.AbstractLayer.plot().

to_string([prefix])

Public-facing version of the __repr__ method that allows for defining a prefix string, which can be used to calculate how much whitespace to add to the beginning of each line of the result.

Inheritance Diagram

Inheritance diagram of optika.materials.AbstractMultilayerMirror
attenuation(rays)#

the attenuation coefficient of the given rays

Parameters:

rays (RayVectorArray) – input rays to calculate the attenuation coefficient for

Return type:

int | float | complex | ndarray | Quantity | AbstractScalar

efficiency(rays, normal)[source]#

Compute the efficiency of this multilayer film using optika.materials.multilayer_efficiency().

Parameters:
Return type:

int | float | complex | ndarray | Quantity | AbstractScalar

index_refraction(rays)#

the index of refraction of this material for the given input rays

Parameters:

rays (RayVectorArray) – input rays used to evaluate the index of refraction

Return type:

int | float | complex | ndarray | Quantity | AbstractScalar

plot_layers(width=<Quantity 100. nm>, ax=None, thickness_substrate=<Quantity 10. nm>, **kwargs)[source]#

Plot the multilayer stack using optika.materials.AbstractLayer.plot().

Parameters:
Return type:

list[Polygon]

to_string(prefix=None)#

Public-facing version of the __repr__ method that allows for defining a prefix string, which can be used to calculate how much whitespace to add to the beginning of each line of the result.

Parameters:

prefix (None | str) – an optional string, the length of which is used to calculate how much whitespace to add to the result.

Return type:

str

property is_mirror: bool#

flag controlling whether this material reflects or transmits light

abstract property layers: AbstractLayer | Sequence[AbstractLayer]#

A sequence of layers representing the multilayer stack.

abstract property shape: dict[str, int]#

The array shape of this object.

abstract property substrate: None | Layer#

A layer representing the substrate supporting the reflective surface.

property transformation: None#

the coordinate transformation between the global coordinate system and this object’s local coordinate system