Materials¶
Built-in Materials¶
Uniaxial Materials¶
Materials with a single optical axis (extraordinary axis differs from ordinary axes).
Quartz¶
{
"type": "Semi Infinite Anisotropic Layer",
"material": "Quartz",
"rotationX": 0,
"rotationY": 90, # Optical axis orientation
"rotationZ": 0
}
- Frequency range: 410-600 cm⁻¹
- Type: Uniaxial positive
- Applications: Mid-infrared phonon polaritons
Calcite¶
Two variants available:
Upper Reststrahlen Band:
{
"type": "Semi Infinite Anisotropic Layer",
"material": "Calcite", # or "CalciteUpper"
"rotationX": 0,
"rotationY": 90,
"rotationZ": 0
}
- Frequency range: 1300-1600 cm⁻¹
- Type: Uniaxial negative (hyperbolic)
Lower Reststrahlen Band:
{
"type": "Semi Infinite Anisotropic Layer",
"material": "CalciteLower",
"rotationX": 0,
"rotationY": 90,
"rotationZ": 0
}
- Frequency range: 860-920 cm⁻¹
- Type: Uniaxial positive
Sapphire¶
{
"type": "Semi Infinite Anisotropic Layer",
"material": "Sapphire",
"rotationX": 0,
"rotationY": 90,
"rotationZ": 0
}
- Frequency range: 210-1000 cm⁻¹
- Type: Uniaxial negative
- Applications: Wide-band phonon polaritons
AlN and SiC¶
Polar uniaxial crystals used (with MoO₃) in the layer-resolved absorption example. Both are modeled c-cut; SiC is treated as effectively isotropic in its reststrahlen band.
{"type": "Semi Infinite Anisotropic Layer", "material": "SiC", "rotationY": 0}
{"type": "Crystal Layer", "material": "AlN", "thickness": 1.0, "rotationY": 0}
- Type: Uniaxial (AlN), near-isotropic (SiC)
- Note: phonon parameters in
material_params.jsonare literature values flagged for verification.
Monoclinic Materials¶
Gallium Oxide (β-Ga₂O₃)¶
{
"type": "Semi Infinite Anisotropic Layer",
"material": "GalliumOxide",
"rotationX": 0,
"rotationY": 90,
"rotationZ": 0
}
- Frequency range: 350-800 cm⁻¹
- Type: Monoclinic (non-zero off-diagonal elements)
- Special: Has xy coupling (ε_xy ≠ 0)
Biaxial Materials¶
α-MoO₃ (molybdenum trioxide)¶
{
"type": "Crystal Layer",
"material": "MoO3",
"thickness": 1.2,
"rotationY": 0,
"rotationZ": 0 # azimuthal rotation exposes the in-plane anisotropy
}
- Type: Orthorhombic biaxial — a diagonal tensor with three distinct principal permittivities (no off-diagonal coupling, unlike monoclinic Ga₂O₃).
- Special: strong in-plane anisotropy supports azimuth-dependent hyperbolic
phonon polaritons (see
examples/layer_resolved_absorption.py). - Note: parameters in
material_params.jsonare literature values flagged for verification.
Transparency-Window Crystals (Sellmeier)¶
Lossless Sellmeier fits for the transparency windows, where photonic chips work:
| name | crystal | valid (µm) | source |
|---|---|---|---|
LiNbO3 |
congruent lithium niobate, negative uniaxial | 0.4–5.0 | Zelmon et al., JOSA B 14, 3319 (1997) |
TiO2 |
rutile, positive uniaxial | 0.43–1.53 | DeVore, JOSA 41, 416 (1951) |
QuartzSellmeier |
α-quartz | 0.198–2.05 | Ghosh, Opt. Commun. 163, 95 (1999) |
CalciteSellmeier |
calcite | 0.204–2.172 | Ghosh (1999) |
SapphireSellmeier |
α-Al₂O₃ | 0.2–5.5 | Malitson & Dodge, JOSA 62, 1405 (1972) |
SiO2 |
fused silica, isotropic | 0.21–6.7 | Malitson, JOSA 55, 1205 (1965) |
Si3N4 |
LPCVD silicon nitride, isotropic | 0.31–5.5 | Luke et al., Opt. Lett. 40, 4823 (2015) |
Si |
crystalline silicon, isotropic | 1.36–11 | Salzberg & Villa, JOSA 47, 244 (1957) |
The tensor is diag(nₒ², nₒ², nₑ²) (optic axis along z). Frequencies are in
cm⁻¹ (1550 nm is 6451.6 cm⁻¹); outside a fit's range a warning fires.
An x-cut LiNbO₃ film, with the optic axis in the plane of the film at 30° to the plane of incidence:
{
"type": "Crystal Layer",
"material": "LiNbO3",
"thickness": 0.6, # µm
"rotationY": 90, # optic axis into the plane of the film
"rotationZ": 30, # and turned within it
}
Isotropic Materials¶
Air¶
Used for air gaps and isotropic layers:
Custom Isotropic¶
{
"type": "Isotropic Middle-Stack Layer",
"thickness": 0.5,
"permittivity": {"real": 2.5, "imag": 0.1}
}
Arbitrary Materials¶
Define custom materials with full tensors:
{
"type": "Semi Infinite Anisotropic Layer",
"material": {
"eps_xx": {"real": 2.27, "imag": 0.001},
"eps_yy": {"real": -4.84, "imag": 0.755},
"eps_zz": {"real": -4.84, "imag": 0.755},
"eps_xy": {"real": 0.0, "imag": 0.0},
"eps_xz": {"real": 0.0, "imag": 0.0},
"eps_yz": {"real": 0.0, "imag": 0.0}
},
"rotationX": 0,
"rotationY": 0,
"rotationZ": 0
}
Material Rotations¶
Rotation Types¶
Materials can be rotated using Euler angles (in degrees):
- rotationX: Rotation around x-axis (Not really used)
- rotationY: Rotation around y-axis (typically optical axis tilt)
- rotationZ: Rotation around z-axis (azimuthal)
Rotation Examples¶
Optical axis perpendicular to interface:
Optical axis in the plane (70° tilt):
45° azimuthal rotation:
Rotation Types for Z-rotation¶
or
Plotting Material Properties¶
from hyperbolic_optics.materials import CalciteUpper
from hyperbolic_optics.plots import plot_permittivity
# Create material
calcite = CalciteUpper()
# Get permittivity
eps_ext, eps_ord = calcite.permittivity_fetch()
# Plot
plot_permittivity(calcite, eps_ext, eps_ord, save_name="calcite_permittivity")
Material Properties Summary¶
| Material | Type | Frequency Range | Hyperbolic? |
|---|---|---|---|
| Quartz | Uniaxial | 410-600 cm⁻¹ | Yes |
| Calcite Upper | Uniaxial | 1300-1600 cm⁻¹ | Yes |
| Calcite Lower | Uniaxial | 860-920 cm⁻¹ | Yes |
| Sapphire | Uniaxial | 210-1000 cm⁻¹ | Yes |
| Gallium Oxide | Monoclinic | 350-800 cm⁻¹ | Yes |
| α-MoO₃ | Biaxial | 500-1050 cm⁻¹ | Yes |
| AlN | Uniaxial | 500-1050 cm⁻¹ | Yes |
| SiC | Uniaxial (≈isotropic) | 500-1050 cm⁻¹ | Yes |
Note: A material is "hyperbolic" when the real parts of permittivity components have opposite signs.