materials.abbe#
Abbe Material
This module defines a material based on the refractive index and Abbe number. It provides support for both d-line (587.56 nm) and e-line (546.07 nm) definitions.
Models: 1. “polynomial”: A polynomial fit to glass data (Legacy, D-line only). 2. “buchdahl”: A Buchdahl 3-term model with LASSO-derived coefficients.
Kramer Harrison, 2024
Classes
|
Represents a material based on the refractive index and Abbe number. |
|
Represents a material based on the refractive index and Abbe number at e-line. |
Abstract base class for Abbe number based material models. |
|
|
Legacy polynomial model for Abbe materials (d-line). |
|
Buchdahl model for d-line (587.56 nm) materials. |
|
Buchdahl model for e-line (546.07 nm) materials. |
|
Base class for Buchdahl 3-term models. |
- class AbbeMaterial(n, abbe, model=None)[source]#
Represents a material based on the refractive index and Abbe number.
This class serves as a wrapper around specific model implementations. Currently supported models: - ‘polynomial’: The legacy polynomial fit (Default, deprecated). - ‘buchdahl’: The new Buchdahl 3-term model (Recommended).
- Parameters:
- Variables:
- 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:
- k(wavelength: float | be.ndarray, **kwargs) float | be.ndarray#
Calculates the extinction coefficient at a given wavelength with caching.
- class AbbeMaterialE(n, abbe)[source]#
Represents a material based on the refractive index and Abbe number at e-line.
This class uses a Buchdahl 3-term model fitted to e-line (546.07 nm) data.
- Parameters:
- Variables:
index (float) – The refractive index of the material at 546.07 nm.
abbe (float) – The Abbe number of the material (V_e).
model (BuchdahlEModel) – The underlying model instance.
- 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:
- k(wavelength: float | be.ndarray, **kwargs) float | be.ndarray#
Calculates the extinction coefficient at a given wavelength with caching.
- class AbbeModel[source]#
Abstract base class for Abbe number based material models.
- class AbbePolynomialModel(index: float, abbe: float)[source]#
Legacy polynomial model for Abbe materials (d-line).
This model uses a polynomial fit to glass data from the Schott catalog. It corresponds to the original implementation of AbbeMaterial.
- class BuchdahlDModel(index, abbe)[source]#
Buchdahl model for d-line (587.56 nm) materials.
- ALPHA = 2.5#
- V1_COEFFS = [0.00416, 4.462559, 2.32666, 0.00233, -0.003697, -4.697604]#
- V2_COEFFS = [0.066434, -7.636396, 12.597434, -0.037014, 5.551013]#
- V3_COEFFS = [-0.032218, 2.230357, -103.318994, -0.009654, 1.934983]#
- WAVE_REF = 0.5875618#
- class BuchdahlEModel(index, abbe)[source]#
Buchdahl model for e-line (546.07 nm) materials.
- ALPHA = 2.5#
- WAVE_REF = 0.546074#