AbstractMaterial#

class optika.materials.AbstractMaterial[source]#

Bases: Printable, Transformable, Shaped

An interface describing a generalized optical material.

Attributes

is_mirror

flag controlling whether this material reflects or transmits light

shape

The array shape of this object.

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)

The fraction of light that passes through the interface.

index_refraction(rays)

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

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.AbstractMaterial
abstractmethod attenuation(rays)[source]#

the attenuation coefficient of the given rays

Parameters:

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

Return type:

int | float | complex | ndarray | Quantity | AbstractScalar

abstractmethod efficiency(rays, normal)[source]#

The fraction of light that passes through the interface.

Parameters:
Return type:

int | float | complex | ndarray | Quantity | AbstractScalar

abstractmethod index_refraction(rays)[source]#

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

Parameters:

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

Return type:

int | float | complex | ndarray | Quantity | AbstractScalar

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

abstract property is_mirror: bool#

flag controlling whether this material reflects or transmits light

abstract property shape: dict[str, int]#

The array shape of this object.

abstract property transformation: None | AbstractTransformation#

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