jaxlayerlumos.utils_graded_layers
Utilities for replacing sharp interfaces with graded material layers.
- jaxlayerlumos.utils_graded_layers._get_grade_thicknesses(grade_thickness, interface_indices)
- jaxlayerlumos.utils_graded_layers._get_interface_indices(thicknesses, interface_indices)
- jaxlayerlumos.utils_graded_layers.get_graded_layers(n_k, thicknesses, num_graded_layers=10, grade_thickness=None, method='linear', beta=3.0, interface_indices=None)
Replace selected sharp interfaces with mixed graded layers.
- Parameters:
n_k (jnp.ndarray) – Complex refractive indices with shape (n_frequencies, n_layers).
thicknesses (jnp.ndarray) – Layer thicknesses with shape (n_layers,).
num_graded_layers (int) – Number of true intermediate mixed layers per selected interface. Pure endpoint materials are not counted.
grade_thickness – Total thickness assigned to each graded interface. May be a scalar or a 1D array with one value per selected interface.
method (str) – Mixing method. Use “linear”, “sine”, or “exponential”.
beta (float) – Exponential steepness. Used only when method=”exponential”. beta=0 falls back to linear.
interface_indices – Optional layer indices i selecting interfaces between layer i and layer i + 1. By default, all interfaces whose left and right layers both have positive thickness are selected.
- Returns:
The graded n_k stack and matching thickness array, ready to pass to stackrt.
- Return type:
tuple[jnp.ndarray, jnp.ndarray]
- jaxlayerlumos.utils_graded_layers.get_mixing_ratios(num_graded_layers, method='linear', beta=3.0)
Return material-2 fractions for true intermediate graded layers.
The pure endpoint materials are not included in the graded layer set. For 10 linear graded layers this returns 1/11, 2/11, …, 10/11.
- Parameters:
num_graded_layers (int) – Number of true intermediate mixed layers.
method (str) – One of “linear”, “sine”, or “exponential”.
beta (float) – Exponential steepness. beta=0 falls back to linear.