Basic Concepts¶
Overview¶
The hyperbolic-optics package uses the 4×4 transfer matrix method to calculate reflection and transmission coefficients for multilayer anisotropic structures.
Key Components¶
Structure¶
The Structure class is the main interface for setting up and running simulations. It:
- Defines the geometry (layers and materials)
- Sets up the scenario (angles, frequencies)
- Calculates reflection coefficients
Layers¶
A structure consists of multiple layers:
- Ambient Incident Layer: The incident medium (e.g., prism)
- Middle Layers: Can be isotropic or anisotropic, finite thickness
- Exit Layer: Usually semi-infinite, can be isotropic or anisotropic
Materials¶
Materials are defined by their permittivity (ε) and permeability (μ) tensors:
- Uniaxial: Single optical axis (Quartz, Calcite, Sapphire)
- Biaxial/Monoclinic: Two or three optical axes (Gallium Oxide)
- Isotropic: No optical axis (Air, glass)
- Arbitrary: Custom-defined tensors
Reflection Coefficients¶
The package calculates four reflection coefficients:
- r_pp: p-polarized → p-polarized
- r_ss: s-polarized → s-polarized
- r_ps: p-polarized → s-polarized
- r_sp: s-polarized → p-polarized
Reflectivity is calculated as: \(R = |r|^2\)
Transmission, Absorption & Field Profiles¶
Beyond reflection, FieldProfile reconstructs the electromagnetic field through
the stack and derives power quantities numerically from the time-averaged
Poynting flux \(S_z = \tfrac{1}{2}\mathrm{Re}(E_x H_y^* - E_y H_x^*)\) rather than
from closed-form coefficients:
- Transmittance \(T = S_z^{\text{exit}}/S_z^{\text{inc}}\)
- Layer-resolved absorption \(A_i = [S_z(\text{top}_i) - S_z(\text{bottom}_i)]/S_z^{\text{inc}}\)
- Field profiles \(E(z), H(z), S_z(z)\) through each layer
These conserve energy exactly: \(R + T + \sum_i A_i = 1\). For a single semi-infinite anisotropic exit there are no interior layers, so \(T = 1 - R\) is the power delivered into the bulk and the field profile shows it absorbed with depth (decay length set by \(\mathrm{Im}(k_z)\)).
References: Passler, Jeannin & Paarmann, J. Opt. Soc. Am. B 37, 1060 (2020).
Coordinate System¶
- x-axis: Parallel to the interface, in the plane of incidence
- y-axis: Parallel to the interface, perpendicular to plane of incidence
- z-axis: Normal to the interface (propagation direction)
Rotations¶
Materials can be rotated using Euler angles:
- rotationY: Rotation around y-axis (often the optical axis tilt)
- rotationZ: Rotation around z-axis (azimuthal rotation)
Transfer Matrix Method¶
The 4×4 transfer matrix method tracks both electric and magnetic field components through each layer. For each layer:
- Calculate the Berreman matrix (describes wave propagation)
- Find eigenvalues and eigenvectors (wave modes)
- Construct the transfer matrix
- Multiply matrices for all layers
- Extract reflection coefficients
Mueller Matrices¶
Mueller matrices describe how polarization states transform upon reflection:
Where \(\mathbf{S}\) is the Stokes vector: \([S_0, S_1, S_2, S_3]^T\)
The package can:
- Calculate Mueller matrices from reflection coefficients
- Simulate optical components (polarizers, wave plates)
- Calculate Stokes parameters and polarization properties
Units¶
- Frequency: cm⁻¹ (wavenumbers)
- Thickness: mm (converted to cm internally)
- Angles: degrees (converted to radians internally)
- Permittivity/Permeability: dimensionless