Hyperbolic Optics Documentation¶
A comprehensive Python package for simulating the reflective properties of hyperbolic materials and anisotropic structures using the 4×4 transfer matrix method.
Features¶
- Transfer Matrix Method: Accurate 4×4 transfer matrix implementation for anisotropic media
- Multiple Scenarios: Support for incident angle sweeps, azimuthal rotations, dispersion analysis, and single-point calculations
- Materials Library: Pre-configured materials including Quartz, Calcite, Sapphire, and Gallium Oxide
- Mueller Matrix Analysis: Complete Stokes parameter and polarization analysis capabilities
- Custom Materials: Define arbitrary materials with custom permittivity and permeability tensors
- Visualization: Publication-quality plotting functions
Quick Example¶
from hyperbolic_optics.structure import Structure
from hyperbolic_optics.mueller import Mueller
# Define a simple structure
payload = {
"ScenarioData": {
"type": "Simple",
"incidentAngle": 45.0,
"azimuthal_angle": 0.0,
"frequency": 1460.0
},
"Layers": [
{"type": "Ambient Incident Layer", "permittivity": 50.0},
{"type": "Isotropic Middle-Stack Layer", "thickness": 0.1},
{
"type": "Semi Infinite Anisotropic Layer",
"material": "Calcite",
"rotationX": 0,
"rotationY": 90,
"rotationZ": 0
}
]
}
# Run simulation
structure = Structure()
structure.execute(payload)
# Calculate reflectivities
R_pp = abs(structure.r_pp)**2
R_ss = abs(structure.r_ss)**2
print(f"p-polarized reflectivity: {R_pp:.4f}")
print(f"s-polarized reflectivity: {R_ss:.4f}")
Installation¶
Install via pip:
Or using uv (recommended):
Next Steps¶
- Installation Guide - Detailed installation instructions
- Quick Start - Get up and running quickly
- User Guide - Learn about core concepts
- API Reference - Detailed API documentation
- Examples - See more examples
Citation¶
If you use this package in your research, please cite:
@software{cunningham2025hyperbolic,
title={Hyperbolic Optics Simulation Package},
author={Mark Cunningham},
year={2025},
version={0.2.3},
doi={10.5281/zenodo.14946556},
url={https://pypi.org/project/hyperbolic-optics/}
}
Support¶
- Issues: GitHub Issues
- Repository: GitHub Repository