jaxlayerlumos.utils_effective_medium

Effective medium approximation utilities for two-material mixtures.

jaxlayerlumos.utils_effective_medium._get_bruggeman_eps(eps1, eps2, f1, f2)
jaxlayerlumos.utils_effective_medium._get_effective_eps_mu(eps1, eps2, f1, method)
jaxlayerlumos.utils_effective_medium._get_fraction_broadcast_to_v(f1, v)
jaxlayerlumos.utils_effective_medium._get_material_eps(material1, material2, v)
jaxlayerlumos.utils_effective_medium._get_maxwell_garnett_eps(eps1, eps2, f1)
jaxlayerlumos.utils_effective_medium._validate_effective_medium_method(method)
jaxlayerlumos.utils_effective_medium.get_effective_medium(material1, material2, f1, v, method='linear')

Return effective permittivity and permeability for a two-material mixture.

Parameters:
  • material1 (str) – Name of material 1 in the JaxLayerLumos material database.

  • material2 (str) – Name of material 2 in the JaxLayerLumos material database.

  • f1 – Volume fraction of material1. May be scalar or broadcastable to v.

  • v (jnp.ndarray) – Frequency vector in Hz with shape (n_frequencies,).

  • method (str) – One of “linear”, “Maxwell-Garnett”, or “Bruggeman”.

Returns:

Effective relative permittivity and permeability arrays with shape matching v.

Return type:

tuple[jnp.ndarray, jnp.ndarray]

jaxlayerlumos.utils_effective_medium.get_graded_effective_medium(material1, material2, v, num_graded_layers=10, method='linear', graded_method='linear', beta=3.0)

Return EMA layers whose fractions come from the graded layer utility.

The graded layer utility returns material2 fractions, so this function uses f2 = ratio and f1 = 1 - ratio for a material1-to-material2 transition.

Parameters:
  • material1 (str) – Name of material 1 in the JaxLayerLumos material database.

  • material2 (str) – Name of material 2 in the JaxLayerLumos material database.

  • v (jnp.ndarray) – Frequency vector in Hz with shape (n_frequencies,).

  • num_graded_layers (int) – Number of true intermediate EMA layers.

  • method (str) – EMA method. One of “linear”, “Maxwell-Garnett”, or “Bruggeman”.

  • graded_method (str) – Fraction profile from utils_graded_layers. One of “linear”, “sine”, or “exponential”.

  • beta (float) – Exponential steepness for graded_method=”exponential”.

Returns:

Effective relative permittivity and permeability arrays with shape (n_frequencies, num_graded_layers).

Return type:

tuple[jnp.ndarray, jnp.ndarray]