materials.material_file#

Material File

This module contains a class for representing a material based on a material YAML file from the refractiveindex.info database.

Kramer Harrison, 2024

Classes

MaterialFile(filename[, propagation_model, ...])

Represents a material based on a material YAML file from the refractiveindex.info database.

class MaterialFile(filename, propagation_model=None, *, bounds: Literal['raise', 'clamp'] = 'clamp')[source]#

Represents a material based on a material YAML file from the refractiveindex.info database.

Material refractive indices are based on various dispersion formulas or tabulated data. The material file contains the coefficients for the dispersion formulas and/or tabulated data.

See https://refractiveindex.info/database/doc/Dispersion%20formulas.pdf

Parameters:
  • filename (str) – The path to the material file.

  • propagation_model (BasePropagationModel, optional) – The propagation model to use. Defaults to None, which creates a HomogeneousPropagation model.

  • bounds – Out-of-range policy for tabulated n/k. "clamp" (default) preserves endpoint values; "raise" rejects queries outside each table. This option does not change analytic formula evaluation.

Variables:
  • filename (str) – The filename of the material file.

  • coefficients (list) – A list of coefficients for calculating the refractive index.

Methods:
  • n (wavelength, temperature, pressure) – Calculates the refractive index of the material at a given wavelength, temperature and pressure.

  • k (wavelength) – Retrieves the extinction coefficient of the material at a given wavelength.

abbe() → float#

Calculate the Abbe number (Vd) of the material.

The Abbe number is a measure of the material’s dispersion, defined as Vd = (n_d - 1) / (n_F - n_C), where n_d, n_F, and n_C are the refractive indices at the Fraunhofer d (587.5618 nm), F (486.1327 nm), and C (656.2725 nm) spectral lines, respectively.

Returns:

The Abbe number of the material.

Return type:

float

property bounds: Literal['raise', 'clamp']#

The read-only out-of-range policy for tabulated n and k.

property display_name: str#

Show the source filename without resolving a catalog identity.

classmethod from_dict(data)[source]#

Creates a material from a dictionary representation.

Parameters:

data (dict) – The dictionary representation of the material.

Returns:

An instance of MaterialFile.

Return type:

MaterialFile

k(wavelength: float | be.ndarray, **kwargs) → float | be.ndarray#

Calculates the extinction coefficient at a given wavelength with caching.

Parameters:
  • wavelength (float | be.ndarray) – The wavelength(s) of light in microns. Can be a float, numpy array, or torch tensor.

  • **kwargs – Additional keyword arguments for calculation.

Returns:

The extinction coefficient at the given wavelength(s).

Return type:

float | be.ndarray

n(wavelength: float | be.ndarray, **kwargs) → float | be.ndarray#

Calculates the refractive index at a given wavelength with caching.

Parameters:
  • wavelength (float | be.ndarray) – The wavelength(s) of light in microns. Can be a float, numpy array, or torch tensor.

  • **kwargs – Additional keyword arguments for calculation (e.g., temperature).

Returns:

The refractive index at the given wavelength(s).

Return type:

float | be.ndarray

spectral_range(property_name: str = 'n') → tuple[float, float] | None[source]#

Report table support or the formula’s declared wavelength range.

to_dict()[source]#

Returns the material data as a dictionary.

Returns:

The material data.

Return type:

dict